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