@holoscript/core 8.0.5 → 8.0.7

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 (248) hide show
  1. package/README.md +34 -34
  2. package/bin/holoscript.cjs +1 -1
  3. package/dist/GLTFPipeline-3EJLL3TS.cjs +38 -0
  4. package/dist/GLTFPipeline-3OWJV2VK.js +17 -0
  5. package/dist/{HoloScriptPlusParser-A2W7OCN2.cjs → HoloScriptPlusParser-ADWRY5OS.cjs} +15 -15
  6. package/dist/{HoloScriptPlusParser-7FBIFUFC.js → HoloScriptPlusParser-JLJDXHSC.js} +4 -4
  7. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +27 -0
  8. package/dist/{HoloScriptPlusParser-F2Z56FJR.js → HoloScriptPlusParser-WENAFEFV.js} +5 -5
  9. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +19 -0
  10. package/dist/HoloScriptRuntime-GJK6VJPH.js +10 -0
  11. package/dist/{USDZExporter-3FWJ25JI.cjs → USDZExporter-AUHZODOF.cjs} +15 -4
  12. package/dist/{USDZExporter-D2HQLQYK.js → USDZExporter-GXB4AUSG.js} +15 -4
  13. package/dist/{chunk-V6MKC2FZ.js → chunk-22Q5A6RV.js} +3 -3
  14. package/dist/{chunk-IUDGEUDO.cjs → chunk-2BZHWUSR.cjs} +27 -15
  15. package/dist/{chunk-XJAN7CZG.cjs → chunk-2GCNOI2U.cjs} +2 -2
  16. package/dist/{chunk-CCATWPXM.js → chunk-2OWDB4FB.js} +13 -25
  17. package/dist/{chunk-N75IH2HY.js → chunk-2Y3V22SG.js} +5 -14
  18. package/dist/{chunk-MXFUTKCO.js → chunk-33YHE7HX.js} +3 -7
  19. package/dist/{chunk-GYZE55MO.js → chunk-3GWWJT7L.js} +4 -4
  20. package/dist/{chunk-CMT5NMMS.js → chunk-3NGDZZR4.js} +4 -4
  21. package/dist/{chunk-WRLUBRKS.cjs → chunk-3SKLAUDD.cjs} +2 -2
  22. package/dist/{chunk-KKFZ3B6J.cjs → chunk-3VBO3IYQ.cjs} +2 -2
  23. package/dist/{chunk-YF2I3MV3.js → chunk-47RUFYKR.js} +2 -2
  24. package/dist/{chunk-LHAXPADA.js → chunk-4JGRWHZJ.js} +7 -5
  25. package/dist/{chunk-ROHLEP2W.cjs → chunk-4W5G5QVL.cjs} +26 -26
  26. package/dist/{chunk-GQHQOPXZ.cjs → chunk-4YNYPHH3.cjs} +186 -17
  27. package/dist/{chunk-ZMCVKFXI.cjs → chunk-56VOWURB.cjs} +154 -47
  28. package/dist/{chunk-FXKAW7ZO.cjs → chunk-5A4TCHOC.cjs} +3 -3
  29. package/dist/{chunk-M56JSP4A.js → chunk-5EDVCNRT.js} +2 -2
  30. package/dist/{chunk-UJXISJBN.js → chunk-5ET6L4NS.js} +3 -3
  31. package/dist/{chunk-5NWINHR5.cjs → chunk-63ZGNR2T.cjs} +43 -39
  32. package/dist/{chunk-NG77ATEW.cjs → chunk-6PRZIHGL.cjs} +6 -6
  33. package/dist/{chunk-3WZEJHUQ.cjs → chunk-7DMMMBCY.cjs} +7 -7
  34. package/dist/{chunk-FHP6LXJS.js → chunk-7E7GCQCK.js} +2 -2
  35. package/dist/{chunk-YN2YWTXW.js → chunk-7VMGP2FW.js} +44 -28
  36. package/dist/{chunk-OJXHYNXN.js → chunk-7X5PNIQJ.js} +3 -3
  37. package/dist/{chunk-FYSPZT4V.cjs → chunk-7ZHYEITD.cjs} +11 -11
  38. package/dist/{chunk-KPJL34Y7.cjs → chunk-ACVWFGBI.cjs} +2 -2
  39. package/dist/{chunk-UWXE23BT.cjs → chunk-AWB7QYY6.cjs} +6 -6
  40. package/dist/{chunk-UO4WPSGQ.js → chunk-B4EKV6HQ.js} +154 -48
  41. package/dist/{chunk-2X7NGX3M.js → chunk-BRNUPDHJ.js} +5 -5
  42. package/dist/{chunk-D3STJ56J.js → chunk-BTKZGHAV.js} +23 -11
  43. package/dist/{chunk-I5CDNPPE.cjs → chunk-C4GSLCHE.cjs} +331 -125
  44. package/dist/{chunk-QPSKHBJP.js → chunk-C7ZBSV2Q.js} +13 -7
  45. package/dist/{chunk-YN6V7R3L.cjs → chunk-CCPSNT6B.cjs} +12 -7
  46. package/dist/{chunk-NW5G5FBQ.js → chunk-DD2JQ7TS.js} +4 -3
  47. package/dist/{chunk-JD7CIZ33.js → chunk-DUCB6LGL.js} +8 -10
  48. package/dist/{chunk-ANXZFVY2.js → chunk-DY72BMU5.js} +3 -3
  49. package/dist/{chunk-AIA52I7T.cjs → chunk-EBS32AJI.cjs} +6 -4
  50. package/dist/{chunk-6DO5IZ5N.cjs → chunk-EDPYCLRC.cjs} +85 -65
  51. package/dist/{chunk-WQKJSGVS.js → chunk-F2G6CWFT.js} +271 -66
  52. package/dist/{chunk-AVJHHUC5.cjs → chunk-F5LKJ6F5.cjs} +43 -31
  53. package/dist/{chunk-ZU7NIRT6.js → chunk-FGMDMJM7.js} +10 -5
  54. package/dist/{chunk-YVD3CSO3.js → chunk-FHQFPYV4.js} +4 -4
  55. package/dist/{chunk-YIMN575O.js → chunk-FNHJRI32.js} +8 -5
  56. package/dist/{chunk-EXUP2BUM.cjs → chunk-FT6TDR2O.cjs} +27 -27
  57. package/dist/{chunk-BRQJKJGT.cjs → chunk-FWVYAMNW.cjs} +4 -4
  58. package/dist/{chunk-PGANYCAG.cjs → chunk-G25QVBA5.cjs} +4 -3
  59. package/dist/{chunk-XB274MW5.cjs → chunk-G6PNEASF.cjs} +13 -13
  60. package/dist/{chunk-2BSMSUCE.js → chunk-GASCWJK5.js} +2 -2
  61. package/dist/{chunk-HKEXJUWS.cjs → chunk-GH6C2QGW.cjs} +12 -21
  62. package/dist/{chunk-WRKUDAZJ.js → chunk-GSOUNWEL.js} +35 -27
  63. package/dist/{chunk-QPOQ7VPI.js → chunk-GTA4Q3A3.js} +2 -2
  64. package/dist/{chunk-JIYN45TV.cjs → chunk-GVFJ6T4S.cjs} +3 -7
  65. package/dist/{chunk-IVY74O6C.js → chunk-GVOKJNUN.js} +50 -11
  66. package/dist/{chunk-GZG4KA4E.js → chunk-GW3LKD5C.js} +6 -4
  67. package/dist/{chunk-NCWCUZNS.cjs → chunk-HFSVMKM3.cjs} +14 -14
  68. package/dist/{chunk-IUTY5WQ2.cjs → chunk-HLFDZ35S.cjs} +5 -5
  69. package/dist/{chunk-IWC5DM2M.cjs → chunk-I76GIKN7.cjs} +20 -16
  70. package/dist/{chunk-ON5QSY35.cjs → chunk-KAIVDEIG.cjs} +175 -59
  71. package/dist/{chunk-R24NNAEG.js → chunk-KCPHASCO.js} +18 -6
  72. package/dist/{chunk-T5J7ZKP3.cjs → chunk-KOUAQL2B.cjs} +16 -13
  73. package/dist/{chunk-GMP623FG.cjs → chunk-KQU64CIX.cjs} +2 -2
  74. package/dist/{chunk-MVPBWHAC.js → chunk-L5U4W6JC.js} +4 -4
  75. package/dist/{chunk-2IWC4FP7.cjs → chunk-LMJ5EBV7.cjs} +10 -10
  76. package/dist/{chunk-KKP7JKN4.cjs → chunk-LODTHGST.cjs} +18 -12
  77. package/dist/{chunk-4V2E7U7Q.cjs → chunk-LPS5AMQD.cjs} +8 -8
  78. package/dist/{chunk-PY37LNDP.js → chunk-LWUOUCYL.js} +9 -5
  79. package/dist/{chunk-6CTRH7HT.cjs → chunk-LYJJI7ZK.cjs} +12 -14
  80. package/dist/{chunk-GTU2Z2WW.cjs → chunk-M7K4LE66.cjs} +5 -14
  81. package/dist/{chunk-URG2SJLK.js → chunk-MDR235RZ.js} +3 -7
  82. package/dist/{chunk-E4M5OAYO.js → chunk-MSYSQ2AJ.js} +132 -16
  83. package/dist/{chunk-TWUXUCEW.cjs → chunk-NGBXXZLL.cjs} +50 -62
  84. package/dist/{chunk-FFAOS5HQ.js → chunk-NHJLP37F.js} +6 -6
  85. package/dist/{chunk-S3MDHNKB.cjs → chunk-NHYRRAGI.cjs} +5 -5
  86. package/dist/{chunk-U44IKGG7.cjs → chunk-O3MGZDCT.cjs} +89 -52
  87. package/dist/{chunk-GIOYPNTH.js → chunk-OABEO6HH.js} +185 -16
  88. package/dist/{chunk-KQCN6AKJ.cjs → chunk-OS533P33.cjs} +37 -29
  89. package/dist/{chunk-DAJXW4KX.js → chunk-PABONWKI.js} +24 -11
  90. package/dist/{chunk-QACVP4PM.js → chunk-PXNZ6TME.js} +77 -59
  91. package/dist/{chunk-OMXII44L.js → chunk-Q2Q34NF3.js} +63 -26
  92. package/dist/{chunk-OH2FAIVU.js → chunk-QBWNJXNR.js} +10 -6
  93. package/dist/{chunk-XKTPFXGA.js → chunk-QFU53KRH.js} +4 -4
  94. package/dist/{chunk-CR4FMIWL.cjs → chunk-QGMUTVVH.cjs} +17 -17
  95. package/dist/{chunk-MYY4PMWX.cjs → chunk-RUVBFAF7.cjs} +50 -11
  96. package/dist/{chunk-QD32ADK6.js → chunk-S762UEV5.js} +5 -5
  97. package/dist/{chunk-HNDK4IQU.cjs → chunk-SH5PPVK7.cjs} +61 -45
  98. package/dist/{chunk-JC5YBPSF.cjs → chunk-SKZPC5AG.cjs} +5 -5
  99. package/dist/{chunk-TJHVSBP2.js → chunk-SLHLXUMO.js} +10 -4
  100. package/dist/{chunk-5KVXXUD4.js → chunk-SSSN7VAM.js} +3 -3
  101. package/dist/{chunk-KMC6CQH3.js → chunk-SXOSDZD6.js} +6 -6
  102. package/dist/{chunk-J32ZJZJH.js → chunk-SYTRBGDS.js} +2 -2
  103. package/dist/{chunk-CIWWXYHZ.cjs → chunk-T6W3Z3SH.cjs} +2 -2
  104. package/dist/{chunk-QXH7QDSZ.js → chunk-TEVX443G.js} +44 -51
  105. package/dist/{chunk-UFZZ7TSN.cjs → chunk-TQ377OLB.cjs} +23 -21
  106. package/dist/{chunk-PJGFU5DN.cjs → chunk-TRCGG42I.cjs} +195 -152
  107. package/dist/{chunk-H652NHX5.js → chunk-TVANHNJ7.js} +30 -23
  108. package/dist/{chunk-EKBKLK7P.js → chunk-UDE4OZMR.js} +3 -3
  109. package/dist/{chunk-LKWQNUE6.cjs → chunk-UGXHYIWT.cjs} +5 -5
  110. package/dist/{chunk-JBNDTXXV.cjs → chunk-ULMSSHCJ.cjs} +21 -21
  111. package/dist/{chunk-YWOBW2PV.cjs → chunk-UOL6Y5TD.cjs} +18 -18
  112. package/dist/{chunk-5S7RKFGR.cjs → chunk-UVFI7XIR.cjs} +10 -4
  113. package/dist/{chunk-7M3PNU2M.cjs → chunk-V7AKE5VT.cjs} +10 -10
  114. package/dist/{chunk-J7XZV333.js → chunk-VEPGBETF.js} +6 -6
  115. package/dist/{chunk-UWJHCOH2.js → chunk-VF257YKO.js} +4 -4
  116. package/dist/{chunk-4N4SXXWF.js → chunk-VSACG2AR.js} +3 -3
  117. package/dist/{chunk-ZDSYWBIE.cjs → chunk-VW5CRJBE.cjs} +3 -7
  118. package/dist/{chunk-YT5L3B57.cjs → chunk-WFKVS2K4.cjs} +65 -27
  119. package/dist/{chunk-J6M4FPK5.js → chunk-WXQ57LAO.js} +3 -3
  120. package/dist/{chunk-5H2G27PK.cjs → chunk-X27QRG4C.cjs} +38 -38
  121. package/dist/{chunk-TVHSPJ4N.cjs → chunk-X2AVEAZM.cjs} +30 -23
  122. package/dist/{chunk-DHO2YRIM.js → chunk-XQ5MWMP2.js} +4 -4
  123. package/dist/{chunk-XIVIE43A.cjs → chunk-XW6IXEQH.cjs} +26 -13
  124. package/dist/{chunk-YIVFJNYV.js → chunk-Y3ZFVUUU.js} +2 -2
  125. package/dist/{chunk-7H33U5SM.cjs → chunk-Y57W2CT5.cjs} +2 -2
  126. package/dist/{chunk-OBIYPYYS.cjs → chunk-YCM6QQRT.cjs} +46 -53
  127. package/dist/{chunk-MBOOR7X4.js → chunk-YFVQWSNJ.js} +3 -3
  128. package/dist/{chunk-ADADVMXY.js → chunk-YFWRJW4B.js} +2 -2
  129. package/dist/{chunk-ONDAWTW4.js → chunk-YN6IETRZ.js} +179 -136
  130. package/dist/{chunk-4SDKXQ4C.js → chunk-YRRAUB35.js} +4 -4
  131. package/dist/{chunk-OBP5REIV.js → chunk-Z6PMDS4G.js} +62 -24
  132. package/dist/{chunk-BOVPWH4H.js → chunk-ZA34AN3R.js} +8 -17
  133. package/dist/{chunk-EKYL4PE3.cjs → chunk-ZLF4YF3U.cjs} +2 -2
  134. package/dist/{chunk-6FH72EB2.cjs → chunk-ZPZAVHXL.cjs} +20 -20
  135. package/dist/cli/holoscript-runner.cjs +39 -22
  136. package/dist/cli/holoscript-runner.js +32 -15
  137. package/dist/compiler/GasOptimizationAnalyzer.d.ts +73 -0
  138. package/dist/compiler/NFTMarketplaceCompiler.d.ts +23 -0
  139. package/dist/compiler/agent-inference.cjs +7 -7
  140. package/dist/compiler/agent-inference.js +3 -3
  141. package/dist/compiler/android-xr.cjs +8 -8
  142. package/dist/compiler/android-xr.js +6 -6
  143. package/dist/compiler/android.cjs +6 -6
  144. package/dist/compiler/android.js +4 -4
  145. package/dist/compiler/ar.cjs +6 -6
  146. package/dist/compiler/ar.js +4 -4
  147. package/dist/compiler/babylon.cjs +8 -8
  148. package/dist/compiler/babylon.js +7 -7
  149. package/dist/compiler/business-quest.cjs +9 -9
  150. package/dist/compiler/business-quest.js +1 -1
  151. package/dist/compiler/context.cjs +6 -6
  152. package/dist/compiler/context.js +3 -3
  153. package/dist/compiler/domain-block-utils.cjs +153 -153
  154. package/dist/compiler/domain-block-utils.js +4 -4
  155. package/dist/compiler/dtdl.cjs +7 -7
  156. package/dist/compiler/dtdl.js +4 -4
  157. package/dist/compiler/gltf-pipeline.cjs +8 -8
  158. package/dist/compiler/gltf-pipeline.js +1 -1
  159. package/dist/compiler/godot.cjs +6 -6
  160. package/dist/compiler/godot.js +5 -5
  161. package/dist/compiler/incremental.cjs +8 -8
  162. package/dist/compiler/incremental.js +3 -3
  163. package/dist/compiler/index.cjs +530 -355
  164. package/dist/compiler/index.d.ts +20 -0
  165. package/dist/compiler/index.js +374 -210
  166. package/dist/compiler/ios.cjs +6 -6
  167. package/dist/compiler/ios.js +4 -4
  168. package/dist/compiler/llm-provider-capabilities.cjs +6 -6
  169. package/dist/compiler/llm-provider-capabilities.js +3 -3
  170. package/dist/compiler/multi-layer.cjs +10 -10
  171. package/dist/compiler/multi-layer.js +9 -9
  172. package/dist/compiler/openxr.cjs +7 -7
  173. package/dist/compiler/openxr.js +6 -6
  174. package/dist/compiler/playcanvas.cjs +6 -6
  175. package/dist/compiler/playcanvas.js +5 -5
  176. package/dist/compiler/r3f.cjs +13 -13
  177. package/dist/compiler/r3f.js +8 -8
  178. package/dist/compiler/sdf.cjs +7 -7
  179. package/dist/compiler/sdf.js +5 -5
  180. package/dist/compiler/state.cjs +6 -6
  181. package/dist/compiler/state.js +4 -4
  182. package/dist/compiler/trait-composition.cjs +8 -8
  183. package/dist/compiler/trait-composition.js +4 -4
  184. package/dist/compiler/unity.cjs +7 -7
  185. package/dist/compiler/unity.js +6 -6
  186. package/dist/compiler/unreal.cjs +8 -8
  187. package/dist/compiler/unreal.js +6 -6
  188. package/dist/compiler/urdf.cjs +14 -14
  189. package/dist/compiler/urdf.js +5 -5
  190. package/dist/compiler/usd-physics.cjs +7 -7
  191. package/dist/compiler/usd-physics.js +4 -4
  192. package/dist/compiler/visionos.cjs +7 -7
  193. package/dist/compiler/visionos.js +6 -6
  194. package/dist/compiler/vrchat.cjs +7 -7
  195. package/dist/compiler/vrchat.js +5 -5
  196. package/dist/compiler/vrr.cjs +7 -7
  197. package/dist/compiler/vrr.js +5 -5
  198. package/dist/compiler/wasm.cjs +10 -10
  199. package/dist/compiler/wasm.js +5 -5
  200. package/dist/compiler/webgpu.cjs +6 -6
  201. package/dist/compiler/webgpu.js +5 -5
  202. package/dist/coordinators/index.cjs +27 -10
  203. package/dist/coordinators/index.js +27 -10
  204. package/dist/debugger.cjs +6 -6
  205. package/dist/debugger.js +4 -4
  206. package/dist/entries/scripting.cjs +6 -6
  207. package/dist/entries/scripting.js +2 -2
  208. package/dist/hololand/index.cjs +36 -36
  209. package/dist/hololand/index.js +2 -2
  210. package/dist/index.cjs +1080 -2190
  211. package/dist/index.js +467 -1577
  212. package/dist/math/tropical-spmv.cjs +10 -10
  213. package/dist/math/tropical-spmv.js +1 -1
  214. package/dist/math/vec3.cjs +13 -13
  215. package/dist/math/vec3.js +1 -1
  216. package/dist/parser/NFTMarketplaceTypes.d.ts +191 -0
  217. package/dist/parser.cjs +16 -16
  218. package/dist/parser.js +5 -5
  219. package/dist/reconstruction/index.cjs +37 -37
  220. package/dist/reconstruction/index.js +4 -4
  221. package/dist/runtime.cjs +280 -74
  222. package/dist/runtime.d.ts +10 -1
  223. package/dist/runtime.js +268 -70
  224. package/dist/self-improvement/index.cjs +12 -4
  225. package/dist/self-improvement/index.js +12 -4
  226. package/dist/{src-HCCCSYP7.js → src-J6CM4AUR.js} +91 -33
  227. package/dist/{src-4ROC227P.cjs → src-PT2FERDV.cjs} +93 -35
  228. package/dist/testing.cjs +5 -5
  229. package/dist/testing.js +1 -1
  230. package/dist/traits/botanical-lotus.cjs +52 -48
  231. package/dist/traits/botanical-lotus.js +2 -2
  232. package/dist/traits/engines/index.cjs +39 -39
  233. package/dist/traits/engines/index.d.ts +279 -0
  234. package/dist/traits/engines/index.js +4 -4
  235. package/dist/traits/index.cjs +889 -773
  236. package/dist/traits/index.js +371 -259
  237. package/dist/world/index.cjs +21 -18
  238. package/dist/world/index.js +21 -18
  239. package/dist/world-model/index.cjs +11 -5
  240. package/dist/world-model/index.d.ts +8 -0
  241. package/dist/world-model/index.js +11 -5
  242. package/package.json +75 -69
  243. package/LICENSE +0 -21
  244. package/dist/GLTFPipeline-37FPRVPH.js +0 -17
  245. package/dist/GLTFPipeline-EK3LFJKW.cjs +0 -38
  246. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +0 -27
  247. package/dist/HoloScriptRuntime-ACDFKVVH.js +0 -10
  248. package/dist/HoloScriptRuntime-ON2OQVEF.cjs +0 -19
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkUOIGFQXC_cjs = require('./chunk-UOIGFQXC.cjs');
4
- var chunkZMCVKFXI_cjs = require('./chunk-ZMCVKFXI.cjs');
5
- var chunk5S7RKFGR_cjs = require('./chunk-5S7RKFGR.cjs');
4
+ var chunk56VOWURB_cjs = require('./chunk-56VOWURB.cjs');
5
+ var chunkUVFI7XIR_cjs = require('./chunk-UVFI7XIR.cjs');
6
6
  var chunkOIQYIIO3_cjs = require('./chunk-OIQYIIO3.cjs');
7
- var chunkAIA52I7T_cjs = require('./chunk-AIA52I7T.cjs');
8
- var chunkHKEXJUWS_cjs = require('./chunk-HKEXJUWS.cjs');
9
- var chunkKKP7JKN4_cjs = require('./chunk-KKP7JKN4.cjs');
7
+ var chunkEBS32AJI_cjs = require('./chunk-EBS32AJI.cjs');
8
+ var chunkGH6C2QGW_cjs = require('./chunk-GH6C2QGW.cjs');
9
+ var chunkLODTHGST_cjs = require('./chunk-LODTHGST.cjs');
10
10
  var chunkHCCQLAA4_cjs = require('./chunk-HCCQLAA4.cjs');
11
11
 
12
12
  // src/traits/visual/presets/hologram-media.visual.ts
@@ -754,14 +754,14 @@ var r3fNodePool; exports.MATERIAL_PRESETS = void 0; exports.ENVIRONMENT_PRESETS
754
754
  var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
755
755
  "src/compiler/R3FCompiler.ts"() {
756
756
  chunkOIQYIIO3_cjs.init_TraitCompositor();
757
- chunk5S7RKFGR_cjs.init_ProvenanceSemiring();
757
+ chunkUVFI7XIR_cjs.init_ProvenanceSemiring();
758
758
  init_visual();
759
- chunkHKEXJUWS_cjs.init_DomainBlockCompilerMixin();
760
- chunkAIA52I7T_cjs.init_PlatformConditionalCompilerMixin();
761
- chunkKKP7JKN4_cjs.init_AgentRBAC();
762
- chunkKKP7JKN4_cjs.init_CompilerBase();
759
+ chunkGH6C2QGW_cjs.init_DomainBlockCompilerMixin();
760
+ chunkEBS32AJI_cjs.init_PlatformConditionalCompilerMixin();
761
+ chunkLODTHGST_cjs.init_AgentRBAC();
762
+ chunkLODTHGST_cjs.init_CompilerBase();
763
763
  init_ObjectPool();
764
- chunkZMCVKFXI_cjs.init_BotanicalLotusTrait();
764
+ chunk56VOWURB_cjs.init_BotanicalLotusTrait();
765
765
  r3fNodePool = new exports.ASTNodePool(
766
766
  () => ({ type: "", props: {} }),
767
767
  (node) => {
@@ -2563,13 +2563,13 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2563
2563
  constructor(options = {}) {
2564
2564
  // ─── RBAC Enforcement ─────────────────────────────────────────────────
2565
2565
  this.compilerName = "R3FCompiler";
2566
- this.rbac = chunkKKP7JKN4_cjs.getRBAC();
2566
+ this.rbac = chunkLODTHGST_cjs.getRBAC();
2567
2567
  this.qualityTier = options.qualityTier ?? "high";
2568
2568
  this.tierScales = exports.QUALITY_TIER_SCALES[this.qualityTier];
2569
2569
  this._defaultLighting = options.defaultLighting ?? true;
2570
2570
  this._holomapPointCloud = options.holomapPointCloud;
2571
2571
  if (options.platformTarget) {
2572
- this._platformTarget = typeof options.platformTarget === "string" ? chunkAIA52I7T_cjs.createPlatformTarget(options.platformTarget) : options.platformTarget;
2572
+ this._platformTarget = typeof options.platformTarget === "string" ? chunkEBS32AJI_cjs.createPlatformTarget(options.platformTarget) : options.platformTarget;
2573
2573
  }
2574
2574
  }
2575
2575
  /**
@@ -2594,7 +2594,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2594
2594
  expectedWorkflowStep: "generate_assembly" /* GENERATE_ASSEMBLY */
2595
2595
  });
2596
2596
  if (!astDecision.allowed) {
2597
- throw new chunkKKP7JKN4_cjs.UnauthorizedCompilerAccessError(astDecision, "AST access", this.compilerName);
2597
+ throw new chunkLODTHGST_cjs.UnauthorizedCompilerAccessError(astDecision, "AST access", this.compilerName);
2598
2598
  }
2599
2599
  const codeDecision = this.rbac.checkAccess({
2600
2600
  token: agentToken,
@@ -2603,7 +2603,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2603
2603
  expectedWorkflowStep: "generate_assembly" /* GENERATE_ASSEMBLY */
2604
2604
  });
2605
2605
  if (!codeDecision.allowed) {
2606
- throw new chunkKKP7JKN4_cjs.UnauthorizedCompilerAccessError(codeDecision, "code generation", this.compilerName);
2606
+ throw new chunkLODTHGST_cjs.UnauthorizedCompilerAccessError(codeDecision, "code generation", this.compilerName);
2607
2607
  }
2608
2608
  if (outputPath) {
2609
2609
  const outputDecision = this.rbac.checkAccess({
@@ -2614,7 +2614,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2614
2614
  expectedWorkflowStep: "serialize" /* SERIALIZE */
2615
2615
  });
2616
2616
  if (!outputDecision.allowed) {
2617
- throw new chunkKKP7JKN4_cjs.UnauthorizedCompilerAccessError(
2617
+ throw new chunkLODTHGST_cjs.UnauthorizedCompilerAccessError(
2618
2618
  outputDecision,
2619
2619
  `output write to '${outputPath}'`,
2620
2620
  this.compilerName
@@ -2764,15 +2764,15 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2764
2764
  this.injectDefaultLighting(root);
2765
2765
  const domainBlocks = ast.domainBlocks ?? [];
2766
2766
  if (domainBlocks.length > 0) {
2767
- const compiled = chunkHKEXJUWS_cjs.compileDomainBlocks(
2767
+ const compiled = chunkGH6C2QGW_cjs.compileDomainBlocks(
2768
2768
  domainBlocks,
2769
2769
  {
2770
2770
  material: (block) => {
2771
- const mat = chunkHKEXJUWS_cjs.compileMaterialBlock(block);
2771
+ const mat = chunkGH6C2QGW_cjs.compileMaterialBlock(block);
2772
2772
  return {
2773
2773
  type: "DomainBlockOutput",
2774
2774
  props: {
2775
- __raw: chunkHKEXJUWS_cjs.materialToR3F(mat, this.tierScales),
2775
+ __raw: chunkGH6C2QGW_cjs.materialToR3F(mat, this.tierScales),
2776
2776
  __domain: "material",
2777
2777
  __name: mat.name
2778
2778
  },
@@ -2780,11 +2780,11 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2780
2780
  };
2781
2781
  },
2782
2782
  physics: (block) => {
2783
- const phys = chunkHKEXJUWS_cjs.compilePhysicsBlock(block);
2783
+ const phys = chunkGH6C2QGW_cjs.compilePhysicsBlock(block);
2784
2784
  return {
2785
2785
  type: "DomainBlockOutput",
2786
2786
  props: {
2787
- __raw: chunkHKEXJUWS_cjs.physicsToR3F(phys),
2787
+ __raw: chunkGH6C2QGW_cjs.physicsToR3F(phys),
2788
2788
  __domain: "physics",
2789
2789
  __name: phys.name || phys.keyword
2790
2790
  },
@@ -2792,11 +2792,11 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2792
2792
  };
2793
2793
  },
2794
2794
  vfx: (block) => {
2795
- const ps = chunkHKEXJUWS_cjs.compileParticleBlock(block);
2795
+ const ps = chunkGH6C2QGW_cjs.compileParticleBlock(block);
2796
2796
  return {
2797
2797
  type: "DomainBlockOutput",
2798
2798
  props: {
2799
- __raw: chunkHKEXJUWS_cjs.particlesToR3F(ps, this.tierScales),
2799
+ __raw: chunkGH6C2QGW_cjs.particlesToR3F(ps, this.tierScales),
2800
2800
  __domain: "vfx",
2801
2801
  __name: ps.name
2802
2802
  },
@@ -2804,11 +2804,11 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2804
2804
  };
2805
2805
  },
2806
2806
  postfx: (block) => {
2807
- const pp = chunkHKEXJUWS_cjs.compilePostProcessingBlock(block);
2807
+ const pp = chunkGH6C2QGW_cjs.compilePostProcessingBlock(block);
2808
2808
  return {
2809
2809
  type: "DomainBlockOutput",
2810
2810
  props: {
2811
- __raw: chunkHKEXJUWS_cjs.postProcessingToR3F(pp),
2811
+ __raw: chunkGH6C2QGW_cjs.postProcessingToR3F(pp),
2812
2812
  __domain: "postfx",
2813
2813
  __name: pp.name || "PostProcessing"
2814
2814
  },
@@ -2816,19 +2816,19 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2816
2816
  };
2817
2817
  },
2818
2818
  audio: (block) => {
2819
- const audio = chunkHKEXJUWS_cjs.compileAudioSourceBlock(block);
2819
+ const audio = chunkGH6C2QGW_cjs.compileAudioSourceBlock(block);
2820
2820
  return {
2821
2821
  type: "DomainBlockOutput",
2822
- props: { __raw: chunkHKEXJUWS_cjs.audioSourceToR3F(audio), __domain: "audio", __name: audio.name },
2822
+ props: { __raw: chunkGH6C2QGW_cjs.audioSourceToR3F(audio), __domain: "audio", __name: audio.name },
2823
2823
  children: []
2824
2824
  };
2825
2825
  },
2826
2826
  weather: (block) => {
2827
- const weather = chunkHKEXJUWS_cjs.compileWeatherBlock(block);
2827
+ const weather = chunkGH6C2QGW_cjs.compileWeatherBlock(block);
2828
2828
  return {
2829
2829
  type: "DomainBlockOutput",
2830
2830
  props: {
2831
- __raw: chunkHKEXJUWS_cjs.weatherToR3F(weather),
2831
+ __raw: chunkGH6C2QGW_cjs.weatherToR3F(weather),
2832
2832
  __domain: "weather",
2833
2833
  __name: weather.name || "Weather"
2834
2834
  },
@@ -2836,11 +2836,11 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2836
2836
  };
2837
2837
  },
2838
2838
  simulation: (block) => {
2839
- const sim = chunkHKEXJUWS_cjs.compileSimulationBlock(block);
2839
+ const sim = chunkGH6C2QGW_cjs.compileSimulationBlock(block);
2840
2840
  return {
2841
2841
  type: "DomainBlockOutput",
2842
2842
  props: {
2843
- __raw: chunkHKEXJUWS_cjs.simulationToR3F(sim),
2843
+ __raw: chunkGH6C2QGW_cjs.simulationToR3F(sim),
2844
2844
  __domain: "simulation",
2845
2845
  __name: sim.name || "Simulation"
2846
2846
  },
@@ -2900,7 +2900,9 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2900
2900
  const childNodes = [];
2901
2901
  if (world.children && world.children.length > 0) {
2902
2902
  for (const child of world.children) {
2903
- childNodes.push(this.compileObjectDecl(child, templateMap));
2903
+ childNodes.push(
2904
+ this.compileObjectDecl(child, templateMap)
2905
+ );
2904
2906
  }
2905
2907
  }
2906
2908
  if (childNodes.length === 0) {
@@ -2909,7 +2911,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2909
2911
  const group = this.createNode(
2910
2912
  "group",
2911
2913
  {},
2912
- world.name ? chunkKKP7JKN4_cjs.escapeStringValue(world.name, "JSX") : void 0
2914
+ world.name ? chunkLODTHGST_cjs.escapeStringValue(world.name, "JSX") : void 0
2913
2915
  );
2914
2916
  group.children = [...nodes, ...childNodes];
2915
2917
  return [group];
@@ -2933,15 +2935,17 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2933
2935
  * from `.holo` data instead of hand-authoring it.
2934
2936
  */
2935
2937
  emitCompiledLotusMaterial(props, config) {
2936
- const profile = chunkZMCVKFXI_cjs.createBotanicalLotusRenderProfile(config);
2937
- props.__compiledMaterial = chunkZMCVKFXI_cjs.buildLotusPetalMaterialSpec(profile);
2938
- props.__uniformBindings = chunkZMCVKFXI_cjs.LOTUS_PETAL_UNIFORM_BINDINGS;
2939
- props.__petalGeometry = chunkZMCVKFXI_cjs.buildLotusPetalGeometryData(
2940
- chunkZMCVKFXI_cjs.lotusPetalGeometryParamsFromProfile(profile)
2938
+ const profile = chunk56VOWURB_cjs.createBotanicalLotusRenderProfile(config);
2939
+ props.__compiledMaterial = chunk56VOWURB_cjs.buildLotusPetalMaterialSpec(profile);
2940
+ props.__uniformBindings = chunk56VOWURB_cjs.LOTUS_PETAL_UNIFORM_BINDINGS;
2941
+ props.__petalGeometry = chunk56VOWURB_cjs.buildLotusPetalGeometryData(
2942
+ chunk56VOWURB_cjs.lotusPetalGeometryParamsFromProfile(profile)
2941
2943
  );
2942
- props.__petalPlacements = chunkZMCVKFXI_cjs.buildLotusFlowerPlacements(profile);
2944
+ props.__petalPlacements = chunk56VOWURB_cjs.buildLotusFlowerPlacements(profile);
2945
+ const scaffold = chunk56VOWURB_cjs.buildLotusSceneScaffold();
2943
2946
  props.__lotusScene = {
2944
- stemHeight: 2.4,
2947
+ stemHeight: scaffold.stem.height,
2948
+ scaffold,
2945
2949
  colors: {
2946
2950
  water: profile.colors.water,
2947
2951
  leaf: profile.colors.leaf,
@@ -2954,9 +2958,109 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2954
2958
  seedPodRim: profile.colors.seed_pod_rim,
2955
2959
  stamen: profile.colors.stamen,
2956
2960
  stamenTip: profile.colors.stamen_tip,
2957
- stamenCount: profile.stamen_filament_count
2961
+ stamenCount: profile.stamen_filament_count,
2962
+ // Carpel layout for the flat-topped "shower-head" seed pod, parsed from the
2963
+ // profile's declared dot pattern (e.g. '1_center_7_12_18_radial' → [1,7,12,18]
2964
+ // = 1 central carpel + radial rings of 7, 12, 18). The renderer recesses a
2965
+ // carpel well per entry — the iconic lotus receptacle, compiled from `.holo`.
2966
+ carpelRings: (profile.seed_pod_dot_pattern?.match(/\d+/g) ?? [
2967
+ "1",
2968
+ "7",
2969
+ "12",
2970
+ "18"
2971
+ ]).map(Number)
2958
2972
  }
2959
2973
  };
2974
+ const waterColor = profile.colors.water;
2975
+ const leafColor = profile.colors.leaf;
2976
+ const leafDarkColor = profile.colors.leaf_dark;
2977
+ const stemHeight = scaffold.stem.height;
2978
+ const scaffoldNodes = [
2979
+ this.createNode("mesh", {
2980
+ hsType: "plane",
2981
+ width: scaffold.waterSize,
2982
+ height: scaffold.waterSize,
2983
+ rotation: [-Math.PI / 2, 0, 0],
2984
+ color: waterColor,
2985
+ roughness: 0.22,
2986
+ metalness: 0.5,
2987
+ // Mark the pond as a REFLECTIVE surface — the renderer's generic MeshNode draws
2988
+ // it with a mirror material so the flower + pads reflect (a real water read).
2989
+ reflective: true
2990
+ }),
2991
+ ...scaffold.pads.map(
2992
+ (pad, padIdx) => this.createNode("mesh", {
2993
+ hsType: "lilypad",
2994
+ radius: pad.radius,
2995
+ // Per-pad notch width variation so the pads don't look stamped.
2996
+ notchAngle: 0.48 + padIdx % 3 * 0.07,
2997
+ position: pad.pos,
2998
+ rotation: [-Math.PI / 2, 0, pad.rotation],
2999
+ color: pad.dark ? leafDarkColor : leafColor,
3000
+ roughness: 0.85
3001
+ })
3002
+ )
3003
+ ];
3004
+ const stemNode = this.createNode("group", {
3005
+ __animatedTransform: [
3006
+ { prop: "scaleY", target: "developmentalTime", edge0: 0, edge1: 0.42, from: 1e-3, to: 1 },
3007
+ {
3008
+ prop: "posY",
3009
+ target: "developmentalTime",
3010
+ edge0: 0,
3011
+ edge1: 0.42,
3012
+ from: 0,
3013
+ to: stemHeight / 2
3014
+ }
3015
+ ]
3016
+ });
3017
+ stemNode.children = [
3018
+ this.createNode("mesh", {
3019
+ hsType: "cylinder",
3020
+ radiusTop: scaffold.stem.topRadius,
3021
+ radiusBottom: scaffold.stem.bottomRadius,
3022
+ height: stemHeight,
3023
+ color: leafDarkColor,
3024
+ roughness: 0.7
3025
+ })
3026
+ ];
3027
+ scaffoldNodes.push(stemNode);
3028
+ scaffold.leaves.forEach((lf, i) => {
3029
+ const leafNode = this.createNode("group", {
3030
+ position: lf.pos,
3031
+ __animatedTransform: [
3032
+ {
3033
+ prop: "scaleUniform",
3034
+ target: "developmentalTime",
3035
+ edge0: 0.15 + i * 0.08,
3036
+ edge1: 0.55 + i * 0.08,
3037
+ from: 0,
3038
+ to: 1
3039
+ }
3040
+ ]
3041
+ });
3042
+ leafNode.children = [
3043
+ this.createNode("mesh", {
3044
+ hsType: "cylinder",
3045
+ radiusTop: 0.03,
3046
+ radiusBottom: 0.045,
3047
+ height: lf.height,
3048
+ position: [0, lf.height / 2, 0],
3049
+ color: leafDarkColor,
3050
+ roughness: 0.7
3051
+ }),
3052
+ this.createNode("mesh", {
3053
+ hsType: "circle",
3054
+ radius: lf.radius,
3055
+ position: [0, lf.height, 0],
3056
+ rotation: [-Math.PI / 2 + lf.tilt, 0, lf.rotation],
3057
+ color: lf.dark ? leafDarkColor : leafColor,
3058
+ roughness: 0.8
3059
+ })
3060
+ ];
3061
+ scaffoldNodes.push(leafNode);
3062
+ });
3063
+ props.__scaffoldNodes = scaffoldNodes;
2960
3064
  }
2961
3065
  compileNode(node) {
2962
3066
  if (node.type === "system") {
@@ -2970,7 +3074,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
2970
3074
  const r3fNode = r3fNodePool.acquire();
2971
3075
  r3fNode.type = type;
2972
3076
  const rawId = node.id || node.name;
2973
- r3fNode.id = rawId ? chunkKKP7JKN4_cjs.escapeStringValue(rawId, "JSX") : void 0;
3077
+ r3fNode.id = rawId ? chunkLODTHGST_cjs.escapeStringValue(rawId, "JSX") : void 0;
2974
3078
  r3fNode.props = this.compileProperties(node, rawProps);
2975
3079
  r3fNode.children = [];
2976
3080
  r3fNode.traits = /* @__PURE__ */ new Map();
@@ -3004,12 +3108,12 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3004
3108
  compileComposition(composition, agentToken, outputPath) {
3005
3109
  this.validateCompilerAccess(agentToken, outputPath);
3006
3110
  if (this._platformTarget) {
3007
- const platformMixin = new chunkAIA52I7T_cjs.PlatformConditionalCompilerMixin();
3111
+ const platformMixin = new chunkEBS32AJI_cjs.PlatformConditionalCompilerMixin();
3008
3112
  composition = platformMixin.filterForPlatform(composition, this._platformTarget);
3009
3113
  }
3010
3114
  const root = r3fNodePool.acquire();
3011
3115
  root.type = "group";
3012
- root.id = composition.name ? chunkKKP7JKN4_cjs.escapeStringValue(composition.name, "JSX") : void 0;
3116
+ root.id = composition.name ? chunkLODTHGST_cjs.escapeStringValue(composition.name, "JSX") : void 0;
3013
3117
  root.props = {};
3014
3118
  root.children = [];
3015
3119
  root.traits = /* @__PURE__ */ new Map();
@@ -3032,7 +3136,9 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3032
3136
  }
3033
3137
  if (composition.environment) {
3034
3138
  root.children.push(
3035
- ...this.compileEnvironmentBlock(composition.environment)
3139
+ ...this.compileEnvironmentBlock(
3140
+ composition.environment
3141
+ )
3036
3142
  );
3037
3143
  }
3038
3144
  if (Array.isArray(composition.lights)) {
@@ -3052,7 +3158,9 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3052
3158
  }
3053
3159
  if (Array.isArray(composition.timelines)) {
3054
3160
  for (const timeline of composition.timelines) {
3055
- root.children.push(this.compileTimelineBlock(timeline));
3161
+ root.children.push(
3162
+ this.compileTimelineBlock(timeline)
3163
+ );
3056
3164
  }
3057
3165
  }
3058
3166
  if (Array.isArray(composition.audio)) {
@@ -3076,11 +3184,15 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3076
3184
  }
3077
3185
  }
3078
3186
  if (composition.ui) {
3079
- root.children.push(this.compileUIBlock(composition.ui));
3187
+ root.children.push(
3188
+ this.compileUIBlock(composition.ui)
3189
+ );
3080
3190
  }
3081
3191
  if (Array.isArray(composition.transitions)) {
3082
3192
  for (const transition of composition.transitions) {
3083
- root.children.push(this.compileTransitionBlock(transition));
3193
+ root.children.push(
3194
+ this.compileTransitionBlock(transition)
3195
+ );
3084
3196
  }
3085
3197
  }
3086
3198
  if (Array.isArray(composition.conditionals)) {
@@ -3094,7 +3206,9 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3094
3206
  }
3095
3207
  }
3096
3208
  if (composition.camera) {
3097
- root.children.push(this.compileCameraBlock(composition.camera));
3209
+ root.children.push(
3210
+ this.compileCameraBlock(composition.camera)
3211
+ );
3098
3212
  }
3099
3213
  if (composition.effects) {
3100
3214
  root.children.unshift(
@@ -3156,7 +3270,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3156
3270
  }
3157
3271
  const r3fNode = r3fNodePool.acquire();
3158
3272
  r3fNode.type = type;
3159
- r3fNode.id = light.name ? chunkKKP7JKN4_cjs.escapeStringValue(light.name, "JSX") : void 0;
3273
+ r3fNode.id = light.name ? chunkLODTHGST_cjs.escapeStringValue(light.name, "JSX") : void 0;
3160
3274
  r3fNode.props = props;
3161
3275
  r3fNode.children = [];
3162
3276
  r3fNode.traits = /* @__PURE__ */ new Map();
@@ -3465,7 +3579,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
3465
3579
  }
3466
3580
  }
3467
3581
  if (obj.traits && Array.isArray(obj.traits)) {
3468
- const semiring = new chunk5S7RKFGR_cjs.ProvenanceSemiring();
3582
+ const semiring = new chunkUVFI7XIR_cjs.ProvenanceSemiring();
3469
3583
  const physicsApplications = obj.traits.filter((t) => t.name === "physics" || t.name === "collidable").map((t) => {
3470
3584
  let baseConfig = t.config || {};
3471
3585
  if (t.name === "collidable" && !baseConfig.type)
@@ -4009,7 +4123,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
4009
4123
  entries.push(this.createNode("TimelineEntry", entryProps));
4010
4124
  }
4011
4125
  }
4012
- const safeName = timeline.name ? chunkKKP7JKN4_cjs.escapeStringValue(timeline.name, "JSX") : void 0;
4126
+ const safeName = timeline.name ? chunkLODTHGST_cjs.escapeStringValue(timeline.name, "JSX") : void 0;
4013
4127
  const timelineNode = this.createNode(
4014
4128
  "Timeline",
4015
4129
  { autoplay: timeline.autoplay, loop: timeline.loop },
@@ -4031,7 +4145,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
4031
4145
  }
4032
4146
  }
4033
4147
  }
4034
- const safeName = audio.name ? chunkKKP7JKN4_cjs.escapeStringValue(audio.name, "JSX") : void 0;
4148
+ const safeName = audio.name ? chunkLODTHGST_cjs.escapeStringValue(audio.name, "JSX") : void 0;
4035
4149
  return this.createNode("Audio", props, safeName);
4036
4150
  }
4037
4151
  compileZoneBlock(zone) {
@@ -4050,7 +4164,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
4050
4164
  })
4051
4165
  );
4052
4166
  }
4053
- const safeName = zone.name ? chunkKKP7JKN4_cjs.escapeStringValue(zone.name, "JSX") : void 0;
4167
+ const safeName = zone.name ? chunkLODTHGST_cjs.escapeStringValue(zone.name, "JSX") : void 0;
4054
4168
  return this.createNode("Zone", props, safeName);
4055
4169
  }
4056
4170
  compileUIBlock(ui) {
@@ -4067,7 +4181,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
4067
4181
  }
4068
4182
  }
4069
4183
  }
4070
- const safeElName = el.name ? chunkKKP7JKN4_cjs.escapeStringValue(el.name, "JSX") : void 0;
4184
+ const safeElName = el.name ? chunkLODTHGST_cjs.escapeStringValue(el.name, "JSX") : void 0;
4071
4185
  children.push(this.createNode("UIElement", elProps, safeElName));
4072
4186
  }
4073
4187
  }
@@ -4082,7 +4196,7 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
4082
4196
  props[prop.key] = prop.value;
4083
4197
  }
4084
4198
  }
4085
- const safeName = transition.name ? chunkKKP7JKN4_cjs.escapeStringValue(transition.name, "JSX") : void 0;
4199
+ const safeName = transition.name ? chunkLODTHGST_cjs.escapeStringValue(transition.name, "JSX") : void 0;
4086
4200
  return this.createNode("Transition", props, safeName);
4087
4201
  }
4088
4202
  compileConditionalBlock(cond, templateMap) {
@@ -4289,7 +4403,9 @@ var init_R3FCompiler = chunkHCCQLAA4_cjs.__esm({
4289
4403
  } else if (d.name === "spatial_audio" || d.name === "voice") {
4290
4404
  props.spatial = true;
4291
4405
  } else if (d.name === "gem_resonance") {
4292
- props.gemResonance = gemResonanceConfig(d.config);
4406
+ props.gemResonance = gemResonanceConfig(
4407
+ d.config
4408
+ );
4293
4409
  props.spatial = true;
4294
4410
  } else if (d.name === "networked") {
4295
4411
  props.networked = d.config || true;
@@ -4419,5 +4535,5 @@ exports.init_ObjectPool = init_ObjectPool;
4419
4535
  exports.init_R3FCompiler = init_R3FCompiler;
4420
4536
  exports.init_visual = init_visual;
4421
4537
  exports.registerAllPresets = registerAllPresets;
4422
- //# sourceMappingURL=chunk-ON5QSY35.cjs.map
4423
- //# sourceMappingURL=chunk-ON5QSY35.cjs.map
4538
+ //# sourceMappingURL=chunk-KAIVDEIG.cjs.map
4539
+ //# sourceMappingURL=chunk-KAIVDEIG.cjs.map
@@ -1,5 +1,5 @@
1
- import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileWeatherBlock, compileAudioSourceBlock, compilePhysicsBlock, physicsToURDF, compileMaterialBlock } from './chunk-BOVPWH4H.js';
2
- import { init_CompilerBase, CompilerBase } from './chunk-QPSKHBJP.js';
1
+ import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileWeatherBlock, compileAudioSourceBlock, compilePhysicsBlock, physicsToURDF, compileMaterialBlock } from './chunk-ZA34AN3R.js';
2
+ import { init_CompilerBase, CompilerBase } from './chunk-C7ZBSV2Q.js';
3
3
  import { __export, __esm } from './chunk-OL46QLBJ.js';
4
4
  import { ANSCapabilityPath } from '@holoscript/core-types/ans';
5
5
 
@@ -264,8 +264,16 @@ var init_URDFCompiler = __esm({
264
264
  const trait = obj.traits?.find((t) => this.getTraitName(t) === traitName);
265
265
  if (!trait) return void 0;
266
266
  if (typeof trait === "string") return {};
267
- const { name: _name, ...config } = trait;
268
- return config;
267
+ const traitObj = trait;
268
+ if ("config" in traitObj && typeof traitObj.config === "object") {
269
+ return traitObj.config;
270
+ }
271
+ const { name: _name, ...rest } = traitObj;
272
+ if (rest.type === "ObjectTrait") {
273
+ const { type: _type, ...config } = rest;
274
+ return config;
275
+ }
276
+ return rest;
269
277
  }
270
278
  /** Map HoloScript joint types to URDF joint types */
271
279
  mapJointType(holoType) {
@@ -407,6 +415,10 @@ var init_URDFCompiler = __esm({
407
415
  }
408
416
  /** Extract mass from physics property or trait */
409
417
  extractMass(obj) {
418
+ const physicsTraitConfig = this.getTraitConfig(obj, "physics");
419
+ if (physicsTraitConfig?.mass !== void 0 && typeof physicsTraitConfig.mass === "number") {
420
+ return physicsTraitConfig.mass;
421
+ }
410
422
  const physicsProp = obj.properties.find((p) => p.key === "physics");
411
423
  if (physicsProp && typeof physicsProp.value === "object" && !Array.isArray(physicsProp.value)) {
412
424
  const massEntry = physicsProp.value.mass;
@@ -1395,5 +1407,5 @@ var init_URDFCompiler = __esm({
1395
1407
  });
1396
1408
 
1397
1409
  export { URDFCompiler, URDFCompiler_default, URDFCompiler_exports, compileForGazebo, compileForIsaacSim, compileForROS2, compileToURDF, createURDFCompiler, generateControllersYaml, generateROS2LaunchFile, init_URDFCompiler };
1398
- //# sourceMappingURL=chunk-R24NNAEG.js.map
1399
- //# sourceMappingURL=chunk-R24NNAEG.js.map
1410
+ //# sourceMappingURL=chunk-KCPHASCO.js.map
1411
+ //# sourceMappingURL=chunk-KCPHASCO.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkNG77ATEW_cjs = require('./chunk-NG77ATEW.cjs');
4
- var chunkWRLUBRKS_cjs = require('./chunk-WRLUBRKS.cjs');
3
+ var chunk6PRZIHGL_cjs = require('./chunk-6PRZIHGL.cjs');
4
+ var chunk3SKLAUDD_cjs = require('./chunk-3SKLAUDD.cjs');
5
5
  var crypto = require('crypto');
6
6
 
7
7
  function _interopNamespace(e) {
@@ -983,7 +983,7 @@ function similarity(a, b) {
983
983
  function findSimilarTrait(input, threshold = 0.5) {
984
984
  let bestMatch;
985
985
  let bestScore = threshold;
986
- for (const trait of chunkWRLUBRKS_cjs.VR_TRAITS) {
986
+ for (const trait of chunk3SKLAUDD_cjs.VR_TRAITS) {
987
987
  const score = similarity(input, trait);
988
988
  if (score > bestScore) {
989
989
  bestScore = score;
@@ -1788,7 +1788,7 @@ var HoloScriptPlusParser = class {
1788
1788
  this.hasVRTraits = false;
1789
1789
  this.hasControlFlow = false;
1790
1790
  this.compiledExpressions = /* @__PURE__ */ new Map();
1791
- this.errorRecovery = new chunkNG77ATEW_cjs.ErrorRecovery();
1791
+ this.errorRecovery = new chunk6PRZIHGL_cjs.ErrorRecovery();
1792
1792
  /**
1793
1793
  * Internal incremental parser for parseIncremental.
1794
1794
  * Uses ChunkBasedIncrementalParser with AST-aware chunking and
@@ -1814,7 +1814,7 @@ var HoloScriptPlusParser = class {
1814
1814
  getQuickFixes() {
1815
1815
  const fixes = /* @__PURE__ */ new Map();
1816
1816
  for (const error of this.errors) {
1817
- const errorFixes = chunkNG77ATEW_cjs.generateQuickFixes(
1817
+ const errorFixes = chunk6PRZIHGL_cjs.generateQuickFixes(
1818
1818
  {
1819
1819
  code: error.code,
1820
1820
  message: error.message,
@@ -1835,7 +1835,7 @@ var HoloScriptPlusParser = class {
1835
1835
  */
1836
1836
  getEnrichedErrors() {
1837
1837
  return this.errors.map(
1838
- (error) => chunkNG77ATEW_cjs.enrichErrorWithSuggestions(
1838
+ (error) => chunk6PRZIHGL_cjs.enrichErrorWithSuggestions(
1839
1839
  {
1840
1840
  code: error.code,
1841
1841
  message: error.message,
@@ -1920,7 +1920,10 @@ var HoloScriptPlusParser = class {
1920
1920
  directives: [],
1921
1921
  children: [incrementalResult.ast],
1922
1922
  traits: /* @__PURE__ */ new Map(),
1923
- loc: incrementalResult.ast.loc || { start: { line: 1, column: 1 }, end: { line: 1, column: 1 } },
1923
+ loc: incrementalResult.ast.loc || {
1924
+ start: { line: 1, column: 1 },
1925
+ end: { line: 1, column: 1 }
1926
+ },
1924
1927
  body: [incrementalResult.ast]
1925
1928
  };
1926
1929
  if (root.type === "fragment" && root.loc) {
@@ -2632,7 +2635,7 @@ var HoloScriptPlusParser = class {
2632
2635
  const body = this.check("LBRACE") ? this.parseCodeBlock() : "";
2633
2636
  return { type: "migrate", fromVersion, body };
2634
2637
  }
2635
- if (chunkWRLUBRKS_cjs.VR_TRAITS.includes(name)) {
2638
+ if (chunk3SKLAUDD_cjs.VR_TRAITS.includes(name)) {
2636
2639
  if (!this.options.enableVRTraits) {
2637
2640
  this.warn(`VR trait @${name} is disabled`);
2638
2641
  return null;
@@ -2645,7 +2648,7 @@ var HoloScriptPlusParser = class {
2645
2648
  }
2646
2649
  return this.parseTraitSumTail({ type: "trait", name, config: config2 });
2647
2650
  }
2648
- if (chunkNG77ATEW_cjs.LIFECYCLE_HOOKS.includes(name)) {
2651
+ if (chunk6PRZIHGL_cjs.LIFECYCLE_HOOKS.includes(name)) {
2649
2652
  const params = [];
2650
2653
  if (this.check("LPAREN")) {
2651
2654
  this.advance();
@@ -2954,7 +2957,7 @@ var HoloScriptPlusParser = class {
2954
2957
  return { type: "hololand_event", event: eventName, params };
2955
2958
  }
2956
2959
  }
2957
- if (chunkNG77ATEW_cjs.STRUCTURAL_DIRECTIVES.includes(name)) {
2960
+ if (chunk6PRZIHGL_cjs.STRUCTURAL_DIRECTIVES.includes(name)) {
2958
2961
  let nodeName;
2959
2962
  if (this.check("STRING")) {
2960
2963
  nodeName = this.advance().value;
@@ -4655,7 +4658,7 @@ var HoloScriptPlusParser = class {
4655
4658
  code: "HSP001"
4656
4659
  };
4657
4660
  }
4658
- if (current.type === "IDENTIFIER" && chunkWRLUBRKS_cjs.VR_TRAITS.includes(current.value)) {
4661
+ if (current.type === "IDENTIFIER" && chunk3SKLAUDD_cjs.VR_TRAITS.includes(current.value)) {
4659
4662
  if (prev?.type !== "AT") {
4660
4663
  return {
4661
4664
  message: `'${current.value}' is a trait and requires '@' prefix`,
@@ -4881,5 +4884,5 @@ exports.getSourceContext = getSourceContext;
4881
4884
  exports.globalParseCache = globalParseCache;
4882
4885
  exports.parse = parse;
4883
4886
  exports.parseIncrementalChunks = parseIncrementalChunks;
4884
- //# sourceMappingURL=chunk-T5J7ZKP3.cjs.map
4885
- //# sourceMappingURL=chunk-T5J7ZKP3.cjs.map
4887
+ //# sourceMappingURL=chunk-KOUAQL2B.cjs.map
4888
+ //# sourceMappingURL=chunk-KOUAQL2B.cjs.map
@@ -1504,5 +1504,5 @@ exports.lightingHandler = lightingHandler;
1504
1504
  exports.materialHandler = materialHandler;
1505
1505
  exports.renderingHandler = renderingHandler;
1506
1506
  exports.shaderHandler = shaderHandler;
1507
- //# sourceMappingURL=chunk-GMP623FG.cjs.map
1508
- //# sourceMappingURL=chunk-GMP623FG.cjs.map
1507
+ //# sourceMappingURL=chunk-KQU64CIX.cjs.map
1508
+ //# sourceMappingURL=chunk-KQU64CIX.cjs.map
@@ -1,5 +1,5 @@
1
- import { HoloScriptRuntime } from './chunk-QACVP4PM.js';
2
- import { HoloScriptCodeParser } from './chunk-URG2SJLK.js';
1
+ import { HoloScriptRuntime } from './chunk-PXNZ6TME.js';
2
+ import { HoloScriptCodeParser } from './chunk-MDR235RZ.js';
3
3
 
4
4
  // src/HoloScriptDebugger.ts
5
5
  var HoloScriptDebugger = class {
@@ -417,5 +417,5 @@ function createDebugger(runtime) {
417
417
  }
418
418
 
419
419
  export { HoloScriptDebugger, createDebugger };
420
- //# sourceMappingURL=chunk-MVPBWHAC.js.map
421
- //# sourceMappingURL=chunk-MVPBWHAC.js.map
420
+ //# sourceMappingURL=chunk-L5U4W6JC.js.map
421
+ //# sourceMappingURL=chunk-L5U4W6JC.js.map