@holoscript/core 8.0.8 → 8.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/bin/holoscript.cjs +5 -1
  2. package/dist/GLTFPipeline-L76YTXKA.js +15 -0
  3. package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
  4. package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
  5. package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
  6. package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
  7. package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
  8. package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
  9. package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
  10. package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
  11. package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
  12. package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
  13. package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
  14. package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
  15. package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
  16. package/dist/agents/index.cjs +1 -1
  17. package/dist/agents/index.js +1 -1
  18. package/dist/audit/AuditLogger.d.ts +106 -0
  19. package/dist/audit/AuditQueryBuilder.d.ts +79 -0
  20. package/dist/audit/ComplianceReporter.d.ts +90 -0
  21. package/dist/audit/index.d.ts +13 -0
  22. package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
  23. package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
  24. package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
  25. package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
  26. package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
  27. package/dist/chunk-2MQKNDNH.js +51 -0
  28. package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
  29. package/dist/chunk-2ZOTBO25.cjs +202 -0
  30. package/dist/chunk-356N4NPM.cjs +152 -0
  31. package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
  32. package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
  33. package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
  34. package/dist/chunk-3F7ZZWIN.js +1651 -0
  35. package/dist/chunk-3ILD7TKP.cjs +187 -0
  36. package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
  37. package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
  38. package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
  39. package/dist/chunk-4Q7RKQQI.cjs +14195 -0
  40. package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
  41. package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
  42. package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
  43. package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
  44. package/dist/chunk-63AUAIL6.js +48 -0
  45. package/dist/chunk-655FATJU.js +110 -0
  46. package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
  47. package/dist/chunk-6NTAZN5Z.cjs +502 -0
  48. package/dist/chunk-6TRX6AR2.js +9376 -0
  49. package/dist/chunk-6ZCCLKS2.cjs +51 -0
  50. package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
  51. package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
  52. package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
  53. package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
  54. package/dist/chunk-7VBKRGIZ.cjs +847 -0
  55. package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
  56. package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
  57. package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
  58. package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
  59. package/dist/chunk-BCP4E7MD.cjs +997 -0
  60. package/dist/chunk-BG7RPYJP.js +91 -0
  61. package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
  62. package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
  63. package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
  64. package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
  65. package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
  66. package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
  67. package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
  68. package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
  69. package/dist/chunk-D3HSRXYB.js +115 -0
  70. package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
  71. package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
  72. package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
  73. package/dist/chunk-DQRJ5RJG.js +432 -0
  74. package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
  75. package/dist/chunk-ECUYJOJ2.cjs +199 -0
  76. package/dist/chunk-EEMTCAK7.js +182 -0
  77. package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
  78. package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
  79. package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
  80. package/dist/chunk-ESBXUYOC.cjs +836 -0
  81. package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
  82. package/dist/chunk-ET3AN4W3.js +824 -0
  83. package/dist/chunk-EXKSFGSX.cjs +14 -14
  84. package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
  85. package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
  86. package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
  87. package/dist/chunk-FGGJQRLZ.js +14 -14
  88. package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
  89. package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
  90. package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
  91. package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
  92. package/dist/chunk-GGR7QUKK.cjs +4724 -0
  93. package/dist/chunk-GIBF4BHH.js +14098 -0
  94. package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
  95. package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
  96. package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
  97. package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
  98. package/dist/chunk-GTIPOEHN.js +196 -0
  99. package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
  100. package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
  101. package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
  102. package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
  103. package/dist/chunk-HIDEIEFG.js +48 -0
  104. package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
  105. package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
  106. package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
  107. package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
  108. package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
  109. package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
  110. package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
  111. package/dist/chunk-J2DAS2PL.js +148 -0
  112. package/dist/chunk-JBQXZIWB.js +148 -0
  113. package/dist/chunk-JBYBMBMW.js +261 -0
  114. package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
  115. package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
  116. package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
  117. package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
  118. package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
  119. package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
  120. package/dist/chunk-KPGC7SK2.js +192 -0
  121. package/dist/chunk-KROXXBK5.cjs +53 -0
  122. package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
  123. package/dist/chunk-LDYZWNJW.cjs +1654 -0
  124. package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
  125. package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
  126. package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
  127. package/dist/chunk-MUWH4QK5.cjs +94 -0
  128. package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
  129. package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
  130. package/dist/chunk-NFFHLX37.cjs +132 -0
  131. package/dist/chunk-NJSYWX7H.js +190 -0
  132. package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
  133. package/dist/chunk-NTQRFOPP.cjs +56 -0
  134. package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
  135. package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
  136. package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
  137. package/dist/chunk-OMNHTCS4.cjs +264 -0
  138. package/dist/chunk-OQXB6NNC.cjs +117 -0
  139. package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
  140. package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
  141. package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
  142. package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
  143. package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
  144. package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
  145. package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
  146. package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
  147. package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
  148. package/dist/chunk-QBY7LRN2.js +281 -0
  149. package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
  150. package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
  151. package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
  152. package/dist/chunk-QJNCDVYM.cjs +137 -0
  153. package/dist/chunk-QM7FJB5W.js +4717 -0
  154. package/dist/chunk-QQFB4RT2.cjs +448 -0
  155. package/dist/chunk-QSYBHQAD.cjs +196 -0
  156. package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
  157. package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
  158. package/dist/chunk-RAJMAX6D.js +131 -0
  159. package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
  160. package/dist/chunk-RKGUZBOC.js +79 -0
  161. package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
  162. package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
  163. package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
  164. package/dist/chunk-SE7ANBGN.js +128 -0
  165. package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
  166. package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
  167. package/dist/chunk-SR73L5ZP.cjs +84 -0
  168. package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
  169. package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
  170. package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
  171. package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
  172. package/dist/chunk-UCVZXQ63.js +724 -0
  173. package/dist/chunk-UGQ3QNV6.js +992 -0
  174. package/dist/chunk-UNMVGZVW.js +142 -0
  175. package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
  176. package/dist/chunk-UXBYA7DV.cjs +155 -0
  177. package/dist/chunk-V6GXFSK7.cjs +443 -0
  178. package/dist/chunk-VHORVGCG.cjs +761 -0
  179. package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
  180. package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
  181. package/dist/chunk-VVAAZITA.cjs +287 -0
  182. package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
  183. package/dist/chunk-W4GABFCR.js +37 -0
  184. package/dist/chunk-WKEK4NCA.js +490 -0
  185. package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
  186. package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
  187. package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
  188. package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
  189. package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
  190. package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
  191. package/dist/chunk-YAO4HPJL.cjs +120 -0
  192. package/dist/chunk-YKY2JBER.cjs +9443 -0
  193. package/dist/chunk-YP5CHEYU.cjs +154 -0
  194. package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
  195. package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
  196. package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
  197. package/dist/chunk-ZHPMP447.cjs +43 -0
  198. package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
  199. package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
  200. package/dist/chunk-ZVFHPMC5.js +824 -0
  201. package/dist/chunk-ZVQMKUGJ.js +443 -0
  202. package/dist/cli/holoscript-runner.cjs +86 -48
  203. package/dist/cli/holoscript-runner.js +54 -16
  204. package/dist/codebase/index.cjs +1 -1
  205. package/dist/codebase/index.js +1 -1
  206. package/dist/compiler/agent-inference.cjs +11 -11
  207. package/dist/compiler/agent-inference.js +9 -6
  208. package/dist/compiler/android-xr.cjs +13 -12
  209. package/dist/compiler/android-xr.js +11 -10
  210. package/dist/compiler/android.cjs +12 -12
  211. package/dist/compiler/android.js +10 -10
  212. package/dist/compiler/business-quest.cjs +10 -10
  213. package/dist/compiler/business-quest.js +2 -2
  214. package/dist/compiler/coco.cjs +1 -1
  215. package/dist/compiler/coco.js +1 -1
  216. package/dist/compiler/context.cjs +9 -9
  217. package/dist/compiler/context.js +6 -6
  218. package/dist/compiler/daimon-seed.cjs +36 -0
  219. package/dist/compiler/daimon-seed.js +12 -0
  220. package/dist/compiler/domain-block-utils.cjs +205 -156
  221. package/dist/compiler/domain-block-utils.js +8 -7
  222. package/dist/compiler/dtdl.cjs +10 -10
  223. package/dist/compiler/dtdl.js +7 -7
  224. package/dist/compiler/gltf-pipeline.cjs +9 -9
  225. package/dist/compiler/gltf-pipeline.js +2 -2
  226. package/dist/compiler/godot.cjs +10 -9
  227. package/dist/compiler/godot.js +9 -8
  228. package/dist/compiler/incremental.cjs +11 -11
  229. package/dist/compiler/incremental.js +6 -6
  230. package/dist/compiler/index.cjs +2585 -3273
  231. package/dist/compiler/index.d.ts +149 -35
  232. package/dist/compiler/index.js +2197 -3102
  233. package/dist/compiler/ios.cjs +11 -11
  234. package/dist/compiler/ios.js +9 -9
  235. package/dist/compiler/llm-provider-capabilities.cjs +9 -9
  236. package/dist/compiler/llm-provider-capabilities.js +6 -6
  237. package/dist/compiler/nodetoy.cjs +1 -1
  238. package/dist/compiler/nodetoy.js +1 -1
  239. package/dist/compiler/openxr.cjs +11 -10
  240. package/dist/compiler/openxr.js +10 -9
  241. package/dist/compiler/remotion.cjs +1 -1
  242. package/dist/compiler/remotion.js +1 -1
  243. package/dist/compiler/reproducibility.cjs +1 -1
  244. package/dist/compiler/reproducibility.js +1 -1
  245. package/dist/compiler/sdf.cjs +11 -10
  246. package/dist/compiler/sdf.js +9 -8
  247. package/dist/compiler/semantic-scene.cjs +7 -7
  248. package/dist/compiler/semantic-scene.js +2 -2
  249. package/dist/compiler/state.cjs +9 -9
  250. package/dist/compiler/state.js +7 -7
  251. package/dist/compiler/trait-composition.cjs +11 -11
  252. package/dist/compiler/trait-composition.js +7 -7
  253. package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
  254. package/dist/compiler/traits/Semiring.d.ts +26 -0
  255. package/dist/compiler/unity.cjs +11 -10
  256. package/dist/compiler/unity.js +10 -9
  257. package/dist/compiler/unreal.cjs +12 -11
  258. package/dist/compiler/unreal.js +10 -9
  259. package/dist/compiler/urdf.cjs +18 -17
  260. package/dist/compiler/urdf.js +9 -8
  261. package/dist/compiler/usd-physics.cjs +11 -10
  262. package/dist/compiler/usd-physics.js +8 -7
  263. package/dist/compiler/visionos.cjs +11 -10
  264. package/dist/compiler/visionos.js +10 -9
  265. package/dist/compiler/vrchat.cjs +11 -10
  266. package/dist/compiler/vrchat.js +9 -8
  267. package/dist/compiler/wasm.cjs +14 -13
  268. package/dist/compiler/wasm.js +9 -8
  269. package/dist/compiler/webgpu.cjs +10 -9
  270. package/dist/compiler/webgpu.js +9 -8
  271. package/dist/constants.cjs +398 -0
  272. package/dist/constants.js +9 -0
  273. package/dist/coordinators/index.cjs +4 -1
  274. package/dist/coordinators/index.js +4 -1
  275. package/dist/debugger.cjs +11 -9
  276. package/dist/debugger.js +9 -7
  277. package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
  278. package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
  279. package/dist/entries/interop.cjs +23 -23
  280. package/dist/entries/interop.js +3 -3
  281. package/dist/entries/scripting.cjs +12 -11
  282. package/dist/entries/scripting.js +8 -7
  283. package/dist/evolution/index.cjs +66 -0
  284. package/dist/evolution/index.d.ts +162 -0
  285. package/dist/evolution/index.js +17 -0
  286. package/dist/hololand/index.cjs +41 -37
  287. package/dist/hololand/index.js +3 -3
  288. package/dist/index.cjs +12394 -3224
  289. package/dist/index.d.ts +260 -18
  290. package/dist/index.js +10755 -2182
  291. package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
  292. package/dist/keyword-registry/index.cjs +29 -0
  293. package/dist/keyword-registry/index.d.ts +1 -0
  294. package/dist/keyword-registry/index.js +4 -0
  295. package/dist/math/tropical-spmv.cjs +11 -11
  296. package/dist/math/tropical-spmv.d.ts +1 -0
  297. package/dist/math/tropical-spmv.js +2 -2
  298. package/dist/math/tropicalSpmv.d.ts +43 -0
  299. package/dist/math/vec3.cjs +1 -1
  300. package/dist/math/vec3.js +1 -1
  301. package/dist/matter/StagedMatter.d.ts +82 -0
  302. package/dist/matter/index.cjs +17 -0
  303. package/dist/matter/index.d.ts +1 -0
  304. package/dist/matter/index.js +4 -0
  305. package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
  306. package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
  307. package/dist/paper-0c-spike/index.cjs +1 -1
  308. package/dist/paper-0c-spike/index.js +1 -1
  309. package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
  310. package/dist/parameter-envelope/index.cjs +17 -0
  311. package/dist/parameter-envelope/index.d.ts +2 -0
  312. package/dist/parameter-envelope/index.js +4 -0
  313. package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
  314. package/dist/parser/PipelineParser.d.ts +162 -0
  315. package/dist/parser.cjs +36 -20
  316. package/dist/parser.js +13 -9
  317. package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
  318. package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
  319. package/dist/plugin-manifest/index.cjs +25 -0
  320. package/dist/plugin-manifest/index.d.ts +2 -0
  321. package/dist/plugin-manifest/index.js +4 -0
  322. package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
  323. package/dist/plugin-solver-contract/index.cjs +41 -0
  324. package/dist/plugin-solver-contract/index.d.ts +1 -0
  325. package/dist/plugin-solver-contract/index.js +4 -0
  326. package/dist/policy/ContentPolicyGate.d.ts +51 -0
  327. package/dist/policy/PolicyPack.d.ts +120 -0
  328. package/dist/policy/blocklist.d.ts +32 -0
  329. package/dist/policy/defaults.d.ts +44 -0
  330. package/dist/policy/index.cjs +106 -0
  331. package/dist/policy/index.d.ts +17 -0
  332. package/dist/policy/index.js +5 -0
  333. package/dist/policy/jsonLogic.d.ts +31 -0
  334. package/dist/policy/types.d.ts +174 -0
  335. package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
  336. package/dist/proof-composition/index.cjs +25 -0
  337. package/dist/proof-composition/index.d.ts +1 -0
  338. package/dist/proof-composition/index.js +4 -0
  339. package/dist/receipts/hash-policy.d.ts +85 -0
  340. package/dist/reconstruction/index.cjs +75 -47
  341. package/dist/reconstruction/index.js +5 -5
  342. package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
  343. package/dist/runtime.cjs +81 -79
  344. package/dist/runtime.js +9 -7
  345. package/dist/scene-presets-EDKYZ5GW.js +4 -0
  346. package/dist/scene-presets-NCW2CFRS.cjs +17 -0
  347. package/dist/self-improvement/index.cjs +1 -1
  348. package/dist/self-improvement/index.js +1 -1
  349. package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
  350. package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
  351. package/dist/storage/index.cjs +10 -10
  352. package/dist/storage/index.js +3 -3
  353. package/dist/testing.cjs +1 -1
  354. package/dist/testing.js +1 -1
  355. package/dist/tools/index.cjs +3631 -0
  356. package/dist/tools/index.js +3581 -0
  357. package/dist/traitDocs/traitDocs.cjs +9 -9
  358. package/dist/traitDocs/traitDocs.d.ts +1 -0
  359. package/dist/traitDocs/traitDocs.js +3 -3
  360. package/dist/traits/ControlLoopTrait.d.ts +154 -0
  361. package/dist/traits/KinematicChainTrait.d.ts +116 -0
  362. package/dist/traits/SensorSamplingTrait.d.ts +154 -0
  363. package/dist/traits/TraitTypes.d.ts +270 -0
  364. package/dist/traits/TransactionTrait.d.ts +121 -0
  365. package/dist/traits/botanical-lotus.cjs +54 -50
  366. package/dist/traits/botanical-lotus.js +2 -5
  367. package/dist/traits/control-loop.cjs +21 -0
  368. package/dist/traits/control-loop.d.ts +1 -0
  369. package/dist/traits/control-loop.js +4 -0
  370. package/dist/traits/engines/cloth-verlet.d.ts +65 -0
  371. package/dist/traits/engines/index.cjs +19 -19
  372. package/dist/traits/engines/index.d.ts +15 -275
  373. package/dist/traits/engines/index.js +3 -3
  374. package/dist/traits/engines/motion-data-schema.d.ts +119 -0
  375. package/dist/traits/engines/motion-matching.d.ts +102 -0
  376. package/dist/traits/engines/noise.d.ts +25 -0
  377. package/dist/traits/engines/onnx-adapter.d.ts +173 -0
  378. package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
  379. package/dist/traits/engines/pfnn-network.d.ts +92 -0
  380. package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
  381. package/dist/traits/engines/tensor-ops.d.ts +15 -0
  382. package/dist/traits/index.cjs +2789 -1259
  383. package/dist/traits/index.d.ts +35 -0
  384. package/dist/traits/index.js +1692 -411
  385. package/dist/traits/kinematic-chain.cjs +25 -0
  386. package/dist/traits/kinematic-chain.d.ts +1 -0
  387. package/dist/traits/kinematic-chain.js +4 -0
  388. package/dist/traits/sensor-sampling.cjs +33 -0
  389. package/dist/traits/sensor-sampling.d.ts +1 -0
  390. package/dist/traits/sensor-sampling.js +4 -0
  391. package/dist/traits/simulation-solver-factory.cjs +1 -1
  392. package/dist/traits/simulation-solver-factory.js +1 -1
  393. package/dist/traits/transaction.cjs +29 -0
  394. package/dist/traits/transaction.d.ts +1 -0
  395. package/dist/traits/transaction.js +4 -0
  396. package/dist/traits/webcam-gaze.cjs +1 -1
  397. package/dist/traits/webcam-gaze.js +1 -1
  398. package/dist/type-checker.cjs +7 -6
  399. package/dist/type-checker.js +5 -4
  400. package/dist/types/AdvancedTypeSystem.d.ts +489 -0
  401. package/dist/types/HoloScriptPlus.d.ts +810 -0
  402. package/dist/types/base.d.ts +248 -0
  403. package/dist/types.d.ts +799 -0
  404. package/dist/world/index.cjs +3 -4
  405. package/dist/world/index.js +3 -4
  406. package/dist/world-model/index.cjs +1 -1
  407. package/dist/world-model/index.js +1 -1
  408. package/dist/wot/index.cjs +1 -1
  409. package/dist/wot/index.js +1 -1
  410. package/package.json +113 -46
  411. package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
  412. package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
  413. package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
  414. package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
  415. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
  416. package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
  417. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
  418. package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
  419. package/dist/chunk-22Q5A6RV.js +0 -979
  420. package/dist/chunk-4C57PR42.js +0 -468
  421. package/dist/chunk-4W5G5QVL.cjs +0 -847
  422. package/dist/chunk-5ET6L4NS.js +0 -487
  423. package/dist/chunk-C4GSLCHE.cjs +0 -7153
  424. package/dist/chunk-F2G6CWFT.js +0 -7089
  425. package/dist/chunk-G6PNEASF.cjs +0 -814
  426. package/dist/chunk-GTA4Q3A3.js +0 -1491
  427. package/dist/chunk-HCCQLAA4.cjs +0 -74
  428. package/dist/chunk-HFSVMKM3.cjs +0 -72
  429. package/dist/chunk-KAIVDEIG.cjs +0 -4539
  430. package/dist/chunk-KQU64CIX.cjs +0 -1508
  431. package/dist/chunk-MSYSQ2AJ.js +0 -4533
  432. package/dist/chunk-NHJLP37F.js +0 -70
  433. package/dist/chunk-NHYRRAGI.cjs +0 -490
  434. package/dist/chunk-OIQYIIO3.cjs +0 -473
  435. package/dist/chunk-OL46QLBJ.js +0 -61
  436. package/dist/chunk-SKZPC5AG.cjs +0 -984
  437. package/dist/chunk-SLHLXUMO.js +0 -445
  438. package/dist/chunk-UOIGFQXC.cjs +0 -9750
  439. package/dist/chunk-UOL6Y5TD.cjs +0 -759
  440. package/dist/chunk-UVFI7XIR.cjs +0 -452
  441. package/dist/chunk-VEPGBETF.js +0 -844
  442. package/dist/chunk-XQ5MWMP2.js +0 -756
  443. package/dist/chunk-XT6JY5W5.js +0 -9684
  444. package/dist/chunk-YRRAUB35.js +0 -811
  445. package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
  446. package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
  447. package/dist/compiler/ar.cjs +0 -23
  448. package/dist/compiler/ar.js +0 -11
  449. package/dist/compiler/babylon.cjs +0 -21
  450. package/dist/compiler/babylon.js +0 -15
  451. package/dist/compiler/multi-layer.cjs +0 -24
  452. package/dist/compiler/multi-layer.js +0 -15
  453. package/dist/compiler/playcanvas.cjs +0 -19
  454. package/dist/compiler/playcanvas.js +0 -13
  455. package/dist/compiler/r3f.cjs +0 -39
  456. package/dist/compiler/r3f.d.ts +0 -22
  457. package/dist/compiler/r3f.js +0 -17
  458. package/dist/compiler/vrr.cjs +0 -24
  459. package/dist/compiler/vrr.js +0 -12
  460. package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
  461. package/dist/playwright-3AT3AKTV.cjs +0 -98673
  462. package/dist/playwright-VZPDVUEQ.js +0 -98660
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWFKVS2K4_cjs = require('./chunk-WFKVS2K4.cjs');
3
+ var chunkAUZRKIHQ_cjs = require('./chunk-AUZRKIHQ.cjs');
4
4
 
5
5
  // src/reconstruction/FusedAttentionKernel.ts
6
6
  var FUSED_ATTENTION_WGSL = `
@@ -247,13 +247,6 @@ async function createFusedAttentionBackend() {
247
247
  return new CpuFusedAttentionBackend();
248
248
  }
249
249
 
250
- // src/reconstruction/PagedKVCache.ts
251
- function createPagedKVCache(_config) {
252
- throw new Error(
253
- "PagedKVCache is scaffolded in Sprint 1; implementation lands in Sprint 2. See reconstruction/RFC-HoloMap.md \xA7KV-Cache"
254
- );
255
- }
256
-
257
250
  // src/reconstruction/TrajectoryMemory.ts
258
251
  var TRAJECTORY_DEFAULTS = {
259
252
  maxKeyframes: 512,
@@ -278,20 +271,6 @@ function createAnchorContext(_config) {
278
271
  );
279
272
  }
280
273
 
281
- // src/reconstruction/holoMapAnchoredManifest.ts
282
- function mergeAnchoredProvenance(manifest, urls) {
283
- return {
284
- ...manifest,
285
- provenance: {
286
- ...manifest.provenance,
287
- anchorHash: urls.anchorHash,
288
- opentimestampsProof: urls.opentimestampsProof,
289
- baseCalldataTx: urls.baseCalldataTx,
290
- capturedAtIso: manifest.provenance.capturedAtIso
291
- }
292
- };
293
- }
294
-
295
274
  // src/reconstruction/mobileSensorBundle.ts
296
275
  var HOLOMAP_MOBILE_SENSOR_BUNDLE_VERSION = "holomap-mobile-sensor-bundle/v1";
297
276
  var ARCORE_DEPTH_RECOMMENDED_RANGE_MILLIMETERS = {
@@ -414,6 +393,7 @@ function arCoreDepthFrameToMobileSensorFrame(frame, depthRangeMillimeters) {
414
393
  }
415
394
  const pixelCount = frame.width * frame.height;
416
395
  const normalizedDepth = new Float32Array(pixelCount);
396
+ const metricDepthMeters = new Float32Array(pixelCount);
417
397
  const normalizedConfidence = new Float32Array(pixelCount);
418
398
  for (let y = 0; y < frame.height; y += 1) {
419
399
  for (let x = 0; x < frame.width; x += 1) {
@@ -428,6 +408,7 @@ function arCoreDepthFrameToMobileSensorFrame(frame, depthRangeMillimeters) {
428
408
  );
429
409
  const depthMillimeters = Number(depth.millimeters[srcIndex]);
430
410
  normalizedDepth[dstIndex] = arCoreDepthMillimetersToUnit(depthMillimeters, range);
411
+ metricDepthMeters[dstIndex] = arCoreDepthCellIsTrusted(depthMillimeters, range) ? depthMillimeters / 1e3 : 0;
431
412
  const sensorConfidence = frame.rawDepthConfidenceImage ? clampUnit(Number(frame.rawDepthConfidenceImage.values[srcIndex]) / 255) : 1;
432
413
  normalizedConfidence[dstIndex] = arCoreDepthCellIsTrusted(depthMillimeters, range) ? sensorConfidence : 0;
433
414
  }
@@ -444,6 +425,11 @@ function arCoreDepthFrameToMobileSensorFrame(frame, depthRangeMillimeters) {
444
425
  height: frame.height,
445
426
  values: normalizedDepth
446
427
  },
428
+ sceneDepthMeters: {
429
+ width: frame.width,
430
+ height: frame.height,
431
+ values: metricDepthMeters
432
+ },
447
433
  sceneDepthConfidence: {
448
434
  width: frame.width,
449
435
  height: frame.height,
@@ -550,6 +536,13 @@ function validateMobileSensorBundle(bundle) {
550
536
  if (!finiteArray(frame.sceneDepth.values, pixelCount))
551
537
  errors.push(`${prefix}.sceneDepth values invalid`);
552
538
  }
539
+ if (frame.sceneDepthMeters) {
540
+ if (frame.sceneDepthMeters.width !== frame.width || frame.sceneDepthMeters.height !== frame.height) {
541
+ errors.push(`${prefix}.sceneDepthMeters dimensions must match frame`);
542
+ }
543
+ if (!finiteArray(frame.sceneDepthMeters.values, pixelCount))
544
+ errors.push(`${prefix}.sceneDepthMeters values invalid`);
545
+ }
553
546
  if (frame.sceneDepthConfidence) {
554
547
  if (frame.sceneDepthConfidence.width !== frame.width || frame.sceneDepthConfidence.height !== frame.height) {
555
548
  errors.push(`${prefix}.sceneDepthConfidence dimensions must match frame`);
@@ -576,7 +569,16 @@ function mobileSensorBundleToFrames(bundle) {
576
569
  stride: frame.stride,
577
570
  rgb: toUint8Array(frame.rgb, `frame[${frame.index}].rgb`),
578
571
  depth: frame.sceneDepth ? toFloat32UnitArray(frame.sceneDepth.values, `frame[${frame.index}].sceneDepth`) : void 0,
572
+ depthMeters: frame.sceneDepthMeters ? new Float32Array(Array.from(frame.sceneDepthMeters.values, Number)) : void 0,
579
573
  depthConfidence: frame.sceneDepthConfidence ? confidenceToUnitArray(frame.sceneDepthConfidence) : void 0,
574
+ cameraIntrinsics: {
575
+ width: bundle.capture.intrinsics.width,
576
+ height: bundle.capture.intrinsics.height,
577
+ fx: bundle.capture.intrinsics.fx,
578
+ fy: bundle.capture.intrinsics.fy,
579
+ cx: bundle.capture.intrinsics.cx,
580
+ cy: bundle.capture.intrinsics.cy
581
+ },
580
582
  devicePose: frame.cameraTransformColumnMajor4x4 ? cameraPoseFromColumnMajorTransform(
581
583
  frame.cameraTransformColumnMajor4x4,
582
584
  frame.devicePose?.confidence ?? 1
@@ -585,9 +587,9 @@ function mobileSensorBundleToFrames(bundle) {
585
587
  }
586
588
  async function replayMobileSensorBundle(bundle, config = {}) {
587
589
  const frames = mobileSensorBundleToFrames(bundle);
588
- const runtime = chunkWFKVS2K4_cjs.createHoloMapRuntime();
590
+ const runtime = chunkAUZRKIHQ_cjs.createHoloMapRuntime();
589
591
  await runtime.init({
590
- ...chunkWFKVS2K4_cjs.HOLOMAP_DEFAULTS,
592
+ ...chunkAUZRKIHQ_cjs.HOLOMAP_DEFAULTS,
591
593
  seed: 0,
592
594
  modelHash: bundle.bundleId,
593
595
  videoHash: bundle.bundleId,
@@ -629,11 +631,9 @@ exports.cameraPoseFromColumnMajorTransform = cameraPoseFromColumnMajorTransform;
629
631
  exports.createAnchorContext = createAnchorContext;
630
632
  exports.createArCoreDepthMobileSensorBundle = createArCoreDepthMobileSensorBundle;
631
633
  exports.createFusedAttentionBackend = createFusedAttentionBackend;
632
- exports.createPagedKVCache = createPagedKVCache;
633
634
  exports.createTrajectoryMemory = createTrajectoryMemory;
634
- exports.mergeAnchoredProvenance = mergeAnchoredProvenance;
635
635
  exports.mobileSensorBundleToFrames = mobileSensorBundleToFrames;
636
636
  exports.replayMobileSensorBundle = replayMobileSensorBundle;
637
637
  exports.validateMobileSensorBundle = validateMobileSensorBundle;
638
- //# sourceMappingURL=chunk-UGXHYIWT.cjs.map
639
- //# sourceMappingURL=chunk-UGXHYIWT.cjs.map
638
+ //# sourceMappingURL=chunk-QUJ3ZB55.cjs.map
639
+ //# sourceMappingURL=chunk-QUJ3ZB55.cjs.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkE7JP3BS3_cjs = require('./chunk-E7JP3BS3.cjs');
3
+ var chunkQ47JEE2C_cjs = require('./chunk-Q47JEE2C.cjs');
4
4
  var path = require('path');
5
5
 
6
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -582,7 +582,7 @@ function stdlibPermissionPreviewHasPublicLeak(value) {
582
582
  }
583
583
 
584
584
  // src/traits/TestTrait.ts
585
- chunkE7JP3BS3_cjs.init_safeJsonParse();
585
+ chunkQ47JEE2C_cjs.init_safeJsonParse();
586
586
  var CompositionTestRunner = class {
587
587
  constructor(initialState, computedDefs = [], config = {}) {
588
588
  this.initialState = { ...initialState };
@@ -924,7 +924,7 @@ function parseNestedBlock(body) {
924
924
  }
925
925
  const arrStr = body.substring(arrStart, i).trim();
926
926
  try {
927
- result[key] = chunkE7JP3BS3_cjs.readJson(arrStr);
927
+ result[key] = chunkQ47JEE2C_cjs.readJson(arrStr);
928
928
  } catch {
929
929
  result[key] = arrStr;
930
930
  }
@@ -1270,5 +1270,5 @@ exports.testHandler = testHandler;
1270
1270
  exports.toStringArray = toStringArray;
1271
1271
  exports.truncateText = truncateText;
1272
1272
  exports.weiToEth = weiToEth;
1273
- //# sourceMappingURL=chunk-2YSNA2F2.cjs.map
1274
- //# sourceMappingURL=chunk-2YSNA2F2.cjs.map
1273
+ //# sourceMappingURL=chunk-QVJMDVYZ.cjs.map
1274
+ //# sourceMappingURL=chunk-QVJMDVYZ.cjs.map
@@ -0,0 +1,131 @@
1
+ // src/keyword-registry/PluginKeywordRegistry.ts
2
+ var NODE_TYPE_FAMILIES = [
3
+ // ── Existing reaction categories (from ReactionCategory) ──────────────────
4
+ "movement",
5
+ // locomotion: move, turn, strafe, jump, land
6
+ "interaction",
7
+ // object interaction verbs
8
+ "collision",
9
+ // physics collision response
10
+ "lifecycle",
11
+ // attach, detach, spawn, destroy
12
+ "combat",
13
+ // combat/attack verbs
14
+ "signal",
15
+ // event emission verbs
16
+ // ── H2 additions ─────────────────────────────────────────────────────────
17
+ "cognitive",
18
+ // AI/LLM: llm_call, recall, rag_query, plan, reflect
19
+ "control",
20
+ // actuate, drive, set_joint, emit_gcode (ControlLoopTrait)
21
+ "sensor",
22
+ // measure, read, sample, measure_qubits (robotics/IoT/QM)
23
+ "transaction"
24
+ // pay, transfer, stake (x402 economic)
25
+ ];
26
+ var PluginKeywordRegistry = class {
27
+ constructor() {
28
+ this.table = /* @__PURE__ */ new Map();
29
+ this._sealed = false;
30
+ this._registerBuiltins();
31
+ }
32
+ _registerBuiltins() {
33
+ for (const verb of ["move", "turn", "strafe", "jump", "land"]) {
34
+ this.table.set(verb, { verb, family: "movement", registeredBy: "core" });
35
+ }
36
+ for (const verb of ["llm_call", "recall", "rag_query", "plan", "reflect"]) {
37
+ this.table.set(verb, { verb, family: "cognitive", registeredBy: "core" });
38
+ }
39
+ }
40
+ /**
41
+ * Register a plugin-supplied verb.
42
+ *
43
+ * @param verb The .hs verb (e.g., `'actuate'`, `'emit_gcode'`). Must be
44
+ * a non-empty string containing only `[a-z0-9_]`.
45
+ * @param family Must be a known `NodeTypeFamily`. Conformance gate rejects
46
+ * anything outside the fixed set.
47
+ * @param pluginId The registering plugin's manifest id (e.g., `'robotics'`).
48
+ *
49
+ * @throws If the registry is sealed, the family is unknown, or the verb is
50
+ * already registered by a DIFFERENT plugin (idempotent for same plugin).
51
+ */
52
+ register(verb, family, pluginId) {
53
+ if (this._sealed) {
54
+ throw new Error(
55
+ `[PluginKeywordRegistry] Registry is sealed \u2014 cannot register verb "${verb}" after scene init.`
56
+ );
57
+ }
58
+ if (!verb || !/^[a-z][a-z0-9_]*$/.test(verb)) {
59
+ throw new Error(
60
+ `[PluginKeywordRegistry] Invalid verb "${verb}". Must match [a-z][a-z0-9_]*.`
61
+ );
62
+ }
63
+ if (!NODE_TYPE_FAMILIES.includes(family)) {
64
+ throw new Error(
65
+ `[PluginKeywordRegistry] Unknown node-type family "${family}". Must be one of: ${NODE_TYPE_FAMILIES.join(", ")}.`
66
+ );
67
+ }
68
+ const existing = this.table.get(verb);
69
+ if (existing) {
70
+ if (existing.registeredBy === pluginId) {
71
+ return;
72
+ }
73
+ throw new Error(
74
+ `[PluginKeywordRegistry] Verb "${verb}" is already registered by plugin "${existing.registeredBy}". Cannot be re-registered by "${pluginId}".`
75
+ );
76
+ }
77
+ this.table.set(verb, { verb, family, registeredBy: pluginId });
78
+ }
79
+ /**
80
+ * Seal the registry after scene init. All plugin verbs must be registered
81
+ * before this call. After sealing, `register()` throws.
82
+ *
83
+ * Idempotent — calling seal() on an already-sealed registry is a no-op.
84
+ */
85
+ seal() {
86
+ this._sealed = true;
87
+ }
88
+ /** Whether the registry has been sealed. */
89
+ get isSealed() {
90
+ return this._sealed;
91
+ }
92
+ /**
93
+ * Look up the `NodeTypeFamily` for a verb.
94
+ * Returns `undefined` for unregistered verbs.
95
+ */
96
+ lookupFamily(verb) {
97
+ return this.table.get(verb)?.family;
98
+ }
99
+ /** Returns `true` if the verb is registered (built-in or plugin-supplied). */
100
+ isKnownVerb(verb) {
101
+ return this.table.has(verb);
102
+ }
103
+ /**
104
+ * Return all registered `VerbEntry` objects — the flat machine-introspectable
105
+ * table. Safe for LSP / marketplace / Brittney to read without importing TS.
106
+ */
107
+ entries() {
108
+ return [...this.table.values()];
109
+ }
110
+ /** Return all registered verbs for a given family. */
111
+ verbsInFamily(family) {
112
+ return [...this.table.values()].filter((e) => e.family === family).map((e) => e.verb);
113
+ }
114
+ /** Total number of registered verbs. */
115
+ get size() {
116
+ return this.table.size;
117
+ }
118
+ };
119
+ var globalKeywordRegistry = new PluginKeywordRegistry();
120
+ function registerPluginVerb(verb, family, pluginId) {
121
+ globalKeywordRegistry.register(verb, family, pluginId);
122
+ }
123
+ function registerPluginVerbs(pluginId, verbs) {
124
+ for (const { verb, family } of verbs) {
125
+ globalKeywordRegistry.register(verb, family, pluginId);
126
+ }
127
+ }
128
+
129
+ export { NODE_TYPE_FAMILIES, PluginKeywordRegistry, globalKeywordRegistry, registerPluginVerb, registerPluginVerbs };
130
+ //# sourceMappingURL=chunk-RAJMAX6D.js.map
131
+ //# sourceMappingURL=chunk-RAJMAX6D.js.map
@@ -1,4 +1,4 @@
1
- import { __esm } from './chunk-OL46QLBJ.js';
1
+ import { __esm } from './chunk-W4GABFCR.js';
2
2
  import { z } from 'zod';
3
3
 
4
4
  function safeJsonParse(s, schema) {
@@ -51,5 +51,5 @@ var init_safeJsonParse = __esm({
51
51
  });
52
52
 
53
53
  export { init_safeJsonParse, jsonClone, readJson, safeJsonParse, safeJsonParseSchema, tryParseJson };
54
- //# sourceMappingURL=chunk-VVKVQZI6.js.map
55
- //# sourceMappingURL=chunk-VVKVQZI6.js.map
54
+ //# sourceMappingURL=chunk-RAN3ECAS.js.map
55
+ //# sourceMappingURL=chunk-RAN3ECAS.js.map
@@ -0,0 +1,79 @@
1
+ import { readdirSync, existsSync, readFileSync } from 'fs';
2
+ import { join, resolve } from 'path';
3
+ import { pathToFileURL } from 'url';
4
+
5
+ // src/plugin-manifest/PluginManifest.ts
6
+ function traitName(entry) {
7
+ return typeof entry === "string" ? entry : entry.name;
8
+ }
9
+ function manifestTraitNames(manifest) {
10
+ return manifest.traits.map(traitName);
11
+ }
12
+ function combinePluginRegistrations(registrar, plugins) {
13
+ const pluginIds = [];
14
+ const traitNames = [];
15
+ for (const registration of plugins) {
16
+ registration.register(registrar);
17
+ pluginIds.push(registration.manifest.id);
18
+ traitNames.push(...manifestTraitNames(registration.manifest));
19
+ }
20
+ return { pluginIds, traitNames };
21
+ }
22
+ async function autoLoadPluginsFromManifests(pluginsDir, registrar) {
23
+ const loaded = [];
24
+ const skipped = [];
25
+ const failed = [];
26
+ let dirs;
27
+ try {
28
+ dirs = readdirSync(pluginsDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
29
+ } catch (e) {
30
+ return { loaded, skipped, failed: [{ id: "<root>", error: e.message }] };
31
+ }
32
+ for (const dir of dirs) {
33
+ const manifestPath = join(pluginsDir, dir, "plugin.manifest.json");
34
+ if (!existsSync(manifestPath)) continue;
35
+ let manifest;
36
+ try {
37
+ manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
38
+ } catch (e) {
39
+ failed.push({ id: dir, error: `manifest parse: ${e.message}` });
40
+ continue;
41
+ }
42
+ if (!manifest.autoRegister) {
43
+ skipped.push(manifest.id);
44
+ continue;
45
+ }
46
+ const entry = manifest.runtimeEntry ?? "./src/runtime.ts";
47
+ const entryAbs = resolve(join(pluginsDir, dir), entry);
48
+ if (!existsSync(entryAbs)) {
49
+ failed.push({ id: manifest.id, error: `runtimeEntry not found: ${entryAbs}` });
50
+ continue;
51
+ }
52
+ try {
53
+ const mod = await import(pathToFileURL(entryAbs).href);
54
+ let fn = mod["registerTraitHandlers"];
55
+ if (typeof fn !== "function") {
56
+ const found = Object.entries(mod).find(
57
+ ([k, v]) => typeof v === "function" && /^register\w+TraitHandlers$/.test(k)
58
+ );
59
+ fn = found?.[1];
60
+ }
61
+ if (typeof fn !== "function") {
62
+ failed.push({
63
+ id: manifest.id,
64
+ error: `no registerTraitHandlers export in ${entry}`
65
+ });
66
+ continue;
67
+ }
68
+ fn(registrar);
69
+ loaded.push(manifest.id);
70
+ } catch (e) {
71
+ failed.push({ id: manifest.id, error: e.message });
72
+ }
73
+ }
74
+ return { loaded, skipped, failed };
75
+ }
76
+
77
+ export { autoLoadPluginsFromManifests, combinePluginRegistrations, manifestTraitNames, traitName };
78
+ //# sourceMappingURL=chunk-RKGUZBOC.js.map
79
+ //# sourceMappingURL=chunk-RKGUZBOC.js.map
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var chunkLODTHGST_cjs = require('./chunk-LODTHGST.cjs');
4
- var chunkHCCQLAA4_cjs = require('./chunk-HCCQLAA4.cjs');
3
+ var chunkZK7KX5CD_cjs = require('./chunk-ZK7KX5CD.cjs');
4
+ var chunkZHPMP447_cjs = require('./chunk-ZHPMP447.cjs');
5
5
  var ans = require('@holoscript/core-types/ans');
6
6
 
7
7
  // src/compiler/DTDLCompiler.ts
8
8
  var DTDLCompiler_exports = {};
9
- chunkHCCQLAA4_cjs.__export(DTDLCompiler_exports, {
9
+ chunkZHPMP447_cjs.__export(DTDLCompiler_exports, {
10
10
  DTDLCompiler: () => exports.DTDLCompiler,
11
11
  DTDL_TRAIT_COMPONENTS: () => exports.DTDL_TRAIT_COMPONENTS,
12
12
  default: () => exports.DTDLCompiler_default
13
13
  });
14
14
  exports.DTDLCompiler = void 0; exports.DTDL_TRAIT_COMPONENTS = void 0; exports.DTDLCompiler_default = void 0;
15
- var init_DTDLCompiler = chunkHCCQLAA4_cjs.__esm({
15
+ var init_DTDLCompiler = chunkZHPMP447_cjs.__esm({
16
16
  "src/compiler/DTDLCompiler.ts"() {
17
- chunkLODTHGST_cjs.init_CompilerBase();
18
- exports.DTDLCompiler = class extends chunkLODTHGST_cjs.CompilerBase {
17
+ chunkZK7KX5CD_cjs.init_CompilerBase();
18
+ exports.DTDLCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
19
19
  constructor(options = {}) {
20
20
  super();
21
21
  this.compilerName = "DTDLCompiler";
@@ -420,5 +420,5 @@ var init_DTDLCompiler = chunkHCCQLAA4_cjs.__esm({
420
420
 
421
421
  exports.DTDLCompiler_exports = DTDLCompiler_exports;
422
422
  exports.init_DTDLCompiler = init_DTDLCompiler;
423
- //# sourceMappingURL=chunk-HLFDZ35S.cjs.map
424
- //# sourceMappingURL=chunk-HLFDZ35S.cjs.map
423
+ //# sourceMappingURL=chunk-RRQIAJLQ.cjs.map
424
+ //# sourceMappingURL=chunk-RRQIAJLQ.cjs.map
@@ -1,4 +1,4 @@
1
- import { init_CompilerBase, CompilerBase } from './chunk-C7ZBSV2Q.js';
1
+ import { init_CompilerBase, CompilerBase } from './chunk-DUG3OQAS.js';
2
2
  import { ANSCapabilityPath } from '@holoscript/core-types/ans';
3
3
 
4
4
  // src/compiler/LLMProviderCapabilitiesCompiler.ts
@@ -734,5 +734,5 @@ function daysBetween(earlier, later) {
734
734
  }
735
735
 
736
736
  export { LLMCapabilityCompileError, LLMProviderCapabilitiesCompiler, createLLMProviderCapabilitiesCompiler };
737
- //# sourceMappingURL=chunk-PABONWKI.js.map
738
- //# sourceMappingURL=chunk-PABONWKI.js.map
737
+ //# sourceMappingURL=chunk-RXQNRZ5F.js.map
738
+ //# sourceMappingURL=chunk-RXQNRZ5F.js.map
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkUVFI7XIR_cjs = require('./chunk-UVFI7XIR.cjs');
4
- var chunkLODTHGST_cjs = require('./chunk-LODTHGST.cjs');
3
+ var chunkV6GXFSK7_cjs = require('./chunk-V6GXFSK7.cjs');
4
+ var chunkZK7KX5CD_cjs = require('./chunk-ZK7KX5CD.cjs');
5
5
 
6
6
  // src/compiler/TraitCompositionCompiler.ts
7
- chunkLODTHGST_cjs.init_AgentRBAC();
8
- chunkLODTHGST_cjs.init_CompilerBase();
9
- chunkUVFI7XIR_cjs.init_ProvenanceSemiring();
7
+ chunkZK7KX5CD_cjs.init_AgentRBAC();
8
+ chunkZK7KX5CD_cjs.init_CompilerBase();
10
9
  var CompositionConflictError = class extends Error {
11
10
  constructor(traitA, traitB, conflictKey) {
12
11
  super(
@@ -63,7 +62,7 @@ var TraitCompositionCompiler = class {
63
62
  */
64
63
  validateAccess(agentToken) {
65
64
  if (!agentToken) return;
66
- const rbac = chunkLODTHGST_cjs.getRBAC();
65
+ const rbac = chunkZK7KX5CD_cjs.getRBAC();
67
66
  const decision = rbac.checkAccess({
68
67
  token: agentToken,
69
68
  resourceType: "ast" /* AST */,
@@ -83,12 +82,12 @@ var TraitCompositionCompiler = class {
83
82
  if (!handler) throw new MissingComponentError(decl.name, name);
84
83
  return { name, handler };
85
84
  });
86
- if (chunkUVFI7XIR_cjs.authorityWeight(
85
+ if (chunkV6GXFSK7_cjs.authorityWeight(
87
86
  decl.provenance?.context?.authorityLevel ?? 0
88
87
  ) < 100) {
89
88
  this.detectConflicts(handlers);
90
89
  }
91
- const semiring = new chunkUVFI7XIR_cjs.ProvenanceSemiring();
90
+ const semiring = new chunkV6GXFSK7_cjs.ProvenanceSemiring();
92
91
  const applications = [];
93
92
  for (const { name, handler } of handlers) {
94
93
  let configAccumulator = {};
@@ -154,7 +153,7 @@ var TraitCompositionCompiler = class {
154
153
  }
155
154
  }
156
155
  };
157
- var UnauthorizedTraitCompositionAccessError = class extends chunkLODTHGST_cjs.UnauthorizedCompilerAccessError {
156
+ var UnauthorizedTraitCompositionAccessError = class extends chunkZK7KX5CD_cjs.UnauthorizedCompilerAccessError {
158
157
  constructor(decision, compilerName) {
159
158
  super(decision, "trait composition", compilerName);
160
159
  this.name = "UnauthorizedTraitCompositionAccessError";
@@ -165,5 +164,5 @@ exports.CompositionConflictError = CompositionConflictError;
165
164
  exports.MissingComponentError = MissingComponentError;
166
165
  exports.TraitCompositionCompiler = TraitCompositionCompiler;
167
166
  exports.UnauthorizedTraitCompositionAccessError = UnauthorizedTraitCompositionAccessError;
168
- //# sourceMappingURL=chunk-7ZHYEITD.cjs.map
169
- //# sourceMappingURL=chunk-7ZHYEITD.cjs.map
167
+ //# sourceMappingURL=chunk-S4O7CFHQ.cjs.map
168
+ //# sourceMappingURL=chunk-S4O7CFHQ.cjs.map
@@ -0,0 +1,128 @@
1
+ import { HoloScriptPlusParser } from './chunk-DBH3D2MU.js';
2
+
3
+ // src/parser/HsplusGrammar.ts
4
+ function normalizeHsplusGrammarErrors(errors) {
5
+ if (!Array.isArray(errors)) return [];
6
+ return errors.map((error) => {
7
+ const record = error && typeof error === "object" ? error : {};
8
+ return {
9
+ message: typeof record.message === "string" ? record.message : String(error),
10
+ line: typeof record.line === "number" ? record.line : 0,
11
+ column: typeof record.column === "number" ? record.column : 0
12
+ };
13
+ });
14
+ }
15
+ var TypeScriptHsplusGrammar = class {
16
+ constructor(options = {}) {
17
+ this.options = options;
18
+ this.source = "typescript-fallback";
19
+ }
20
+ parse(source) {
21
+ const result = this.parseWithTypeScript(source);
22
+ return {
23
+ success: result.success,
24
+ ast: result.ast,
25
+ errors: normalizeHsplusGrammarErrors(result.errors),
26
+ raw: result
27
+ };
28
+ }
29
+ validate(source) {
30
+ return this.validateDetailed(source).valid;
31
+ }
32
+ validateDetailed(source) {
33
+ const parsed = this.parse(source);
34
+ return {
35
+ valid: parsed.success,
36
+ errors: parsed.errors,
37
+ raw: parsed.raw
38
+ };
39
+ }
40
+ version() {
41
+ return "typescript-hsplus";
42
+ }
43
+ parseWithTypeScript(source) {
44
+ const parser = new HoloScriptPlusParser(this.options);
45
+ return parser.parse(source);
46
+ }
47
+ };
48
+
49
+ // src/parser/GrammarModuleRegistry.ts
50
+ var GrammarModuleRegistryImpl = class {
51
+ constructor() {
52
+ this.modules = /* @__PURE__ */ new Map();
53
+ }
54
+ /**
55
+ * Register a new grammar module.
56
+ * @throws Error if a module with the same name already exists
57
+ */
58
+ register(descriptor) {
59
+ if (this.modules.has(descriptor.name)) {
60
+ throw new Error(
61
+ `Grammar module "${descriptor.name}" is already registered. Use GrammarModuleRegistry.override() to replace an existing module.`
62
+ );
63
+ }
64
+ this.modules.set(descriptor.name, descriptor);
65
+ }
66
+ /**
67
+ * Override an existing grammar module registration.
68
+ */
69
+ override(descriptor) {
70
+ this.modules.set(descriptor.name, descriptor);
71
+ }
72
+ /**
73
+ * Unregister a grammar module.
74
+ */
75
+ unregister(name) {
76
+ return this.modules.delete(name);
77
+ }
78
+ /**
79
+ * Check if a grammar module is registered.
80
+ */
81
+ has(name) {
82
+ return this.modules.has(name);
83
+ }
84
+ /**
85
+ * Get a registered grammar module descriptor (includes the callable parse fn).
86
+ */
87
+ get(name) {
88
+ return this.modules.get(name);
89
+ }
90
+ /**
91
+ * Parse source using a registered grammar module.
92
+ * @throws Error if module not found
93
+ */
94
+ parseWith(name, source) {
95
+ const desc = this.modules.get(name);
96
+ if (!desc) {
97
+ const available = [...this.modules.keys()].join(", ");
98
+ throw new Error(`Unknown grammar module "${name}". Available: ${available}`);
99
+ }
100
+ return desc.parse(source);
101
+ }
102
+ /**
103
+ * List all registered grammar modules (discovery info only, no parse fn).
104
+ */
105
+ list() {
106
+ return [...this.modules.values()].map((desc) => ({
107
+ name: desc.name,
108
+ description: desc.description
109
+ }));
110
+ }
111
+ /**
112
+ * Get all registered grammar module names.
113
+ */
114
+ names() {
115
+ return [...this.modules.keys()];
116
+ }
117
+ /**
118
+ * Get count of registered grammar modules.
119
+ */
120
+ get size() {
121
+ return this.modules.size;
122
+ }
123
+ };
124
+ var GrammarModuleRegistry = new GrammarModuleRegistryImpl();
125
+
126
+ export { GrammarModuleRegistry, TypeScriptHsplusGrammar, normalizeHsplusGrammarErrors };
127
+ //# sourceMappingURL=chunk-SE7ANBGN.js.map
128
+ //# sourceMappingURL=chunk-SE7ANBGN.js.map