@holoscript/core 8.0.8 → 8.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/bin/holoscript.cjs +5 -1
  2. package/dist/GLTFPipeline-L76YTXKA.js +15 -0
  3. package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
  4. package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
  5. package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
  6. package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
  7. package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
  8. package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
  9. package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
  10. package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
  11. package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
  12. package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
  13. package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
  14. package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
  15. package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
  16. package/dist/agents/index.cjs +1 -1
  17. package/dist/agents/index.js +1 -1
  18. package/dist/audit/AuditLogger.d.ts +106 -0
  19. package/dist/audit/AuditQueryBuilder.d.ts +79 -0
  20. package/dist/audit/ComplianceReporter.d.ts +90 -0
  21. package/dist/audit/index.d.ts +13 -0
  22. package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
  23. package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
  24. package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
  25. package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
  26. package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
  27. package/dist/chunk-2MQKNDNH.js +51 -0
  28. package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
  29. package/dist/chunk-2ZOTBO25.cjs +202 -0
  30. package/dist/chunk-356N4NPM.cjs +152 -0
  31. package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
  32. package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
  33. package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
  34. package/dist/chunk-3F7ZZWIN.js +1651 -0
  35. package/dist/chunk-3ILD7TKP.cjs +187 -0
  36. package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
  37. package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
  38. package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
  39. package/dist/chunk-4Q7RKQQI.cjs +14195 -0
  40. package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
  41. package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
  42. package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
  43. package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
  44. package/dist/chunk-63AUAIL6.js +48 -0
  45. package/dist/chunk-655FATJU.js +110 -0
  46. package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
  47. package/dist/chunk-6NTAZN5Z.cjs +502 -0
  48. package/dist/chunk-6TRX6AR2.js +9376 -0
  49. package/dist/chunk-6ZCCLKS2.cjs +51 -0
  50. package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
  51. package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
  52. package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
  53. package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
  54. package/dist/chunk-7VBKRGIZ.cjs +847 -0
  55. package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
  56. package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
  57. package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
  58. package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
  59. package/dist/chunk-BCP4E7MD.cjs +997 -0
  60. package/dist/chunk-BG7RPYJP.js +91 -0
  61. package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
  62. package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
  63. package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
  64. package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
  65. package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
  66. package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
  67. package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
  68. package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
  69. package/dist/chunk-D3HSRXYB.js +115 -0
  70. package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
  71. package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
  72. package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
  73. package/dist/chunk-DQRJ5RJG.js +432 -0
  74. package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
  75. package/dist/chunk-ECUYJOJ2.cjs +199 -0
  76. package/dist/chunk-EEMTCAK7.js +182 -0
  77. package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
  78. package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
  79. package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
  80. package/dist/chunk-ESBXUYOC.cjs +836 -0
  81. package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
  82. package/dist/chunk-ET3AN4W3.js +824 -0
  83. package/dist/chunk-EXKSFGSX.cjs +14 -14
  84. package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
  85. package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
  86. package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
  87. package/dist/chunk-FGGJQRLZ.js +14 -14
  88. package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
  89. package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
  90. package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
  91. package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
  92. package/dist/chunk-GGR7QUKK.cjs +4724 -0
  93. package/dist/chunk-GIBF4BHH.js +14098 -0
  94. package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
  95. package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
  96. package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
  97. package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
  98. package/dist/chunk-GTIPOEHN.js +196 -0
  99. package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
  100. package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
  101. package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
  102. package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
  103. package/dist/chunk-HIDEIEFG.js +48 -0
  104. package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
  105. package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
  106. package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
  107. package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
  108. package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
  109. package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
  110. package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
  111. package/dist/chunk-J2DAS2PL.js +148 -0
  112. package/dist/chunk-JBQXZIWB.js +148 -0
  113. package/dist/chunk-JBYBMBMW.js +261 -0
  114. package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
  115. package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
  116. package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
  117. package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
  118. package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
  119. package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
  120. package/dist/chunk-KPGC7SK2.js +192 -0
  121. package/dist/chunk-KROXXBK5.cjs +53 -0
  122. package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
  123. package/dist/chunk-LDYZWNJW.cjs +1654 -0
  124. package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
  125. package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
  126. package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
  127. package/dist/chunk-MUWH4QK5.cjs +94 -0
  128. package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
  129. package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
  130. package/dist/chunk-NFFHLX37.cjs +132 -0
  131. package/dist/chunk-NJSYWX7H.js +190 -0
  132. package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
  133. package/dist/chunk-NTQRFOPP.cjs +56 -0
  134. package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
  135. package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
  136. package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
  137. package/dist/chunk-OMNHTCS4.cjs +264 -0
  138. package/dist/chunk-OQXB6NNC.cjs +117 -0
  139. package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
  140. package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
  141. package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
  142. package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
  143. package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
  144. package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
  145. package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
  146. package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
  147. package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
  148. package/dist/chunk-QBY7LRN2.js +281 -0
  149. package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
  150. package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
  151. package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
  152. package/dist/chunk-QJNCDVYM.cjs +137 -0
  153. package/dist/chunk-QM7FJB5W.js +4717 -0
  154. package/dist/chunk-QQFB4RT2.cjs +448 -0
  155. package/dist/chunk-QSYBHQAD.cjs +196 -0
  156. package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
  157. package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
  158. package/dist/chunk-RAJMAX6D.js +131 -0
  159. package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
  160. package/dist/chunk-RKGUZBOC.js +79 -0
  161. package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
  162. package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
  163. package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
  164. package/dist/chunk-SE7ANBGN.js +128 -0
  165. package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
  166. package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
  167. package/dist/chunk-SR73L5ZP.cjs +84 -0
  168. package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
  169. package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
  170. package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
  171. package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
  172. package/dist/chunk-UCVZXQ63.js +724 -0
  173. package/dist/chunk-UGQ3QNV6.js +992 -0
  174. package/dist/chunk-UNMVGZVW.js +142 -0
  175. package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
  176. package/dist/chunk-UXBYA7DV.cjs +155 -0
  177. package/dist/chunk-V6GXFSK7.cjs +443 -0
  178. package/dist/chunk-VHORVGCG.cjs +761 -0
  179. package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
  180. package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
  181. package/dist/chunk-VVAAZITA.cjs +287 -0
  182. package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
  183. package/dist/chunk-W4GABFCR.js +37 -0
  184. package/dist/chunk-WKEK4NCA.js +490 -0
  185. package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
  186. package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
  187. package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
  188. package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
  189. package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
  190. package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
  191. package/dist/chunk-YAO4HPJL.cjs +120 -0
  192. package/dist/chunk-YKY2JBER.cjs +9443 -0
  193. package/dist/chunk-YP5CHEYU.cjs +154 -0
  194. package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
  195. package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
  196. package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
  197. package/dist/chunk-ZHPMP447.cjs +43 -0
  198. package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
  199. package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
  200. package/dist/chunk-ZVFHPMC5.js +824 -0
  201. package/dist/chunk-ZVQMKUGJ.js +443 -0
  202. package/dist/cli/holoscript-runner.cjs +86 -48
  203. package/dist/cli/holoscript-runner.js +54 -16
  204. package/dist/codebase/index.cjs +1 -1
  205. package/dist/codebase/index.js +1 -1
  206. package/dist/compiler/agent-inference.cjs +11 -11
  207. package/dist/compiler/agent-inference.js +9 -6
  208. package/dist/compiler/android-xr.cjs +13 -12
  209. package/dist/compiler/android-xr.js +11 -10
  210. package/dist/compiler/android.cjs +12 -12
  211. package/dist/compiler/android.js +10 -10
  212. package/dist/compiler/business-quest.cjs +10 -10
  213. package/dist/compiler/business-quest.js +2 -2
  214. package/dist/compiler/coco.cjs +1 -1
  215. package/dist/compiler/coco.js +1 -1
  216. package/dist/compiler/context.cjs +9 -9
  217. package/dist/compiler/context.js +6 -6
  218. package/dist/compiler/daimon-seed.cjs +36 -0
  219. package/dist/compiler/daimon-seed.js +12 -0
  220. package/dist/compiler/domain-block-utils.cjs +205 -156
  221. package/dist/compiler/domain-block-utils.js +8 -7
  222. package/dist/compiler/dtdl.cjs +10 -10
  223. package/dist/compiler/dtdl.js +7 -7
  224. package/dist/compiler/gltf-pipeline.cjs +9 -9
  225. package/dist/compiler/gltf-pipeline.js +2 -2
  226. package/dist/compiler/godot.cjs +10 -9
  227. package/dist/compiler/godot.js +9 -8
  228. package/dist/compiler/incremental.cjs +11 -11
  229. package/dist/compiler/incremental.js +6 -6
  230. package/dist/compiler/index.cjs +2585 -3273
  231. package/dist/compiler/index.d.ts +149 -35
  232. package/dist/compiler/index.js +2197 -3102
  233. package/dist/compiler/ios.cjs +11 -11
  234. package/dist/compiler/ios.js +9 -9
  235. package/dist/compiler/llm-provider-capabilities.cjs +9 -9
  236. package/dist/compiler/llm-provider-capabilities.js +6 -6
  237. package/dist/compiler/nodetoy.cjs +1 -1
  238. package/dist/compiler/nodetoy.js +1 -1
  239. package/dist/compiler/openxr.cjs +11 -10
  240. package/dist/compiler/openxr.js +10 -9
  241. package/dist/compiler/remotion.cjs +1 -1
  242. package/dist/compiler/remotion.js +1 -1
  243. package/dist/compiler/reproducibility.cjs +1 -1
  244. package/dist/compiler/reproducibility.js +1 -1
  245. package/dist/compiler/sdf.cjs +11 -10
  246. package/dist/compiler/sdf.js +9 -8
  247. package/dist/compiler/semantic-scene.cjs +7 -7
  248. package/dist/compiler/semantic-scene.js +2 -2
  249. package/dist/compiler/state.cjs +9 -9
  250. package/dist/compiler/state.js +7 -7
  251. package/dist/compiler/trait-composition.cjs +11 -11
  252. package/dist/compiler/trait-composition.js +7 -7
  253. package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
  254. package/dist/compiler/traits/Semiring.d.ts +26 -0
  255. package/dist/compiler/unity.cjs +11 -10
  256. package/dist/compiler/unity.js +10 -9
  257. package/dist/compiler/unreal.cjs +12 -11
  258. package/dist/compiler/unreal.js +10 -9
  259. package/dist/compiler/urdf.cjs +18 -17
  260. package/dist/compiler/urdf.js +9 -8
  261. package/dist/compiler/usd-physics.cjs +11 -10
  262. package/dist/compiler/usd-physics.js +8 -7
  263. package/dist/compiler/visionos.cjs +11 -10
  264. package/dist/compiler/visionos.js +10 -9
  265. package/dist/compiler/vrchat.cjs +11 -10
  266. package/dist/compiler/vrchat.js +9 -8
  267. package/dist/compiler/wasm.cjs +14 -13
  268. package/dist/compiler/wasm.js +9 -8
  269. package/dist/compiler/webgpu.cjs +10 -9
  270. package/dist/compiler/webgpu.js +9 -8
  271. package/dist/constants.cjs +398 -0
  272. package/dist/constants.js +9 -0
  273. package/dist/coordinators/index.cjs +4 -1
  274. package/dist/coordinators/index.js +4 -1
  275. package/dist/debugger.cjs +11 -9
  276. package/dist/debugger.js +9 -7
  277. package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
  278. package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
  279. package/dist/entries/interop.cjs +23 -23
  280. package/dist/entries/interop.js +3 -3
  281. package/dist/entries/scripting.cjs +12 -11
  282. package/dist/entries/scripting.js +8 -7
  283. package/dist/evolution/index.cjs +66 -0
  284. package/dist/evolution/index.d.ts +162 -0
  285. package/dist/evolution/index.js +17 -0
  286. package/dist/hololand/index.cjs +41 -37
  287. package/dist/hololand/index.js +3 -3
  288. package/dist/index.cjs +12394 -3224
  289. package/dist/index.d.ts +260 -18
  290. package/dist/index.js +10755 -2182
  291. package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
  292. package/dist/keyword-registry/index.cjs +29 -0
  293. package/dist/keyword-registry/index.d.ts +1 -0
  294. package/dist/keyword-registry/index.js +4 -0
  295. package/dist/math/tropical-spmv.cjs +11 -11
  296. package/dist/math/tropical-spmv.d.ts +1 -0
  297. package/dist/math/tropical-spmv.js +2 -2
  298. package/dist/math/tropicalSpmv.d.ts +43 -0
  299. package/dist/math/vec3.cjs +1 -1
  300. package/dist/math/vec3.js +1 -1
  301. package/dist/matter/StagedMatter.d.ts +82 -0
  302. package/dist/matter/index.cjs +17 -0
  303. package/dist/matter/index.d.ts +1 -0
  304. package/dist/matter/index.js +4 -0
  305. package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
  306. package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
  307. package/dist/paper-0c-spike/index.cjs +1 -1
  308. package/dist/paper-0c-spike/index.js +1 -1
  309. package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
  310. package/dist/parameter-envelope/index.cjs +17 -0
  311. package/dist/parameter-envelope/index.d.ts +2 -0
  312. package/dist/parameter-envelope/index.js +4 -0
  313. package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
  314. package/dist/parser/PipelineParser.d.ts +162 -0
  315. package/dist/parser.cjs +36 -20
  316. package/dist/parser.js +13 -9
  317. package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
  318. package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
  319. package/dist/plugin-manifest/index.cjs +25 -0
  320. package/dist/plugin-manifest/index.d.ts +2 -0
  321. package/dist/plugin-manifest/index.js +4 -0
  322. package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
  323. package/dist/plugin-solver-contract/index.cjs +41 -0
  324. package/dist/plugin-solver-contract/index.d.ts +1 -0
  325. package/dist/plugin-solver-contract/index.js +4 -0
  326. package/dist/policy/ContentPolicyGate.d.ts +51 -0
  327. package/dist/policy/PolicyPack.d.ts +120 -0
  328. package/dist/policy/blocklist.d.ts +32 -0
  329. package/dist/policy/defaults.d.ts +44 -0
  330. package/dist/policy/index.cjs +106 -0
  331. package/dist/policy/index.d.ts +17 -0
  332. package/dist/policy/index.js +5 -0
  333. package/dist/policy/jsonLogic.d.ts +31 -0
  334. package/dist/policy/types.d.ts +174 -0
  335. package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
  336. package/dist/proof-composition/index.cjs +25 -0
  337. package/dist/proof-composition/index.d.ts +1 -0
  338. package/dist/proof-composition/index.js +4 -0
  339. package/dist/receipts/hash-policy.d.ts +85 -0
  340. package/dist/reconstruction/index.cjs +75 -47
  341. package/dist/reconstruction/index.js +5 -5
  342. package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
  343. package/dist/runtime.cjs +81 -79
  344. package/dist/runtime.js +9 -7
  345. package/dist/scene-presets-EDKYZ5GW.js +4 -0
  346. package/dist/scene-presets-NCW2CFRS.cjs +17 -0
  347. package/dist/self-improvement/index.cjs +1 -1
  348. package/dist/self-improvement/index.js +1 -1
  349. package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
  350. package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
  351. package/dist/storage/index.cjs +10 -10
  352. package/dist/storage/index.js +3 -3
  353. package/dist/testing.cjs +1 -1
  354. package/dist/testing.js +1 -1
  355. package/dist/tools/index.cjs +3631 -0
  356. package/dist/tools/index.js +3581 -0
  357. package/dist/traitDocs/traitDocs.cjs +9 -9
  358. package/dist/traitDocs/traitDocs.d.ts +1 -0
  359. package/dist/traitDocs/traitDocs.js +3 -3
  360. package/dist/traits/ControlLoopTrait.d.ts +154 -0
  361. package/dist/traits/KinematicChainTrait.d.ts +116 -0
  362. package/dist/traits/SensorSamplingTrait.d.ts +154 -0
  363. package/dist/traits/TraitTypes.d.ts +270 -0
  364. package/dist/traits/TransactionTrait.d.ts +121 -0
  365. package/dist/traits/botanical-lotus.cjs +54 -50
  366. package/dist/traits/botanical-lotus.js +2 -5
  367. package/dist/traits/control-loop.cjs +21 -0
  368. package/dist/traits/control-loop.d.ts +1 -0
  369. package/dist/traits/control-loop.js +4 -0
  370. package/dist/traits/engines/cloth-verlet.d.ts +65 -0
  371. package/dist/traits/engines/index.cjs +19 -19
  372. package/dist/traits/engines/index.d.ts +15 -275
  373. package/dist/traits/engines/index.js +3 -3
  374. package/dist/traits/engines/motion-data-schema.d.ts +119 -0
  375. package/dist/traits/engines/motion-matching.d.ts +102 -0
  376. package/dist/traits/engines/noise.d.ts +25 -0
  377. package/dist/traits/engines/onnx-adapter.d.ts +173 -0
  378. package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
  379. package/dist/traits/engines/pfnn-network.d.ts +92 -0
  380. package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
  381. package/dist/traits/engines/tensor-ops.d.ts +15 -0
  382. package/dist/traits/index.cjs +2789 -1259
  383. package/dist/traits/index.d.ts +35 -0
  384. package/dist/traits/index.js +1692 -411
  385. package/dist/traits/kinematic-chain.cjs +25 -0
  386. package/dist/traits/kinematic-chain.d.ts +1 -0
  387. package/dist/traits/kinematic-chain.js +4 -0
  388. package/dist/traits/sensor-sampling.cjs +33 -0
  389. package/dist/traits/sensor-sampling.d.ts +1 -0
  390. package/dist/traits/sensor-sampling.js +4 -0
  391. package/dist/traits/simulation-solver-factory.cjs +1 -1
  392. package/dist/traits/simulation-solver-factory.js +1 -1
  393. package/dist/traits/transaction.cjs +29 -0
  394. package/dist/traits/transaction.d.ts +1 -0
  395. package/dist/traits/transaction.js +4 -0
  396. package/dist/traits/webcam-gaze.cjs +1 -1
  397. package/dist/traits/webcam-gaze.js +1 -1
  398. package/dist/type-checker.cjs +7 -6
  399. package/dist/type-checker.js +5 -4
  400. package/dist/types/AdvancedTypeSystem.d.ts +489 -0
  401. package/dist/types/HoloScriptPlus.d.ts +810 -0
  402. package/dist/types/base.d.ts +248 -0
  403. package/dist/types.d.ts +799 -0
  404. package/dist/world/index.cjs +3 -4
  405. package/dist/world/index.js +3 -4
  406. package/dist/world-model/index.cjs +1 -1
  407. package/dist/world-model/index.js +1 -1
  408. package/dist/wot/index.cjs +1 -1
  409. package/dist/wot/index.js +1 -1
  410. package/package.json +113 -46
  411. package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
  412. package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
  413. package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
  414. package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
  415. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
  416. package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
  417. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
  418. package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
  419. package/dist/chunk-22Q5A6RV.js +0 -979
  420. package/dist/chunk-4C57PR42.js +0 -468
  421. package/dist/chunk-4W5G5QVL.cjs +0 -847
  422. package/dist/chunk-5ET6L4NS.js +0 -487
  423. package/dist/chunk-C4GSLCHE.cjs +0 -7153
  424. package/dist/chunk-F2G6CWFT.js +0 -7089
  425. package/dist/chunk-G6PNEASF.cjs +0 -814
  426. package/dist/chunk-GTA4Q3A3.js +0 -1491
  427. package/dist/chunk-HCCQLAA4.cjs +0 -74
  428. package/dist/chunk-HFSVMKM3.cjs +0 -72
  429. package/dist/chunk-KAIVDEIG.cjs +0 -4539
  430. package/dist/chunk-KQU64CIX.cjs +0 -1508
  431. package/dist/chunk-MSYSQ2AJ.js +0 -4533
  432. package/dist/chunk-NHJLP37F.js +0 -70
  433. package/dist/chunk-NHYRRAGI.cjs +0 -490
  434. package/dist/chunk-OIQYIIO3.cjs +0 -473
  435. package/dist/chunk-OL46QLBJ.js +0 -61
  436. package/dist/chunk-SKZPC5AG.cjs +0 -984
  437. package/dist/chunk-SLHLXUMO.js +0 -445
  438. package/dist/chunk-UOIGFQXC.cjs +0 -9750
  439. package/dist/chunk-UOL6Y5TD.cjs +0 -759
  440. package/dist/chunk-UVFI7XIR.cjs +0 -452
  441. package/dist/chunk-VEPGBETF.js +0 -844
  442. package/dist/chunk-XQ5MWMP2.js +0 -756
  443. package/dist/chunk-XT6JY5W5.js +0 -9684
  444. package/dist/chunk-YRRAUB35.js +0 -811
  445. package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
  446. package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
  447. package/dist/compiler/ar.cjs +0 -23
  448. package/dist/compiler/ar.js +0 -11
  449. package/dist/compiler/babylon.cjs +0 -21
  450. package/dist/compiler/babylon.js +0 -15
  451. package/dist/compiler/multi-layer.cjs +0 -24
  452. package/dist/compiler/multi-layer.js +0 -15
  453. package/dist/compiler/playcanvas.cjs +0 -19
  454. package/dist/compiler/playcanvas.js +0 -13
  455. package/dist/compiler/r3f.cjs +0 -39
  456. package/dist/compiler/r3f.d.ts +0 -22
  457. package/dist/compiler/r3f.js +0 -17
  458. package/dist/compiler/vrr.cjs +0 -24
  459. package/dist/compiler/vrr.js +0 -12
  460. package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
  461. package/dist/playwright-3AT3AKTV.cjs +0 -98673
  462. 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,4 @@
1
+ export { PROOF_COMPOSITION_LAWS, composeReceipts, flattenForRecompose, verifyCompositionLaws } from '../chunk-655FATJU.js';
2
+ import '../chunk-W4GABFCR.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -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;