@holoscript/core 7.0.0 → 8.0.1

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 (350) hide show
  1. package/README.md +4 -4
  2. package/bin/holoscript.cjs +3 -0
  3. package/dist/GLTFPipeline-N6B6PJ6G.cjs +38 -0
  4. package/dist/GLTFPipeline-P3WMNYCN.js +17 -0
  5. package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
  6. package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
  7. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  8. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  9. package/dist/HoloScriptRuntime-CBYJX3LZ.js +10 -0
  10. package/dist/HoloScriptRuntime-VJ374RER.cjs +19 -0
  11. package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
  12. package/dist/USDZExporter-D2HQLQYK.js +1035 -0
  13. package/dist/agents/index.cjs +19 -0
  14. package/dist/agents/index.d.ts +100 -0
  15. package/dist/agents/index.js +17 -0
  16. package/dist/chunk-2BSMSUCE.js +1941 -0
  17. package/dist/chunk-2IWC4FP7.cjs +1189 -0
  18. package/dist/chunk-2M2DPHKB.js +762 -0
  19. package/dist/chunk-2X7NGX3M.js +2426 -0
  20. package/dist/chunk-2YSNA2F2.cjs +1274 -0
  21. package/dist/chunk-3FOKASKO.cjs +348 -0
  22. package/dist/chunk-3WZEJHUQ.cjs +116 -0
  23. package/dist/chunk-4C57PR42.js +468 -0
  24. package/dist/chunk-4GU5GCIY.js +1384 -0
  25. package/dist/chunk-4N4SXXWF.js +769 -0
  26. package/dist/chunk-4PDEPEQW.cjs +41 -0
  27. package/dist/chunk-4R6SBXDB.js +45 -0
  28. package/dist/chunk-4SDKXQ4C.js +811 -0
  29. package/dist/chunk-4V2E7U7Q.cjs +2015 -0
  30. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  31. package/dist/chunk-5GLCTO44.js +161 -0
  32. package/dist/chunk-5H2G27PK.cjs +627 -0
  33. package/dist/chunk-5JEU52DW.js +382 -0
  34. package/dist/chunk-5NWINHR5.cjs +689 -0
  35. package/dist/chunk-5S7RKFGR.cjs +446 -0
  36. package/dist/chunk-5WUNN6ZN.cjs +428 -0
  37. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  38. package/dist/chunk-6EX3I5P4.cjs +130 -0
  39. package/dist/chunk-6Q7RC2MK.cjs +1418 -0
  40. package/dist/chunk-7H33U5SM.cjs +413 -0
  41. package/dist/chunk-7M3PNU2M.cjs +672 -0
  42. package/dist/chunk-7T25IEZ2.js +449 -0
  43. package/dist/chunk-7V4JI5TB.cjs +6947 -0
  44. package/dist/chunk-A6KINLZJ.js +236 -0
  45. package/dist/chunk-ADADVMXY.js +404 -0
  46. package/dist/chunk-AIA52I7T.cjs +543 -0
  47. package/dist/chunk-ALC6K7GL.cjs +4402 -0
  48. package/dist/chunk-ANXZFVY2.js +113 -0
  49. package/dist/chunk-AOVGZ25K.cjs +56583 -0
  50. package/dist/chunk-AVJHHUC5.cjs +718 -0
  51. package/dist/chunk-BGY3SDG3.js +4396 -0
  52. package/dist/chunk-BOVPWH4H.js +3857 -0
  53. package/dist/chunk-BRQJKJGT.cjs +20 -0
  54. package/dist/chunk-C37BHB7N.cjs +636 -0
  55. package/dist/chunk-CBJY23VL.js +126 -0
  56. package/dist/chunk-CCATWPXM.js +778 -0
  57. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  58. package/dist/chunk-CMT5NMMS.js +669 -0
  59. package/dist/chunk-CR4FMIWL.cjs +1049 -0
  60. package/dist/chunk-CR7XRXRN.cjs +639 -0
  61. package/dist/chunk-CSD27UNQ.js +2176 -0
  62. package/dist/chunk-D3STJ56J.js +714 -0
  63. package/dist/chunk-DAJXW4KX.js +725 -0
  64. package/dist/chunk-DHO2YRIM.js +756 -0
  65. package/dist/chunk-DTGBOSEM.cjs +319 -0
  66. package/dist/chunk-E6XXE66V.js +2252 -0
  67. package/dist/chunk-E7JP3BS3.cjs +61 -0
  68. package/dist/chunk-EKBKLK7P.js +1169 -0
  69. package/dist/chunk-EKYL4PE3.cjs +404 -0
  70. package/dist/chunk-EXKSFGSX.cjs +274 -0
  71. package/dist/chunk-EXUP2BUM.cjs +1173 -0
  72. package/dist/chunk-FDSGHPAK.js +130 -0
  73. package/dist/chunk-FEWUHQNM.cjs +144 -0
  74. package/dist/chunk-FFAOS5HQ.js +70 -0
  75. package/dist/chunk-FGGJQRLZ.js +270 -0
  76. package/dist/chunk-FHP6LXJS.js +415 -0
  77. package/dist/chunk-FJPADH77.cjs +666 -0
  78. package/dist/chunk-FL33V6U7.js +421 -0
  79. package/dist/chunk-FYSPZT4V.cjs +169 -0
  80. package/dist/chunk-GIOYPNTH.js +5575 -0
  81. package/dist/chunk-GJNCFRJU.cjs +125 -0
  82. package/dist/chunk-GMP623FG.cjs +1508 -0
  83. package/dist/chunk-GQHQOPXZ.cjs +5580 -0
  84. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  85. package/dist/chunk-GYZE55MO.js +2007 -0
  86. package/dist/chunk-GZG4KA4E.js +529 -0
  87. package/dist/chunk-H652NHX5.js +600 -0
  88. package/dist/chunk-HCCQLAA4.cjs +74 -0
  89. package/dist/chunk-HKEXJUWS.cjs +4007 -0
  90. package/dist/chunk-HNDK4IQU.cjs +5737 -0
  91. package/dist/chunk-HR2OSYVQ.js +56165 -0
  92. package/dist/chunk-HYNTS5CP.js +422 -0
  93. package/dist/chunk-I6XZ5DZF.cjs +488 -0
  94. package/dist/chunk-ILRBGFVD.cjs +72 -0
  95. package/dist/chunk-IUDGEUDO.cjs +1409 -0
  96. package/dist/chunk-IUTY5WQ2.cjs +424 -0
  97. package/dist/chunk-IVY74O6C.js +247 -0
  98. package/dist/chunk-IWC5DM2M.cjs +611 -0
  99. package/dist/chunk-J32ZJZJH.js +554 -0
  100. package/dist/chunk-J52VSAQ7.js +6884 -0
  101. package/dist/chunk-J6M4FPK5.js +421 -0
  102. package/dist/chunk-J7XZV333.js +844 -0
  103. package/dist/chunk-JBNDTXXV.cjs +2433 -0
  104. package/dist/chunk-JC5YBPSF.cjs +984 -0
  105. package/dist/chunk-JD7CIZ33.js +1949 -0
  106. package/dist/chunk-JIBL5LRK.js +4287 -0
  107. package/dist/chunk-JIYN45TV.cjs +2525 -0
  108. package/dist/chunk-K574J76X.cjs +457 -0
  109. package/dist/chunk-KHDZJE5D.cjs +2196 -0
  110. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  111. package/dist/chunk-KKP7JKN4.cjs +6002 -0
  112. package/dist/chunk-KPJL34Y7.cjs +186 -0
  113. package/dist/chunk-KQCN6AKJ.cjs +3042 -0
  114. package/dist/chunk-L5LKKENW.cjs +424 -0
  115. package/dist/chunk-LHAXPADA.js +882 -0
  116. package/dist/chunk-LM2VU56C.cjs +37 -0
  117. package/dist/chunk-M56JSP4A.js +400 -0
  118. package/dist/chunk-MBOOR7X4.js +18 -0
  119. package/dist/chunk-MQWAT42R.cjs +4310 -0
  120. package/dist/chunk-MXFUTKCO.js +56 -0
  121. package/dist/chunk-MYY4PMWX.cjs +264 -0
  122. package/dist/chunk-N75IH2HY.js +258 -0
  123. package/dist/chunk-NCWCUZNS.cjs +72 -0
  124. package/dist/chunk-NG77ATEW.cjs +778 -0
  125. package/dist/chunk-NW5G5FBQ.js +215 -0
  126. package/dist/chunk-OBIYPYYS.cjs +1993 -0
  127. package/dist/chunk-OH2FAIVU.js +608 -0
  128. package/dist/chunk-OIQYIIO3.cjs +473 -0
  129. package/dist/chunk-OL46QLBJ.js +61 -0
  130. package/dist/chunk-OMXII44L.js +5386 -0
  131. package/dist/chunk-OSYNRVOV.cjs +243 -0
  132. package/dist/chunk-PGANYCAG.cjs +220 -0
  133. package/dist/chunk-PHENW4MQ.js +65 -0
  134. package/dist/chunk-PY37LNDP.js +686 -0
  135. package/dist/chunk-Q56TT7IL.js +483 -0
  136. package/dist/chunk-QD32ADK6.js +1046 -0
  137. package/dist/chunk-QPOQ7VPI.js +1491 -0
  138. package/dist/chunk-QPSKHBJP.js +5963 -0
  139. package/dist/chunk-QXH7QDSZ.js +1989 -0
  140. package/dist/chunk-R24NNAEG.js +1399 -0
  141. package/dist/chunk-R75BSDH7.cjs +50 -0
  142. package/dist/chunk-RARB3MBR.js +207 -0
  143. package/dist/chunk-ROHLEP2W.cjs +847 -0
  144. package/dist/chunk-S3MDHNKB.cjs +490 -0
  145. package/dist/chunk-S6YWHCKV.cjs +410 -0
  146. package/dist/chunk-SIEXCILW.js +229 -0
  147. package/dist/chunk-SLU6UPJI.cjs +410 -0
  148. package/dist/chunk-SMIWS6DE.cjs +212 -0
  149. package/dist/chunk-T5J7ZKP3.cjs +4885 -0
  150. package/dist/chunk-TDCNJHWO.js +341 -0
  151. package/dist/chunk-TG7O4WBC.js +406 -0
  152. package/dist/chunk-THCK6ECW.js +2085 -0
  153. package/dist/chunk-TJHVSBP2.js +439 -0
  154. package/dist/chunk-TVHSPJ4N.cjs +606 -0
  155. package/dist/chunk-TWUXUCEW.cjs +781 -0
  156. package/dist/chunk-U44IKGG7.cjs +5390 -0
  157. package/dist/chunk-UFZZ7TSN.cjs +886 -0
  158. package/dist/chunk-UJXISJBN.js +487 -0
  159. package/dist/chunk-UOIGFQXC.cjs +9750 -0
  160. package/dist/chunk-URG2SJLK.js +2521 -0
  161. package/dist/chunk-UWJHCOH2.js +623 -0
  162. package/dist/chunk-V6MKC2FZ.js +979 -0
  163. package/dist/chunk-VJ3L7CHT.cjs +169 -0
  164. package/dist/chunk-VMLKSV26.js +1216 -0
  165. package/dist/chunk-VVKVQZI6.js +55 -0
  166. package/dist/chunk-W6RW64BB.cjs +1219 -0
  167. package/dist/chunk-WKX5AMOY.js +309 -0
  168. package/dist/chunk-WNNE3PO3.js +34 -0
  169. package/dist/chunk-WRKUDAZJ.js +3038 -0
  170. package/dist/chunk-WRLUBRKS.cjs +1943 -0
  171. package/dist/chunk-WRNEH5MO.js +3169 -0
  172. package/dist/chunk-WRWEX5ZF.js +658 -0
  173. package/dist/chunk-X3GJPRVK.cjs +3246 -0
  174. package/dist/chunk-X3UVCWNL.cjs +2257 -0
  175. package/dist/chunk-XB274MW5.cjs +814 -0
  176. package/dist/chunk-XHIV6326.cjs +793 -0
  177. package/dist/chunk-XIVIE43A.cjs +729 -0
  178. package/dist/chunk-XJAN7CZG.cjs +432 -0
  179. package/dist/chunk-XKTPFXGA.js +164 -0
  180. package/dist/chunk-XL6INWKT.js +121 -0
  181. package/dist/chunk-XSFNHP2E.js +632 -0
  182. package/dist/chunk-XT6JY5W5.js +9684 -0
  183. package/dist/chunk-XUILI4KB.cjs +430 -0
  184. package/dist/chunk-YF2I3MV3.js +46 -0
  185. package/dist/chunk-YIMN575O.js +4847 -0
  186. package/dist/chunk-YIVFJNYV.js +176 -0
  187. package/dist/chunk-YKGPCZEE.cjs +237 -0
  188. package/dist/chunk-YN2YWTXW.js +5731 -0
  189. package/dist/chunk-YN6V7R3L.cjs +327 -0
  190. package/dist/chunk-YQELFNJV.js +39 -0
  191. package/dist/chunk-YVD3CSO3.js +1183 -0
  192. package/dist/chunk-YVOAF4ML.js +623 -0
  193. package/dist/chunk-YWOBW2PV.cjs +759 -0
  194. package/dist/chunk-YYXH45E2.js +426 -0
  195. package/dist/chunk-ZDSYWBIE.cjs +69 -0
  196. package/dist/chunk-ZU7NIRT6.js +325 -0
  197. package/dist/chunk-ZZ7RO2UQ.js +1243 -0
  198. package/dist/cli/holoscript-runner.cjs +2255 -0
  199. package/dist/cli/holoscript-runner.js +2230 -0
  200. package/dist/codebase/index.cjs +336 -0
  201. package/dist/codebase/index.js +331 -0
  202. package/dist/compiler/agent-inference.cjs +31 -0
  203. package/dist/compiler/agent-inference.js +8 -0
  204. package/dist/compiler/android-xr.cjs +24 -0
  205. package/dist/compiler/android-xr.js +14 -0
  206. package/dist/compiler/android.cjs +24 -0
  207. package/dist/compiler/android.js +14 -0
  208. package/dist/compiler/ar.cjs +23 -0
  209. package/dist/compiler/ar.js +11 -0
  210. package/dist/compiler/babylon.cjs +21 -0
  211. package/dist/compiler/babylon.js +15 -0
  212. package/dist/compiler/business-quest.cjs +43 -0
  213. package/dist/compiler/business-quest.js +4 -0
  214. package/dist/compiler/coco.cjs +27 -0
  215. package/dist/compiler/coco.js +4 -0
  216. package/dist/compiler/context.cjs +25 -0
  217. package/dist/compiler/context.d.ts +28 -0
  218. package/dist/compiler/context.js +8 -0
  219. package/dist/compiler/domain-block-utils.cjs +609 -0
  220. package/dist/compiler/domain-block-utils.js +11 -0
  221. package/dist/compiler/dtdl.cjs +27 -0
  222. package/dist/compiler/dtdl.js +11 -0
  223. package/dist/compiler/gltf-pipeline.cjs +39 -0
  224. package/dist/compiler/gltf-pipeline.js +4 -0
  225. package/dist/compiler/godot.cjs +18 -0
  226. package/dist/compiler/godot.js +12 -0
  227. package/dist/compiler/incremental.cjs +34 -0
  228. package/dist/compiler/incremental.js +9 -0
  229. package/dist/compiler/index.cjs +5408 -0
  230. package/dist/compiler/index.d.ts +334 -21
  231. package/dist/compiler/index.js +5069 -0
  232. package/dist/compiler/ios.cjs +23 -0
  233. package/dist/compiler/ios.js +13 -0
  234. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  235. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  236. package/dist/compiler/llm-provider-capabilities.js +8 -0
  237. package/dist/compiler/multi-layer.cjs +24 -0
  238. package/dist/compiler/multi-layer.js +15 -0
  239. package/dist/compiler/nodetoy.cjs +23 -0
  240. package/dist/compiler/nodetoy.d.ts +69 -0
  241. package/dist/compiler/nodetoy.js +4 -0
  242. package/dist/compiler/openxr.cjs +19 -0
  243. package/dist/compiler/openxr.js +13 -0
  244. package/dist/compiler/playcanvas.cjs +19 -0
  245. package/dist/compiler/playcanvas.js +13 -0
  246. package/dist/compiler/r3f.cjs +39 -0
  247. package/dist/compiler/r3f.d.ts +22 -0
  248. package/dist/compiler/r3f.js +17 -0
  249. package/dist/compiler/remotion.cjs +23 -0
  250. package/dist/compiler/remotion.js +4 -0
  251. package/dist/compiler/reproducibility.cjs +39 -0
  252. package/dist/compiler/reproducibility.js +4 -0
  253. package/dist/compiler/sdf.cjs +24 -0
  254. package/dist/compiler/sdf.js +12 -0
  255. package/dist/compiler/semantic-scene.cjs +31 -0
  256. package/dist/compiler/semantic-scene.js +4 -0
  257. package/dist/compiler/state.cjs +21 -0
  258. package/dist/compiler/state.js +11 -0
  259. package/dist/compiler/trait-composition.cjs +30 -0
  260. package/dist/compiler/trait-composition.js +9 -0
  261. package/dist/compiler/unity.cjs +19 -0
  262. package/dist/compiler/unity.js +13 -0
  263. package/dist/compiler/unreal.cjs +23 -0
  264. package/dist/compiler/unreal.js +13 -0
  265. package/dist/compiler/urdf.cjs +52 -0
  266. package/dist/compiler/urdf.js +12 -0
  267. package/dist/compiler/usd-physics.cjs +26 -0
  268. package/dist/compiler/usd-physics.js +9 -0
  269. package/dist/compiler/visionos.cjs +19 -0
  270. package/dist/compiler/visionos.js +13 -0
  271. package/dist/compiler/vrchat.cjs +22 -0
  272. package/dist/compiler/vrchat.js +12 -0
  273. package/dist/compiler/vrr.cjs +24 -0
  274. package/dist/compiler/vrr.js +12 -0
  275. package/dist/compiler/wasm.cjs +36 -0
  276. package/dist/compiler/wasm.js +12 -0
  277. package/dist/compiler/webgpu.cjs +18 -0
  278. package/dist/compiler/webgpu.js +12 -0
  279. package/dist/coordinators/index.cjs +1266 -0
  280. package/dist/coordinators/index.d.ts +72 -1
  281. package/dist/coordinators/index.js +1259 -0
  282. package/dist/debugger.cjs +24 -0
  283. package/dist/debugger.js +11 -0
  284. package/dist/dist-ACXG6IH5.cjs +3113 -0
  285. package/dist/dist-VD4L6V7Q.js +3076 -0
  286. package/dist/entries/interop.cjs +64 -0
  287. package/dist/entries/interop.js +7 -0
  288. package/dist/entries/scripting.cjs +55 -0
  289. package/dist/entries/scripting.js +10 -0
  290. package/dist/hololand/index.cjs +146 -0
  291. package/dist/hololand/index.d.ts +70 -0
  292. package/dist/hololand/index.js +5 -0
  293. package/dist/index.cjs +44660 -0
  294. package/dist/index.d.ts +978 -21
  295. package/dist/index.js +41422 -0
  296. package/dist/math/tropical-spmv.cjs +45 -0
  297. package/dist/math/tropical-spmv.js +4 -0
  298. package/dist/math/vec3.cjs +57 -0
  299. package/dist/math/vec3.js +4 -0
  300. package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
  301. package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
  302. package/dist/paper-0c-spike/index.cjs +150 -0
  303. package/dist/paper-0c-spike/index.js +141 -0
  304. package/dist/parser.cjs +61 -0
  305. package/dist/parser.d.ts +11 -0
  306. package/dist/parser.js +12 -0
  307. package/dist/playwright-3AT3AKTV.cjs +98673 -0
  308. package/dist/playwright-VZPDVUEQ.js +98660 -0
  309. package/dist/reconstruction/index.cjs +153 -0
  310. package/dist/reconstruction/index.d.ts +29 -2
  311. package/dist/reconstruction/index.js +8 -0
  312. package/dist/runtime.cjs +316 -0
  313. package/dist/runtime.d.ts +61 -0
  314. package/dist/runtime.js +31 -0
  315. package/dist/self-improvement/index.cjs +563 -0
  316. package/dist/self-improvement/index.js +545 -0
  317. package/dist/src-4ROC227P.cjs +2094 -0
  318. package/dist/src-HCCCSYP7.js +2073 -0
  319. package/dist/storage/index.cjs +38 -0
  320. package/dist/storage/index.js +5 -0
  321. package/dist/testing.cjs +25 -0
  322. package/dist/testing.d.ts +70 -0
  323. package/dist/testing.js +4 -0
  324. package/dist/traitDocs/traitDocs.cjs +33 -0
  325. package/dist/traitDocs/traitDocs.js +7 -0
  326. package/dist/traits/botanical-lotus.cjs +177 -0
  327. package/dist/traits/botanical-lotus.d.ts +502 -0
  328. package/dist/traits/botanical-lotus.js +7 -0
  329. package/dist/traits/engines/index.cjs +520 -0
  330. package/dist/traits/engines/index.js +380 -0
  331. package/dist/traits/index.cjs +24548 -0
  332. package/dist/traits/index.d.ts +171 -35
  333. package/dist/traits/index.js +21638 -0
  334. package/dist/traits/simulation-solver-factory.cjs +13 -0
  335. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  336. package/dist/traits/simulation-solver-factory.js +4 -0
  337. package/dist/traits/webcam-gaze.cjs +35 -0
  338. package/dist/traits/webcam-gaze.d.ts +17 -0
  339. package/dist/traits/webcam-gaze.js +4 -0
  340. package/dist/type-checker.cjs +19 -0
  341. package/dist/type-checker.js +6 -0
  342. package/dist/world/index.cjs +947 -0
  343. package/dist/world/index.d.ts +147 -0
  344. package/dist/world/index.js +939 -0
  345. package/dist/world-model/index.cjs +1446 -0
  346. package/dist/world-model/index.d.ts +119 -0
  347. package/dist/world-model/index.js +1414 -0
  348. package/dist/wot/index.cjs +29 -0
  349. package/dist/wot/index.js +4 -0
  350. package/package.json +93 -49
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,36 @@ 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
+
47
212
  export class HSPlusRuntime {
48
213
  constructor(options?: any);
49
214
  mount(container: any): void;
@@ -138,6 +303,7 @@ export interface HoloObjectTrait extends ASTNode {
138
303
  name: string;
139
304
  config?: any;
140
305
  args?: any[];
306
+ platformConstraint?: PlatformConstraint;
141
307
  }
142
308
 
143
309
  export interface HoloSpatialGroup extends ASTNode {
@@ -695,7 +861,27 @@ export interface RaycastHit {
695
861
  }
696
862
 
697
863
  export class HoloScriptRuntime {
864
+ constructor(importLoader?: any, customFunctions?: any);
698
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;
699
885
  }
700
886
 
701
887
  export interface RuntimeOptions {
@@ -718,6 +904,10 @@ export interface ExecutionResult {
718
904
  error?: string;
719
905
  duration?: number;
720
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;
721
911
  }
722
912
 
723
913
  export interface SpatialPosition {
@@ -966,12 +1156,32 @@ export interface AccessibilityContext {
966
1156
  setHighContrast(enabled: boolean): void;
967
1157
  }
968
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
+
969
1178
  export interface TraitContext {
970
1179
  vr: VRContext;
971
1180
  physics: PhysicsContext;
972
1181
  audio: AudioContext;
973
1182
  haptics: HapticsContext;
974
1183
  accessibility?: AccessibilityContext;
1184
+ arSession?: ARSessionContext;
975
1185
  emit(event: string, payload?: unknown): void;
976
1186
  getState(): Record<string, unknown>;
977
1187
  setState(updates: Record<string, unknown>): void;
@@ -1013,6 +1223,8 @@ export class ProceduralSkill {
1013
1223
  export type VRTraitName = string;
1014
1224
 
1015
1225
  export class VRTraitRegistry {
1226
+ register(handler: TraitHandler): void;
1227
+ getHandler(name: VRTraitName): TraitHandler | undefined;
1016
1228
  attachTrait(node: HSPlusNode, traitName: VRTraitName, config: unknown, context: TraitContext): void;
1017
1229
  detachTrait(node: HSPlusNode, traitName: VRTraitName, context: TraitContext): void;
1018
1230
  updateAllTraits(node: HSPlusNode, context: TraitContext, delta: number): void;
@@ -1541,11 +1753,11 @@ export declare class AIDriverTrait {
1541
1753
  // CROSS-PLATFORM COMPILERS (re-exported from compiler subpaths)
1542
1754
  // ============================================================================
1543
1755
 
1544
- export class UnityCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1545
- export class GodotCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1546
- export class VisionOSCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1547
- export class VRChatCompiler { compile(ast: any, options?: any): any; [key: string]: any; }
1548
- 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; }
1549
1761
 
1550
1762
  // ============================================================================
1551
1763
  // REACTIVE STATE SYSTEM
@@ -1675,6 +1887,35 @@ export interface CulturalNorm {
1675
1887
  export type NormCategory = string;
1676
1888
  export type NormEnforcement = 'hard' | 'soft' | 'advisory';
1677
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;
1678
1919
 
1679
1920
  // ============================================================================
1680
1921
  // MARKETPLACE
@@ -2113,12 +2354,14 @@ export interface CompilerOptions { target?: string; optimize?: boolean; [key: st
2113
2354
  export interface CompilerDiagnostic { severity: 'error' | 'warning' | 'info'; message: string; line?: number; column?: number; [key: string]: any; }
2114
2355
  export interface IncrementalBuildResult { success: boolean; diagnostics: CompilerDiagnostic[]; artifacts: any[]; [key: string]: any; }
2115
2356
  export declare class IncrementalCompiler {
2357
+ static deserialize(json: string): IncrementalCompiler;
2116
2358
  constructor(config?: any);
2117
2359
  addSource(id: string, source: string): void;
2118
- compile(targets?: string[]): IncrementalBuildResult;
2360
+ compile(ast: HoloComposition, compileObject: (obj: any) => string, options?: any): Promise<any>;
2119
2361
  invalidate(id: string): void;
2120
2362
  [key: string]: any;
2121
2363
  }
2364
+ export declare function createIncrementalCompiler(config?: any): IncrementalCompiler;
2122
2365
 
2123
2366
  // ============================================================================
2124
2367
  // ECS INSPECTOR TYPES
@@ -2723,6 +2966,62 @@ export declare function parseHostFromUrl(url: string): string | null;
2723
2966
  export declare function truncateText(value: any, max: number): string;
2724
2967
  export declare function toStringArray(value: any): string[];
2725
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
+
2726
3025
  // ============================================================================
2727
3026
  // HOLOGRAM MEDIA PIPELINE (2D-to-3D)
2728
3027
  // ============================================================================
@@ -2925,20 +3224,20 @@ export declare function calculateRevenueDistribution(priceWei: string|bigint, au
2925
3224
  export declare function formatRevenueDistribution(dist: any): any;
2926
3225
  export declare function ethToWei(eth: string): string;
2927
3226
  export declare const PROTOCOL_CONSTANTS: any;
2928
- export class URDFCompiler { [key: string]: any; }
2929
- export class SDFCompiler { [key: string]: any; }
2930
- export class OpenXRCompiler { [key: string]: any; }
2931
- export class AndroidCompiler { [key: string]: any; }
2932
- export class AndroidXRCompiler { [key: string]: any; }
2933
- export class IOSCompiler { [key: string]: any; }
2934
- export class ARCompiler { [key: string]: any; }
2935
- export class BabylonCompiler { [key: string]: any; }
2936
- export class WebGPUCompiler { [key: string]: any; }
2937
- export class WASMCompiler { [key: string]: any; }
2938
- export class PlayCanvasCompiler { [key: string]: any; }
2939
- export class DTDLCompiler { [key: string]: any; }
2940
- export class VRRCompiler { [key: string]: any; }
2941
- 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; }
2942
3241
 
2943
3242
  export declare const VR_TRAITS: any;
2944
3243
  export declare const BUILTIN_CONSTRAINTS: any;
@@ -2946,7 +3245,7 @@ export class CircuitBreakerRegistry { [key: string]: any; }
2946
3245
  export class CircuitState { [key: string]: any; }
2947
3246
  export class ExportManager { [key: string]: any; }
2948
3247
  export declare function getExportManager(options?: Partial<ExportOptions>): any;
2949
- 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';
2950
3249
  export class ExportOptions { [key: string]: any; }
2951
3250
  export declare function selectModality(platform: any, options?: any): any;
2952
3251
  export declare function selectModalityForAll(options?: any): Map<any, any>;
@@ -3399,6 +3698,201 @@ export class WebRTCTransport {
3399
3698
  off(event: string, handler?: (...args: unknown[]) => void): void;
3400
3699
  }
3401
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
+
3402
3896
  // ── Host capabilities (packages/core/src/traits/TraitTypes.ts:134) ──────────
3403
3897
 
3404
3898
  export interface HostCapabilities {
@@ -3409,3 +3903,466 @@ export interface HostCapabilities {
3409
3903
  depthInference?: unknown;
3410
3904
  gpuCompute?: unknown;
3411
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 class UnauthorizedDaemonAccessError extends Error { constructor(message: string); }
4298
+ export declare function assertDaemonFieldSeparation(daemon: ConversationDaemon): void;
4299
+ export declare function assertCallerOwnsDaemon(daemon: ConversationDaemon, callerAgentId: string): void;
4300
+ export declare function makeDefaultConversationDaemon(daemonId: string, ownerId: string, displayName: string, careProfile: string): ConversationDaemon;
4301
+ export declare function makeEmptyContextDelta(): ContextDelta;
4302
+ export declare function generateROS2LaunchFile(packageName: string, urdfFilename: string, options?: { useSimTime?: boolean; rviz?: boolean; gazebo?: boolean; controllers?: string[]; }): string;
4303
+ export declare function generateControllersYaml(robotName: string, jointNames: string[], options?: { controllerType?: string; publishRate?: number; }): string;
4304
+
4305
+
4306
+ // Daemon Customization Profile (D.052 Brittney field / user daemon model extended)
4307
+ // Matches packages/core/src/daemon/DaemonCustomizationProfile.ts source types
4308
+ export interface DaemonRitual { name: string; trigger: string; description: string; enabled: boolean; }
4309
+ export interface DaemonFavoriteWorkflow { name: string; workflowId: string; description: string; }
4310
+ export interface DaemonStyleProfile { displayName: string; appearance: DaemonAppearanceProfile; voice: DaemonVoiceProfile; tone: DaemonToneProfile; careProfile: string; rituals: DaemonRitual[]; favoriteWorkflows: DaemonFavoriteWorkflow[]; visualTheme: string; personalNotes?: string; }
4311
+ export interface DaemonPermissionConfig { readOnly: boolean; proposeMutations: boolean; autonomousMutations: boolean; breakGlassAllowed: boolean; custodyScope: string[]; permissionEnvelope: 'read_only' | 'guarded_execute' | 'break_glass'; }
4312
+ export interface DaemonCustomizationProfile { profileId: string; ownerId: string; version: number; createdAt: string; updatedAt: string; style: DaemonStyleProfile; permissions: DaemonPermissionConfig; }
4313
+ export type DaemonCareProfile = 'attentive' | 'steady' | 'minimal' | 'intensive';
4314
+ export type DaemonVisualTheme = 'classic' | 'compact' | 'expanded' | 'terminal' | 'narrative';
4315
+
4316
+ export const DAEMON_VISUAL_THEMES: Record<string, DaemonVisualTheme>;
4317
+ export const DAEMON_CARE_PROFILES: Record<string, DaemonCareProfile>;
4318
+
4319
+ export class DaemonCustomizationSeparationError extends Error { constructor(message: string); }
4320
+
4321
+ export declare function assertCustomizationSeparation(profile: DaemonCustomizationProfile): void;
4322
+ export declare function validateCustomizationProfile(profile: DaemonCustomizationProfile): string[];
4323
+ export declare function makeDefaultStyleProfile(displayName?: string, careProfile?: string): DaemonStyleProfile;
4324
+ export declare function makeDefaultPermissionConfig(): DaemonPermissionConfig;
4325
+ export declare function makeDefaultCustomizationProfile(profileId: string, ownerId: string, displayName?: string, careProfile?: string): DaemonCustomizationProfile;
4326
+ export declare function customizationProfileToDaemon(profile: DaemonCustomizationProfile): ConversationDaemon;
4327
+ export declare function daemonToCustomizationProfile(daemon: ConversationDaemon): DaemonCustomizationProfile;
4328
+ export declare function mergeStyleUpdates(profile: DaemonCustomizationProfile, styleUpdates: Partial<DaemonStyleProfile>): DaemonCustomizationProfile;
4329
+ export declare function mergePermissionUpdates(base: DaemonPermissionConfig, updates: Partial<DaemonPermissionConfig>): DaemonPermissionConfig;
4330
+ export declare function makePresetProfile(preset: 'companion' | 'professional' | 'creative' | 'minimal' | 'guardian', profileId: string, ownerId: string): DaemonCustomizationProfile;
4331
+
4332
+
4333
+ // Pipeline parser (barrel/material-io-pipeline re-export)
4334
+ export function parsePipeline(source: string): { success: boolean; errors: any[]; ast?: any; [key: string]: any };
4335
+ export function isPipelineSource(source: string): boolean;
4336
+
4337
+ // Version utilities
4338
+ export function getVersionInfo(): { version: string; [key: string]: any };
4339
+ export function getVersionString(): string;
4340
+
4341
+ // Semantic diff
4342
+ export interface SemanticDiffResult { [key: string]: any; }
4343
+ export class SemanticDiffEngine { constructor(options?: any); diff(a: any, b: any, ...args: any[]): SemanticDiffResult; [key: string]: any; }
4344
+ export function formatDiffResult(result: any): string;
4345
+
4346
+ // Pipeline compilation helpers
4347
+ export function compilePipelineSourceToNode(source: string, options?: any): any;
4348
+ export function parseHoloPartial(source: string, options?: any): any;
4349
+
4350
+ // WASM compilation
4351
+ export function compileToWASM(ast: any, options?: any): any;
4352
+
4353
+ // Compilers re-exported to main barrel for dynamic import callers
4354
+ export class FlatSemanticCompiler { constructor(options?: any); compile(ast: any, ...args: any[]): any; [key: string]: any; }
4355
+ export class SCMCompiler { constructor(options?: any); compile(ast: any, token?: any): any; [key: string]: any; }
4356
+ export class GaussianSplattingCompiler { constructor(options?: { format?: 'gltf' | 'glb'; [key: string]: any }); compile(ast: any, token?: any, ...args: any[]): any; [key: string]: any; }
4357
+
4358
+ // Worker proxy for LSP
4359
+ export class CompilerWorkerProxy { [key: string]: any; }
4360
+
4361
+ // HoloZone for build tools
4362
+ export interface HoloZone { name?: string; [key: string]: any; }
4363
+
4364
+ // LSP completions data
4365
+ export const ErrorRecovery: any;
4366
+ export const HOLOSCHEMA_KEYWORDS: string[];
4367
+ export const HOLOSCHEMA_GEOMETRIES: string[];
4368
+ export const HOLOSCHEMA_PROPERTIES: string[];