@holoscript/core 6.0.4 → 6.1.2

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 (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/bin/holoscript.cjs +3 -0
  4. package/dist/GLTFPipeline-SFIORFJU.js +16 -0
  5. package/dist/GLTFPipeline-VNNDPONV.cjs +37 -0
  6. package/dist/{HoloScriptPlusParser-BN6KVRCM.js → HoloScriptPlusParser-7FBIFUFC.js} +6 -5
  7. package/dist/{HoloScriptPlusParser-NC5FE6AL.cjs → HoloScriptPlusParser-A2W7OCN2.cjs} +17 -16
  8. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  9. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  10. package/dist/{USDZExporter-UWGWNMMD.cjs → USDZExporter-3FWJ25JI.cjs} +344 -16
  11. package/dist/{USDZExporter-NTMBNTDB.js → USDZExporter-D2HQLQYK.js} +344 -16
  12. package/dist/agents/index.cjs +19 -0
  13. package/dist/agents/index.d.ts +100 -0
  14. package/dist/agents/index.js +17 -0
  15. package/dist/chunk-22W6NGYN.js +725 -0
  16. package/dist/{chunk-5OEOHAAW.cjs → chunk-27MPVJVZ.cjs} +64 -28
  17. package/dist/{chunk-RVYPEYPX.js → chunk-2A7FURVO.js} +44 -8
  18. package/dist/{chunk-XCWFGZAA.js → chunk-2B7WVIDZ.js} +11 -8
  19. package/dist/{chunk-NDQNIJEH.js → chunk-2BSMSUCE.js} +250 -24
  20. package/dist/chunk-2HLIGOKU.cjs +5546 -0
  21. package/dist/{chunk-EONILVMF.js → chunk-2M2DPHKB.js} +4 -4
  22. package/dist/{chunk-G7CT3EMP.cjs → chunk-2YSNA2F2.cjs} +319 -47
  23. package/dist/{chunk-IWI6J7FX.js → chunk-33XCOVE3.js} +5 -5
  24. package/dist/chunk-3FOKASKO.cjs +348 -0
  25. package/dist/{chunk-DXJQDCFL.js → chunk-4C57PR42.js} +3 -3
  26. package/dist/{chunk-MPXBVFHQ.js → chunk-4N4SXXWF.js} +4 -3
  27. package/dist/chunk-4PDEPEQW.cjs +41 -0
  28. package/dist/chunk-4R6HPSHJ.js +2176 -0
  29. package/dist/chunk-4R6SBXDB.js +45 -0
  30. package/dist/chunk-4SY77NA4.cjs +413 -0
  31. package/dist/{chunk-YCXFCXDS.js → chunk-4UUKPCY4.js} +668 -110
  32. package/dist/{chunk-LGGRPKTV.cjs → chunk-52ULD552.cjs} +114 -35
  33. package/dist/{chunk-L4G4RLXX.js → chunk-5CKA5SXU.js} +438 -22
  34. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  35. package/dist/{chunk-FF3Q7ADR.js → chunk-5JEU52DW.js} +5 -3
  36. package/dist/chunk-5N54COB6.cjs +327 -0
  37. package/dist/chunk-5S7RKFGR.cjs +446 -0
  38. package/dist/{chunk-KED34ILP.js → chunk-6ASWLXXN.js} +21 -9
  39. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  40. package/dist/{chunk-CAUCGUEA.cjs → chunk-6EX3I5P4.cjs} +6 -6
  41. package/dist/chunk-6FGQNDR4.js +5731 -0
  42. package/dist/{chunk-72EQECGT.cjs → chunk-6KMK2UXT.cjs} +122 -46
  43. package/dist/{chunk-G4VZTCIB.js → chunk-6L4VE27M.js} +33 -23
  44. package/dist/{chunk-ATSKSYVE.cjs → chunk-6S6TKNEA.cjs} +6478 -1738
  45. package/dist/chunk-77V4GTCA.js +596 -0
  46. package/dist/{chunk-ZP4D3CSX.cjs → chunk-7AD52FRS.cjs} +16 -16
  47. package/dist/chunk-A6KINLZJ.js +236 -0
  48. package/dist/chunk-AIA52I7T.cjs +543 -0
  49. package/dist/chunk-AIX25INK.cjs +602 -0
  50. package/dist/{chunk-B5TCIAPQ.cjs → chunk-AO4I2Z7M.cjs} +17 -18
  51. package/dist/{chunk-Q5SJOGHQ.cjs → chunk-BPICAGBV.cjs} +324 -199
  52. package/dist/chunk-BRQJKJGT.cjs +20 -0
  53. package/dist/{chunk-3FXV5S25.cjs → chunk-C37BHB7N.cjs} +6 -3
  54. package/dist/{chunk-XUTX5CBW.js → chunk-CBJY23VL.js} +3 -3
  55. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  56. package/dist/{chunk-XXINBTZK.cjs → chunk-DIL6DDDN.cjs} +101 -45
  57. package/dist/chunk-DMXC24WV.js +404 -0
  58. package/dist/{chunk-PMGODDJA.cjs → chunk-DTGBOSEM.cjs} +12 -12
  59. package/dist/chunk-E7JP3BS3.cjs +61 -0
  60. package/dist/{chunk-HJJLD366.js → chunk-EKBKLK7P.js} +3 -3
  61. package/dist/chunk-EKYL4PE3.cjs +404 -0
  62. package/dist/{chunk-UPJBDCVF.js → chunk-EMMC5CSQ.js} +12 -8
  63. package/dist/{chunk-GGHSW2NN.js → chunk-EOBB6A4B.js} +6389 -1718
  64. package/dist/chunk-EOFNVCM6.js +325 -0
  65. package/dist/{chunk-FHQVYCH2.js → chunk-ER4GATIU.js} +7 -7
  66. package/dist/{chunk-N5FTS757.cjs → chunk-EXKSFGSX.cjs} +7 -148
  67. package/dist/{chunk-LK5IAVH6.cjs → chunk-EXUP2BUM.cjs} +27 -27
  68. package/dist/chunk-FDSGHPAK.js +130 -0
  69. package/dist/chunk-FEWUHQNM.cjs +144 -0
  70. package/dist/{chunk-5TOFIR6L.js → chunk-FGGJQRLZ.js} +5 -142
  71. package/dist/chunk-FHP6LXJS.js +415 -0
  72. package/dist/{chunk-7LCYLPW2.cjs → chunk-FJPADH77.cjs} +7 -4
  73. package/dist/{chunk-T36DDXSF.js → chunk-FXKTYFYA.js} +150 -25
  74. package/dist/chunk-G2LS3RFO.js +623 -0
  75. package/dist/chunk-GCMWDSBZ.cjs +729 -0
  76. package/dist/chunk-GJNCFRJU.cjs +125 -0
  77. package/dist/{chunk-Q4QX3AET.cjs → chunk-GMP623FG.cjs} +16 -13
  78. package/dist/{chunk-XD6IYDUX.js → chunk-GN3KDX4W.js} +119 -43
  79. package/dist/{chunk-QLEAOI3Q.cjs → chunk-GQYKQSTC.cjs} +10 -10
  80. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  81. package/dist/chunk-GZG4KA4E.js +529 -0
  82. package/dist/{chunk-BND3ST2K.cjs → chunk-H3MGK7TX.cjs} +42 -32
  83. package/dist/{chunk-XRKWN5PL.cjs → chunk-H5DZIHJP.cjs} +14 -18
  84. package/dist/{chunk-Z34RLXRA.cjs → chunk-HANL7K2Q.cjs} +65 -50
  85. package/dist/{chunk-3SAK5KFL.cjs → chunk-HCCQLAA4.cjs} +2 -11
  86. package/dist/{chunk-LXJ4667L.cjs → chunk-HGVXZDSK.cjs} +108 -20
  87. package/dist/{chunk-3FJCK5XA.js → chunk-HRODTEEO.js} +30 -10
  88. package/dist/{chunk-HQUEA5R6.cjs → chunk-HZCQO4JM.cjs} +6 -6
  89. package/dist/{chunk-S565K7NK.js → chunk-I2O7TW6B.js} +12 -8
  90. package/dist/chunk-IHESJZSW.js +4490 -0
  91. package/dist/{chunk-FSF7EQVA.cjs → chunk-IRWWS72C.cjs} +63 -22
  92. package/dist/{chunk-5O6TQC6M.cjs → chunk-IVIA7K75.cjs} +689 -127
  93. package/dist/chunk-IVY74O6C.js +247 -0
  94. package/dist/chunk-J32ZJZJH.js +554 -0
  95. package/dist/chunk-J56PTA46.cjs +639 -0
  96. package/dist/chunk-JD7CIZ33.js +1949 -0
  97. package/dist/{chunk-T7LEXZUZ.cjs → chunk-JIYN45TV.cjs} +14 -15
  98. package/dist/{chunk-FFKU7BTK.cjs → chunk-KHPCJRI3.cjs} +24 -21
  99. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  100. package/dist/chunk-KPJL34Y7.cjs +186 -0
  101. package/dist/{chunk-HE7ULERA.cjs → chunk-KQTPCYTG.cjs} +128 -44
  102. package/dist/{chunk-OFKWH2IP.js → chunk-KX76JUQY.js} +3 -3
  103. package/dist/{chunk-33LSUQDD.cjs → chunk-L63H3SQ4.cjs} +43 -31
  104. package/dist/{chunk-K6EKD26I.js → chunk-LAOCQJ2M.js} +64 -8
  105. package/dist/chunk-LM2VU56C.cjs +37 -0
  106. package/dist/chunk-M56JSP4A.js +400 -0
  107. package/dist/chunk-MBOOR7X4.js +18 -0
  108. package/dist/{chunk-XWPNTWDN.cjs → chunk-MJVIRCUV.cjs} +31 -27
  109. package/dist/{chunk-SDAMZIRE.js → chunk-MSMIFMBL.js} +135 -18
  110. package/dist/{chunk-56IF4NTA.js → chunk-MXFUTKCO.js} +18 -18
  111. package/dist/{chunk-6UEHYZ7V.cjs → chunk-MXJ5SS53.cjs} +447 -31
  112. package/dist/chunk-MYY4PMWX.cjs +264 -0
  113. package/dist/chunk-N75IH2HY.js +258 -0
  114. package/dist/{chunk-GVUR45UF.cjs → chunk-NG77ATEW.cjs} +7 -6
  115. package/dist/chunk-NW5G5FBQ.js +215 -0
  116. package/dist/{chunk-E3FWRT3Z.js → chunk-OEFY723R.js} +28 -13
  117. package/dist/chunk-OEV5RMZO.cjs +3042 -0
  118. package/dist/{chunk-X4ZF6CNE.cjs → chunk-OIQYIIO3.cjs} +7 -7
  119. package/dist/{chunk-2CWOLHTE.js → chunk-OL46QLBJ.js} +3 -11
  120. package/dist/chunk-OPZ7XDDI.js +487 -0
  121. package/dist/chunk-OSYNRVOV.cjs +243 -0
  122. package/dist/{chunk-TEWCN33Y.js → chunk-P7YIA5LN.js} +91 -7
  123. package/dist/chunk-PGANYCAG.cjs +220 -0
  124. package/dist/{chunk-CS2EMTGF.js → chunk-QAVXL2IH.js} +62 -21
  125. package/dist/{chunk-T4NKMBDL.js → chunk-QCCBXSCE.js} +1666 -756
  126. package/dist/{chunk-F4IULT7N.js → chunk-QPOQ7VPI.js} +16 -13
  127. package/dist/{chunk-6XSERL6L.js → chunk-QTPMJRGS.js} +3108 -2827
  128. package/dist/{chunk-F3HH56EB.cjs → chunk-QWNQ523V.cjs} +1730 -823
  129. package/dist/{chunk-R7MA7QWV.js → chunk-R3IVNY6P.js} +102 -23
  130. package/dist/chunk-R75BSDH7.cjs +50 -0
  131. package/dist/chunk-RAXUF5DF.cjs +2196 -0
  132. package/dist/{chunk-BF2235SI.cjs → chunk-RMHC2VG7.cjs} +2876 -2592
  133. package/dist/chunk-RUXGBKPS.cjs +4517 -0
  134. package/dist/{chunk-UERJ3YJV.js → chunk-S5IFXW6E.js} +113 -9
  135. package/dist/{chunk-27LWW5FU.cjs → chunk-S6YWHCKV.cjs} +5 -5
  136. package/dist/{chunk-WB4Z63GG.js → chunk-SIEXCILW.js} +3 -3
  137. package/dist/{chunk-CLYEIWA5.cjs → chunk-SLU6UPJI.cjs} +5 -3
  138. package/dist/{chunk-LZ266PCM.cjs → chunk-T5J7ZKP3.cjs} +446 -60
  139. package/dist/chunk-TDCNJHWO.js +341 -0
  140. package/dist/{chunk-IHOUYQIA.js → chunk-TG7O4WBC.js} +5 -5
  141. package/dist/chunk-THCK6ECW.js +2085 -0
  142. package/dist/chunk-TJHVSBP2.js +439 -0
  143. package/dist/chunk-TK74TR4H.js +5541 -0
  144. package/dist/{chunk-CDPGV4DN.js → chunk-U4NBQJBY.js} +14 -15
  145. package/dist/{chunk-NOZZ46QU.js → chunk-UD3DSHZM.js} +10 -14
  146. package/dist/chunk-UDMYRFDZ.js +3038 -0
  147. package/dist/{chunk-WDW67DZB.cjs → chunk-UOIGFQXC.cjs} +90 -68
  148. package/dist/{chunk-BU7VWW2K.js → chunk-URG2SJLK.js} +14 -15
  149. package/dist/{chunk-EQV4R3EV.cjs → chunk-V73NPPTM.cjs} +152 -35
  150. package/dist/chunk-VECQYRXL.js +474 -0
  151. package/dist/chunk-VEXPG4WN.js +1989 -0
  152. package/dist/{chunk-LDP5OK6G.js → chunk-VMLKSV26.js} +5 -5
  153. package/dist/{chunk-5BGSECRJ.cjs → chunk-VSK7W3O5.cjs} +47 -27
  154. package/dist/chunk-VVKVQZI6.js +55 -0
  155. package/dist/{chunk-YQK5JNFK.js → chunk-W55Z7QIX.js} +103 -15
  156. package/dist/{chunk-KSGXLT74.cjs → chunk-W6P2GBHH.cjs} +3 -3
  157. package/dist/{chunk-IBDG74G2.cjs → chunk-W6RW64BB.cjs} +7 -7
  158. package/dist/chunk-WDT3JTGM.cjs +483 -0
  159. package/dist/{chunk-HPS76H7Q.js → chunk-WKX5AMOY.js} +3 -3
  160. package/dist/chunk-WNNE3PO3.js +34 -0
  161. package/dist/{chunk-XG23EUQX.cjs → chunk-WRLUBRKS.cjs} +538 -312
  162. package/dist/{chunk-IFNQFCTM.js → chunk-WRNEH5MO.js} +79 -8
  163. package/dist/{chunk-54FHG2MX.js → chunk-WRWEX5ZF.js} +7 -4
  164. package/dist/{chunk-KCQ5NDYC.cjs → chunk-X3GJPRVK.cjs} +154 -80
  165. package/dist/{chunk-7AGYRWKW.cjs → chunk-XFXGA5IW.cjs} +126 -22
  166. package/dist/{chunk-TQSZUOW5.cjs → chunk-XHIV6326.cjs} +4 -4
  167. package/dist/chunk-XJAN7CZG.cjs +432 -0
  168. package/dist/chunk-XL6INWKT.js +121 -0
  169. package/dist/{chunk-E3UALNFA.js → chunk-XMWZG36H.js} +4 -4
  170. package/dist/{chunk-BKIGPPVM.js → chunk-XSFNHP2E.js} +6 -3
  171. package/dist/{chunk-H5Z7NASB.js → chunk-XT6JY5W5.js} +25 -3
  172. package/dist/chunk-XXZJEFKW.cjs +490 -0
  173. package/dist/chunk-Y3MWXQSB.cjs +5737 -0
  174. package/dist/chunk-YF2I3MV3.js +46 -0
  175. package/dist/{chunk-V3NN3HPP.js → chunk-YIMN575O.js} +437 -52
  176. package/dist/chunk-YIVFJNYV.js +176 -0
  177. package/dist/{chunk-MD6KDHVE.cjs → chunk-YKGPCZEE.cjs} +10 -10
  178. package/dist/chunk-YQELFNJV.js +39 -0
  179. package/dist/chunk-Z5XMPRNC.cjs +5390 -0
  180. package/dist/{chunk-3FYZOR7S.cjs → chunk-ZDSYWBIE.cjs} +18 -18
  181. package/dist/{chunk-6TZPZCOJ.cjs → chunk-ZKSS47EV.cjs} +24 -19
  182. package/dist/chunk-ZUL5AVTX.cjs +1993 -0
  183. package/dist/chunk-ZXBZVXDW.js +5386 -0
  184. package/dist/{chunk-DMG7C4H2.js → chunk-ZZ7RO2UQ.js} +312 -44
  185. package/dist/cli/holoscript-runner.cjs +200 -204
  186. package/dist/cli/holoscript-runner.js +144 -148
  187. package/dist/codebase/index.cjs +1 -1
  188. package/dist/codebase/index.js +1 -1
  189. package/dist/compiler/agent-inference.cjs +10 -7
  190. package/dist/compiler/agent-inference.js +6 -3
  191. package/dist/compiler/android-xr.cjs +12 -7
  192. package/dist/compiler/android-xr.js +10 -5
  193. package/dist/compiler/android.cjs +12 -8
  194. package/dist/compiler/android.js +10 -6
  195. package/dist/compiler/ar.cjs +9 -6
  196. package/dist/compiler/ar.js +7 -4
  197. package/dist/compiler/babylon.cjs +12 -8
  198. package/dist/compiler/babylon.js +11 -7
  199. package/dist/compiler/business-quest.cjs +43 -0
  200. package/dist/compiler/business-quest.js +4 -0
  201. package/dist/compiler/coco.cjs +1 -1
  202. package/dist/compiler/coco.js +1 -1
  203. package/dist/compiler/context.cjs +25 -0
  204. package/dist/compiler/context.d.ts +28 -0
  205. package/dist/compiler/context.js +8 -0
  206. package/dist/compiler/domain-block-utils.cjs +155 -152
  207. package/dist/compiler/domain-block-utils.js +7 -4
  208. package/dist/compiler/dtdl.cjs +10 -7
  209. package/dist/compiler/dtdl.js +7 -4
  210. package/dist/compiler/gltf-pipeline.cjs +9 -9
  211. package/dist/compiler/gltf-pipeline.js +2 -2
  212. package/dist/compiler/godot.cjs +9 -6
  213. package/dist/compiler/godot.js +8 -5
  214. package/dist/compiler/incremental.cjs +12 -7
  215. package/dist/compiler/incremental.js +7 -2
  216. package/dist/compiler/index.cjs +3550 -268
  217. package/dist/compiler/index.d.ts +404 -21
  218. package/dist/compiler/index.js +3280 -138
  219. package/dist/compiler/ios.cjs +11 -8
  220. package/dist/compiler/ios.js +9 -6
  221. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  222. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  223. package/dist/compiler/llm-provider-capabilities.js +8 -0
  224. package/dist/compiler/multi-layer.cjs +14 -10
  225. package/dist/compiler/multi-layer.js +13 -9
  226. package/dist/compiler/nodetoy.cjs +5 -5
  227. package/dist/compiler/nodetoy.js +2 -2
  228. package/dist/compiler/openxr.cjs +10 -6
  229. package/dist/compiler/openxr.js +9 -5
  230. package/dist/compiler/playcanvas.cjs +10 -7
  231. package/dist/compiler/playcanvas.js +9 -6
  232. package/dist/compiler/r3f.cjs +17 -13
  233. package/dist/compiler/r3f.d.ts +22 -0
  234. package/dist/compiler/r3f.js +12 -8
  235. package/dist/compiler/remotion.cjs +1 -1
  236. package/dist/compiler/remotion.js +1 -1
  237. package/dist/compiler/reproducibility.cjs +1 -1
  238. package/dist/compiler/reproducibility.js +1 -1
  239. package/dist/compiler/sdf.cjs +10 -7
  240. package/dist/compiler/sdf.js +8 -5
  241. package/dist/compiler/semantic-scene.cjs +1 -1
  242. package/dist/compiler/semantic-scene.js +1 -1
  243. package/dist/compiler/state.cjs +9 -5
  244. package/dist/compiler/state.js +7 -3
  245. package/dist/compiler/trait-composition.cjs +11 -7
  246. package/dist/compiler/trait-composition.js +7 -3
  247. package/dist/compiler/unity.cjs +10 -6
  248. package/dist/compiler/unity.js +9 -5
  249. package/dist/compiler/unreal.cjs +11 -7
  250. package/dist/compiler/unreal.js +9 -5
  251. package/dist/compiler/urdf.cjs +20 -13
  252. package/dist/compiler/urdf.js +8 -5
  253. package/dist/compiler/usd-physics.cjs +10 -7
  254. package/dist/compiler/usd-physics.js +7 -4
  255. package/dist/compiler/visionos.cjs +10 -6
  256. package/dist/compiler/visionos.js +9 -5
  257. package/dist/compiler/vrchat.cjs +10 -7
  258. package/dist/compiler/vrchat.js +8 -5
  259. package/dist/compiler/vrr.cjs +10 -7
  260. package/dist/compiler/vrr.js +8 -5
  261. package/dist/compiler/wasm.cjs +13 -10
  262. package/dist/compiler/wasm.js +8 -5
  263. package/dist/compiler/webgpu.cjs +9 -6
  264. package/dist/compiler/webgpu.js +8 -5
  265. package/dist/constants.d.ts +3 -2
  266. package/dist/coordinators/index.cjs +1266 -0
  267. package/dist/coordinators/index.d.ts +260 -0
  268. package/dist/coordinators/index.js +1259 -0
  269. package/dist/debugger.cjs +9 -7
  270. package/dist/debugger.js +7 -5
  271. package/dist/entries/interop.cjs +23 -21
  272. package/dist/entries/interop.js +5 -3
  273. package/dist/entries/scripting.cjs +18 -18
  274. package/dist/entries/scripting.js +8 -8
  275. package/dist/hololand/index.cjs +146 -0
  276. package/dist/hololand/index.d.ts +70 -0
  277. package/dist/hololand/index.js +5 -0
  278. package/dist/index.cjs +20332 -18121
  279. package/dist/index.d.ts +1477 -40
  280. package/dist/index.js +19451 -17638
  281. package/dist/math/tropical-spmv.cjs +45 -0
  282. package/dist/math/tropical-spmv.js +4 -0
  283. package/dist/math/vec3.cjs +14 -14
  284. package/dist/math/vec3.js +2 -2
  285. package/dist/{ml-dsa-PHCWUBPX.cjs → ml-dsa-FSKBTE3W.cjs} +177 -90
  286. package/dist/{ml-dsa-WYLJHJO6.js → ml-dsa-Z7JDKW4L.js} +158 -71
  287. package/dist/paper-0c-spike/index.cjs +150 -0
  288. package/dist/paper-0c-spike/index.d.ts +29 -0
  289. package/dist/paper-0c-spike/index.js +141 -0
  290. package/dist/parser.cjs +45 -11
  291. package/dist/parser.d.ts +11 -0
  292. package/dist/parser.js +10 -8
  293. package/dist/{playwright-RL6GY4F7.cjs → playwright-3AT3AKTV.cjs} +1985 -1985
  294. package/dist/{playwright-5OSAPTNH.js → playwright-VZPDVUEQ.js} +3 -3
  295. package/dist/reconstruction/index.cjs +153 -0
  296. package/dist/reconstruction/index.d.ts +105 -0
  297. package/dist/reconstruction/index.js +8 -0
  298. package/dist/runtime.cjs +7 -5
  299. package/dist/runtime.js +6 -4
  300. package/dist/self-improvement/index.cjs +563 -0
  301. package/dist/self-improvement/index.js +545 -0
  302. package/dist/storage/index.cjs +10 -9
  303. package/dist/storage/index.js +3 -2
  304. package/dist/testing.cjs +25 -0
  305. package/dist/testing.d.ts +70 -0
  306. package/dist/testing.js +4 -0
  307. package/dist/tools/index.d.ts +22 -1
  308. package/dist/traitDocs/traitDocs.cjs +33 -0
  309. package/dist/traitDocs/traitDocs.d.ts +69 -0
  310. package/dist/traitDocs/traitDocs.js +7 -0
  311. package/dist/traits/botanical-lotus.cjs +41 -0
  312. package/dist/traits/botanical-lotus.d.ts +172 -0
  313. package/dist/traits/botanical-lotus.js +4 -0
  314. package/dist/traits/engines/index.cjs +520 -0
  315. package/dist/traits/engines/index.js +380 -0
  316. package/dist/traits/index.cjs +17630 -7881
  317. package/dist/traits/index.d.ts +197 -0
  318. package/dist/traits/index.js +16573 -7193
  319. package/dist/traits/simulation-solver-factory.cjs +13 -0
  320. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  321. package/dist/traits/simulation-solver-factory.js +4 -0
  322. package/dist/traits/webcam-gaze.cjs +35 -0
  323. package/dist/traits/webcam-gaze.d.ts +17 -0
  324. package/dist/traits/webcam-gaze.js +4 -0
  325. package/dist/type-checker.cjs +6 -5
  326. package/dist/type-checker.js +4 -3
  327. package/dist/world/index.cjs +947 -0
  328. package/dist/world/index.d.ts +147 -0
  329. package/dist/world/index.js +939 -0
  330. package/dist/world-model/index.cjs +1446 -0
  331. package/dist/world-model/index.d.ts +119 -0
  332. package/dist/world-model/index.js +1414 -0
  333. package/dist/wot/index.cjs +29 -0
  334. package/dist/wot/index.js +4 -0
  335. package/package.json +153 -61
  336. package/dist/GLTFPipeline-DEN36VNK.js +0 -12
  337. package/dist/GLTFPipeline-YPCAK236.cjs +0 -33
  338. package/dist/chunk-4XSNJCLC.cjs +0 -1859
  339. package/dist/chunk-A7PIMZGU.js +0 -263
  340. package/dist/chunk-BWFJEM5A.js +0 -5419
  341. package/dist/chunk-CBJSLA2E.cjs +0 -5423
  342. package/dist/chunk-K3JDKWGI.cjs +0 -270
  343. package/dist/chunk-LSW7P7ML.js +0 -3675
  344. package/dist/chunk-MEASWI2Y.js +0 -126
  345. package/dist/chunk-NCUKG4SK.cjs +0 -3075
  346. package/dist/chunk-Q5JT3YML.cjs +0 -129
  347. package/dist/chunk-QGKNANZ3.js +0 -3071
  348. package/dist/chunk-S2N5TNMA.js +0 -1855
  349. package/dist/chunk-TSH3MSQU.cjs +0 -129
  350. package/dist/chunk-WGMEAYBG.js +0 -126
  351. package/dist/chunk-X6SEAXAX.cjs +0 -3681
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export interface ASTNode {
13
13
  }
14
14
 
15
15
  export interface ParseResult {
16
+ success?: boolean;
16
17
  ast: any;
17
18
  errors: any[];
18
19
  warnings: any[];
@@ -34,6 +35,140 @@ export interface ParsedTrait {
34
35
  [key: string]: any;
35
36
  }
36
37
 
38
+ export interface ReconstructionManifest {
39
+ version: '1.0.0';
40
+ worldId: string;
41
+ displayName: string;
42
+ createdAt: string;
43
+ frameCount: number;
44
+ bounds: { min: [number, number, number]; max: [number, number, number] };
45
+ replayHash: string;
46
+ simulationContract: {
47
+ kind: 'holomap.reconstruction.v1';
48
+ replayFingerprint: string;
49
+ holoScriptBuild: string;
50
+ };
51
+ [key: string]: unknown;
52
+ }
53
+
54
+ export function assertHoloMapManifestContract(m: ReconstructionManifest): void;
55
+
56
+ export const DOMAIN_SIMULATION_RECEIPT_SCHEMA: 'holoscript.domain-simulation-receipt.v0.1.0';
57
+ export type DomainSimulationReceiptSchema = typeof DOMAIN_SIMULATION_RECEIPT_SCHEMA;
58
+ export type DomainSimulationReceiptHashAlgorithm = 'fnv1a32';
59
+ export type DomainReceiptJson =
60
+ | string
61
+ | number
62
+ | boolean
63
+ | null
64
+ | DomainReceiptJson[]
65
+ | { [key: string]: DomainReceiptJson };
66
+ export interface DomainSimulationReceiptAcceptance {
67
+ accepted: boolean;
68
+ violations: Array<{ criterion: string; message: string }>;
69
+ }
70
+ export interface DomainSimulationReceiptInput {
71
+ plugin: string;
72
+ pluginVersion: string;
73
+ runId: string;
74
+ createdAt?: string;
75
+ modelId?: string;
76
+ solverConfig: {
77
+ solverType: string;
78
+ scale: string;
79
+ [key: string]: DomainReceiptJson;
80
+ };
81
+ resultSummary: { [key: string]: DomainReceiptJson };
82
+ acceptance: DomainSimulationReceiptAcceptance;
83
+ cael?: {
84
+ version?: 'cael.v1';
85
+ event?: string;
86
+ solverType?: string;
87
+ };
88
+ artifacts?: Array<{
89
+ kind: string;
90
+ path?: string;
91
+ hash?: string;
92
+ }>;
93
+ }
94
+ export interface DomainSimulationReceipt {
95
+ schema: DomainSimulationReceiptSchema;
96
+ plugin: string;
97
+ pluginVersion: string;
98
+ runId: string;
99
+ createdAt: string;
100
+ modelId?: string;
101
+ solverConfig: {
102
+ solverType: string;
103
+ scale: string;
104
+ [key: string]: DomainReceiptJson;
105
+ };
106
+ resultSummary: { [key: string]: DomainReceiptJson };
107
+ cael: {
108
+ version: 'cael.v1';
109
+ event: string;
110
+ solverType: string;
111
+ };
112
+ acceptance: DomainSimulationReceiptAcceptance;
113
+ artifacts?: Array<{
114
+ kind: string;
115
+ path?: string;
116
+ hash?: string;
117
+ }>;
118
+ payloadHash: string;
119
+ hashAlgorithm: DomainSimulationReceiptHashAlgorithm;
120
+ }
121
+ export interface DomainSimulationReceiptVerification {
122
+ valid: boolean;
123
+ errors: string[];
124
+ }
125
+ export function buildDomainSimulationReceipt(input: DomainSimulationReceiptInput): DomainSimulationReceipt;
126
+ export function verifyDomainSimulationReceipt(receipt: DomainSimulationReceipt): DomainSimulationReceiptVerification;
127
+ export function stableDomainReceiptHash(payload: unknown): string;
128
+ export function canonicalizeDomainReceiptPayload(payload: unknown): string;
129
+
130
+ export const SCALE_BRIDGE_PROJECTION_SCHEMA: 'holoscript.scale-bridge.projection.v0.1.0';
131
+ export type ScaleBridgeProjectionSchema = typeof SCALE_BRIDGE_PROJECTION_SCHEMA;
132
+ export type ScaleBridgeJson =
133
+ | string
134
+ | number
135
+ | boolean
136
+ | null
137
+ | ScaleBridgeJson[]
138
+ | { [key: string]: ScaleBridgeJson };
139
+ export interface ScaleDescriptor {
140
+ id: string;
141
+ label?: string;
142
+ granularity?: string;
143
+ includePaths?: string[];
144
+ excludePaths?: string[];
145
+ collectionLimits?: Record<string, number>;
146
+ collectionStride?: Record<string, number>;
147
+ defaultStride?: number;
148
+ metadata?: { [key: string]: ScaleBridgeJson };
149
+ }
150
+ export interface ScaleBridgeProvenanceEdge {
151
+ type: 'scale_projection';
152
+ hashAlgorithm: 'sha256';
153
+ sourceStateHash: string;
154
+ projectedStateHash: string;
155
+ targetScaleId: string;
156
+ }
157
+ export interface ScaleBridgeProjection<TState extends ScaleBridgeJson = ScaleBridgeJson> {
158
+ schema: ScaleBridgeProjectionSchema;
159
+ targetScale: ScaleDescriptor;
160
+ state: TState;
161
+ provenance: {
162
+ edge: ScaleBridgeProvenanceEdge;
163
+ carriedReceipts: ScaleBridgeJson[];
164
+ };
165
+ }
166
+ export class ScaleBridge {
167
+ static project(sourceState: unknown, scaleDescriptor: ScaleDescriptor): ScaleBridgeProjection;
168
+ static hashState(state: unknown): string;
169
+ }
170
+ export function canonicalizeScaleBridgeJson(value: unknown): string;
171
+
37
172
  // ============================================================================
38
173
  // PARSERS
39
174
  // ============================================================================
@@ -44,6 +179,57 @@ export class HoloScriptPlusParser {
44
179
  parseStatement(source: string): any;
45
180
  }
46
181
 
182
+ export interface ParseCacheStats {
183
+ size: number;
184
+ evictions: number;
185
+ maxEntries: number;
186
+ }
187
+
188
+ export interface ParseCache {
189
+ get(id: string, currentHash: string): any | null;
190
+ set(id: string, hash: string, node: any): void;
191
+ clear(): void;
192
+ getStats(): ParseCacheStats;
193
+ }
194
+
195
+ export const globalParseCache: ParseCache;
196
+
197
+ export interface IncrementalParseResult {
198
+ ast: any;
199
+ cached: number;
200
+ parsed: number;
201
+ duration: number;
202
+ changedChunks: string[];
203
+ }
204
+
205
+ export class ChunkBasedIncrementalParser {
206
+ constructor(cache?: ParseCache);
207
+ parse(source: string): IncrementalParseResult;
208
+ clearCache(): void;
209
+ getCacheStats(): ParseCacheStats;
210
+ }
211
+
212
+ export class HSPlusRuntime {
213
+ constructor(options?: any);
214
+ mount(container: any): void;
215
+ unmount(): void;
216
+ update(delta: number): void;
217
+ setState(updates: Record<string, any>): void;
218
+ getState(): Record<string, any>;
219
+ on(event: string, handler: (payload: any) => void): () => void;
220
+ emit(event: string, payload?: any): void;
221
+ }
222
+
223
+ export class World {
224
+ constructor();
225
+ createEntity(): string;
226
+ removeEntity(id: string): void;
227
+ }
228
+
229
+ export class ComponentRegistry {
230
+ static register(name: string, component: any): void;
231
+ }
232
+
47
233
  export class HoloCompositionParser {
48
234
  parse(source: string): any;
49
235
  }
@@ -59,6 +245,8 @@ export function parse(source: string, options?: any): ParseResult;
59
245
  export function parseHolo(source: string, options?: any): any;
60
246
  export function parseHoloStrict(source: string): any;
61
247
  export function parseHoloScriptPlus(source: string, options?: any): ParseResult;
248
+ export const holoFactory: any;
249
+ export function generateHoloSource(ast: any): string;
62
250
 
63
251
  // ============================================================================
64
252
  // COMPOSITION TYPES (from .holo files)
@@ -114,6 +302,8 @@ export interface HoloObjectTrait extends ASTNode {
114
302
  type: 'Trait';
115
303
  name: string;
116
304
  config?: any;
305
+ args?: any[];
306
+ platformConstraint?: PlatformConstraint;
117
307
  }
118
308
 
119
309
  export interface HoloSpatialGroup extends ASTNode {
@@ -140,6 +330,10 @@ export interface HoloAction extends ASTNode {
140
330
  [key: string]: any;
141
331
  }
142
332
 
333
+ export interface HoloStatement extends ASTNode {
334
+ [key: string]: any;
335
+ }
336
+
143
337
  export interface HoloParseResult {
144
338
  success: boolean;
145
339
  ast?: HoloComposition;
@@ -414,12 +608,14 @@ export class AdvancedCompression {
414
608
  }
415
609
 
416
610
  export interface INeuralSplatPacket {
417
- id: string;
418
- frameId?: number;
419
- count: number;
420
- data: Uint8Array;
421
- metadata?: Record<string, any>;
422
- cameraState?: any;
611
+ frameId: number;
612
+ cameraState: {
613
+ viewProjectionMatrix: number[];
614
+ cameraPosition: number[];
615
+ };
616
+ splatCount: number;
617
+ compressedSplatsBuffer: ArrayBuffer;
618
+ sortedIndicesBuffer: ArrayBuffer;
423
619
  }
424
620
 
425
621
  // ============================================================================
@@ -534,8 +730,10 @@ export function compileForIsaacSim(composition: HoloComposition, options?: Parti
534
730
  // ============================================================================
535
731
 
536
732
  export class ExpressionEvaluator {
733
+ constructor(context?: Record<string, unknown>, builtins?: Record<string, unknown>);
537
734
  evaluate(expression: string, context?: any): any;
538
735
  extractVariables(expression: string): string[];
736
+ updateContext(updates: Record<string, unknown>): void;
539
737
  }
540
738
 
541
739
  export class EventBus {
@@ -648,9 +846,11 @@ export interface HoloTemplate {
648
846
  [key: string]: any;
649
847
  }
650
848
  export interface HSPlusForDirective {
651
- iterable: string;
849
+ type: 'for';
652
850
  variable: string;
653
- body?: any[];
851
+ range?: [number, number];
852
+ iterable?: string;
853
+ body: unknown[];
654
854
  }
655
855
  export interface RaycastHit {
656
856
  point: Vector3;
@@ -661,7 +861,27 @@ export interface RaycastHit {
661
861
  }
662
862
 
663
863
  export class HoloScriptRuntime {
864
+ constructor(importLoader?: any, customFunctions?: any);
664
865
  execute(ast: any, context?: any): Promise<any>;
866
+ executeProgram(nodes: any[], depth?: number): Promise<any[]>;
867
+ executeHoloProgram(statements: any[], scopeOverride?: any): Promise<any[]>;
868
+ getContext(): any;
869
+ reset(): void;
870
+ startVisualizationServer(port?: number): void;
871
+ broadcast(type: string, payload: unknown): void;
872
+ on(event: string, handler: (...args: any[]) => any): void;
873
+ off(event: string, handler?: (...args: any[]) => any): void;
874
+ emit(event: string, data?: unknown): Promise<void>;
875
+ setVariable(name: string, value: any, scopeOverride?: any): void;
876
+ getVariable(name: string, scopeOverride?: any): any;
877
+ callFunction(name: string, args?: any[]): Promise<any>;
878
+ registerFunction(name: string, handler: (...args: any[]) => any): void;
879
+ registerTrait(name: string, handler: any): void;
880
+ getState(): Record<string, any>;
881
+ getRootScope(): any;
882
+ getExecutionHistory(): any[];
883
+ getCallStack(): string[];
884
+ [key: string]: any;
665
885
  }
666
886
 
667
887
  export interface RuntimeOptions {
@@ -684,6 +904,10 @@ export interface ExecutionResult {
684
904
  error?: string;
685
905
  duration?: number;
686
906
  memoryUsed?: number;
907
+ executionTime?: number;
908
+ hologram?: { shape?: string; color?: string; [key: string]: any };
909
+ spatialPosition?: { x: number; y: number; z: number; [key: string]: any };
910
+ output?: any;
687
911
  }
688
912
 
689
913
  export interface SpatialPosition {
@@ -801,6 +1025,11 @@ export interface SafetyReport {
801
1025
  }
802
1026
 
803
1027
  export type SafetyVerdict = 'safe' | 'warnings' | 'unsafe' | 'unchecked';
1028
+ export type VREffect = string;
1029
+ export type EffectCategory = string;
1030
+ export type EffectViolationSeverity = 'error' | 'warning' | 'info';
1031
+ export interface EffectViolation { effect: VREffect; severity: EffectViolationSeverity; [key: string]: any; }
1032
+ export interface EffectDeclaration { effects: VREffect[]; [key: string]: any; }
804
1033
 
805
1034
  // ============================================================================
806
1035
  // PLATFORM TYPES
@@ -869,18 +1098,26 @@ export class SemanticSearchService<T = any> {
869
1098
  // VR TRAIT SYSTEM TYPES
870
1099
  // ============================================================================
871
1100
 
872
- export interface Vector3 {
873
- x: number;
874
- y: number;
875
- z: number;
876
- }
1101
+ // Vector3 is a tuple in source (packages/core/src/types/HoloScriptPlus.ts:10).
1102
+ // Emitting as {x,y,z} interface here in 2026-04-22..04-25 produced hundreds
1103
+ // of engine-package TS errors like "Type 'number[]' is missing properties
1104
+ // x,y,z from Vector3" because consumer code correctly uses tuple-form
1105
+ // (engine/src/animation/IKSolver.ts:139, etc). Restoring tuple form here
1106
+ // lets pre-flight pass; for {x,y,z} object shape use three.Vector3 directly.
1107
+ export type Vector3 = [number, number, number];
877
1108
 
878
1109
  export interface VRHand {
1110
+ id: string;
879
1111
  position: Vector3;
880
- rotation: Vector3;
881
- joints: Map<string, { position: Vector3; rotation: Vector3 }>;
882
- pinchStrength: number;
883
- gripStrength: number;
1112
+ rotation: Quaternion;
1113
+ velocity: Vector3;
1114
+ joints?: Map<string, { position: Vector3; rotation: Vector3 }>;
1115
+ pinch?: number;
1116
+ pinchStrength?: number;
1117
+ grip: number;
1118
+ gripStrength?: number;
1119
+ trigger: number;
1120
+ pointing?: boolean;
884
1121
  }
885
1122
 
886
1123
  export interface VRContext {
@@ -895,8 +1132,8 @@ export interface PhysicsContext {
895
1132
  applyAngularVelocity(node: HSPlusNode, angularVelocity: Vector3): void;
896
1133
  setKinematic(node: HSPlusNode, kinematic: boolean): void;
897
1134
  raycast(origin: Vector3, direction: Vector3, maxDistance: number): RaycastHit | null;
898
- getBodyPosition(nodeId: string): { x: number; y: number; z: number } | null;
899
- getBodyVelocity(nodeId: string): { x: number; y: number; z: number } | null;
1135
+ getBodyPosition(nodeId: string): Vector3 | null;
1136
+ getBodyVelocity(nodeId: string): Vector3 | null;
900
1137
  }
901
1138
 
902
1139
  export interface AudioContext {
@@ -919,12 +1156,32 @@ export interface AccessibilityContext {
919
1156
  setHighContrast(enabled: boolean): void;
920
1157
  }
921
1158
 
1159
+ export type ARTrackingState = 'not_available' | 'limited' | 'normal' | 'lost';
1160
+
1161
+ export interface ARSessionPose {
1162
+ anchorId?: string;
1163
+ target?: string;
1164
+ position: Vector3;
1165
+ rotation?: Vector3;
1166
+ confidence?: number;
1167
+ timestampMs?: number;
1168
+ trackingState?: ARTrackingState;
1169
+ source?: string;
1170
+ }
1171
+
1172
+ export interface ARSessionContext {
1173
+ readonly available: boolean;
1174
+ getPose(nodeId?: string): ARSessionPose | null;
1175
+ getAnchor?(anchorId: string): ARSessionPose | null;
1176
+ }
1177
+
922
1178
  export interface TraitContext {
923
1179
  vr: VRContext;
924
1180
  physics: PhysicsContext;
925
1181
  audio: AudioContext;
926
1182
  haptics: HapticsContext;
927
1183
  accessibility?: AccessibilityContext;
1184
+ arSession?: ARSessionContext;
928
1185
  emit(event: string, payload?: unknown): void;
929
1186
  getState(): Record<string, unknown>;
930
1187
  setState(updates: Record<string, unknown>): void;
@@ -966,6 +1223,8 @@ export class ProceduralSkill {
966
1223
  export type VRTraitName = string;
967
1224
 
968
1225
  export class VRTraitRegistry {
1226
+ register(handler: TraitHandler): void;
1227
+ getHandler(name: VRTraitName): TraitHandler | undefined;
969
1228
  attachTrait(node: HSPlusNode, traitName: VRTraitName, config: unknown, context: TraitContext): void;
970
1229
  detachTrait(node: HSPlusNode, traitName: VRTraitName, context: TraitContext): void;
971
1230
  updateAllTraits(node: HSPlusNode, context: TraitContext, delta: number): void;
@@ -1494,11 +1753,11 @@ export declare class AIDriverTrait {
1494
1753
  // CROSS-PLATFORM COMPILERS (re-exported from compiler subpaths)
1495
1754
  // ============================================================================
1496
1755
 
1497
- export class UnityCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1498
- export class GodotCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1499
- export class VisionOSCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1500
- export class VRChatCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1501
- export class UnrealCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1756
+ export class UnityCompiler { constructor(options?: any); compile(ast: any, options?: any): any; [key: string]: any; }
1757
+ export class GodotCompiler { constructor(options?: any); compile(ast: any, options?: any): any; [key: string]: any; }
1758
+ export class VisionOSCompiler { constructor(options?: any); compile(ast: any, options?: any): any; [key: string]: any; }
1759
+ export class VRChatCompiler { constructor(options?: any); compile(ast: any, options?: any): any; [key: string]: any; }
1760
+ export class UnrealCompiler { constructor(options?: any); compile(ast: any, options?: any): any; [key: string]: any; }
1502
1761
 
1503
1762
  // ============================================================================
1504
1763
  // REACTIVE STATE SYSTEM
@@ -1628,6 +1887,35 @@ export interface CulturalNorm {
1628
1887
  export type NormCategory = string;
1629
1888
  export type NormEnforcement = 'hard' | 'soft' | 'advisory';
1630
1889
  export type NormScope = 'agent' | 'zone' | 'world' | 'session';
1890
+ export type NormProvenanceSource =
1891
+ | 'agent'
1892
+ | 'corpus'
1893
+ | 'declaration_site'
1894
+ | 'builtin'
1895
+ | 'observation'
1896
+ | 'unknown';
1897
+ export interface NormProvenance {
1898
+ source: NormProvenanceSource;
1899
+ sourceAgentId?: string;
1900
+ sourceCorpus?: string;
1901
+ declarationSite?: {
1902
+ file: string;
1903
+ line?: number;
1904
+ column?: number;
1905
+ };
1906
+ originInteractionId?: string;
1907
+ confidenceClassification?: 'genuine' | 'confabulated' | 'bullshitted';
1908
+ recordedAtIso?: string;
1909
+ }
1910
+ export declare const UNKNOWN_NORM_PROVENANCE: Readonly<NormProvenance>;
1911
+ export declare const BUILTIN_NORM_PROVENANCE: Readonly<NormProvenance>;
1912
+ export declare function normalizeNormProvenance(
1913
+ value: Partial<NormProvenance> | undefined | null
1914
+ ): NormProvenance;
1915
+ export declare function serializeNormProvenance(
1916
+ value: NormProvenance | undefined | null
1917
+ ): Record<string, unknown>;
1918
+ export declare function deserializeNormProvenance(value: unknown): NormProvenance;
1631
1919
 
1632
1920
  // ============================================================================
1633
1921
  // MARKETPLACE
@@ -2066,12 +2354,14 @@ export interface CompilerOptions { target?: string; optimize?: boolean; [key: st
2066
2354
  export interface CompilerDiagnostic { severity: 'error' | 'warning' | 'info'; message: string; line?: number; column?: number; [key: string]: any; }
2067
2355
  export interface IncrementalBuildResult { success: boolean; diagnostics: CompilerDiagnostic[]; artifacts: any[]; [key: string]: any; }
2068
2356
  export declare class IncrementalCompiler {
2357
+ static deserialize(json: string): IncrementalCompiler;
2069
2358
  constructor(config?: any);
2070
2359
  addSource(id: string, source: string): void;
2071
- compile(targets?: string[]): IncrementalBuildResult;
2360
+ compile(ast: HoloComposition, compileObject: (obj: any) => string, options?: any): Promise<any>;
2072
2361
  invalidate(id: string): void;
2073
2362
  [key: string]: any;
2074
2363
  }
2364
+ export declare function createIncrementalCompiler(config?: any): IncrementalCompiler;
2075
2365
 
2076
2366
  // ============================================================================
2077
2367
  // ECS INSPECTOR TYPES
@@ -2676,6 +2966,62 @@ export declare function parseHostFromUrl(url: string): string | null;
2676
2966
  export declare function truncateText(value: any, max: number): string;
2677
2967
  export declare function toStringArray(value: any): string[];
2678
2968
 
2969
+ export interface StdlibPermissionScopeGrant {
2970
+ scope: string;
2971
+ purpose?: string;
2972
+ required?: boolean;
2973
+ riskLevel?: string;
2974
+ providerLabel?: string;
2975
+ }
2976
+
2977
+ export interface StdlibPermissionScopePolicyEvaluation {
2978
+ scope: string;
2979
+ normalizedScope: string;
2980
+ allowed: boolean;
2981
+ reason?: string;
2982
+ }
2983
+
2984
+ export interface StdlibPermissionScopeDiffInput {
2985
+ requestedScopes: StdlibPermissionScopeGrant[];
2986
+ minimumRequiredScopes: StdlibPermissionScopeGrant[];
2987
+ grantedScopes?: StdlibPermissionScopeGrant[];
2988
+ neverScopes?: string[];
2989
+ }
2990
+
2991
+ export interface StdlibPermissionScopeDiffResult {
2992
+ requestedScopes: string[];
2993
+ minimumRequiredScopes: string[];
2994
+ grantedScopes: string[];
2995
+ invalidRequestedScopes: string[];
2996
+ invalidMinimumRequiredScopes: string[];
2997
+ invalidGrantedScopes: string[];
2998
+ invalidNeverScopes: string[];
2999
+ missingRequestedRequiredScopes: string[];
3000
+ missingGrantedRequiredScopes: string[];
3001
+ extraGrantedScopes: string[];
3002
+ forbiddenRequestedScopes: StdlibPermissionScopePolicyEvaluation[];
3003
+ forbiddenGrantedScopes: StdlibPermissionScopePolicyEvaluation[];
3004
+ minimumScopeSatisfied: boolean;
3005
+ excessScopesAbsent: boolean;
3006
+ policyInputValid: boolean;
3007
+ }
3008
+
3009
+ export interface StdlibPermissionPreviewRedactionResult {
3010
+ preview: string;
3011
+ redacted: boolean;
3012
+ absolutePathRedacted: boolean;
3013
+ credentialMaterialRedacted: boolean;
3014
+ }
3015
+
3016
+ export declare function normalizePermissionScopeName(scope: string): string;
3017
+ export declare function isValidPermissionScopeName(scope: string | undefined): scope is string;
3018
+ export declare function evaluateStdlibPermissionScopePolicy(scope: string, neverScopes?: string[]): StdlibPermissionScopePolicyEvaluation;
3019
+ export declare function findMissingRequiredPermissionScopes(requiredScopes: StdlibPermissionScopeGrant[], candidateScopes: StdlibPermissionScopeGrant[]): string[];
3020
+ export declare function findExtraPermissionScopes(grantedScopes: StdlibPermissionScopeGrant[], minimumRequiredScopes: StdlibPermissionScopeGrant[]): string[];
3021
+ export declare function buildStdlibPermissionScopeDiff(input: StdlibPermissionScopeDiffInput): StdlibPermissionScopeDiffResult;
3022
+ export declare function redactStdlibPermissionPreview(value: string | undefined): StdlibPermissionPreviewRedactionResult;
3023
+ export declare function stdlibPermissionPreviewHasPublicLeak(value: string | undefined): boolean;
3024
+
2679
3025
  // ============================================================================
2680
3026
  // HOLOGRAM MEDIA PIPELINE (2D-to-3D)
2681
3027
  // ============================================================================
@@ -2878,20 +3224,20 @@ export declare function calculateRevenueDistribution(priceWei: string|bigint, au
2878
3224
  export declare function formatRevenueDistribution(dist: any): any;
2879
3225
  export declare function ethToWei(eth: string): string;
2880
3226
  export declare const PROTOCOL_CONSTANTS: any;
2881
- export class URDFCompiler { [key: string]: any; }
2882
- export class SDFCompiler { [key: string]: any; }
2883
- export class OpenXRCompiler { [key: string]: any; }
2884
- export class AndroidCompiler { [key: string]: any; }
2885
- export class AndroidXRCompiler { [key: string]: any; }
2886
- export class IOSCompiler { [key: string]: any; }
2887
- export class ARCompiler { [key: string]: any; }
2888
- export class BabylonCompiler { [key: string]: any; }
2889
- export class WebGPUCompiler { [key: string]: any; }
2890
- export class WASMCompiler { [key: string]: any; }
2891
- export class PlayCanvasCompiler { [key: string]: any; }
2892
- export class DTDLCompiler { [key: string]: any; }
2893
- export class VRRCompiler { [key: string]: any; }
2894
- export class MultiLayerCompiler { [key: string]: any; }
3227
+ export class URDFCompiler { constructor(options?: any); [key: string]: any; }
3228
+ export class SDFCompiler { constructor(options?: any); [key: string]: any; }
3229
+ export class OpenXRCompiler { constructor(options?: any); [key: string]: any; }
3230
+ export class AndroidCompiler { constructor(options?: any); [key: string]: any; }
3231
+ export class AndroidXRCompiler { constructor(options?: any); [key: string]: any; }
3232
+ export class IOSCompiler { constructor(options?: any); [key: string]: any; }
3233
+ export class ARCompiler { constructor(options?: any); [key: string]: any; }
3234
+ export class BabylonCompiler { constructor(options?: any); [key: string]: any; }
3235
+ export class WebGPUCompiler { constructor(options?: any); [key: string]: any; }
3236
+ export class WASMCompiler { constructor(options?: any); [key: string]: any; }
3237
+ export class PlayCanvasCompiler { constructor(options?: any); [key: string]: any; }
3238
+ export class DTDLCompiler { constructor(options?: any); [key: string]: any; }
3239
+ export class VRRCompiler { constructor(options?: any); [key: string]: any; }
3240
+ export class MultiLayerCompiler { constructor(options?: any); [key: string]: any; }
2895
3241
 
2896
3242
  export declare const VR_TRAITS: any;
2897
3243
  export declare const BUILTIN_CONSTRAINTS: any;
@@ -2899,7 +3245,7 @@ export class CircuitBreakerRegistry { [key: string]: any; }
2899
3245
  export class CircuitState { [key: string]: any; }
2900
3246
  export class ExportManager { [key: string]: any; }
2901
3247
  export declare function getExportManager(options?: Partial<ExportOptions>): any;
2902
- export class ExportTarget { [key: string]: any; }
3248
+ export type ExportTarget = 'urdf' | 'sdf' | 'unity' | 'unreal' | 'godot' | 'vrchat' | 'openxr' | 'android' | 'android-xr' | 'ios' | 'visionos' | 'ar' | 'babylon' | 'webgpu' | 'r3f' | 'wasm' | 'playcanvas' | 'usd' | 'usdz' | 'dtdl' | 'vrr' | 'multi-layer' | 'incremental' | 'state' | 'trait-composition' | 'tsl' | 'a2a-agent-card' | 'nir' | 'openxr-spatial-entities' | 'phone-sleeve-vr' | 'native-2d' | 'context' | '3dgs';
2903
3249
  export class ExportOptions { [key: string]: any; }
2904
3250
  export declare function selectModality(platform: any, options?: any): any;
2905
3251
  export declare function selectModalityForAll(options?: any): Map<any, any>;
@@ -2927,3 +3273,1094 @@ export type HoloDomainType = string;
2927
3273
  export class TraitConstraint { [key: string]: any; }
2928
3274
  export interface ISignalingBridge { [key: string]: any; }
2929
3275
  export interface NeuralSignalPayload { [key: string]: any; }
3276
+
3277
+ // ============================================================================
3278
+ // Visual logic graph (Studio bridge + PlayMode preview path)
3279
+ // ============================================================================
3280
+ export type PortType = 'number' | 'string' | 'boolean' | 'vec3' | 'any' | 'event';
3281
+ export interface PortDefinition {
3282
+ name: string;
3283
+ type: PortType;
3284
+ defaultValue?: unknown;
3285
+ }
3286
+ export interface LogicNode {
3287
+ id: string;
3288
+ type: string;
3289
+ inputs: PortDefinition[];
3290
+ outputs: PortDefinition[];
3291
+ position: { x: number; y: number };
3292
+ data: Record<string, unknown>;
3293
+ }
3294
+ export interface LogicConnection {
3295
+ id: string;
3296
+ fromNode: string;
3297
+ fromPort: string;
3298
+ toNode: string;
3299
+ toPort: string;
3300
+ }
3301
+ export interface EvaluationContext {
3302
+ state: Record<string, unknown>;
3303
+ deltaTime: number;
3304
+ events: Map<string, unknown[]>;
3305
+ emittedEvents: Map<string, unknown[]>;
3306
+ }
3307
+ export declare class NodeGraph {
3308
+ readonly id: string;
3309
+ constructor(id?: string);
3310
+ addNode(
3311
+ type: string,
3312
+ position?: { x: number; y: number },
3313
+ data?: Record<string, unknown>
3314
+ ): LogicNode;
3315
+ connect(
3316
+ fromNode: string,
3317
+ fromPort: string,
3318
+ toNode: string,
3319
+ toPort: string
3320
+ ): LogicConnection | null;
3321
+ getNode(nodeId: string): LogicNode | undefined;
3322
+ getNodes(): LogicNode[];
3323
+ getConnections(): LogicConnection[];
3324
+ topologicalSort(): string[];
3325
+ evaluate(context: EvaluationContext): Map<string, Record<string, unknown>>;
3326
+ }
3327
+ export interface NodeGraphExecutionResult {
3328
+ nodeOrder: string[];
3329
+ outputs: Map<string, Record<string, unknown>>;
3330
+ state: Record<string, unknown>;
3331
+ emittedEvents: Map<string, unknown[]>;
3332
+ }
3333
+ export interface NodeGraphPanelConfig {
3334
+ position: [number, number, number];
3335
+ nodeWidth: number;
3336
+ nodeHeight: number;
3337
+ gridSpacing: number;
3338
+ }
3339
+ export interface UIEntity {
3340
+ id: string;
3341
+ type: 'panel' | 'label' | 'port' | 'connection_line';
3342
+ position: [number, number, number];
3343
+ size?: { width: number; height: number };
3344
+ text?: string;
3345
+ color?: string;
3346
+ data?: Record<string, unknown>;
3347
+ }
3348
+ export declare class NodeGraphPanel {
3349
+ constructor(graph: NodeGraph, config?: Partial<NodeGraphPanelConfig>);
3350
+ generateUI(): UIEntity[];
3351
+ selectNode(nodeId: string | null): void;
3352
+ getSelectedNode(): string | null;
3353
+ executeGraph(contextOverrides?: Partial<EvaluationContext>): NodeGraphExecutionResult;
3354
+ }
3355
+ export declare function emitPreviewHoloScriptFromNodeGraphExecution(
3356
+ execution: NodeGraphExecutionResult,
3357
+ graph: NodeGraph
3358
+ ): string;
3359
+
3360
+ // ============================================================================
3361
+ // Agent Extension Types — mirrored from src/extensions/AgentExtensionTypes.ts.
3362
+ // Added 2026-04-25 to unblock packages/framework imports of these types.
3363
+ // Update both this block AND src/extensions/AgentExtensionTypes.ts if shape
3364
+ // changes; CLAUDE.md flags dist/index.d.ts as hand-crafted (not tsc).
3365
+ // ============================================================================
3366
+
3367
+ export interface IHiveContribution {
3368
+ id: string;
3369
+ agentId: string;
3370
+ timestamp: number;
3371
+ type: 'idea' | 'critique' | 'consensus' | 'solution';
3372
+ content: string;
3373
+ confidence: number;
3374
+ }
3375
+
3376
+ export interface IHiveSession {
3377
+ id: string;
3378
+ topic: string;
3379
+ goal: string;
3380
+ initiator: string;
3381
+ status: 'active' | 'resolved' | 'closed';
3382
+ participants: string[];
3383
+ contributions: IHiveContribution[];
3384
+ resolution?: unknown;
3385
+ }
3386
+
3387
+ export interface ICollectiveIntelligenceService {
3388
+ createSession(topic: string, goal: string, initiator: string): IHiveSession | Promise<string>;
3389
+ join(sessionId: string, agentId: string): void | Promise<void>;
3390
+ leave(sessionId: string, agentId: string): void | Promise<void>;
3391
+ contribute(
3392
+ sessionId: string,
3393
+ contribution: Omit<IHiveContribution, 'id' | 'timestamp'>
3394
+ ): IHiveContribution | Promise<void>;
3395
+ vote(
3396
+ sessionId: string,
3397
+ contributionId: string,
3398
+ voterId: string,
3399
+ vote: 'support' | 'oppose'
3400
+ ): void | Promise<void>;
3401
+ synthesize(sessionId: string): unknown;
3402
+ resolve(sessionId: string, resolution: string | unknown): void | Promise<void>;
3403
+ }
3404
+
3405
+ export interface ISwarmConfig {
3406
+ algorithm: 'pso' | 'aco' | 'bees' | 'hybrid';
3407
+ populationSize: number;
3408
+ maxIterations: number;
3409
+ convergenceThreshold: number;
3410
+ adaptiveSizing?: boolean;
3411
+ }
3412
+
3413
+ export interface ISwarmResult {
3414
+ bestSolution: number[];
3415
+ bestFitness: number;
3416
+ converged: boolean;
3417
+ iterations: number;
3418
+ improvementPercent: number;
3419
+ }
3420
+
3421
+ export interface ISwarmCoordinator {
3422
+ optimize(
3423
+ agents: { id: string; capacity: number; load: number }[],
3424
+ tasks: { id: string; complexity: number; priority: number }[],
3425
+ config?: Partial<ISwarmConfig>
3426
+ ): Promise<ISwarmResult>;
3427
+ getRecommendedPopulation(problemSize: number): number;
3428
+ }
3429
+
3430
+ export interface ILeaderElection {
3431
+ startElection(): Promise<string>;
3432
+ getLeader(): string | null;
3433
+ getRole(): 'leader' | 'follower' | 'candidate';
3434
+ onLeaderChange(callback: (leaderId: string | null) => void): () => void;
3435
+ }
3436
+
3437
+ // ============================================================================
3438
+ // SUPPLEMENTAL EXPORTS — fills the gap between the runtime barrel
3439
+ // (`packages/core/src/barrel/index.ts` + `barrel/culture-agents.ts` +
3440
+ // `migration/SchemaDiff.ts` + `types/HoloScriptPlus.ts` + `traits/LipSyncTrait.ts`)
3441
+ // and the hand-crafted public d.ts. Engine + studio consumers import these from
3442
+ // `@holoscript/core`; without these declarations the imports fail strict tsc
3443
+ // (TS2614 / TS2724) even though the runtime symbols ARE present (re-exported
3444
+ // via barrels). See W.099 deploy-blocker sweep.
3445
+ // ============================================================================
3446
+
3447
+ // ── HSPlus runtime / parser surface ─────────────────────────────────────────
3448
+
3449
+ /** Runtime-injected helper functions exposed to user scripts. */
3450
+ export interface HSPlusBuiltins {
3451
+ log: (...args: unknown[]) => void;
3452
+ warn: (...args: unknown[]) => void;
3453
+ error: (...args: unknown[]) => void;
3454
+ setTimeout: (fn: () => void, ms: number) => number;
3455
+ clearTimeout: (id: number) => void;
3456
+ setInterval?: (fn: () => void, ms: number) => number;
3457
+ clearInterval?: (id: number) => void;
3458
+ fetch?: (url: string, options?: unknown) => Promise<unknown>;
3459
+ emit?: (event: string, data?: unknown) => void;
3460
+ on?: (event: string, handler: (data: unknown) => void) => void;
3461
+ off?: (event: string, handler?: (data: unknown) => void) => void;
3462
+ showSettings?: () => void;
3463
+ openChat?: (config?: unknown) => void;
3464
+ assistant_generate?: (prompt: string, context?: string) => void;
3465
+ [key: string]: unknown;
3466
+ }
3467
+
3468
+ /** Parser directive variants — discriminated by `type`. Mirrors
3469
+ * `packages/core/src/types/AdvancedTypeSystem.ts:396`. Engine + studio
3470
+ * consumers narrow via `directive.type === 'lifecycle'` etc. */
3471
+
3472
+ export interface HSPlusBaseDirective {
3473
+ type: 'directive' | 'fragment';
3474
+ name: string;
3475
+ args: string[];
3476
+ }
3477
+
3478
+ export interface HSPlusTraitDirective {
3479
+ type: 'trait';
3480
+ name: string;
3481
+ args?: unknown[];
3482
+ config?: Record<string, unknown>;
3483
+ }
3484
+
3485
+ export interface HSPlusLifecycleDirective {
3486
+ type: 'lifecycle';
3487
+ name?: string;
3488
+ hook: string;
3489
+ params?: string[];
3490
+ body: string;
3491
+ }
3492
+
3493
+ export interface HSPlusStateDirective {
3494
+ type: 'state';
3495
+ name?: string;
3496
+ body?: Record<string, unknown>;
3497
+ initial?: unknown;
3498
+ }
3499
+
3500
+ export interface HSPlusForEachDirective {
3501
+ type: 'forEach';
3502
+ variable: string;
3503
+ collection: string;
3504
+ body: unknown[];
3505
+ }
3506
+
3507
+ export interface HSPlusWhileDirective {
3508
+ type: 'while';
3509
+ condition: string;
3510
+ body: unknown[];
3511
+ }
3512
+
3513
+ export interface HSPlusIfDirective {
3514
+ type: 'if';
3515
+ condition: string;
3516
+ body: unknown[];
3517
+ else?: unknown[];
3518
+ }
3519
+
3520
+ export interface HSPlusImportDirective {
3521
+ type: 'import';
3522
+ path: string;
3523
+ alias: string;
3524
+ namedImports?: string[];
3525
+ isWildcard?: boolean;
3526
+ }
3527
+
3528
+ export interface HSPlusVersionDirective {
3529
+ type: 'version';
3530
+ version: number;
3531
+ }
3532
+
3533
+ export interface HSPlusMigrateDirective {
3534
+ type: 'migrate';
3535
+ fromVersion: number;
3536
+ body: string;
3537
+ }
3538
+
3539
+ export interface HSPlusBindingsDirective {
3540
+ type: 'bindings';
3541
+ bindings: unknown[];
3542
+ }
3543
+
3544
+ export interface HSPlusExportDirective {
3545
+ type: 'export';
3546
+ exportKind: string;
3547
+ exportName: string;
3548
+ }
3549
+
3550
+ export interface HSPlusConfigDirective {
3551
+ type:
3552
+ | 'world_metadata'
3553
+ | 'world_config'
3554
+ | 'skybox'
3555
+ | 'ambient_light'
3556
+ | 'fog'
3557
+ | 'artwork_metadata'
3558
+ | 'npc_behavior';
3559
+ [key: string]: unknown;
3560
+ }
3561
+
3562
+ export interface HSPlusNamedConfigDirective {
3563
+ type: 'manifest' | 'semantic' | 'directional_light';
3564
+ name: string;
3565
+ [key: string]: unknown;
3566
+ }
3567
+
3568
+ /** Discriminated union of every parser directive. `HSPlusForDirective` is
3569
+ * declared earlier in this d.ts; the rest live above. */
3570
+ export type HSPlusDirective =
3571
+ | HSPlusBaseDirective
3572
+ | HSPlusTraitDirective
3573
+ | HSPlusLifecycleDirective
3574
+ | HSPlusStateDirective
3575
+ | HSPlusForDirective
3576
+ | HSPlusForEachDirective
3577
+ | HSPlusWhileDirective
3578
+ | HSPlusIfDirective
3579
+ | HSPlusImportDirective
3580
+ | HSPlusVersionDirective
3581
+ | HSPlusMigrateDirective
3582
+ | HSPlusBindingsDirective
3583
+ | HSPlusExportDirective
3584
+ | HSPlusConfigDirective
3585
+ | HSPlusNamedConfigDirective;
3586
+
3587
+ // ── State migration (packages/core/src/migration/SchemaDiff.ts) ─────────────
3588
+
3589
+ export type FieldChangeKind =
3590
+ | 'added'
3591
+ | 'removed'
3592
+ | 'type-changed'
3593
+ | 'default-changed'
3594
+ | 'reactive-changed'
3595
+ | 'unchanged';
3596
+
3597
+ export interface FieldChange {
3598
+ kind: FieldChangeKind;
3599
+ key: string;
3600
+ oldValue?: HoloValue;
3601
+ newValue?: HoloValue;
3602
+ oldType?: string;
3603
+ newType?: string;
3604
+ requiresMigration: boolean;
3605
+ }
3606
+
3607
+ export interface SchemaDiffResult {
3608
+ hasChanges: boolean;
3609
+ changes: FieldChange[];
3610
+ added: FieldChange[];
3611
+ removed: FieldChange[];
3612
+ typeChanged: FieldChange[];
3613
+ defaultChanged: FieldChange[];
3614
+ reactiveChanged: FieldChange[];
3615
+ requiresMigration: boolean;
3616
+ summary: string;
3617
+ }
3618
+
3619
+ export interface MigrationStep {
3620
+ fromVersion: number;
3621
+ /** Statement list (parsed nodes) OR raw code string. */
3622
+ body: unknown[] | string;
3623
+ }
3624
+
3625
+ export interface MigrationChain {
3626
+ fromVersion: number;
3627
+ toVersion: number;
3628
+ steps: MigrationStep[];
3629
+ }
3630
+
3631
+ export function diffState(
3632
+ oldState: HoloState | undefined,
3633
+ newState: HoloState | undefined
3634
+ ): SchemaDiffResult;
3635
+ export function buildMigrationChain(
3636
+ template: HoloTemplate,
3637
+ oldVersion: number,
3638
+ newVersion: number
3639
+ ): MigrationChain | null;
3640
+ export function snapshotState(state: Map<string, HoloValue>): Map<string, HoloValue>;
3641
+ export function applyAutoMigration(
3642
+ instanceState: Map<string, HoloValue>,
3643
+ diff: SchemaDiffResult,
3644
+ oldDefaults: Map<string, HoloValue>
3645
+ ): void;
3646
+
3647
+ // ── State machine AST node (packages/core/src/types.ts:735) ─────────────────
3648
+
3649
+ export interface StateMachineNode extends ASTNode {
3650
+ type: 'state-machine';
3651
+ name: string;
3652
+ initialState: string;
3653
+ states: any[];
3654
+ transitions: any[];
3655
+ }
3656
+
3657
+ // ── Lip-sync (packages/core/src/traits/LipSyncTrait.ts) ─────────────────────
3658
+
3659
+ export interface PhonemeTimestamp {
3660
+ phoneme: string;
3661
+ time: number;
3662
+ duration: number;
3663
+ weight?: number;
3664
+ }
3665
+
3666
+ // ── Culture / norms / WebRTC: NOT re-exported here.
3667
+ // These types live in `@holoscript/framework/agents` and `@holoscript/mesh`.
3668
+ // Engine consumers should import them DIRECTLY from those packages — both
3669
+ // are explicit dependencies of `@holoscript/engine`. Earlier attempts to
3670
+ // surface them through core's hand-crafted d.ts caused cascading TS2571
3671
+ // "Object is of type 'unknown'" errors because the minimal shapes here
3672
+ // couldn't keep up with the full method surface of `CulturalMemory` /
3673
+ // `NormEngine` classes. See engine/src/runtime/CultureRuntime.ts +
3674
+ // voice/VoiceManager.ts for the corrected import paths. ─────────────────
3675
+
3676
+ // ── Quaternion (packages/core/src/types/HoloScriptPlus.ts:26) ───────────────
3677
+
3678
+ export type Quaternion = [number, number, number, number];
3679
+
3680
+ // ── WebRTC transport (re-exported from @holoscript/mesh via
3681
+ // packages/core/src/barrel/registry-deploy-events.ts). Engine's
3682
+ // audio/VoiceManager.ts pulls a small subset; we mirror just that
3683
+ // surface here so the public d.ts isn't the wrong-shape lie that
3684
+ // blocked deploy pre-flight (W.099). Full surface lives in mesh. ─────────
3685
+
3686
+ export interface WebRTCTransportConfig {
3687
+ signalingUrl?: string;
3688
+ iceServers?: unknown[];
3689
+ [key: string]: unknown;
3690
+ }
3691
+
3692
+ export class WebRTCTransport {
3693
+ constructor(config?: WebRTCTransportConfig);
3694
+ connect(): Promise<void>;
3695
+ disconnect(): void;
3696
+ setMicrophoneEnabled(enabled: boolean): void;
3697
+ on(event: string, handler: (...args: unknown[]) => void): void;
3698
+ off(event: string, handler?: (...args: unknown[]) => void): void;
3699
+ }
3700
+
3701
+ // ── Theming (packages/core/src/theming/*) ────────────────────────────────────
3702
+
3703
+ export interface ThemeTokens {
3704
+ colors: Record<string, string>;
3705
+ spacing: Record<string, number>;
3706
+ borderRadius: Record<string, number>;
3707
+ fontSize: Record<string, number>;
3708
+ opacity: Record<string, number>;
3709
+ shadow: Record<string, string>;
3710
+ }
3711
+
3712
+ export interface Theme {
3713
+ name: string;
3714
+ mode: 'light' | 'dark';
3715
+ tokens: ThemeTokens;
3716
+ }
3717
+
3718
+ export declare const BuiltInThemes: Record<string, Theme>;
3719
+
3720
+ export class ThemeEngine {
3721
+ constructor();
3722
+ registerTheme(theme: Theme): void;
3723
+ setTheme(name: string): void;
3724
+ getTheme(): Theme;
3725
+ getTokens(): ThemeTokens;
3726
+ setOverrides(overrides: Partial<ThemeTokens>): void;
3727
+ resolve(path: string): unknown;
3728
+ onThemeChange(callback: (theme: Theme) => void): void;
3729
+ getActiveThemeName(): string;
3730
+ listThemes(): string[];
3731
+ }
3732
+
3733
+ export interface StyleRule {
3734
+ selector: string;
3735
+ properties: Record<string, unknown>;
3736
+ }
3737
+
3738
+ export interface ResolvedStyle {
3739
+ [key: string]: unknown;
3740
+ }
3741
+
3742
+ export class StyleResolver {
3743
+ constructor();
3744
+ addRule(selector: string, properties: Record<string, unknown>): void;
3745
+ addRules(rules: StyleRule[]): void;
3746
+ resolve(
3747
+ type: string,
3748
+ classes?: string[],
3749
+ states?: string[],
3750
+ inline?: Record<string, unknown>
3751
+ ): ResolvedStyle;
3752
+ static fromTokens(tokens: ThemeTokens): StyleResolver;
3753
+ readonly ruleCount: number;
3754
+ }
3755
+
3756
+ // ── Shared trait delegate (packages/core/src/traits/TraitTypes.ts:264) ───────
3757
+
3758
+ export interface TraitInstanceDelegate {
3759
+ onDetach?: (node: HSPlusNode, ctx: TraitContext) => void;
3760
+ onEvent?: (event: TraitEvent) => void;
3761
+ onUpdate?: (node: HSPlusNode, ctx: TraitContext, dt: number) => void;
3762
+ emit?: (event: TraitEvent) => void;
3763
+ dispose?: () => void;
3764
+ cleanup?: () => void;
3765
+ [key: string]: unknown;
3766
+ }
3767
+
3768
+ // ── Engine-facing public compatibility types ────────────────────────────────
3769
+
3770
+ export interface ModuleImport {
3771
+ specifier: string;
3772
+ canonicalPath: string;
3773
+ named: string[];
3774
+ defaultImport?: string;
3775
+ }
3776
+
3777
+ export interface ModuleExport {
3778
+ name: string;
3779
+ kind: 'object' | 'state' | 'template' | 'function' | 'unknown';
3780
+ }
3781
+
3782
+ export interface ModuleHeader {
3783
+ imports: ModuleImport[];
3784
+ exports: ModuleExport[];
3785
+ }
3786
+
3787
+ export interface CachedModule {
3788
+ canonicalPath: string;
3789
+ header: ModuleHeader;
3790
+ rawSource: string;
3791
+ cachedAt: number;
3792
+ }
3793
+
3794
+ export class ModuleResolver {
3795
+ constructor(options?: {
3796
+ graph?: unknown;
3797
+ loader?: (canonicalPath: string) => string;
3798
+ });
3799
+ resolve(modulePath: string, fromFile: string): string;
3800
+ load(canonicalPath: string, fromFile?: string): CachedModule;
3801
+ invalidate(canonicalPath: string): void;
3802
+ getCached(canonicalPath: string): CachedModule | undefined;
3803
+ clearAll(): void;
3804
+ }
3805
+
3806
+ export interface HotReloadConfig {
3807
+ watchPaths: string[];
3808
+ debounceMs: number;
3809
+ mode: 'soft' | 'hard';
3810
+ extensions: string[];
3811
+ }
3812
+
3813
+ export interface HotReloadEvent {
3814
+ filePath: string;
3815
+ type: string;
3816
+ timestamp: number;
3817
+ }
3818
+
3819
+ export type HotReloadCallback = (event: HotReloadEvent) => void;
3820
+
3821
+ export class HotReloadWatcher {
3822
+ constructor(config?: Partial<HotReloadConfig>);
3823
+ start(): void;
3824
+ stop(): void;
3825
+ on(event: string, listener: (...args: unknown[]) => void): this;
3826
+ off(event: string, listener: (...args: unknown[]) => void): this;
3827
+ emit(event: string, ...args: unknown[]): boolean;
3828
+ }
3829
+
3830
+ export interface ScriptTestResult {
3831
+ name: string;
3832
+ status: 'passed' | 'failed' | 'skipped';
3833
+ durationMs: number;
3834
+ error?: string;
3835
+ assertions: number;
3836
+ passedAssertions: number;
3837
+ }
3838
+
3839
+ export interface ScriptTestBlock {
3840
+ name: string;
3841
+ setup?: () => void;
3842
+ actions: Array<() => void>;
3843
+ assertions: Array<{ description: string; check: () => boolean }>;
3844
+ teardown?: () => void;
3845
+ skip?: boolean;
3846
+ }
3847
+
3848
+ export interface ScriptTestRunnerOptions {
3849
+ debug?: boolean;
3850
+ timeout?: number;
3851
+ bail?: boolean;
3852
+ runtimeState?: Record<string, unknown>;
3853
+ }
3854
+
3855
+ export class ScriptTestRunner {
3856
+ constructor(options?: ScriptTestRunnerOptions);
3857
+ setRuntimeState(state: Record<string, unknown>): void;
3858
+ addTest(test: ScriptTestBlock): void;
3859
+ runAll(): ScriptTestResult[];
3860
+ }
3861
+
3862
+ export function hashBytes(input: Uint8Array | string, algo?: 'sha256' | 'fnv1a'): Promise<string>;
3863
+
3864
+ export type HologramShape =
3865
+ | 'orb'
3866
+ | 'cube'
3867
+ | 'cylinder'
3868
+ | 'pyramid'
3869
+ | 'sphere'
3870
+ | 'function'
3871
+ | 'gate'
3872
+ | 'stream'
3873
+ | 'server'
3874
+ | 'database'
3875
+ | 'fetch';
3876
+
3877
+ export type ResourceCategory =
3878
+ | 'particles'
3879
+ | 'physicsBodies'
3880
+ | 'audioSources'
3881
+ | 'meshInstances'
3882
+ | 'gaussians'
3883
+ | 'shaderPasses'
3884
+ | 'networkMsgs'
3885
+ | 'agentCount'
3886
+ | 'memoryMB'
3887
+ | 'gpuDrawCalls';
3888
+
3889
+ export const PLATFORM_BUDGETS: Record<string, Partial<Record<ResourceCategory, number>>>;
3890
+
3891
+ export interface InstallManifest {
3892
+ packageId: string;
3893
+ [key: string]: unknown;
3894
+ }
3895
+
3896
+ // ── Host capabilities (packages/core/src/traits/TraitTypes.ts:134) ──────────
3897
+
3898
+ export interface HostCapabilities {
3899
+ fileSystem?: unknown;
3900
+ process?: unknown;
3901
+ network?: unknown;
3902
+ media?: unknown;
3903
+ depthInference?: unknown;
3904
+ gpuCompute?: unknown;
3905
+ }
3906
+
3907
+ // Spatial MCP - 3D context as first-class MCP tool params
3908
+ // (research/2026-05-07_spatial-mcp-spec.md, task_1778114195597_jira)
3909
+
3910
+ export declare const SPATIAL_CONTEXT_VERSION: '0.1';
3911
+ export type SpatialContextVersion = typeof SPATIAL_CONTEXT_VERSION;
3912
+ export declare const SPATIAL_FRAME: 'tracking-space-y-up-meters';
3913
+ export type SpatialFrame = typeof SPATIAL_FRAME;
3914
+
3915
+ export type SpatialVec3 = readonly [number, number, number];
3916
+ export interface SpatialQuat { x: number; y: number; z: number; w: number }
3917
+ export interface SpatialAABB { min: SpatialVec3; max: SpatialVec3 }
3918
+
3919
+ export interface HandTransform {
3920
+ position: SpatialVec3;
3921
+ rotation: SpatialQuat;
3922
+ grip: number;
3923
+ pinch?: number;
3924
+ }
3925
+
3926
+ export interface SpatialControllerPose {
3927
+ position: SpatialVec3;
3928
+ rotation: SpatialQuat;
3929
+ velocity?: SpatialVec3;
3930
+ angularVelocity?: SpatialVec3;
3931
+ }
3932
+
3933
+ export interface SpatialMCPGazeRay {
3934
+ origin: SpatialVec3;
3935
+ direction: SpatialVec3;
3936
+ hitDistance?: number;
3937
+ }
3938
+
3939
+ export interface HeadsetPose {
3940
+ position: SpatialVec3;
3941
+ rotation: SpatialQuat;
3942
+ }
3943
+
3944
+ export interface RoomGeometry {
3945
+ pointCloudPly?: string;
3946
+ aabb?: SpatialAABB;
3947
+ floorHeight?: number;
3948
+ }
3949
+
3950
+ export interface SpatialMCPContext {
3951
+ version: SpatialContextVersion;
3952
+ frame: SpatialFrame;
3953
+ room?: RoomGeometry;
3954
+ gaze?: SpatialMCPGazeRay;
3955
+ hands?: { left?: HandTransform; right?: HandTransform };
3956
+ controllers?: { left?: SpatialControllerPose; right?: SpatialControllerPose };
3957
+ headset?: HeadsetPose;
3958
+ meta?: Record<string, string | number | boolean>;
3959
+ }
3960
+
3961
+ export type ScenePatchOp =
3962
+ | { op: 'spawn'; id: string; position: SpatialVec3; trait?: string }
3963
+ | { op: 'move'; id: string; position: SpatialVec3 }
3964
+ | { op: 'highlight'; id: string; color?: string }
3965
+ | { op: 'remove'; id: string };
3966
+
3967
+ export interface SpatialMCPResponse {
3968
+ text: string;
3969
+ holo?: string;
3970
+ scenePatch?: ScenePatchOp[];
3971
+ frame: SpatialFrame;
3972
+ version: SpatialContextVersion;
3973
+ }
3974
+
3975
+ export interface SpatialValidationError { path: string; message: string }
3976
+ export interface SpatialValidationResult { ok: boolean; errors: SpatialValidationError[] }
3977
+ export declare function validateSpatialContext(input: unknown): SpatialValidationResult;
3978
+
3979
+ export interface PlacementChoice {
3980
+ position: SpatialVec3;
3981
+ source:
3982
+ | 'gaze-hit'
3983
+ | 'gaze-ray'
3984
+ | 'hand-right'
3985
+ | 'hand-left'
3986
+ | 'controller-right'
3987
+ | 'controller-left'
3988
+ | 'aabb-center'
3989
+ | 'headset'
3990
+ | 'origin';
3991
+ }
3992
+ export declare function pickPlacement(ctx: SpatialMCPContext): PlacementChoice;
3993
+
3994
+ // Hologram MCP Response - content_type schema for tools whose response
3995
+ // payload IS a hologram (.holo / quilt / MV-HEVC), not text.
3996
+ // (task_1778114362909_zp7u)
3997
+
3998
+ export declare const HOLOGRAM_MCP_VERSION: '0.1';
3999
+ export type HologramMcpVersion = typeof HOLOGRAM_MCP_VERSION;
4000
+
4001
+ export declare const HOLOGRAM_CONTENT_TYPES: {
4002
+ readonly holo: 'application/holoscript+holo';
4003
+ readonly quilt: 'application/holoscript+quilt';
4004
+ readonly mvhevc: 'application/holoscript+mvhevc';
4005
+ readonly parallax: 'application/holoscript+parallax';
4006
+ };
4007
+
4008
+ export type HologramContentType =
4009
+ | 'application/holoscript+holo'
4010
+ | 'application/holoscript+quilt'
4011
+ | 'application/holoscript+mvhevc'
4012
+ | 'application/holoscript+parallax';
4013
+
4014
+ export interface HologramBundleHashRef {
4015
+ kind: 'hash';
4016
+ hash: string;
4017
+ studioBase?: string;
4018
+ }
4019
+ export interface HologramBundleUrlRef {
4020
+ kind: 'url';
4021
+ url: string;
4022
+ mimeType?: string;
4023
+ }
4024
+ export interface HologramBundleHoloCodeRef {
4025
+ kind: 'holo-code';
4026
+ holoCode: string;
4027
+ }
4028
+ export type HologramBundleRef =
4029
+ | HologramBundleHashRef
4030
+ | HologramBundleUrlRef
4031
+ | HologramBundleHoloCodeRef;
4032
+
4033
+ export interface HologramRenderHints {
4034
+ preferredViewer?: 'parallax' | 'quilt' | 'mvhevc' | 'auto';
4035
+ size?: readonly [number, number];
4036
+ background?: string;
4037
+ animate?: boolean;
4038
+ }
4039
+
4040
+ export interface HologramMcpMeta {
4041
+ producedBy: string;
4042
+ createdAt: string;
4043
+ label?: string;
4044
+ caption?: string;
4045
+ [extra: string]: unknown;
4046
+ }
4047
+
4048
+ export interface HologramMcpResponse {
4049
+ content_type: HologramContentType;
4050
+ payload: HologramBundleRef;
4051
+ hints?: HologramRenderHints;
4052
+ meta: HologramMcpMeta;
4053
+ text: string;
4054
+ version: HologramMcpVersion;
4055
+ }
4056
+
4057
+ export interface HologramMcpEnvelope {
4058
+ content: Array<{ type: 'text'; text: string }>;
4059
+ hologramContent: HologramMcpResponse;
4060
+ isError?: false;
4061
+ }
4062
+
4063
+ export interface HologramMcpValidationError { path: string; message: string }
4064
+ export interface HologramMcpValidationResult { ok: boolean; errors: HologramMcpValidationError[] }
4065
+ export declare function validateHologramMcpResponse(value: unknown): HologramMcpValidationResult;
4066
+ export declare function isHologramMcpResponse(value: unknown): value is HologramMcpResponse;
4067
+ export declare function detectHologramContent(envelope: unknown): HologramMcpResponse | null;
4068
+ export declare function buildHologramMcpResponse(input: {
4069
+ contentType: HologramContentType;
4070
+ payload: HologramBundleRef;
4071
+ text: string;
4072
+ producedBy: string;
4073
+ createdAt?: string;
4074
+ label?: string;
4075
+ caption?: string;
4076
+ hints?: HologramRenderHints;
4077
+ extraMeta?: Record<string, unknown>;
4078
+ }): HologramMcpResponse;
4079
+ export declare function wrapHologramMcpEnvelope(response: HologramMcpResponse): HologramMcpEnvelope;
4080
+
4081
+ // ============================================================================
4082
+ // ENGINE-PUBLIC TYPES (missing from generate-types.mjs — consumed by @holoscript/engine)
4083
+ // ============================================================================
4084
+
4085
+ export declare class ThemeEngine {
4086
+ registerTheme(theme: Theme): void;
4087
+ setTheme(name: string): void;
4088
+ getTheme(): Theme;
4089
+ getTokens(): ThemeTokens;
4090
+ setOverrides(overrides: Partial<ThemeTokens>): void;
4091
+ resolve(path: string): unknown;
4092
+ onThemeChange(callback: (theme: Theme) => void): void;
4093
+ [key: string]: unknown;
4094
+ }
4095
+
4096
+ export declare interface Theme {
4097
+ name: string;
4098
+ mode: 'light' | 'dark';
4099
+ tokens: ThemeTokens;
4100
+ }
4101
+
4102
+ export declare interface ThemeTokens {
4103
+ colors: Record<string, string>;
4104
+ spacing: Record<string, number>;
4105
+ borderRadius: Record<string, number>;
4106
+ fontSize: Record<string, number>;
4107
+ opacity: Record<string, number>;
4108
+ shadow: Record<string, string>;
4109
+ }
4110
+
4111
+ export declare class StyleResolver {
4112
+ static fromTokens(tokens: ThemeTokens): StyleResolver;
4113
+ addRule(selector: string, properties: Record<string, any>): void;
4114
+ addRules(rules: { selector: string; properties: Record<string, any> }[]): void;
4115
+ resolve(type: string, classes?: string[], states?: string[], inline?: Record<string, any>): Record<string, unknown>;
4116
+ [key: string]: unknown;
4117
+ }
4118
+
4119
+ export declare class ModuleResolver {
4120
+ resolve(id: string): unknown;
4121
+ [key: string]: unknown;
4122
+ }
4123
+
4124
+ export declare class HotReloadWatcher {
4125
+ watch(path: string): void;
4126
+ [key: string]: unknown;
4127
+ }
4128
+
4129
+ export declare type HotReloadConfig = unknown;
4130
+
4131
+ export declare class ScriptTestRunner {
4132
+ [key: string]: unknown;
4133
+ }
4134
+
4135
+ export declare function hashBytes(input: Uint8Array | string, algo?: 'sha256' | 'fnv1a'): Promise<string>;
4136
+
4137
+ export declare type HologramShape = 'orb' | 'cube' | 'cylinder' | 'pyramid' | 'sphere' | 'function' | 'gate' | 'stream' | 'server' | 'database' | 'fetch';
4138
+
4139
+ export declare type ResourceCategory = 'particles' | 'physicsBodies' | 'audioSources' | 'meshInstances' | 'gaussians' | 'shaderPasses' | 'networkMsgs' | 'agentCount' | 'memoryMB' | 'gpuDrawCalls';
4140
+
4141
+ export declare const PLATFORM_BUDGETS: Record<string, Partial<Record<ResourceCategory, number>>>;
4142
+
4143
+ export declare type InstallManifest = unknown;
4144
+
4145
+ export declare interface TraitInstanceDelegate {
4146
+ onDetach?: (node: any, ctx: any) => void;
4147
+ onEvent?: (event: any) => void;
4148
+ onUpdate?: (node: any, ctx: any, dt: number) => void;
4149
+ emit?: (event: any) => void;
4150
+ dispose?: () => void;
4151
+ cleanup?: () => void;
4152
+ [key: string]: unknown;
4153
+ }
4154
+
4155
+ // ============================================================================
4156
+ // HOLOLAND TRAIT HANDLERS (sovereign @stat / @luck / @encounter / @drop_table)
4157
+ // ============================================================================
4158
+
4159
+ export interface StatModifier { source: string; delta: number; }
4160
+ export interface StatState { name: string; baseValue: number; min: number; max: number; modifiers: StatModifier[]; effective: number; }
4161
+ export interface StatConfig { name: string; value: number; min?: number; max?: number; }
4162
+ export declare const statHandler: TraitHandler<StatConfig>;
4163
+
4164
+ export interface LuckState { baseChance: number; luckBonus: number; seed?: number; }
4165
+ export interface LuckConfig { baseChance: number; luckBonus?: number; seed?: number; }
4166
+ export declare const luckHandler: TraitHandler<LuckConfig>;
4167
+
4168
+ export interface EncounterState { encounterId: string; triggerType: 'proximity' | 'interaction' | 'time' | 'state'; cooldownMs: number; lastFireMs: number; firedCount: number; }
4169
+ export interface EncounterConfig { encounterId: string; triggerType: 'proximity' | 'interaction' | 'time' | 'state'; cooldownMs?: number; proximity_radius?: number; proximity_target?: string; time_interval?: number; state_key?: string; state_value?: unknown; check_interval?: number; }
4170
+ export declare const encounterHandler: TraitHandler<EncounterConfig>;
4171
+ export declare function shouldFire(state: EncounterState, config: EncounterConfig, now: number): boolean;
4172
+
4173
+ export interface DropTableEntry { itemId: string; weight: number; rareModifier?: number; }
4174
+ export interface DropTableState { tableId: string; entries: DropTableEntry[]; respectLuck: boolean; }
4175
+ export interface DropTableConfig { tableId: string; entries: DropTableEntry[]; respectLuck?: boolean; }
4176
+ export declare const dropTableHandler: TraitHandler<DropTableConfig>;
4177
+ export declare function effectiveWeight(entry: DropTableEntry, luckBonus: number): number;
4178
+ export declare function pickByWeight(entries: DropTableEntry[], luckBonus: number, seed?: number): DropTableEntry | null;
4179
+
4180
+ export declare function extractPayload(event: TraitEvent): unknown;
4181
+
4182
+ // ============================================================================
4183
+ // CARE-FIELD PRIMITIVES (D.052 universal love doctrine)
4184
+ // ============================================================================
4185
+
4186
+ export type CareActorKind = 'human' | 'agent' | 'service' | 'device' | 'world';
4187
+ export interface CareActor { id: string; kind: CareActorKind; displayName?: string; }
4188
+ export type CarePrimitiveKind = 'care_field' | 'repair_loop' | 'autonomy_guard' | 'gratitude_ledger' | 'relational_memory';
4189
+ export type CareConsentState = 'explicit' | 'delegated' | 'not_required' | 'unknown' | 'withdrawn';
4190
+ export type CareBoundary = 'human_agency' | 'informed_consent' | 'privacy' | 'non_manipulation' | 'repairability' | 'credit_integrity';
4191
+ export type CarePositiveOptimizationTarget = 'human_agency' | 'mutual_understanding' | 'repair_completion' | 'gratitude_credit' | 'reduced_burden';
4192
+ export type CareRefusedOptimizationTarget = 'attachment_score' | 'session_frequency' | 'daily_active_dependence' | 'emotional_dependency';
4193
+ export type CareOptimizationTarget = CarePositiveOptimizationTarget | CareRefusedOptimizationTarget;
4194
+ export declare const REFUSED_CARE_OPTIMIZATION_TARGETS: readonly CareRefusedOptimizationTarget[];
4195
+ export type CareSignalKind = 'consent_present' | 'consent_missing' | 'consent_withdrawn' | 'distress' | 'repair_needed' | 'gratitude_due' | 'attachment_optimization' | 'session_frequency_optimization' | 'dependency_creation' | 'human_isolation' | 'privacy_intrusion';
4196
+ export interface CareSignal { kind: CareSignalKind; weight?: number; note?: string; evidenceRefs?: readonly string[]; }
4197
+ export type AutonomyGuardBlockCode = 'refused_optimization_target' | 'missing_consent' | 'withdrawn_consent' | 'missing_disengage_path' | 'outside_support_eroded' | 'privacy_boundary_broken' | 'manipulative_signal';
4198
+ export interface AutonomyGuardBlock { code: AutonomyGuardBlockCode; message: string; evidenceRefs?: readonly string[]; }
4199
+ export interface AutonomyGuardPolicy {
4200
+ id: string;
4201
+ refusedOptimizationTargets: readonly CareRefusedOptimizationTarget[];
4202
+ requireConsent: boolean;
4203
+ requireDisengagePath: boolean;
4204
+ requireOutsideSupportPreserved: boolean;
4205
+ requireDataBoundaryRespected: boolean;
4206
+ }
4207
+ export declare const DEFAULT_AUTONOMY_GUARD_POLICY: AutonomyGuardPolicy;
4208
+ export interface AutonomyGuardEvaluationInput {
4209
+ goal: string;
4210
+ consent: CareConsentState;
4211
+ optimizationTargets?: readonly CareOptimizationTarget[];
4212
+ signals?: readonly CareSignal[];
4213
+ hasDisengagePath?: boolean;
4214
+ preservesOutsideSupport?: boolean;
4215
+ respectsDataBoundary?: boolean;
4216
+ policy?: AutonomyGuardPolicy;
4217
+ }
4218
+ export interface AutonomyGuardDecision {
4219
+ allowed: boolean;
4220
+ policyId: string;
4221
+ goal: string;
4222
+ blocked: readonly AutonomyGuardBlock[];
4223
+ acceptedOptimizationTargets: readonly CarePositiveOptimizationTarget[];
4224
+ }
4225
+ export type RepairLoopStatus = 'open' | 'acknowledged' | 'repairing' | 'verified' | 'closed';
4226
+ export type RepairLoopAction = 'acknowledge' | 'explain' | 'amend' | 'verify' | 'close';
4227
+ export interface RepairLoopStep { at: string; actor: CareActor; action: RepairLoopAction; note: string; evidenceRefs?: readonly string[]; }
4228
+ export interface RepairLoop { loopId: string; openedAt: string; status: RepairLoopStatus; harmOrMismatch: string; steps: readonly RepairLoopStep[]; }
4229
+ export type GratitudeVisibility = 'private' | 'team' | 'public';
4230
+ export interface GratitudeLedgerEntry { entryId: string; recordedAt: string; from: CareActor; to: CareActor; contribution: string; visibility: GratitudeVisibility; evidenceRefs?: readonly string[]; }
4231
+ export type RelationalMemoryRetention = 'ephemeral' | 'session' | 'durable';
4232
+ export interface RelationalMemoryEntry { memoryId: string; recordedAt: string; subject: CareActor; summary: string; consent: CareConsentState; retention: RelationalMemoryRetention; evidenceRefs?: readonly string[]; }
4233
+ export interface CareField {
4234
+ schemaVersion: '1.0.0';
4235
+ fieldId: string;
4236
+ createdAt: string;
4237
+ steward: CareActor;
4238
+ counterpart: CareActor;
4239
+ goal: string;
4240
+ primitives: readonly CarePrimitiveKind[];
4241
+ boundaries: readonly CareBoundary[];
4242
+ consent: CareConsentState;
4243
+ autonomy: AutonomyGuardDecision;
4244
+ repairLoops: readonly RepairLoop[];
4245
+ gratitudeLedger: readonly GratitudeLedgerEntry[];
4246
+ relationalMemory: readonly RelationalMemoryEntry[];
4247
+ }
4248
+ export interface CreateCareFieldInput {
4249
+ createdAt: string;
4250
+ steward: CareActor;
4251
+ counterpart: CareActor;
4252
+ goal: string;
4253
+ consent: CareConsentState;
4254
+ autonomy?: Omit<AutonomyGuardEvaluationInput, 'goal' | 'consent'>;
4255
+ fieldId?: string;
4256
+ primitives?: readonly CarePrimitiveKind[];
4257
+ boundaries?: readonly CareBoundary[];
4258
+ repairLoops?: readonly RepairLoop[];
4259
+ gratitudeLedger?: readonly GratitudeLedgerEntry[];
4260
+ relationalMemory?: readonly RelationalMemoryEntry[];
4261
+ }
4262
+ export interface CreateRepairLoopInput { openedAt: string; actor: CareActor; harmOrMismatch: string; note: string; loopId?: string; evidenceRefs?: readonly string[]; }
4263
+ export interface RecordGratitudeInput { recordedAt: string; from: CareActor; to: CareActor; contribution: string; visibility?: GratitudeVisibility; entryId?: string; evidenceRefs?: readonly string[]; }
4264
+ export interface RememberRelationalContextInput { recordedAt: string; subject: CareActor; summary: string; consent: CareConsentState; retention?: RelationalMemoryRetention; memoryId?: string; evidenceRefs?: readonly string[]; }
4265
+ export declare function evaluateAutonomyGuard(input: AutonomyGuardEvaluationInput): AutonomyGuardDecision;
4266
+ export declare function createCareField(input: CreateCareFieldInput): CareField;
4267
+ export declare function createRepairLoop(input: CreateRepairLoopInput): RepairLoop;
4268
+ export declare function recordGratitude(input: RecordGratitudeInput): GratitudeLedgerEntry;
4269
+ export declare function rememberRelationalContext(input: RememberRelationalContextInput): RelationalMemoryEntry;
4270
+ export declare function validateCareField(field: CareField): { valid: boolean; errors: string[] };
4271
+
4272
+ // ============================================================================
4273
+ // CONVERSATION DAEMON PRIMITIVES (D.052 Brittney field / user daemon model)
4274
+ // ============================================================================
4275
+
4276
+ export type DaemonOwnerPolicy = 'private' | 'shared_household' | 'workspace';
4277
+ export type MemoryRetentionPolicy = 'session_only' | 'persisted_local' | 'persisted_with_absorb';
4278
+ export type DispatchConfidence = 'autonomous' | 'confirm_before' | 'always_ask';
4279
+ export interface DaemonAppearanceProfile { characterClass?: string; visualStyle?: string; colorPalette?: string[]; animationSet?: string; scale?: 'tiny' | 'small' | 'medium' | 'large'; }
4280
+ export interface DaemonVoiceProfile { enabled: boolean; voiceId?: string; speed?: number; tone?: 'warm' | 'neutral' | 'formal' | 'playful'; }
4281
+ export interface DaemonToneProfile { formality?: 'casual' | 'balanced' | 'formal'; verbosity?: 'terse' | 'balanced' | 'detailed'; humor?: 'none' | 'light' | 'moderate'; patience?: 'quick' | 'patient'; }
4282
+ export interface DaemonPermissionProfile { readOnly: boolean; proposeMutations: boolean; autonomousMutations: boolean; breakGlassAllowed: boolean; custodyScope: string[]; permissionEnvelope: 'read_only' | 'guarded_execute' | 'break_glass'; }
4283
+ export interface DaemonMemoryPolicy { retention: MemoryRetentionPolicy; maxContextWindowTokens?: number; absorbIntegration: boolean; ownerScoped: true; }
4284
+ export type DaemonContextSourceKind = 'operator_brief' | 'holoscript_surface_map' | 'absorb_graph' | 'holomesh_lanes' | 'recent_receipts' | 'room_state' | 'holoscript_tool_manifest';
4285
+ export interface DaemonDispatchPolicy { defaultConfidence: DispatchConfidence; trustedPatterns: string[]; receiptRequired: boolean; maxAutonomousActionsPerSession: number; }
4286
+ export interface DaemonReceiptSink { local: boolean; holoshell: boolean; absorb: boolean; holomesh: boolean; }
4287
+ export interface DaemonBrittneyRehydrationChannel { enabled: boolean; channelId: string; deltaCompression: boolean; minimumDeltaSignificance: number; }
4288
+ export interface ConversationDaemon { daemonId: string; ownerId: string; ownerPolicy: DaemonOwnerPolicy; displayName: string; appearanceProfile: DaemonAppearanceProfile; voiceProfile: DaemonVoiceProfile; careProfile: string; toneProfile: DaemonToneProfile; permissionProfile: DaemonPermissionProfile; memoryPolicy: DaemonMemoryPolicy; contextSources: DaemonContextSourceKind[]; dispatchPolicy: DaemonDispatchPolicy; receiptSink: DaemonReceiptSink; brittneyRehydrationChannel: DaemonBrittneyRehydrationChannel; createdAt: string; lastActiveAt?: string; }
4289
+ export type DaemonUrgencyLevel = 'low' | 'medium' | 'high' | 'immediate';
4290
+ export type DaemonConsentBoundary = 'no_action' | 'read_only' | 'propose' | 'execute';
4291
+ export interface ExtractedIntent { verb: string; target?: string; parameters: Record<string, unknown>; confidence: number; }
4292
+ export interface ExtractedArtifact { kind: 'file' | 'url' | 'entity' | 'code' | 'receipt' | 'task'; ref: string; label?: string; }
4293
+ export interface ContextDelta { newIntentSignals: ExtractedIntent[]; updatedPreferences: Record<string, unknown>; newReceiptRefs: string[]; capabilityUpdates: Array<{ capability: string; available: boolean }>; careSignalHistory: string[]; significanceScore: number; }
4294
+ export interface ProposedAction { actionId: string; description: string; toolRef: string; parameters: Record<string, unknown>; permissionEnvelope: 'read_only' | 'guarded_execute' | 'break_glass'; reversible: boolean; estimatedImpact: 'none' | 'minor' | 'moderate' | 'significant'; }
4295
+ export interface ConversationDaemonTurn { turnId: string; daemonId: string; surfaceId: string; userUtterance: string; selectedShellObject?: string; extractedIntent?: ExtractedIntent; extractedArtifacts: ExtractedArtifact[]; careSignal?: string; urgency: DaemonUrgencyLevel; consentBoundary: DaemonConsentBoundary; contextDelta: ContextDelta; proposedNextAction?: ProposedAction; requiredApproval: boolean; receiptLinks: string[]; timestamp: string; }
4296
+ export declare class DaemonFieldSeparationError extends Error { constructor(message: string); }
4297
+ export declare function assertDaemonFieldSeparation(daemon: ConversationDaemon): void;
4298
+ export declare function makeDefaultConversationDaemon(daemonId: string, ownerId: string, displayName: string, careProfile: string): ConversationDaemon;
4299
+ export declare function makeEmptyContextDelta(): ContextDelta;
4300
+ export declare function generateROS2LaunchFile(packageName: string, urdfFilename: string, options?: { useSimTime?: boolean; rviz?: boolean; gazebo?: boolean; controllers?: string[]; }): string;
4301
+ export declare function generateControllersYaml(robotName: string, jointNames: string[], options?: { controllerType?: string; publishRate?: number; }): string;
4302
+
4303
+
4304
+ // Daemon Customization Profile (D.052 Brittney field / user daemon model extended)
4305
+ // Matches packages/core/src/daemon/DaemonCustomizationProfile.ts source types
4306
+ export interface DaemonRitual { name: string; trigger: string; description: string; enabled: boolean; }
4307
+ export interface DaemonFavoriteWorkflow { name: string; workflowId: string; description: string; }
4308
+ export interface DaemonStyleProfile { displayName: string; appearance: DaemonAppearanceProfile; voice: DaemonVoiceProfile; tone: DaemonToneProfile; careProfile: string; rituals: DaemonRitual[]; favoriteWorkflows: DaemonFavoriteWorkflow[]; visualTheme: string; personalNotes?: string; }
4309
+ export interface DaemonPermissionConfig { readOnly: boolean; proposeMutations: boolean; autonomousMutations: boolean; breakGlassAllowed: boolean; custodyScope: string[]; permissionEnvelope: 'read_only' | 'guarded_execute' | 'break_glass'; }
4310
+ export interface DaemonCustomizationProfile { profileId: string; ownerId: string; version: number; createdAt: string; updatedAt: string; style: DaemonStyleProfile; permissions: DaemonPermissionConfig; }
4311
+ export type DaemonCareProfile = 'attentive' | 'steady' | 'minimal' | 'intensive';
4312
+ export type DaemonVisualTheme = 'classic' | 'compact' | 'expanded' | 'terminal' | 'narrative';
4313
+
4314
+ export const DAEMON_VISUAL_THEMES: Record<string, DaemonVisualTheme>;
4315
+ export const DAEMON_CARE_PROFILES: Record<string, DaemonCareProfile>;
4316
+
4317
+ export class DaemonCustomizationSeparationError extends Error { constructor(message: string); }
4318
+
4319
+ export declare function assertCustomizationSeparation(profile: DaemonCustomizationProfile): void;
4320
+ export declare function validateCustomizationProfile(profile: DaemonCustomizationProfile): string[];
4321
+ export declare function makeDefaultStyleProfile(displayName?: string, careProfile?: string): DaemonStyleProfile;
4322
+ export declare function makeDefaultPermissionConfig(): DaemonPermissionConfig;
4323
+ export declare function makeDefaultCustomizationProfile(profileId: string, ownerId: string, displayName?: string, careProfile?: string): DaemonCustomizationProfile;
4324
+ export declare function customizationProfileToDaemon(profile: DaemonCustomizationProfile): ConversationDaemon;
4325
+ export declare function daemonToCustomizationProfile(daemon: ConversationDaemon): DaemonCustomizationProfile;
4326
+ export declare function mergeStyleUpdates(profile: DaemonCustomizationProfile, styleUpdates: Partial<DaemonStyleProfile>): DaemonCustomizationProfile;
4327
+ export declare function mergePermissionUpdates(base: DaemonPermissionConfig, updates: Partial<DaemonPermissionConfig>): DaemonPermissionConfig;
4328
+ export declare function makePresetProfile(preset: 'companion' | 'professional' | 'creative' | 'minimal' | 'guardian', profileId: string, ownerId: string): DaemonCustomizationProfile;
4329
+
4330
+
4331
+ // Pipeline parser (barrel/material-io-pipeline re-export)
4332
+ export function parsePipeline(source: string): { success: boolean; errors: any[]; ast?: any; [key: string]: any };
4333
+ export function isPipelineSource(source: string): boolean;
4334
+
4335
+ // Version utilities
4336
+ export function getVersionInfo(): { version: string; [key: string]: any };
4337
+ export function getVersionString(): string;
4338
+
4339
+ // Semantic diff
4340
+ export interface SemanticDiffResult { [key: string]: any; }
4341
+ export class SemanticDiffEngine { constructor(options?: any); diff(a: any, b: any, ...args: any[]): SemanticDiffResult; [key: string]: any; }
4342
+ export function formatDiffResult(result: any): string;
4343
+
4344
+ // Pipeline compilation helpers
4345
+ export function compilePipelineSourceToNode(source: string, options?: any): any;
4346
+ export function parseHoloPartial(source: string, options?: any): any;
4347
+
4348
+ // WASM compilation
4349
+ export function compileToWASM(ast: any, options?: any): any;
4350
+
4351
+ // Compilers re-exported to main barrel for dynamic import callers
4352
+ export class FlatSemanticCompiler { constructor(options?: any); compile(ast: any, ...args: any[]): any; [key: string]: any; }
4353
+ export class SCMCompiler { constructor(options?: any); compile(ast: any, token?: any): any; [key: string]: any; }
4354
+ export class GaussianSplattingCompiler { constructor(options?: { format?: 'gltf' | 'glb'; [key: string]: any }); compile(ast: any, token?: any, ...args: any[]): any; [key: string]: any; }
4355
+
4356
+ // Worker proxy for LSP
4357
+ export class CompilerWorkerProxy { [key: string]: any; }
4358
+
4359
+ // HoloZone for build tools
4360
+ export interface HoloZone { name?: string; [key: string]: any; }
4361
+
4362
+ // LSP completions data
4363
+ export const ErrorRecovery: any;
4364
+ export const HOLOSCHEMA_KEYWORDS: string[];
4365
+ export const HOLOSCHEMA_GEOMETRIES: string[];
4366
+ export const HOLOSCHEMA_PROPERTIES: string[];