@holoscript/core 6.0.4 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/bin/holoscript.cjs +3 -0
  4. package/dist/GLTFPipeline-SFIORFJU.js +16 -0
  5. package/dist/GLTFPipeline-VNNDPONV.cjs +37 -0
  6. package/dist/{HoloScriptPlusParser-BN6KVRCM.js → HoloScriptPlusParser-7FBIFUFC.js} +6 -5
  7. package/dist/{HoloScriptPlusParser-NC5FE6AL.cjs → HoloScriptPlusParser-A2W7OCN2.cjs} +17 -16
  8. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  9. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  10. package/dist/{USDZExporter-UWGWNMMD.cjs → USDZExporter-3FWJ25JI.cjs} +344 -16
  11. package/dist/{USDZExporter-NTMBNTDB.js → USDZExporter-D2HQLQYK.js} +344 -16
  12. package/dist/agents/index.cjs +19 -0
  13. package/dist/agents/index.d.ts +100 -0
  14. package/dist/agents/index.js +17 -0
  15. package/dist/chunk-22W6NGYN.js +725 -0
  16. package/dist/{chunk-5OEOHAAW.cjs → chunk-27MPVJVZ.cjs} +64 -28
  17. package/dist/{chunk-RVYPEYPX.js → chunk-2A7FURVO.js} +44 -8
  18. package/dist/{chunk-XCWFGZAA.js → chunk-2B7WVIDZ.js} +11 -8
  19. package/dist/{chunk-NDQNIJEH.js → chunk-2BSMSUCE.js} +250 -24
  20. package/dist/chunk-2HLIGOKU.cjs +5546 -0
  21. package/dist/{chunk-EONILVMF.js → chunk-2M2DPHKB.js} +4 -4
  22. package/dist/{chunk-G7CT3EMP.cjs → chunk-2YSNA2F2.cjs} +319 -47
  23. package/dist/{chunk-IWI6J7FX.js → chunk-33XCOVE3.js} +5 -5
  24. package/dist/chunk-3FOKASKO.cjs +348 -0
  25. package/dist/{chunk-DXJQDCFL.js → chunk-4C57PR42.js} +3 -3
  26. package/dist/{chunk-MPXBVFHQ.js → chunk-4N4SXXWF.js} +4 -3
  27. package/dist/chunk-4PDEPEQW.cjs +41 -0
  28. package/dist/chunk-4R6HPSHJ.js +2176 -0
  29. package/dist/chunk-4R6SBXDB.js +45 -0
  30. package/dist/chunk-4SY77NA4.cjs +413 -0
  31. package/dist/{chunk-YCXFCXDS.js → chunk-4UUKPCY4.js} +668 -110
  32. package/dist/{chunk-LGGRPKTV.cjs → chunk-52ULD552.cjs} +114 -35
  33. package/dist/{chunk-L4G4RLXX.js → chunk-5CKA5SXU.js} +438 -22
  34. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  35. package/dist/{chunk-FF3Q7ADR.js → chunk-5JEU52DW.js} +5 -3
  36. package/dist/chunk-5N54COB6.cjs +327 -0
  37. package/dist/chunk-5S7RKFGR.cjs +446 -0
  38. package/dist/{chunk-KED34ILP.js → chunk-6ASWLXXN.js} +21 -9
  39. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  40. package/dist/{chunk-CAUCGUEA.cjs → chunk-6EX3I5P4.cjs} +6 -6
  41. package/dist/chunk-6FGQNDR4.js +5731 -0
  42. package/dist/{chunk-72EQECGT.cjs → chunk-6KMK2UXT.cjs} +122 -46
  43. package/dist/{chunk-G4VZTCIB.js → chunk-6L4VE27M.js} +33 -23
  44. package/dist/{chunk-ATSKSYVE.cjs → chunk-6S6TKNEA.cjs} +6478 -1738
  45. package/dist/chunk-77V4GTCA.js +596 -0
  46. package/dist/{chunk-ZP4D3CSX.cjs → chunk-7AD52FRS.cjs} +16 -16
  47. package/dist/chunk-A6KINLZJ.js +236 -0
  48. package/dist/chunk-AIA52I7T.cjs +543 -0
  49. package/dist/chunk-AIX25INK.cjs +602 -0
  50. package/dist/{chunk-B5TCIAPQ.cjs → chunk-AO4I2Z7M.cjs} +17 -18
  51. package/dist/{chunk-Q5SJOGHQ.cjs → chunk-BPICAGBV.cjs} +324 -199
  52. package/dist/chunk-BRQJKJGT.cjs +20 -0
  53. package/dist/{chunk-3FXV5S25.cjs → chunk-C37BHB7N.cjs} +6 -3
  54. package/dist/{chunk-XUTX5CBW.js → chunk-CBJY23VL.js} +3 -3
  55. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  56. package/dist/{chunk-XXINBTZK.cjs → chunk-DIL6DDDN.cjs} +101 -45
  57. package/dist/chunk-DMXC24WV.js +404 -0
  58. package/dist/{chunk-PMGODDJA.cjs → chunk-DTGBOSEM.cjs} +12 -12
  59. package/dist/chunk-E7JP3BS3.cjs +61 -0
  60. package/dist/{chunk-HJJLD366.js → chunk-EKBKLK7P.js} +3 -3
  61. package/dist/chunk-EKYL4PE3.cjs +404 -0
  62. package/dist/{chunk-UPJBDCVF.js → chunk-EMMC5CSQ.js} +12 -8
  63. package/dist/{chunk-GGHSW2NN.js → chunk-EOBB6A4B.js} +6389 -1718
  64. package/dist/chunk-EOFNVCM6.js +325 -0
  65. package/dist/{chunk-FHQVYCH2.js → chunk-ER4GATIU.js} +7 -7
  66. package/dist/{chunk-N5FTS757.cjs → chunk-EXKSFGSX.cjs} +7 -148
  67. package/dist/{chunk-LK5IAVH6.cjs → chunk-EXUP2BUM.cjs} +27 -27
  68. package/dist/chunk-FDSGHPAK.js +130 -0
  69. package/dist/chunk-FEWUHQNM.cjs +144 -0
  70. package/dist/{chunk-5TOFIR6L.js → chunk-FGGJQRLZ.js} +5 -142
  71. package/dist/chunk-FHP6LXJS.js +415 -0
  72. package/dist/{chunk-7LCYLPW2.cjs → chunk-FJPADH77.cjs} +7 -4
  73. package/dist/{chunk-T36DDXSF.js → chunk-FXKTYFYA.js} +150 -25
  74. package/dist/chunk-G2LS3RFO.js +623 -0
  75. package/dist/chunk-GCMWDSBZ.cjs +729 -0
  76. package/dist/chunk-GJNCFRJU.cjs +125 -0
  77. package/dist/{chunk-Q4QX3AET.cjs → chunk-GMP623FG.cjs} +16 -13
  78. package/dist/{chunk-XD6IYDUX.js → chunk-GN3KDX4W.js} +119 -43
  79. package/dist/{chunk-QLEAOI3Q.cjs → chunk-GQYKQSTC.cjs} +10 -10
  80. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  81. package/dist/chunk-GZG4KA4E.js +529 -0
  82. package/dist/{chunk-BND3ST2K.cjs → chunk-H3MGK7TX.cjs} +42 -32
  83. package/dist/{chunk-XRKWN5PL.cjs → chunk-H5DZIHJP.cjs} +14 -18
  84. package/dist/{chunk-Z34RLXRA.cjs → chunk-HANL7K2Q.cjs} +65 -50
  85. package/dist/{chunk-3SAK5KFL.cjs → chunk-HCCQLAA4.cjs} +2 -11
  86. package/dist/{chunk-LXJ4667L.cjs → chunk-HGVXZDSK.cjs} +108 -20
  87. package/dist/{chunk-3FJCK5XA.js → chunk-HRODTEEO.js} +30 -10
  88. package/dist/{chunk-HQUEA5R6.cjs → chunk-HZCQO4JM.cjs} +6 -6
  89. package/dist/{chunk-S565K7NK.js → chunk-I2O7TW6B.js} +12 -8
  90. package/dist/chunk-IHESJZSW.js +4490 -0
  91. package/dist/{chunk-FSF7EQVA.cjs → chunk-IRWWS72C.cjs} +63 -22
  92. package/dist/{chunk-5O6TQC6M.cjs → chunk-IVIA7K75.cjs} +689 -127
  93. package/dist/chunk-IVY74O6C.js +247 -0
  94. package/dist/chunk-J32ZJZJH.js +554 -0
  95. package/dist/chunk-J56PTA46.cjs +639 -0
  96. package/dist/chunk-JD7CIZ33.js +1949 -0
  97. package/dist/{chunk-T7LEXZUZ.cjs → chunk-JIYN45TV.cjs} +14 -15
  98. package/dist/{chunk-FFKU7BTK.cjs → chunk-KHPCJRI3.cjs} +24 -21
  99. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  100. package/dist/chunk-KPJL34Y7.cjs +186 -0
  101. package/dist/{chunk-HE7ULERA.cjs → chunk-KQTPCYTG.cjs} +128 -44
  102. package/dist/{chunk-OFKWH2IP.js → chunk-KX76JUQY.js} +3 -3
  103. package/dist/{chunk-33LSUQDD.cjs → chunk-L63H3SQ4.cjs} +43 -31
  104. package/dist/{chunk-K6EKD26I.js → chunk-LAOCQJ2M.js} +64 -8
  105. package/dist/chunk-LM2VU56C.cjs +37 -0
  106. package/dist/chunk-M56JSP4A.js +400 -0
  107. package/dist/chunk-MBOOR7X4.js +18 -0
  108. package/dist/{chunk-XWPNTWDN.cjs → chunk-MJVIRCUV.cjs} +31 -27
  109. package/dist/{chunk-SDAMZIRE.js → chunk-MSMIFMBL.js} +135 -18
  110. package/dist/{chunk-56IF4NTA.js → chunk-MXFUTKCO.js} +18 -18
  111. package/dist/{chunk-6UEHYZ7V.cjs → chunk-MXJ5SS53.cjs} +447 -31
  112. package/dist/chunk-MYY4PMWX.cjs +264 -0
  113. package/dist/chunk-N75IH2HY.js +258 -0
  114. package/dist/{chunk-GVUR45UF.cjs → chunk-NG77ATEW.cjs} +7 -6
  115. package/dist/chunk-NW5G5FBQ.js +215 -0
  116. package/dist/{chunk-E3FWRT3Z.js → chunk-OEFY723R.js} +28 -13
  117. package/dist/chunk-OEV5RMZO.cjs +3042 -0
  118. package/dist/{chunk-X4ZF6CNE.cjs → chunk-OIQYIIO3.cjs} +7 -7
  119. package/dist/{chunk-2CWOLHTE.js → chunk-OL46QLBJ.js} +3 -11
  120. package/dist/chunk-OPZ7XDDI.js +487 -0
  121. package/dist/chunk-OSYNRVOV.cjs +243 -0
  122. package/dist/{chunk-TEWCN33Y.js → chunk-P7YIA5LN.js} +91 -7
  123. package/dist/chunk-PGANYCAG.cjs +220 -0
  124. package/dist/{chunk-CS2EMTGF.js → chunk-QAVXL2IH.js} +62 -21
  125. package/dist/{chunk-T4NKMBDL.js → chunk-QCCBXSCE.js} +1666 -756
  126. package/dist/{chunk-F4IULT7N.js → chunk-QPOQ7VPI.js} +16 -13
  127. package/dist/{chunk-6XSERL6L.js → chunk-QTPMJRGS.js} +3108 -2827
  128. package/dist/{chunk-F3HH56EB.cjs → chunk-QWNQ523V.cjs} +1730 -823
  129. package/dist/{chunk-R7MA7QWV.js → chunk-R3IVNY6P.js} +102 -23
  130. package/dist/chunk-R75BSDH7.cjs +50 -0
  131. package/dist/chunk-RAXUF5DF.cjs +2196 -0
  132. package/dist/{chunk-BF2235SI.cjs → chunk-RMHC2VG7.cjs} +2876 -2592
  133. package/dist/chunk-RUXGBKPS.cjs +4517 -0
  134. package/dist/{chunk-UERJ3YJV.js → chunk-S5IFXW6E.js} +113 -9
  135. package/dist/{chunk-27LWW5FU.cjs → chunk-S6YWHCKV.cjs} +5 -5
  136. package/dist/{chunk-WB4Z63GG.js → chunk-SIEXCILW.js} +3 -3
  137. package/dist/{chunk-CLYEIWA5.cjs → chunk-SLU6UPJI.cjs} +5 -3
  138. package/dist/{chunk-LZ266PCM.cjs → chunk-T5J7ZKP3.cjs} +446 -60
  139. package/dist/chunk-TDCNJHWO.js +341 -0
  140. package/dist/{chunk-IHOUYQIA.js → chunk-TG7O4WBC.js} +5 -5
  141. package/dist/chunk-THCK6ECW.js +2085 -0
  142. package/dist/chunk-TJHVSBP2.js +439 -0
  143. package/dist/chunk-TK74TR4H.js +5541 -0
  144. package/dist/{chunk-CDPGV4DN.js → chunk-U4NBQJBY.js} +14 -15
  145. package/dist/{chunk-NOZZ46QU.js → chunk-UD3DSHZM.js} +10 -14
  146. package/dist/chunk-UDMYRFDZ.js +3038 -0
  147. package/dist/{chunk-WDW67DZB.cjs → chunk-UOIGFQXC.cjs} +90 -68
  148. package/dist/{chunk-BU7VWW2K.js → chunk-URG2SJLK.js} +14 -15
  149. package/dist/{chunk-EQV4R3EV.cjs → chunk-V73NPPTM.cjs} +152 -35
  150. package/dist/chunk-VECQYRXL.js +474 -0
  151. package/dist/chunk-VEXPG4WN.js +1989 -0
  152. package/dist/{chunk-LDP5OK6G.js → chunk-VMLKSV26.js} +5 -5
  153. package/dist/{chunk-5BGSECRJ.cjs → chunk-VSK7W3O5.cjs} +47 -27
  154. package/dist/chunk-VVKVQZI6.js +55 -0
  155. package/dist/{chunk-YQK5JNFK.js → chunk-W55Z7QIX.js} +103 -15
  156. package/dist/{chunk-KSGXLT74.cjs → chunk-W6P2GBHH.cjs} +3 -3
  157. package/dist/{chunk-IBDG74G2.cjs → chunk-W6RW64BB.cjs} +7 -7
  158. package/dist/chunk-WDT3JTGM.cjs +483 -0
  159. package/dist/{chunk-HPS76H7Q.js → chunk-WKX5AMOY.js} +3 -3
  160. package/dist/chunk-WNNE3PO3.js +34 -0
  161. package/dist/{chunk-XG23EUQX.cjs → chunk-WRLUBRKS.cjs} +538 -312
  162. package/dist/{chunk-IFNQFCTM.js → chunk-WRNEH5MO.js} +79 -8
  163. package/dist/{chunk-54FHG2MX.js → chunk-WRWEX5ZF.js} +7 -4
  164. package/dist/{chunk-KCQ5NDYC.cjs → chunk-X3GJPRVK.cjs} +154 -80
  165. package/dist/{chunk-7AGYRWKW.cjs → chunk-XFXGA5IW.cjs} +126 -22
  166. package/dist/{chunk-TQSZUOW5.cjs → chunk-XHIV6326.cjs} +4 -4
  167. package/dist/chunk-XJAN7CZG.cjs +432 -0
  168. package/dist/chunk-XL6INWKT.js +121 -0
  169. package/dist/{chunk-E3UALNFA.js → chunk-XMWZG36H.js} +4 -4
  170. package/dist/{chunk-BKIGPPVM.js → chunk-XSFNHP2E.js} +6 -3
  171. package/dist/{chunk-H5Z7NASB.js → chunk-XT6JY5W5.js} +25 -3
  172. package/dist/chunk-XXZJEFKW.cjs +490 -0
  173. package/dist/chunk-Y3MWXQSB.cjs +5737 -0
  174. package/dist/chunk-YF2I3MV3.js +46 -0
  175. package/dist/{chunk-V3NN3HPP.js → chunk-YIMN575O.js} +437 -52
  176. package/dist/chunk-YIVFJNYV.js +176 -0
  177. package/dist/{chunk-MD6KDHVE.cjs → chunk-YKGPCZEE.cjs} +10 -10
  178. package/dist/chunk-YQELFNJV.js +39 -0
  179. package/dist/chunk-Z5XMPRNC.cjs +5390 -0
  180. package/dist/{chunk-3FYZOR7S.cjs → chunk-ZDSYWBIE.cjs} +18 -18
  181. package/dist/{chunk-6TZPZCOJ.cjs → chunk-ZKSS47EV.cjs} +24 -19
  182. package/dist/chunk-ZUL5AVTX.cjs +1993 -0
  183. package/dist/chunk-ZXBZVXDW.js +5386 -0
  184. package/dist/{chunk-DMG7C4H2.js → chunk-ZZ7RO2UQ.js} +312 -44
  185. package/dist/cli/holoscript-runner.cjs +200 -204
  186. package/dist/cli/holoscript-runner.js +144 -148
  187. package/dist/codebase/index.cjs +1 -1
  188. package/dist/codebase/index.js +1 -1
  189. package/dist/compiler/agent-inference.cjs +10 -7
  190. package/dist/compiler/agent-inference.js +6 -3
  191. package/dist/compiler/android-xr.cjs +12 -7
  192. package/dist/compiler/android-xr.js +10 -5
  193. package/dist/compiler/android.cjs +12 -8
  194. package/dist/compiler/android.js +10 -6
  195. package/dist/compiler/ar.cjs +9 -6
  196. package/dist/compiler/ar.js +7 -4
  197. package/dist/compiler/babylon.cjs +12 -8
  198. package/dist/compiler/babylon.js +11 -7
  199. package/dist/compiler/business-quest.cjs +43 -0
  200. package/dist/compiler/business-quest.js +4 -0
  201. package/dist/compiler/coco.cjs +1 -1
  202. package/dist/compiler/coco.js +1 -1
  203. package/dist/compiler/context.cjs +25 -0
  204. package/dist/compiler/context.d.ts +28 -0
  205. package/dist/compiler/context.js +8 -0
  206. package/dist/compiler/domain-block-utils.cjs +155 -152
  207. package/dist/compiler/domain-block-utils.js +7 -4
  208. package/dist/compiler/dtdl.cjs +10 -7
  209. package/dist/compiler/dtdl.js +7 -4
  210. package/dist/compiler/gltf-pipeline.cjs +9 -9
  211. package/dist/compiler/gltf-pipeline.js +2 -2
  212. package/dist/compiler/godot.cjs +9 -6
  213. package/dist/compiler/godot.js +8 -5
  214. package/dist/compiler/incremental.cjs +12 -7
  215. package/dist/compiler/incremental.js +7 -2
  216. package/dist/compiler/index.cjs +3550 -268
  217. package/dist/compiler/index.d.ts +404 -21
  218. package/dist/compiler/index.js +3280 -138
  219. package/dist/compiler/ios.cjs +11 -8
  220. package/dist/compiler/ios.js +9 -6
  221. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  222. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  223. package/dist/compiler/llm-provider-capabilities.js +8 -0
  224. package/dist/compiler/multi-layer.cjs +14 -10
  225. package/dist/compiler/multi-layer.js +13 -9
  226. package/dist/compiler/nodetoy.cjs +5 -5
  227. package/dist/compiler/nodetoy.js +2 -2
  228. package/dist/compiler/openxr.cjs +10 -6
  229. package/dist/compiler/openxr.js +9 -5
  230. package/dist/compiler/playcanvas.cjs +10 -7
  231. package/dist/compiler/playcanvas.js +9 -6
  232. package/dist/compiler/r3f.cjs +17 -13
  233. package/dist/compiler/r3f.d.ts +22 -0
  234. package/dist/compiler/r3f.js +12 -8
  235. package/dist/compiler/remotion.cjs +1 -1
  236. package/dist/compiler/remotion.js +1 -1
  237. package/dist/compiler/reproducibility.cjs +1 -1
  238. package/dist/compiler/reproducibility.js +1 -1
  239. package/dist/compiler/sdf.cjs +10 -7
  240. package/dist/compiler/sdf.js +8 -5
  241. package/dist/compiler/semantic-scene.cjs +1 -1
  242. package/dist/compiler/semantic-scene.js +1 -1
  243. package/dist/compiler/state.cjs +9 -5
  244. package/dist/compiler/state.js +7 -3
  245. package/dist/compiler/trait-composition.cjs +11 -7
  246. package/dist/compiler/trait-composition.js +7 -3
  247. package/dist/compiler/unity.cjs +10 -6
  248. package/dist/compiler/unity.js +9 -5
  249. package/dist/compiler/unreal.cjs +11 -7
  250. package/dist/compiler/unreal.js +9 -5
  251. package/dist/compiler/urdf.cjs +20 -13
  252. package/dist/compiler/urdf.js +8 -5
  253. package/dist/compiler/usd-physics.cjs +10 -7
  254. package/dist/compiler/usd-physics.js +7 -4
  255. package/dist/compiler/visionos.cjs +10 -6
  256. package/dist/compiler/visionos.js +9 -5
  257. package/dist/compiler/vrchat.cjs +10 -7
  258. package/dist/compiler/vrchat.js +8 -5
  259. package/dist/compiler/vrr.cjs +10 -7
  260. package/dist/compiler/vrr.js +8 -5
  261. package/dist/compiler/wasm.cjs +13 -10
  262. package/dist/compiler/wasm.js +8 -5
  263. package/dist/compiler/webgpu.cjs +9 -6
  264. package/dist/compiler/webgpu.js +8 -5
  265. package/dist/constants.d.ts +3 -2
  266. package/dist/coordinators/index.cjs +1266 -0
  267. package/dist/coordinators/index.d.ts +260 -0
  268. package/dist/coordinators/index.js +1259 -0
  269. package/dist/debugger.cjs +9 -7
  270. package/dist/debugger.js +7 -5
  271. package/dist/entries/interop.cjs +23 -21
  272. package/dist/entries/interop.js +5 -3
  273. package/dist/entries/scripting.cjs +18 -18
  274. package/dist/entries/scripting.js +8 -8
  275. package/dist/hololand/index.cjs +146 -0
  276. package/dist/hololand/index.d.ts +70 -0
  277. package/dist/hololand/index.js +5 -0
  278. package/dist/index.cjs +20332 -18121
  279. package/dist/index.d.ts +1477 -40
  280. package/dist/index.js +19451 -17638
  281. package/dist/math/tropical-spmv.cjs +45 -0
  282. package/dist/math/tropical-spmv.js +4 -0
  283. package/dist/math/vec3.cjs +14 -14
  284. package/dist/math/vec3.js +2 -2
  285. package/dist/{ml-dsa-PHCWUBPX.cjs → ml-dsa-FSKBTE3W.cjs} +177 -90
  286. package/dist/{ml-dsa-WYLJHJO6.js → ml-dsa-Z7JDKW4L.js} +158 -71
  287. package/dist/paper-0c-spike/index.cjs +150 -0
  288. package/dist/paper-0c-spike/index.d.ts +29 -0
  289. package/dist/paper-0c-spike/index.js +141 -0
  290. package/dist/parser.cjs +45 -11
  291. package/dist/parser.d.ts +11 -0
  292. package/dist/parser.js +10 -8
  293. package/dist/{playwright-RL6GY4F7.cjs → playwright-3AT3AKTV.cjs} +1985 -1985
  294. package/dist/{playwright-5OSAPTNH.js → playwright-VZPDVUEQ.js} +3 -3
  295. package/dist/reconstruction/index.cjs +153 -0
  296. package/dist/reconstruction/index.d.ts +105 -0
  297. package/dist/reconstruction/index.js +8 -0
  298. package/dist/runtime.cjs +7 -5
  299. package/dist/runtime.js +6 -4
  300. package/dist/self-improvement/index.cjs +563 -0
  301. package/dist/self-improvement/index.js +545 -0
  302. package/dist/storage/index.cjs +10 -9
  303. package/dist/storage/index.js +3 -2
  304. package/dist/testing.cjs +25 -0
  305. package/dist/testing.d.ts +70 -0
  306. package/dist/testing.js +4 -0
  307. package/dist/tools/index.d.ts +22 -1
  308. package/dist/traitDocs/traitDocs.cjs +33 -0
  309. package/dist/traitDocs/traitDocs.d.ts +69 -0
  310. package/dist/traitDocs/traitDocs.js +7 -0
  311. package/dist/traits/botanical-lotus.cjs +41 -0
  312. package/dist/traits/botanical-lotus.d.ts +172 -0
  313. package/dist/traits/botanical-lotus.js +4 -0
  314. package/dist/traits/engines/index.cjs +520 -0
  315. package/dist/traits/engines/index.js +380 -0
  316. package/dist/traits/index.cjs +17630 -7881
  317. package/dist/traits/index.d.ts +197 -0
  318. package/dist/traits/index.js +16573 -7193
  319. package/dist/traits/simulation-solver-factory.cjs +13 -0
  320. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  321. package/dist/traits/simulation-solver-factory.js +4 -0
  322. package/dist/traits/webcam-gaze.cjs +35 -0
  323. package/dist/traits/webcam-gaze.d.ts +17 -0
  324. package/dist/traits/webcam-gaze.js +4 -0
  325. package/dist/type-checker.cjs +6 -5
  326. package/dist/type-checker.js +4 -3
  327. package/dist/world/index.cjs +947 -0
  328. package/dist/world/index.d.ts +147 -0
  329. package/dist/world/index.js +939 -0
  330. package/dist/world-model/index.cjs +1446 -0
  331. package/dist/world-model/index.d.ts +119 -0
  332. package/dist/world-model/index.js +1414 -0
  333. package/dist/wot/index.cjs +29 -0
  334. package/dist/wot/index.js +4 -0
  335. package/package.json +153 -61
  336. package/dist/GLTFPipeline-DEN36VNK.js +0 -12
  337. package/dist/GLTFPipeline-YPCAK236.cjs +0 -33
  338. package/dist/chunk-4XSNJCLC.cjs +0 -1859
  339. package/dist/chunk-A7PIMZGU.js +0 -263
  340. package/dist/chunk-BWFJEM5A.js +0 -5419
  341. package/dist/chunk-CBJSLA2E.cjs +0 -5423
  342. package/dist/chunk-K3JDKWGI.cjs +0 -270
  343. package/dist/chunk-LSW7P7ML.js +0 -3675
  344. package/dist/chunk-MEASWI2Y.js +0 -126
  345. package/dist/chunk-NCUKG4SK.cjs +0 -3075
  346. package/dist/chunk-Q5JT3YML.cjs +0 -129
  347. package/dist/chunk-QGKNANZ3.js +0 -3071
  348. package/dist/chunk-S2N5TNMA.js +0 -1855
  349. package/dist/chunk-TSH3MSQU.cjs +0 -129
  350. package/dist/chunk-WGMEAYBG.js +0 -126
  351. package/dist/chunk-X6SEAXAX.cjs +0 -3681
@@ -0,0 +1,596 @@
1
+ import { logger } from './chunk-PHENW4MQ.js';
2
+ import { calculatePosition } from '@holoscript/engine/orbital';
3
+
4
+ // src/traits/JEPAPredictor.ts
5
+ var JEPAPredictor = class {
6
+ constructor(config, weights) {
7
+ if (!Number.isInteger(config.latentDim) || config.latentDim < 1) {
8
+ throw new RangeError(`JEPAPredictor: latentDim must be a positive integer, got ${config.latentDim}`);
9
+ }
10
+ if (!Number.isInteger(config.condDim) || config.condDim < 0) {
11
+ throw new RangeError(`JEPAPredictor: condDim must be a non-negative integer, got ${config.condDim}`);
12
+ }
13
+ this.latentDim = config.latentDim;
14
+ this.condDim = config.condDim;
15
+ this.weights = weights ?? initDeterministicWeights(config.latentDim, config.condDim);
16
+ }
17
+ /**
18
+ * Forward pass: predict next-state embedding.
19
+ *
20
+ * @param contextEmb Float32Array of length latentDim (context encoder output)
21
+ * @param conditioning Float32Array of length condDim, or null/undefined for
22
+ * unconditional prediction
23
+ */
24
+ forward(contextEmb, conditioning) {
25
+ const { latentDim, condDim } = this;
26
+ const inputDim = latentDim + condDim;
27
+ if (contextEmb.length !== latentDim) {
28
+ throw new RangeError(
29
+ `JEPAPredictor.forward: contextEmb.length=${contextEmb.length} \u2260 latentDim=${latentDim}`
30
+ );
31
+ }
32
+ const input = new Float32Array(inputDim);
33
+ input.set(contextEmb, 0);
34
+ if (condDim > 0) {
35
+ const cond = conditioning ?? new Float32Array(condDim);
36
+ if (cond.length !== condDim) {
37
+ throw new RangeError(
38
+ `JEPAPredictor.forward: conditioning.length=${cond.length} \u2260 condDim=${condDim}`
39
+ );
40
+ }
41
+ input.set(cond, latentDim);
42
+ }
43
+ const hidden = matMulVec(this.weights.W1, input, inputDim, latentDim);
44
+ addInPlace(hidden, this.weights.b1);
45
+ reluInPlace(hidden);
46
+ const predicted = matMulVec(this.weights.W2, hidden, latentDim, latentDim);
47
+ addInPlace(predicted, this.weights.b2);
48
+ return { predicted, hidden };
49
+ }
50
+ /**
51
+ * Replace weights (e.g. after an external training step or gradient update).
52
+ * Does NOT implement EMA — callers manage weight schedule externally.
53
+ */
54
+ setWeights(weights) {
55
+ validateWeights(weights, this.latentDim, this.condDim);
56
+ this.weights = weights;
57
+ }
58
+ /** Read-only access to current weights for serialisation. */
59
+ getWeights() {
60
+ return this.weights;
61
+ }
62
+ /**
63
+ * Plan: given a context state string and a list of candidate action names,
64
+ * return the action predicted to yield the highest-confidence next-state
65
+ * embedding (lowest L2 norm from the current state embedding — a proxy for
66
+ * "least surprising / most on-manifold" outcome).
67
+ *
68
+ * Encoding strategy: deterministic text→float32 hash (same technique used
69
+ * in JEPAObjective.encodeContext — no async/LLM dependency at plan time).
70
+ *
71
+ * @param currentState Snapshot string of the agent's current state.
72
+ * @param candidateActions Non-empty list of action name strings to score.
73
+ * @returns The action name with the highest predicted confidence, plus its
74
+ * predicted embedding for downstream SimulationContract verification.
75
+ */
76
+ plan(currentState, candidateActions) {
77
+ if (candidateActions.length === 0) {
78
+ throw new RangeError("JEPAPredictor.plan: candidateActions must be non-empty");
79
+ }
80
+ const contextEmb = textToEmbedding(currentState, this.latentDim);
81
+ let bestAction = candidateActions[0];
82
+ let bestPredicted = new Float32Array(this.latentDim);
83
+ let bestConfidence = -Infinity;
84
+ for (const action of candidateActions) {
85
+ const conditioning = this.condDim > 0 ? textToEmbedding(action, this.condDim) : null;
86
+ const { predicted } = this.forward(contextEmb, conditioning);
87
+ const confidence = -l2Norm(predicted);
88
+ if (confidence > bestConfidence) {
89
+ bestConfidence = confidence;
90
+ bestAction = action;
91
+ bestPredicted = predicted;
92
+ }
93
+ }
94
+ return { action: bestAction, predicted: bestPredicted, confidence: bestConfidence };
95
+ }
96
+ };
97
+ function matMulVec(matrix, vec, inputDim, outputDim) {
98
+ const out = new Float32Array(outputDim);
99
+ for (let i = 0; i < outputDim; i++) {
100
+ let acc = 0;
101
+ const base = i * inputDim;
102
+ for (let j = 0; j < inputDim; j++) {
103
+ acc += matrix[base + j] * vec[j];
104
+ }
105
+ out[i] = acc;
106
+ }
107
+ return out;
108
+ }
109
+ function addInPlace(a, b) {
110
+ for (let i = 0; i < a.length; i++) {
111
+ a[i] += b[i];
112
+ }
113
+ }
114
+ function reluInPlace(a) {
115
+ for (let i = 0; i < a.length; i++) {
116
+ if (a[i] < 0) a[i] = 0;
117
+ }
118
+ }
119
+ function initDeterministicWeights(latentDim, condDim) {
120
+ const inputDim = latentDim + condDim;
121
+ const scale1 = Math.sqrt(2 / inputDim);
122
+ const scale2 = Math.sqrt(2 / latentDim);
123
+ const W1 = new Float32Array(inputDim * latentDim);
124
+ const b1 = new Float32Array(latentDim);
125
+ const W2 = new Float32Array(latentDim * latentDim);
126
+ const b2 = new Float32Array(latentDim);
127
+ let seed = 3735928559;
128
+ const lcg = () => {
129
+ seed = Math.imul(seed, 1664525) + 1013904223;
130
+ return (seed >>> 0) / 4294967296 * 2 - 1;
131
+ };
132
+ for (let i = 0; i < W1.length; i++) W1[i] = lcg() * scale1;
133
+ for (let i = 0; i < W2.length; i++) W2[i] = lcg() * scale2;
134
+ return { W1, b1, W2, b2 };
135
+ }
136
+ function textToEmbedding(text, dim) {
137
+ const out = new Float32Array(dim);
138
+ let h = 5381;
139
+ for (let i = 0; i < text.length; i++) {
140
+ h = Math.imul(h, 33) ^ text.charCodeAt(i);
141
+ h = h >>> 0;
142
+ }
143
+ for (let d = 0; d < dim; d++) {
144
+ h = Math.imul(h, 1664525) + 1013904223;
145
+ h = h >>> 0;
146
+ out[d] = h / 4294967296 * 2 - 1;
147
+ }
148
+ return out;
149
+ }
150
+ function l2Norm(v) {
151
+ let sum = 0;
152
+ for (let i = 0; i < v.length; i++) sum += v[i] * v[i];
153
+ return Math.sqrt(sum);
154
+ }
155
+ function validateWeights(w, latentDim, condDim) {
156
+ const inputDim = latentDim + condDim;
157
+ const expected = {
158
+ W1: inputDim * latentDim,
159
+ b1: latentDim,
160
+ W2: latentDim * latentDim,
161
+ b2: latentDim
162
+ };
163
+ for (const key of ["W1", "b1", "W2", "b2"]) {
164
+ if (w[key].length !== expected[key]) {
165
+ throw new RangeError(
166
+ `JEPAPredictor: weights.${key}.length=${w[key].length} \u2260 expected ${expected[key]}`
167
+ );
168
+ }
169
+ }
170
+ }
171
+
172
+ // src/traits/EmbeddingTrait.ts
173
+ var embeddingHandler = {
174
+ name: "embedding",
175
+ defaultConfig: { default_model: "text-embedding-3-small", default_dimensions: 1536 },
176
+ onAttach(node) {
177
+ node.__embeddingState = { generated: 0 };
178
+ },
179
+ onDetach(node) {
180
+ delete node.__embeddingState;
181
+ },
182
+ onUpdate() {
183
+ },
184
+ onEvent(node, config, context, event) {
185
+ const state = node.__embeddingState;
186
+ if (!state) return;
187
+ if ((typeof event === "string" ? event : event.type) === "embedding:generate") {
188
+ state.generated++;
189
+ const dims = resolveEmbeddingDimensions(event, config);
190
+ const model = event.model ?? config.default_model;
191
+ const input = event.input ?? event.payload?.input ?? "";
192
+ context.emit?.("embedding:result", {
193
+ vector: createDeterministicEmbedding(input, dims, model),
194
+ dimensions: dims,
195
+ model,
196
+ source: "local-deterministic-fallback",
197
+ index: state.generated
198
+ });
199
+ }
200
+ }
201
+ };
202
+ function resolveEmbeddingDimensions(event, config) {
203
+ const rawDimensions = event.dimensions ?? event.payload?.dimensions;
204
+ const dimensions = typeof rawDimensions === "number" ? rawDimensions : config.default_dimensions;
205
+ if (!Number.isFinite(dimensions) || dimensions <= 0) {
206
+ return Math.max(1, Math.floor(config.default_dimensions));
207
+ }
208
+ return Math.floor(dimensions);
209
+ }
210
+ function createDeterministicEmbedding(input, dimensions, model) {
211
+ const vector = new Float32Array(dimensions);
212
+ const text = stringifyEmbeddingInput(input);
213
+ const features = extractEmbeddingFeatures(text);
214
+ for (let i = 0; i < features.length; i++) {
215
+ const feature = features[i];
216
+ const hash = fnv1a(`${model}\0${feature}\0${i}`);
217
+ const index = hash % dimensions;
218
+ const sign = hash & 1 ? 1 : -1;
219
+ const weight = 1 + Math.log1p(feature.length);
220
+ vector[index] += sign * weight;
221
+ }
222
+ normalizeVector(vector);
223
+ return vector;
224
+ }
225
+ function stringifyEmbeddingInput(input) {
226
+ if (typeof input === "string") return input;
227
+ if (input === null || input === void 0) return "";
228
+ try {
229
+ return JSON.stringify(input);
230
+ } catch {
231
+ return String(input);
232
+ }
233
+ }
234
+ function extractEmbeddingFeatures(text) {
235
+ const normalized = text.trim().toLowerCase();
236
+ if (!normalized) return ["<empty>"];
237
+ const tokens = normalized.match(/[a-z0-9_:-]+/g) ?? [normalized];
238
+ const features = [...tokens, `len:${normalized.length}`];
239
+ for (const token of tokens) {
240
+ if (token.length <= 3) {
241
+ features.push(`tok:${token}`);
242
+ continue;
243
+ }
244
+ for (let i = 0; i <= token.length - 3; i++) {
245
+ features.push(`tri:${token.slice(i, i + 3)}`);
246
+ }
247
+ }
248
+ return features;
249
+ }
250
+ function normalizeVector(vector) {
251
+ let normSquared = 0;
252
+ for (const value of vector) {
253
+ normSquared += value * value;
254
+ }
255
+ if (normSquared === 0) {
256
+ vector[0] = 1;
257
+ return;
258
+ }
259
+ const norm = Math.sqrt(normSquared);
260
+ for (let i = 0; i < vector.length; i++) {
261
+ vector[i] = vector[i] / norm;
262
+ }
263
+ }
264
+ function fnv1a(value) {
265
+ let hash = 2166136261;
266
+ for (let i = 0; i < value.length; i++) {
267
+ hash ^= value.charCodeAt(i);
268
+ hash = Math.imul(hash, 16777619);
269
+ }
270
+ return hash >>> 0;
271
+ }
272
+
273
+ // src/traits/JEPAObjective.ts
274
+ var jepObjectiveHandler = {
275
+ name: "jepa_objective",
276
+ defaultConfig: {
277
+ latentDim: 128,
278
+ condDim: 0,
279
+ sigregWeight: 0.05,
280
+ sigregProjections: 64,
281
+ sigregSigma: 1,
282
+ embeddingModel: "jepa-context-encoder"
283
+ },
284
+ onAttach(node, config) {
285
+ const predictorConfig = {
286
+ latentDim: config.latentDim,
287
+ condDim: config.condDim
288
+ };
289
+ node.__jepaState = {
290
+ step: 0,
291
+ predictor: new JEPAPredictor(predictorConfig),
292
+ embeddingConfig: {
293
+ default_model: config.embeddingModel,
294
+ default_dimensions: config.latentDim
295
+ },
296
+ pendingContextEmb: null
297
+ };
298
+ },
299
+ onDetach(node) {
300
+ delete node.__jepaState;
301
+ },
302
+ onUpdate() {
303
+ },
304
+ onEvent(node, config, context, event) {
305
+ const state = node.__jepaState;
306
+ if (!state) return;
307
+ const eventType = typeof event === "string" ? event : event.type;
308
+ if (eventType === "jepa:update_weights") {
309
+ handleWeightUpdate(state, context, event);
310
+ return;
311
+ }
312
+ if (eventType !== "jepa:encode_pair") return;
313
+ state.step++;
314
+ const step = state.step;
315
+ const contextStr = readString(event.context);
316
+ if (!contextStr) {
317
+ emitError(context, { code: "JEPA_CONTEXT_REQUIRED", message: "jepa:encode_pair requires a non-empty context string", step });
318
+ return;
319
+ }
320
+ const targetVec = toFloat32Array(event.targetVec);
321
+ if (!targetVec) {
322
+ emitError(context, { code: "JEPA_TARGET_VEC_REQUIRED", message: "jepa:encode_pair requires targetVec (Float32Array or number[])", step });
323
+ return;
324
+ }
325
+ if (targetVec.length !== config.latentDim) {
326
+ emitError(context, {
327
+ code: "JEPA_TARGET_DIM_MISMATCH",
328
+ message: `targetVec.length=${targetVec.length} \u2260 latentDim=${config.latentDim}`,
329
+ step
330
+ });
331
+ return;
332
+ }
333
+ const contextEmb = encodeContext(state, config, contextStr);
334
+ if (!contextEmb) {
335
+ emitError(context, { code: "JEPA_ENCODE_FAILED", message: "Context encoding returned null vector", step });
336
+ return;
337
+ }
338
+ const conditioning = toFloat32ArrayOrNull(event.conditioning);
339
+ const { predicted } = state.predictor.forward(contextEmb, conditioning);
340
+ const predictionLoss = mseLoss(predicted, targetVec);
341
+ const sigregLoss = computeSIGReg(
342
+ predicted,
343
+ config.sigregProjections,
344
+ config.sigregSigma
345
+ );
346
+ const totalLoss = predictionLoss + config.sigregWeight * sigregLoss;
347
+ context.emit?.("jepa:loss", {
348
+ predictionLoss,
349
+ sigregLoss,
350
+ totalLoss,
351
+ step,
352
+ predicted
353
+ });
354
+ }
355
+ };
356
+ function encodeContext(state, config, contextStr) {
357
+ let result = null;
358
+ const captureContext = {
359
+ vr: null,
360
+ physics: null,
361
+ audio: null,
362
+ haptics: null,
363
+ emit(eventName, payload) {
364
+ if (eventName === "embedding:result") {
365
+ const p = payload;
366
+ const v = p.vector;
367
+ if (v instanceof Float32Array) result = v;
368
+ }
369
+ },
370
+ getState: () => ({}),
371
+ setState: () => {
372
+ },
373
+ getScaleMultiplier: () => 1,
374
+ setScaleContext: () => {
375
+ }
376
+ };
377
+ const mockNode = {};
378
+ embeddingHandler.onAttach?.(mockNode, state.embeddingConfig, captureContext);
379
+ embeddingHandler.onEvent?.(
380
+ mockNode,
381
+ state.embeddingConfig,
382
+ captureContext,
383
+ {
384
+ type: "embedding:generate",
385
+ input: contextStr,
386
+ model: config.embeddingModel,
387
+ dimensions: config.latentDim
388
+ }
389
+ );
390
+ embeddingHandler.onDetach?.(mockNode, state.embeddingConfig, captureContext);
391
+ return result;
392
+ }
393
+ function computeSIGReg(z, numProjections, sigma) {
394
+ const dim = z.length;
395
+ const sigmaSquared = sigma * sigma;
396
+ let total = 0;
397
+ let seed = 3405648436;
398
+ const lcg = () => {
399
+ seed = Math.imul(seed, 1664525) + 1013904223;
400
+ return (seed >>> 0) / 4294967296 * 2 - 1;
401
+ };
402
+ const gaussianPair = () => {
403
+ const u1 = Math.max(1e-12, (lcg() + 1) / 2);
404
+ const u2 = (lcg() + 1) / 2;
405
+ const r = Math.sqrt(-2 * Math.log(u1));
406
+ const theta = 2 * Math.PI * u2;
407
+ return [r * Math.cos(theta), r * Math.sin(theta)];
408
+ };
409
+ for (let p = 0; p < numProjections; p++) {
410
+ let dot = 0;
411
+ for (let i = 0; i < dim; i += 2) {
412
+ const [g1, g2] = gaussianPair();
413
+ const scale = 1 / Math.sqrt(dim);
414
+ dot += z[i] * (g1 * scale);
415
+ if (i + 1 < dim) dot += z[i + 1] * (g2 * scale);
416
+ }
417
+ const proj2 = dot * dot;
418
+ const ratio = proj2 / sigmaSquared;
419
+ if (ratio > 0) {
420
+ total += ratio - 1 - Math.log(ratio);
421
+ } else {
422
+ total += 1;
423
+ }
424
+ }
425
+ return total / numProjections;
426
+ }
427
+ function handleWeightUpdate(state, context, event) {
428
+ try {
429
+ state.predictor.setWeights({
430
+ W1: requireFloat32(event.W1, "W1"),
431
+ b1: requireFloat32(event.b1, "b1"),
432
+ W2: requireFloat32(event.W2, "W2"),
433
+ b2: requireFloat32(event.b2, "b2")
434
+ });
435
+ } catch (err) {
436
+ emitError(context, {
437
+ code: "JEPA_WEIGHTS_INVALID",
438
+ message: err instanceof Error ? err.message : String(err),
439
+ step: state.step
440
+ });
441
+ }
442
+ }
443
+ function mseLoss(a, b) {
444
+ let sum = 0;
445
+ for (let i = 0; i < a.length; i++) {
446
+ const diff = a[i] - b[i];
447
+ sum += diff * diff;
448
+ }
449
+ return sum / a.length;
450
+ }
451
+ function emitError(context, payload) {
452
+ context.emit?.("jepa:error", payload);
453
+ }
454
+ function readString(value) {
455
+ return typeof value === "string" && value.trim().length > 0 ? value : void 0;
456
+ }
457
+ function toFloat32Array(value) {
458
+ if (value instanceof Float32Array) return value;
459
+ if (Array.isArray(value) && value.every((v) => typeof v === "number")) {
460
+ return new Float32Array(value);
461
+ }
462
+ return null;
463
+ }
464
+ function toFloat32ArrayOrNull(value) {
465
+ if (value == null) return null;
466
+ return toFloat32Array(value);
467
+ }
468
+ function requireFloat32(value, name) {
469
+ if (value instanceof Float32Array) return value;
470
+ throw new TypeError(`jepa:update_weights: ${name} must be a Float32Array`);
471
+ }
472
+
473
+ // src/traits/MitosisTrait.ts
474
+ var mitosisHandler = {
475
+ name: "mitosis",
476
+ defaultConfig: {
477
+ strategy: "collaborative",
478
+ max_children: 5,
479
+ auto_cleanup: true
480
+ },
481
+ onAttach(node, config, context) {
482
+ const state = {
483
+ parent_id: ("parent_id" in config ? config.parent_id : null) || null,
484
+ active_children: [],
485
+ tasks_delegated: 0,
486
+ completed_tasks: 0,
487
+ last_sync_time: Date.now()
488
+ };
489
+ node.__mitosisState = state;
490
+ context.emit?.("mitosis_init", {
491
+ nodeId: node.id,
492
+ strategy: config.strategy,
493
+ parent_id: state.parent_id
494
+ });
495
+ },
496
+ onDetach(node, config, context) {
497
+ const state = node.__mitosisState;
498
+ if (state && config.auto_cleanup) {
499
+ for (const childId of state.active_children) {
500
+ context.emit?.("mitosis_despawn_child", { childId });
501
+ }
502
+ }
503
+ delete node.__mitosisState;
504
+ },
505
+ onEvent(node, config, context, event) {
506
+ const state = node.__mitosisState;
507
+ if (!state) return;
508
+ if (event.type === "mitosis_spawned") {
509
+ const childId = event.childId;
510
+ const parentId = event.parentId;
511
+ if (node.id === parentId) {
512
+ state.active_children.push(childId);
513
+ state.tasks_delegated++;
514
+ context.emit?.("on_mitosis_spawned", { childId, parentId: node.id });
515
+ }
516
+ } else if (event.type === "mitosis_child_complete") {
517
+ const childId = "childId" in event ? event.childId : "";
518
+ const parentId = "parentId" in event ? event.parentId : "";
519
+ const result = "result" in event ? event.result : void 0;
520
+ if (node.id === parentId) {
521
+ state.completed_tasks++;
522
+ state.last_sync_time = Date.now();
523
+ context.emit?.("mitosis_synced", {
524
+ parentId: node.id,
525
+ childId,
526
+ result
527
+ });
528
+ if (config.strategy === "collaborative") {
529
+ if (result && typeof result === "object") {
530
+ Object.assign(node.properties || {}, result);
531
+ }
532
+ }
533
+ }
534
+ } else if (event.type === "mitosis_child_failed") {
535
+ context.emit?.("on_mitosis_error", {
536
+ parentId: node.id,
537
+ childId: event.childId,
538
+ error: event.error
539
+ });
540
+ }
541
+ }
542
+ };
543
+ var orbitalHandler = {
544
+ name: "orbital",
545
+ defaultConfig: {},
546
+ /**
547
+ * Called when trait is attached to a node
548
+ */
549
+ onAttach(node, _config, _context) {
550
+ logger.info(`[OrbitalTrait] Attached to ${node.name}`);
551
+ },
552
+ /**
553
+ * Called every frame to update orbital position
554
+ */
555
+ onUpdate(node, config, context, _delta) {
556
+ const properties = node.properties || {};
557
+ const mergedConfig = { ...properties, ...config };
558
+ if (!mergedConfig || !mergedConfig.semiMajorAxis) {
559
+ return;
560
+ }
561
+ const julianDate = context.julianDate || 0;
562
+ const visualScale = context.getScaleMultiplier() * 50;
563
+ const satelliteScale = 5;
564
+ const rawPosition = calculatePosition(mergedConfig, julianDate);
565
+ const currentScale = mergedConfig.parent ? visualScale * satelliteScale : visualScale;
566
+ let finalPosition = [
567
+ rawPosition[0] * currentScale,
568
+ rawPosition[2] * currentScale,
569
+ rawPosition[1] * currentScale
570
+ ];
571
+ if (mergedConfig.parent) {
572
+ let parentNode = context.getNode?.(mergedConfig.parent);
573
+ if (!parentNode && typeof mergedConfig.parent === "object" && mergedConfig.parent && mergedConfig.parent.position) {
574
+ parentNode = mergedConfig.parent;
575
+ }
576
+ if (parentNode && parentNode.position) {
577
+ finalPosition = [
578
+ finalPosition[0] + (parentNode.position[0] || 0),
579
+ finalPosition[1] + (parentNode.position[1] || 0),
580
+ finalPosition[2] + (parentNode.position[2] || 0)
581
+ ];
582
+ } else {
583
+ if (typeof mergedConfig.parent === "string") {
584
+ logger.warn(`[OrbitalTrait] Parent "${mergedConfig.parent}" not found for ${node.name}`);
585
+ }
586
+ }
587
+ }
588
+ const posArray = [finalPosition[0], finalPosition[1], finalPosition[2]];
589
+ node.position = posArray;
590
+ context.emit("position_update", { position: posArray });
591
+ }
592
+ };
593
+
594
+ export { JEPAPredictor, embeddingHandler, jepObjectiveHandler, mitosisHandler, orbitalHandler };
595
+ //# sourceMappingURL=chunk-77V4GTCA.js.map
596
+ //# sourceMappingURL=chunk-77V4GTCA.js.map
@@ -1,24 +1,24 @@
1
1
  'use strict';
2
2
 
3
- var chunkQ5JT3YML_cjs = require('./chunk-Q5JT3YML.cjs');
4
- var chunk33LSUQDD_cjs = require('./chunk-33LSUQDD.cjs');
5
- var chunkLGGRPKTV_cjs = require('./chunk-LGGRPKTV.cjs');
6
- var chunkBF2235SI_cjs = require('./chunk-BF2235SI.cjs');
7
- var platform = require('@holoscript/platform');
3
+ var chunk52ULD552_cjs = require('./chunk-52ULD552.cjs');
4
+ var chunkXXZJEFKW_cjs = require('./chunk-XXZJEFKW.cjs');
5
+ var chunkL63H3SQ4_cjs = require('./chunk-L63H3SQ4.cjs');
6
+ var chunkRMHC2VG7_cjs = require('./chunk-RMHC2VG7.cjs');
7
+ var ans = require('@holoscript/core-types/ans');
8
8
 
9
9
  // src/compiler/MultiLayerCompiler.ts
10
- chunkLGGRPKTV_cjs.init_VRRCompiler();
11
- chunkQ5JT3YML_cjs.init_ARCompiler();
12
- chunk33LSUQDD_cjs.init_BabylonCompiler();
13
- chunkBF2235SI_cjs.init_CompilerBase();
14
- var MultiLayerCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
10
+ chunk52ULD552_cjs.init_VRRCompiler();
11
+ chunkXXZJEFKW_cjs.init_ARCompiler();
12
+ chunkL63H3SQ4_cjs.init_BabylonCompiler();
13
+ chunkRMHC2VG7_cjs.init_CompilerBase();
14
+ var MultiLayerCompiler = class extends chunkRMHC2VG7_cjs.CompilerBase {
15
15
  constructor(options) {
16
16
  super();
17
17
  this.compilerName = "MultiLayerCompiler";
18
18
  this.options = options;
19
19
  }
20
20
  getRequiredCapability() {
21
- return platform.ANSCapabilityPath.MULTI_LAYER;
21
+ return ans.ANSCapabilityPath.MULTI_LAYER;
22
22
  }
23
23
  compile(composition, agentToken, outputPath) {
24
24
  this.validateCompilerAccess(agentToken, outputPath);
@@ -28,7 +28,7 @@ var MultiLayerCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
28
28
  errors: []
29
29
  };
30
30
  if (this.options.targets.includes("ar")) {
31
- const arCompiler = new chunkQ5JT3YML_cjs.ARCompiler({
31
+ const arCompiler = new chunkXXZJEFKW_cjs.ARCompiler({
32
32
  target: "webxr",
33
33
  minify: this.options.minify,
34
34
  source_maps: this.options.source_maps,
@@ -39,7 +39,7 @@ var MultiLayerCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
39
39
  if (!arResult.success) result.success = false;
40
40
  }
41
41
  if (this.options.targets.includes("vrr")) {
42
- const vrrCompiler = new chunkLGGRPKTV_cjs.VRRCompiler({
42
+ const vrrCompiler = new chunk52ULD552_cjs.VRRCompiler({
43
43
  target: "threejs",
44
44
  minify: this.options.minify,
45
45
  source_maps: this.options.source_maps,
@@ -52,7 +52,7 @@ var MultiLayerCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
52
52
  if (!vrrResult.success) result.success = false;
53
53
  }
54
54
  if (this.options.targets.includes("vr")) {
55
- const vrCompiler = new chunk33LSUQDD_cjs.BabylonCompiler({});
55
+ const vrCompiler = new chunkL63H3SQ4_cjs.BabylonCompiler({});
56
56
  try {
57
57
  const vrResult = vrCompiler.compile(composition, agentToken);
58
58
  result.vr = vrResult;
@@ -68,5 +68,5 @@ var MultiLayerCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
68
68
  };
69
69
 
70
70
  exports.MultiLayerCompiler = MultiLayerCompiler;
71
- //# sourceMappingURL=chunk-ZP4D3CSX.cjs.map
72
- //# sourceMappingURL=chunk-ZP4D3CSX.cjs.map
71
+ //# sourceMappingURL=chunk-7AD52FRS.cjs.map
72
+ //# sourceMappingURL=chunk-7AD52FRS.cjs.map