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