@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
@@ -0,0 +1,421 @@
1
+ import { HoloScriptRuntime } from './chunk-JIBL5LRK.js';
2
+ import { HoloScriptCodeParser } from './chunk-URG2SJLK.js';
3
+
4
+ // src/HoloScriptDebugger.ts
5
+ var HoloScriptDebugger = class {
6
+ constructor(runtime) {
7
+ this.breakpoints = /* @__PURE__ */ new Map();
8
+ this.callStack = [];
9
+ this.currentAST = [];
10
+ this.currentNodeIndex = 0;
11
+ this.frameIdCounter = 0;
12
+ this.breakpointIdCounter = 0;
13
+ this.eventHandlers = /* @__PURE__ */ new Map();
14
+ this.state = {
15
+ status: "stopped",
16
+ currentLine: 0,
17
+ currentColumn: 0,
18
+ currentNode: null,
19
+ callStack: [],
20
+ breakpoints: []
21
+ };
22
+ this.runtime = runtime || new HoloScriptRuntime();
23
+ this.parser = new HoloScriptCodeParser();
24
+ }
25
+ /**
26
+ * Load source code for debugging
27
+ */
28
+ loadSource(code, file) {
29
+ const parseResult = this.parser.parse(code);
30
+ if (!parseResult.success) {
31
+ return {
32
+ success: false,
33
+ errors: parseResult.errors.map((e) => `Line ${e.line}: ${e.message}`)
34
+ };
35
+ }
36
+ this.currentAST = parseResult.ast;
37
+ this.currentNodeIndex = 0;
38
+ this.state.status = "stopped";
39
+ this.callStack = [];
40
+ if (file) {
41
+ for (const node of this.currentAST) {
42
+ node.file = file;
43
+ }
44
+ }
45
+ return { success: true };
46
+ }
47
+ /**
48
+ * Set a breakpoint at a line
49
+ */
50
+ setBreakpoint(line, options = {}) {
51
+ const id = `bp_${++this.breakpointIdCounter}`;
52
+ const breakpoint = {
53
+ id,
54
+ line,
55
+ column: options.column,
56
+ condition: options.condition,
57
+ hitCount: 0,
58
+ enabled: options.enabled !== false,
59
+ file: options.file
60
+ };
61
+ this.breakpoints.set(id, breakpoint);
62
+ this.updateBreakpointList();
63
+ return breakpoint;
64
+ }
65
+ /**
66
+ * Remove a breakpoint by ID
67
+ */
68
+ removeBreakpoint(id) {
69
+ const removed = this.breakpoints.delete(id);
70
+ if (removed) {
71
+ this.updateBreakpointList();
72
+ }
73
+ return removed;
74
+ }
75
+ /**
76
+ * Remove all breakpoints at a line
77
+ */
78
+ removeBreakpointsAtLine(line) {
79
+ let removed = 0;
80
+ for (const [id, bp] of this.breakpoints) {
81
+ if (bp.line === line) {
82
+ this.breakpoints.delete(id);
83
+ removed++;
84
+ }
85
+ }
86
+ if (removed > 0) {
87
+ this.updateBreakpointList();
88
+ }
89
+ return removed;
90
+ }
91
+ /**
92
+ * Toggle breakpoint enabled state
93
+ */
94
+ toggleBreakpoint(id) {
95
+ const bp = this.breakpoints.get(id);
96
+ if (bp) {
97
+ bp.enabled = !bp.enabled;
98
+ this.updateBreakpointList();
99
+ return bp.enabled;
100
+ }
101
+ return false;
102
+ }
103
+ /**
104
+ * Get all breakpoints
105
+ */
106
+ getBreakpoints() {
107
+ return Array.from(this.breakpoints.values());
108
+ }
109
+ /**
110
+ * Clear all breakpoints
111
+ */
112
+ clearBreakpoints() {
113
+ this.breakpoints.clear();
114
+ this.updateBreakpointList();
115
+ }
116
+ /**
117
+ * Start debugging from the beginning
118
+ */
119
+ async start() {
120
+ this.currentNodeIndex = 0;
121
+ this.callStack = [];
122
+ this.frameIdCounter = 0;
123
+ this.runtime.reset();
124
+ this.state.status = "running";
125
+ await this.runUntilBreakpoint();
126
+ }
127
+ /**
128
+ * Continue execution until next breakpoint or end
129
+ */
130
+ async continue() {
131
+ if (this.state.status !== "paused") return;
132
+ this.state.status = "running";
133
+ this.currentNodeIndex++;
134
+ await this.runUntilBreakpoint();
135
+ }
136
+ /**
137
+ * Step into the next node
138
+ */
139
+ async stepInto() {
140
+ if (this.state.status !== "paused") return;
141
+ this.state.status = "stepping";
142
+ await this.executeStep("into");
143
+ }
144
+ /**
145
+ * Step over the current node
146
+ */
147
+ async stepOver() {
148
+ if (this.state.status !== "paused") return;
149
+ this.state.status = "stepping";
150
+ await this.executeStep("over");
151
+ }
152
+ /**
153
+ * Step out of the current function
154
+ */
155
+ async stepOut() {
156
+ if (this.state.status !== "paused") return;
157
+ this.state.status = "stepping";
158
+ await this.executeStep("out");
159
+ }
160
+ /**
161
+ * Stop debugging
162
+ */
163
+ stop() {
164
+ this.state.status = "stopped";
165
+ this.callStack = [];
166
+ this.currentNodeIndex = 0;
167
+ this.emitEvent({ type: "state-change", data: { status: "stopped" } });
168
+ }
169
+ /**
170
+ * Pause execution
171
+ */
172
+ pause() {
173
+ if (this.state.status === "running") {
174
+ this.state.status = "paused";
175
+ this.emitEvent({ type: "state-change", data: { status: "paused" } });
176
+ }
177
+ }
178
+ /**
179
+ * Get current debug state
180
+ */
181
+ getState() {
182
+ return { ...this.state };
183
+ }
184
+ /**
185
+ * Get call stack
186
+ */
187
+ getCallStack() {
188
+ return [...this.callStack];
189
+ }
190
+ /**
191
+ * Get variables at a specific stack frame
192
+ */
193
+ getVariables(frameId) {
194
+ if (frameId !== void 0) {
195
+ const frame = this.callStack.find((f) => f.id === frameId);
196
+ return frame?.variables || /* @__PURE__ */ new Map();
197
+ }
198
+ return new Map(this.runtime.getContext().variables);
199
+ }
200
+ /**
201
+ * Evaluate an expression in the current context
202
+ */
203
+ async evaluate(expression) {
204
+ try {
205
+ const varValue = this.runtime.getVariable(expression);
206
+ if (varValue !== void 0) {
207
+ return { value: varValue };
208
+ }
209
+ const parseResult = this.parser.parse(expression);
210
+ if (!parseResult.success) {
211
+ return { value: void 0, error: parseResult.errors[0]?.message };
212
+ }
213
+ const results = await this.runtime.executeProgram(parseResult.ast);
214
+ const lastResult = results[results.length - 1];
215
+ return { value: lastResult?.output };
216
+ } catch (error) {
217
+ return { value: void 0, error: String(error) };
218
+ }
219
+ }
220
+ /**
221
+ * Set a watch expression
222
+ */
223
+ watch(expression) {
224
+ const id = `watch_${Date.now()}`;
225
+ return { id, expression };
226
+ }
227
+ /**
228
+ * Register an event handler
229
+ */
230
+ on(event, handler) {
231
+ if (!this.eventHandlers.has(event)) {
232
+ this.eventHandlers.set(event, []);
233
+ }
234
+ this.eventHandlers.get(event).push(handler);
235
+ }
236
+ /**
237
+ * Remove an event handler
238
+ */
239
+ off(event, handler) {
240
+ const handlers = this.eventHandlers.get(event);
241
+ if (handlers) {
242
+ const index = handlers.indexOf(handler);
243
+ if (index !== -1) {
244
+ handlers.splice(index, 1);
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * Get the underlying runtime
250
+ */
251
+ getRuntime() {
252
+ return this.runtime;
253
+ }
254
+ // Private methods
255
+ async runUntilBreakpoint() {
256
+ while (this.currentNodeIndex < this.currentAST.length) {
257
+ if (this.state.status === "stopped") break;
258
+ const node = this.currentAST[this.currentNodeIndex];
259
+ if (this.shouldBreakAt(node)) {
260
+ this.state.status = "paused";
261
+ this.updateCurrentState(node);
262
+ const bp = this.findBreakpointAtLine(node.line ?? 0);
263
+ if (bp) {
264
+ bp.hitCount++;
265
+ this.emitEvent({
266
+ type: "breakpoint-hit",
267
+ data: { breakpoint: bp, node, line: node.line ?? 0 }
268
+ });
269
+ }
270
+ return;
271
+ }
272
+ await this.executeNode(node);
273
+ this.currentNodeIndex++;
274
+ }
275
+ this.state.status = "stopped";
276
+ this.emitEvent({ type: "state-change", data: { status: "stopped", reason: "complete" } });
277
+ }
278
+ async executeStep(mode) {
279
+ const startStackDepth = this.callStack.length;
280
+ if (this.currentNodeIndex >= this.currentAST.length) {
281
+ this.state.status = "stopped";
282
+ return;
283
+ }
284
+ const node = this.currentAST[this.currentNodeIndex];
285
+ switch (mode) {
286
+ case "into":
287
+ await this.executeNode(node);
288
+ this.currentNodeIndex++;
289
+ break;
290
+ case "over":
291
+ await this.executeNode(node);
292
+ this.currentNodeIndex++;
293
+ break;
294
+ case "out":
295
+ while (this.currentNodeIndex < this.currentAST.length) {
296
+ await this.executeNode(this.currentAST[this.currentNodeIndex]);
297
+ this.currentNodeIndex++;
298
+ if (this.callStack.length < startStackDepth) {
299
+ break;
300
+ }
301
+ }
302
+ break;
303
+ }
304
+ if (this.currentNodeIndex < this.currentAST.length) {
305
+ this.state.status = "paused";
306
+ this.updateCurrentState(this.currentAST[this.currentNodeIndex]);
307
+ this.emitEvent({
308
+ type: "step-complete",
309
+ data: { mode, node: this.currentAST[this.currentNodeIndex] }
310
+ });
311
+ } else {
312
+ this.state.status = "stopped";
313
+ this.emitEvent({ type: "state-change", data: { status: "stopped", reason: "complete" } });
314
+ }
315
+ }
316
+ async executeNode(node) {
317
+ if (node.type === "function") {
318
+ const funcNode = node;
319
+ this.pushStackFrame(funcNode.name, node);
320
+ }
321
+ try {
322
+ const result = await this.runtime.executeNode(node);
323
+ if (!result.success && result.error) {
324
+ this.emitEvent({
325
+ type: "exception",
326
+ data: { error: result.error, node, line: node.line }
327
+ });
328
+ }
329
+ if (result.output !== void 0) {
330
+ this.emitEvent({
331
+ type: "output",
332
+ data: { output: result.output, node }
333
+ });
334
+ }
335
+ } catch (error) {
336
+ this.emitEvent({
337
+ type: "exception",
338
+ data: { error: String(error), node, line: node.line }
339
+ });
340
+ }
341
+ if (node.type === "function") {
342
+ this.popStackFrame();
343
+ }
344
+ }
345
+ shouldBreakAt(node) {
346
+ const line = node.line;
347
+ for (const bp of this.breakpoints.values()) {
348
+ if (!bp.enabled) continue;
349
+ if (bp.line !== line) continue;
350
+ if (bp.condition) {
351
+ try {
352
+ const value = this.runtime.getVariable(bp.condition);
353
+ if (!value) continue;
354
+ } catch {
355
+ continue;
356
+ }
357
+ }
358
+ return true;
359
+ }
360
+ return false;
361
+ }
362
+ findBreakpointAtLine(line) {
363
+ for (const bp of this.breakpoints.values()) {
364
+ if (bp.line === line && bp.enabled) {
365
+ return bp;
366
+ }
367
+ }
368
+ return null;
369
+ }
370
+ pushStackFrame(name, node) {
371
+ const frame = {
372
+ id: ++this.frameIdCounter,
373
+ name,
374
+ file: node.file,
375
+ line: node.line ?? 0,
376
+ column: node.column ?? 0,
377
+ variables: new Map(this.runtime.getContext().variables),
378
+ node
379
+ };
380
+ this.callStack.push(frame);
381
+ this.state.callStack = [...this.callStack];
382
+ }
383
+ popStackFrame() {
384
+ const frame = this.callStack.pop();
385
+ this.state.callStack = [...this.callStack];
386
+ return frame;
387
+ }
388
+ updateCurrentState(node) {
389
+ this.state.currentLine = node.line ?? 0;
390
+ this.state.currentColumn = node.column ?? 0;
391
+ this.state.currentNode = node;
392
+ }
393
+ updateBreakpointList() {
394
+ this.state.breakpoints = Array.from(this.breakpoints.values());
395
+ }
396
+ emitEvent(event) {
397
+ const handlers = this.eventHandlers.get(event.type) || [];
398
+ for (const handler of handlers) {
399
+ try {
400
+ handler(event);
401
+ } catch (error) {
402
+ console.error("Debug event handler error:", error);
403
+ }
404
+ }
405
+ const allHandlers = this.eventHandlers.get("all") || [];
406
+ for (const handler of allHandlers) {
407
+ try {
408
+ handler(event);
409
+ } catch (error) {
410
+ console.error("Debug event handler error:", error);
411
+ }
412
+ }
413
+ }
414
+ };
415
+ function createDebugger(runtime) {
416
+ return new HoloScriptDebugger(runtime);
417
+ }
418
+
419
+ export { HoloScriptDebugger, createDebugger };
420
+ //# sourceMappingURL=chunk-FL33V6U7.js.map
421
+ //# sourceMappingURL=chunk-FL33V6U7.js.map
@@ -0,0 +1,169 @@
1
+ 'use strict';
2
+
3
+ var chunk5S7RKFGR_cjs = require('./chunk-5S7RKFGR.cjs');
4
+ var chunkKKP7JKN4_cjs = require('./chunk-KKP7JKN4.cjs');
5
+
6
+ // src/compiler/TraitCompositionCompiler.ts
7
+ chunkKKP7JKN4_cjs.init_AgentRBAC();
8
+ chunkKKP7JKN4_cjs.init_CompilerBase();
9
+ chunk5S7RKFGR_cjs.init_ProvenanceSemiring();
10
+ var CompositionConflictError = class extends Error {
11
+ constructor(traitA, traitB, conflictKey) {
12
+ super(
13
+ `Trait composition conflict: "${traitA}" and "${traitB}" both declare conflicting key "${conflictKey}".`
14
+ );
15
+ this.traitA = traitA;
16
+ this.traitB = traitB;
17
+ this.conflictKey = conflictKey;
18
+ this.name = "CompositionConflictError";
19
+ }
20
+ };
21
+ var MissingComponentError = class extends Error {
22
+ constructor(composedName, missingComponent) {
23
+ super(
24
+ `Composition "${composedName}" references unknown component trait "${missingComponent}". Register it in TraitBinder before compiling.`
25
+ );
26
+ this.composedName = composedName;
27
+ this.missingComponent = missingComponent;
28
+ this.name = "MissingComponentError";
29
+ }
30
+ };
31
+ var TraitCompositionCompiler = class {
32
+ constructor(inheritanceResolver) {
33
+ this.inheritanceResolver = inheritanceResolver;
34
+ }
35
+ /**
36
+ * Set or replace the trait inheritance resolver.
37
+ * Call this after constructing if the resolver becomes available later.
38
+ */
39
+ setInheritanceResolver(resolver) {
40
+ this.inheritanceResolver = resolver;
41
+ }
42
+ /**
43
+ * Compile a set of composition declarations.
44
+ *
45
+ * @param decls - Declarations to compile.
46
+ * @param getHandler - Lookup a component handler by name.
47
+ * @param traitGraph - Optional TraitDependencyGraph; if supplied, new
48
+ * composed traits are registered there.
49
+ * @param agentToken - JWT token proving agent identity (optional for backwards compatibility).
50
+ * @returns Compiled ComposedTraitDef[], in declaration order.
51
+ * @throws UnauthorizedTraitCompositionAccessError if token is provided but invalid.
52
+ */
53
+ compile(decls, getHandler, traitGraph, agentToken) {
54
+ this.validateAccess(agentToken);
55
+ return decls.map((decl) => this.compileOne(decl, getHandler, traitGraph));
56
+ }
57
+ // ---------------------------------------------------------------------------
58
+ // RBAC enforcement
59
+ // ---------------------------------------------------------------------------
60
+ /**
61
+ * Validate agent has permission to compile trait compositions.
62
+ * Skips validation when no token is provided (backwards compatibility / testing).
63
+ */
64
+ validateAccess(agentToken) {
65
+ if (!agentToken) return;
66
+ const rbac = chunkKKP7JKN4_cjs.getRBAC();
67
+ const decision = rbac.checkAccess({
68
+ token: agentToken,
69
+ resourceType: "ast" /* AST */,
70
+ operation: "read",
71
+ expectedWorkflowStep: "generate_assembly" /* GENERATE_ASSEMBLY */
72
+ });
73
+ if (!decision.allowed) {
74
+ throw new UnauthorizedTraitCompositionAccessError(decision, "TraitCompositionCompiler");
75
+ }
76
+ }
77
+ // ---------------------------------------------------------------------------
78
+ // Private
79
+ // ---------------------------------------------------------------------------
80
+ compileOne(decl, getHandler, traitGraph) {
81
+ const handlers = decl.components.map((name) => {
82
+ const handler = getHandler(name);
83
+ if (!handler) throw new MissingComponentError(decl.name, name);
84
+ return { name, handler };
85
+ });
86
+ if (chunk5S7RKFGR_cjs.authorityWeight(
87
+ decl.provenance?.context?.authorityLevel ?? 0
88
+ ) < 100) {
89
+ this.detectConflicts(handlers);
90
+ }
91
+ const semiring = new chunk5S7RKFGR_cjs.ProvenanceSemiring();
92
+ const applications = [];
93
+ for (const { name, handler } of handlers) {
94
+ let configAccumulator = {};
95
+ if (this.inheritanceResolver && this.inheritanceResolver.hasTrait(name)) {
96
+ const resolvedProps = this.inheritanceResolver.getFlattenedProperties(name);
97
+ configAccumulator = { ...resolvedProps };
98
+ }
99
+ if (handler.defaultConfig) {
100
+ configAccumulator = { ...configAccumulator, ...handler.defaultConfig };
101
+ }
102
+ applications.push({ name, config: configAccumulator });
103
+ }
104
+ if (decl.overrides) {
105
+ applications.push({
106
+ name: `${decl.name}_overrides`,
107
+ config: decl.overrides,
108
+ context: { authorityLevel: Number.MAX_SAFE_INTEGER }
109
+ // Overrides always win!
110
+ });
111
+ }
112
+ const { config: merged, errors } = semiring.add(applications);
113
+ if (errors.length > 0) {
114
+ const match = errors[0].match(/Composition conflict: @(.+) and @(.+) both supply '(.+)'/);
115
+ if (match) {
116
+ throw new CompositionConflictError(match[1], match[2], match[3]);
117
+ } else {
118
+ throw new CompositionConflictError("Merge", "Failure", errors[0]);
119
+ }
120
+ }
121
+ if (this.inheritanceResolver && decl.components.length > 1) {
122
+ const diamonds = this.inheritanceResolver.detectDiamondInheritance(decl.components);
123
+ for (const diamond of diamonds) {
124
+ }
125
+ }
126
+ if (traitGraph) {
127
+ traitGraph.registerTrait({
128
+ name: decl.name,
129
+ requires: decl.components,
130
+ conflicts: []
131
+ });
132
+ }
133
+ return {
134
+ name: decl.name,
135
+ components: decl.components,
136
+ defaultConfig: merged
137
+ };
138
+ }
139
+ /**
140
+ * Naive conflict check: if handler A's `conflicts` array includes handler B's
141
+ * name (or vice-versa), throw.
142
+ */
143
+ detectConflicts(handlers) {
144
+ for (let i = 0; i < handlers.length; i++) {
145
+ const a = handlers[i];
146
+ const aConflicts = a.handler.conflicts ?? [];
147
+ for (let j = i + 1; j < handlers.length; j++) {
148
+ const b = handlers[j];
149
+ const bConflicts = b.handler.conflicts ?? [];
150
+ if (aConflicts.includes(b.name) || bConflicts.includes(a.name)) {
151
+ throw new CompositionConflictError(a.name, b.name, b.name);
152
+ }
153
+ }
154
+ }
155
+ }
156
+ };
157
+ var UnauthorizedTraitCompositionAccessError = class extends chunkKKP7JKN4_cjs.UnauthorizedCompilerAccessError {
158
+ constructor(decision, compilerName) {
159
+ super(decision, "trait composition", compilerName);
160
+ this.name = "UnauthorizedTraitCompositionAccessError";
161
+ }
162
+ };
163
+
164
+ exports.CompositionConflictError = CompositionConflictError;
165
+ exports.MissingComponentError = MissingComponentError;
166
+ exports.TraitCompositionCompiler = TraitCompositionCompiler;
167
+ exports.UnauthorizedTraitCompositionAccessError = UnauthorizedTraitCompositionAccessError;
168
+ //# sourceMappingURL=chunk-FYSPZT4V.cjs.map
169
+ //# sourceMappingURL=chunk-FYSPZT4V.cjs.map