@holoscript/core 8.0.8 → 8.0.9

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 (462) hide show
  1. package/bin/holoscript.cjs +5 -1
  2. package/dist/GLTFPipeline-L76YTXKA.js +15 -0
  3. package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
  4. package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
  5. package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
  6. package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
  7. package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
  8. package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
  9. package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
  10. package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
  11. package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
  12. package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
  13. package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
  14. package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
  15. package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
  16. package/dist/agents/index.cjs +1 -1
  17. package/dist/agents/index.js +1 -1
  18. package/dist/audit/AuditLogger.d.ts +106 -0
  19. package/dist/audit/AuditQueryBuilder.d.ts +79 -0
  20. package/dist/audit/ComplianceReporter.d.ts +90 -0
  21. package/dist/audit/index.d.ts +13 -0
  22. package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
  23. package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
  24. package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
  25. package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
  26. package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
  27. package/dist/chunk-2MQKNDNH.js +51 -0
  28. package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
  29. package/dist/chunk-2ZOTBO25.cjs +202 -0
  30. package/dist/chunk-356N4NPM.cjs +152 -0
  31. package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
  32. package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
  33. package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
  34. package/dist/chunk-3F7ZZWIN.js +1651 -0
  35. package/dist/chunk-3ILD7TKP.cjs +187 -0
  36. package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
  37. package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
  38. package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
  39. package/dist/chunk-4Q7RKQQI.cjs +14195 -0
  40. package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
  41. package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
  42. package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
  43. package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
  44. package/dist/chunk-63AUAIL6.js +48 -0
  45. package/dist/chunk-655FATJU.js +110 -0
  46. package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
  47. package/dist/chunk-6NTAZN5Z.cjs +502 -0
  48. package/dist/chunk-6TRX6AR2.js +9376 -0
  49. package/dist/chunk-6ZCCLKS2.cjs +51 -0
  50. package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
  51. package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
  52. package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
  53. package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
  54. package/dist/chunk-7VBKRGIZ.cjs +847 -0
  55. package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
  56. package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
  57. package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
  58. package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
  59. package/dist/chunk-BCP4E7MD.cjs +997 -0
  60. package/dist/chunk-BG7RPYJP.js +91 -0
  61. package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
  62. package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
  63. package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
  64. package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
  65. package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
  66. package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
  67. package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
  68. package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
  69. package/dist/chunk-D3HSRXYB.js +115 -0
  70. package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
  71. package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
  72. package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
  73. package/dist/chunk-DQRJ5RJG.js +432 -0
  74. package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
  75. package/dist/chunk-ECUYJOJ2.cjs +199 -0
  76. package/dist/chunk-EEMTCAK7.js +182 -0
  77. package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
  78. package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
  79. package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
  80. package/dist/chunk-ESBXUYOC.cjs +836 -0
  81. package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
  82. package/dist/chunk-ET3AN4W3.js +824 -0
  83. package/dist/chunk-EXKSFGSX.cjs +14 -14
  84. package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
  85. package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
  86. package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
  87. package/dist/chunk-FGGJQRLZ.js +14 -14
  88. package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
  89. package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
  90. package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
  91. package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
  92. package/dist/chunk-GGR7QUKK.cjs +4724 -0
  93. package/dist/chunk-GIBF4BHH.js +14098 -0
  94. package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
  95. package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
  96. package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
  97. package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
  98. package/dist/chunk-GTIPOEHN.js +196 -0
  99. package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
  100. package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
  101. package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
  102. package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
  103. package/dist/chunk-HIDEIEFG.js +48 -0
  104. package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
  105. package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
  106. package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
  107. package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
  108. package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
  109. package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
  110. package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
  111. package/dist/chunk-J2DAS2PL.js +148 -0
  112. package/dist/chunk-JBQXZIWB.js +148 -0
  113. package/dist/chunk-JBYBMBMW.js +261 -0
  114. package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
  115. package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
  116. package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
  117. package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
  118. package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
  119. package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
  120. package/dist/chunk-KPGC7SK2.js +192 -0
  121. package/dist/chunk-KROXXBK5.cjs +53 -0
  122. package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
  123. package/dist/chunk-LDYZWNJW.cjs +1654 -0
  124. package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
  125. package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
  126. package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
  127. package/dist/chunk-MUWH4QK5.cjs +94 -0
  128. package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
  129. package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
  130. package/dist/chunk-NFFHLX37.cjs +132 -0
  131. package/dist/chunk-NJSYWX7H.js +190 -0
  132. package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
  133. package/dist/chunk-NTQRFOPP.cjs +56 -0
  134. package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
  135. package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
  136. package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
  137. package/dist/chunk-OMNHTCS4.cjs +264 -0
  138. package/dist/chunk-OQXB6NNC.cjs +117 -0
  139. package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
  140. package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
  141. package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
  142. package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
  143. package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
  144. package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
  145. package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
  146. package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
  147. package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
  148. package/dist/chunk-QBY7LRN2.js +281 -0
  149. package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
  150. package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
  151. package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
  152. package/dist/chunk-QJNCDVYM.cjs +137 -0
  153. package/dist/chunk-QM7FJB5W.js +4717 -0
  154. package/dist/chunk-QQFB4RT2.cjs +448 -0
  155. package/dist/chunk-QSYBHQAD.cjs +196 -0
  156. package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
  157. package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
  158. package/dist/chunk-RAJMAX6D.js +131 -0
  159. package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
  160. package/dist/chunk-RKGUZBOC.js +79 -0
  161. package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
  162. package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
  163. package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
  164. package/dist/chunk-SE7ANBGN.js +128 -0
  165. package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
  166. package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
  167. package/dist/chunk-SR73L5ZP.cjs +84 -0
  168. package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
  169. package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
  170. package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
  171. package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
  172. package/dist/chunk-UCVZXQ63.js +724 -0
  173. package/dist/chunk-UGQ3QNV6.js +992 -0
  174. package/dist/chunk-UNMVGZVW.js +142 -0
  175. package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
  176. package/dist/chunk-UXBYA7DV.cjs +155 -0
  177. package/dist/chunk-V6GXFSK7.cjs +443 -0
  178. package/dist/chunk-VHORVGCG.cjs +761 -0
  179. package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
  180. package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
  181. package/dist/chunk-VVAAZITA.cjs +287 -0
  182. package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
  183. package/dist/chunk-W4GABFCR.js +37 -0
  184. package/dist/chunk-WKEK4NCA.js +490 -0
  185. package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
  186. package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
  187. package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
  188. package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
  189. package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
  190. package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
  191. package/dist/chunk-YAO4HPJL.cjs +120 -0
  192. package/dist/chunk-YKY2JBER.cjs +9443 -0
  193. package/dist/chunk-YP5CHEYU.cjs +154 -0
  194. package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
  195. package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
  196. package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
  197. package/dist/chunk-ZHPMP447.cjs +43 -0
  198. package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
  199. package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
  200. package/dist/chunk-ZVFHPMC5.js +824 -0
  201. package/dist/chunk-ZVQMKUGJ.js +443 -0
  202. package/dist/cli/holoscript-runner.cjs +86 -48
  203. package/dist/cli/holoscript-runner.js +54 -16
  204. package/dist/codebase/index.cjs +1 -1
  205. package/dist/codebase/index.js +1 -1
  206. package/dist/compiler/agent-inference.cjs +11 -11
  207. package/dist/compiler/agent-inference.js +9 -6
  208. package/dist/compiler/android-xr.cjs +13 -12
  209. package/dist/compiler/android-xr.js +11 -10
  210. package/dist/compiler/android.cjs +12 -12
  211. package/dist/compiler/android.js +10 -10
  212. package/dist/compiler/business-quest.cjs +10 -10
  213. package/dist/compiler/business-quest.js +2 -2
  214. package/dist/compiler/coco.cjs +1 -1
  215. package/dist/compiler/coco.js +1 -1
  216. package/dist/compiler/context.cjs +9 -9
  217. package/dist/compiler/context.js +6 -6
  218. package/dist/compiler/daimon-seed.cjs +36 -0
  219. package/dist/compiler/daimon-seed.js +12 -0
  220. package/dist/compiler/domain-block-utils.cjs +205 -156
  221. package/dist/compiler/domain-block-utils.js +8 -7
  222. package/dist/compiler/dtdl.cjs +10 -10
  223. package/dist/compiler/dtdl.js +7 -7
  224. package/dist/compiler/gltf-pipeline.cjs +9 -9
  225. package/dist/compiler/gltf-pipeline.js +2 -2
  226. package/dist/compiler/godot.cjs +10 -9
  227. package/dist/compiler/godot.js +9 -8
  228. package/dist/compiler/incremental.cjs +11 -11
  229. package/dist/compiler/incremental.js +6 -6
  230. package/dist/compiler/index.cjs +2585 -3273
  231. package/dist/compiler/index.d.ts +149 -35
  232. package/dist/compiler/index.js +2197 -3102
  233. package/dist/compiler/ios.cjs +11 -11
  234. package/dist/compiler/ios.js +9 -9
  235. package/dist/compiler/llm-provider-capabilities.cjs +9 -9
  236. package/dist/compiler/llm-provider-capabilities.js +6 -6
  237. package/dist/compiler/nodetoy.cjs +1 -1
  238. package/dist/compiler/nodetoy.js +1 -1
  239. package/dist/compiler/openxr.cjs +11 -10
  240. package/dist/compiler/openxr.js +10 -9
  241. package/dist/compiler/remotion.cjs +1 -1
  242. package/dist/compiler/remotion.js +1 -1
  243. package/dist/compiler/reproducibility.cjs +1 -1
  244. package/dist/compiler/reproducibility.js +1 -1
  245. package/dist/compiler/sdf.cjs +11 -10
  246. package/dist/compiler/sdf.js +9 -8
  247. package/dist/compiler/semantic-scene.cjs +7 -7
  248. package/dist/compiler/semantic-scene.js +2 -2
  249. package/dist/compiler/state.cjs +9 -9
  250. package/dist/compiler/state.js +7 -7
  251. package/dist/compiler/trait-composition.cjs +11 -11
  252. package/dist/compiler/trait-composition.js +7 -7
  253. package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
  254. package/dist/compiler/traits/Semiring.d.ts +26 -0
  255. package/dist/compiler/unity.cjs +11 -10
  256. package/dist/compiler/unity.js +10 -9
  257. package/dist/compiler/unreal.cjs +12 -11
  258. package/dist/compiler/unreal.js +10 -9
  259. package/dist/compiler/urdf.cjs +18 -17
  260. package/dist/compiler/urdf.js +9 -8
  261. package/dist/compiler/usd-physics.cjs +11 -10
  262. package/dist/compiler/usd-physics.js +8 -7
  263. package/dist/compiler/visionos.cjs +11 -10
  264. package/dist/compiler/visionos.js +10 -9
  265. package/dist/compiler/vrchat.cjs +11 -10
  266. package/dist/compiler/vrchat.js +9 -8
  267. package/dist/compiler/wasm.cjs +14 -13
  268. package/dist/compiler/wasm.js +9 -8
  269. package/dist/compiler/webgpu.cjs +10 -9
  270. package/dist/compiler/webgpu.js +9 -8
  271. package/dist/constants.cjs +398 -0
  272. package/dist/constants.js +9 -0
  273. package/dist/coordinators/index.cjs +4 -1
  274. package/dist/coordinators/index.js +4 -1
  275. package/dist/debugger.cjs +11 -9
  276. package/dist/debugger.js +9 -7
  277. package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
  278. package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
  279. package/dist/entries/interop.cjs +23 -23
  280. package/dist/entries/interop.js +3 -3
  281. package/dist/entries/scripting.cjs +12 -11
  282. package/dist/entries/scripting.js +8 -7
  283. package/dist/evolution/index.cjs +66 -0
  284. package/dist/evolution/index.d.ts +162 -0
  285. package/dist/evolution/index.js +17 -0
  286. package/dist/hololand/index.cjs +41 -37
  287. package/dist/hololand/index.js +3 -3
  288. package/dist/index.cjs +12394 -3224
  289. package/dist/index.d.ts +260 -18
  290. package/dist/index.js +10755 -2182
  291. package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
  292. package/dist/keyword-registry/index.cjs +29 -0
  293. package/dist/keyword-registry/index.d.ts +1 -0
  294. package/dist/keyword-registry/index.js +4 -0
  295. package/dist/math/tropical-spmv.cjs +11 -11
  296. package/dist/math/tropical-spmv.d.ts +1 -0
  297. package/dist/math/tropical-spmv.js +2 -2
  298. package/dist/math/tropicalSpmv.d.ts +43 -0
  299. package/dist/math/vec3.cjs +1 -1
  300. package/dist/math/vec3.js +1 -1
  301. package/dist/matter/StagedMatter.d.ts +82 -0
  302. package/dist/matter/index.cjs +17 -0
  303. package/dist/matter/index.d.ts +1 -0
  304. package/dist/matter/index.js +4 -0
  305. package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
  306. package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
  307. package/dist/paper-0c-spike/index.cjs +1 -1
  308. package/dist/paper-0c-spike/index.js +1 -1
  309. package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
  310. package/dist/parameter-envelope/index.cjs +17 -0
  311. package/dist/parameter-envelope/index.d.ts +2 -0
  312. package/dist/parameter-envelope/index.js +4 -0
  313. package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
  314. package/dist/parser/PipelineParser.d.ts +162 -0
  315. package/dist/parser.cjs +36 -20
  316. package/dist/parser.js +13 -9
  317. package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
  318. package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
  319. package/dist/plugin-manifest/index.cjs +25 -0
  320. package/dist/plugin-manifest/index.d.ts +2 -0
  321. package/dist/plugin-manifest/index.js +4 -0
  322. package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
  323. package/dist/plugin-solver-contract/index.cjs +41 -0
  324. package/dist/plugin-solver-contract/index.d.ts +1 -0
  325. package/dist/plugin-solver-contract/index.js +4 -0
  326. package/dist/policy/ContentPolicyGate.d.ts +51 -0
  327. package/dist/policy/PolicyPack.d.ts +120 -0
  328. package/dist/policy/blocklist.d.ts +32 -0
  329. package/dist/policy/defaults.d.ts +44 -0
  330. package/dist/policy/index.cjs +106 -0
  331. package/dist/policy/index.d.ts +17 -0
  332. package/dist/policy/index.js +5 -0
  333. package/dist/policy/jsonLogic.d.ts +31 -0
  334. package/dist/policy/types.d.ts +174 -0
  335. package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
  336. package/dist/proof-composition/index.cjs +25 -0
  337. package/dist/proof-composition/index.d.ts +1 -0
  338. package/dist/proof-composition/index.js +4 -0
  339. package/dist/receipts/hash-policy.d.ts +85 -0
  340. package/dist/reconstruction/index.cjs +75 -47
  341. package/dist/reconstruction/index.js +5 -5
  342. package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
  343. package/dist/runtime.cjs +81 -79
  344. package/dist/runtime.js +9 -7
  345. package/dist/scene-presets-EDKYZ5GW.js +4 -0
  346. package/dist/scene-presets-NCW2CFRS.cjs +17 -0
  347. package/dist/self-improvement/index.cjs +1 -1
  348. package/dist/self-improvement/index.js +1 -1
  349. package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
  350. package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
  351. package/dist/storage/index.cjs +10 -10
  352. package/dist/storage/index.js +3 -3
  353. package/dist/testing.cjs +1 -1
  354. package/dist/testing.js +1 -1
  355. package/dist/tools/index.cjs +3631 -0
  356. package/dist/tools/index.js +3581 -0
  357. package/dist/traitDocs/traitDocs.cjs +9 -9
  358. package/dist/traitDocs/traitDocs.d.ts +1 -0
  359. package/dist/traitDocs/traitDocs.js +3 -3
  360. package/dist/traits/ControlLoopTrait.d.ts +154 -0
  361. package/dist/traits/KinematicChainTrait.d.ts +116 -0
  362. package/dist/traits/SensorSamplingTrait.d.ts +154 -0
  363. package/dist/traits/TraitTypes.d.ts +270 -0
  364. package/dist/traits/TransactionTrait.d.ts +121 -0
  365. package/dist/traits/botanical-lotus.cjs +54 -50
  366. package/dist/traits/botanical-lotus.js +2 -5
  367. package/dist/traits/control-loop.cjs +21 -0
  368. package/dist/traits/control-loop.d.ts +1 -0
  369. package/dist/traits/control-loop.js +4 -0
  370. package/dist/traits/engines/cloth-verlet.d.ts +65 -0
  371. package/dist/traits/engines/index.cjs +19 -19
  372. package/dist/traits/engines/index.d.ts +15 -275
  373. package/dist/traits/engines/index.js +3 -3
  374. package/dist/traits/engines/motion-data-schema.d.ts +119 -0
  375. package/dist/traits/engines/motion-matching.d.ts +102 -0
  376. package/dist/traits/engines/noise.d.ts +25 -0
  377. package/dist/traits/engines/onnx-adapter.d.ts +173 -0
  378. package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
  379. package/dist/traits/engines/pfnn-network.d.ts +92 -0
  380. package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
  381. package/dist/traits/engines/tensor-ops.d.ts +15 -0
  382. package/dist/traits/index.cjs +2789 -1259
  383. package/dist/traits/index.d.ts +35 -0
  384. package/dist/traits/index.js +1692 -411
  385. package/dist/traits/kinematic-chain.cjs +25 -0
  386. package/dist/traits/kinematic-chain.d.ts +1 -0
  387. package/dist/traits/kinematic-chain.js +4 -0
  388. package/dist/traits/sensor-sampling.cjs +33 -0
  389. package/dist/traits/sensor-sampling.d.ts +1 -0
  390. package/dist/traits/sensor-sampling.js +4 -0
  391. package/dist/traits/simulation-solver-factory.cjs +1 -1
  392. package/dist/traits/simulation-solver-factory.js +1 -1
  393. package/dist/traits/transaction.cjs +29 -0
  394. package/dist/traits/transaction.d.ts +1 -0
  395. package/dist/traits/transaction.js +4 -0
  396. package/dist/traits/webcam-gaze.cjs +1 -1
  397. package/dist/traits/webcam-gaze.js +1 -1
  398. package/dist/type-checker.cjs +7 -6
  399. package/dist/type-checker.js +5 -4
  400. package/dist/types/AdvancedTypeSystem.d.ts +489 -0
  401. package/dist/types/HoloScriptPlus.d.ts +810 -0
  402. package/dist/types/base.d.ts +248 -0
  403. package/dist/types.d.ts +799 -0
  404. package/dist/world/index.cjs +3 -4
  405. package/dist/world/index.js +3 -4
  406. package/dist/world-model/index.cjs +1 -1
  407. package/dist/world-model/index.js +1 -1
  408. package/dist/wot/index.cjs +1 -1
  409. package/dist/wot/index.js +1 -1
  410. package/package.json +113 -46
  411. package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
  412. package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
  413. package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
  414. package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
  415. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
  416. package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
  417. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
  418. package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
  419. package/dist/chunk-22Q5A6RV.js +0 -979
  420. package/dist/chunk-4C57PR42.js +0 -468
  421. package/dist/chunk-4W5G5QVL.cjs +0 -847
  422. package/dist/chunk-5ET6L4NS.js +0 -487
  423. package/dist/chunk-C4GSLCHE.cjs +0 -7153
  424. package/dist/chunk-F2G6CWFT.js +0 -7089
  425. package/dist/chunk-G6PNEASF.cjs +0 -814
  426. package/dist/chunk-GTA4Q3A3.js +0 -1491
  427. package/dist/chunk-HCCQLAA4.cjs +0 -74
  428. package/dist/chunk-HFSVMKM3.cjs +0 -72
  429. package/dist/chunk-KAIVDEIG.cjs +0 -4539
  430. package/dist/chunk-KQU64CIX.cjs +0 -1508
  431. package/dist/chunk-MSYSQ2AJ.js +0 -4533
  432. package/dist/chunk-NHJLP37F.js +0 -70
  433. package/dist/chunk-NHYRRAGI.cjs +0 -490
  434. package/dist/chunk-OIQYIIO3.cjs +0 -473
  435. package/dist/chunk-OL46QLBJ.js +0 -61
  436. package/dist/chunk-SKZPC5AG.cjs +0 -984
  437. package/dist/chunk-SLHLXUMO.js +0 -445
  438. package/dist/chunk-UOIGFQXC.cjs +0 -9750
  439. package/dist/chunk-UOL6Y5TD.cjs +0 -759
  440. package/dist/chunk-UVFI7XIR.cjs +0 -452
  441. package/dist/chunk-VEPGBETF.js +0 -844
  442. package/dist/chunk-XQ5MWMP2.js +0 -756
  443. package/dist/chunk-XT6JY5W5.js +0 -9684
  444. package/dist/chunk-YRRAUB35.js +0 -811
  445. package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
  446. package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
  447. package/dist/compiler/ar.cjs +0 -23
  448. package/dist/compiler/ar.js +0 -11
  449. package/dist/compiler/babylon.cjs +0 -21
  450. package/dist/compiler/babylon.js +0 -15
  451. package/dist/compiler/multi-layer.cjs +0 -24
  452. package/dist/compiler/multi-layer.js +0 -15
  453. package/dist/compiler/playcanvas.cjs +0 -19
  454. package/dist/compiler/playcanvas.js +0 -13
  455. package/dist/compiler/r3f.cjs +0 -39
  456. package/dist/compiler/r3f.d.ts +0 -22
  457. package/dist/compiler/r3f.js +0 -17
  458. package/dist/compiler/vrr.cjs +0 -24
  459. package/dist/compiler/vrr.js +0 -12
  460. package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
  461. package/dist/playwright-3AT3AKTV.cjs +0 -98673
  462. package/dist/playwright-VZPDVUEQ.js +0 -98660
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkFEWUHQNM_cjs = require('./chunk-FEWUHQNM.cjs');
4
- var chunkEBS32AJI_cjs = require('./chunk-EBS32AJI.cjs');
5
- var chunkGH6C2QGW_cjs = require('./chunk-GH6C2QGW.cjs');
6
- var chunkLODTHGST_cjs = require('./chunk-LODTHGST.cjs');
7
- var chunkHCCQLAA4_cjs = require('./chunk-HCCQLAA4.cjs');
3
+ var chunkCFVK26P4_cjs = require('./chunk-CFVK26P4.cjs');
4
+ var chunkTZCFKZ6Z_cjs = require('./chunk-TZCFKZ6Z.cjs');
5
+ var chunkQEDMOGF3_cjs = require('./chunk-QEDMOGF3.cjs');
6
+ var chunkZK7KX5CD_cjs = require('./chunk-ZK7KX5CD.cjs');
7
+ var chunkZHPMP447_cjs = require('./chunk-ZHPMP447.cjs');
8
8
  var ans = require('@holoscript/core-types/ans');
9
9
 
10
10
  // src/compiler/AndroidXRTraitDispatch.ts
11
11
  var WorldPhysicsConfig, PHYSICS_TRAIT_MAP, INTERACTION_TRAIT_MAP, AUDIO_TRAIT_MAP, AR_TRAIT_MAP, ACCESSIBILITY_TRAIT_MAP, UI_TRAIT_MAP, ENVIRONMENT_TRAIT_MAP, DP3_TRAIT_MAP, GLASSES_TRAIT_MAP, MULTIPLAYER_TRAIT_MAP;
12
- var init_AndroidXRTraitDispatch = chunkHCCQLAA4_cjs.__esm({
12
+ var init_AndroidXRTraitDispatch = chunkZHPMP447_cjs.__esm({
13
13
  "src/compiler/AndroidXRTraitDispatch.ts"() {
14
14
  WorldPhysicsConfig = {
15
15
  EARTH: { gravity: -9.81 },
@@ -2141,7 +2141,7 @@ var init_AndroidXRTraitDispatch = chunkHCCQLAA4_cjs.__esm({
2141
2141
 
2142
2142
  // src/compiler/AndroidXRCodeTemplates.ts
2143
2143
  var VISUAL_TRAIT_MAP, V43_TRAIT_MAP, AI_TRAIT_MAP;
2144
- var init_AndroidXRCodeTemplates = chunkHCCQLAA4_cjs.__esm({
2144
+ var init_AndroidXRCodeTemplates = chunkZHPMP447_cjs.__esm({
2145
2145
  "src/compiler/AndroidXRCodeTemplates.ts"() {
2146
2146
  VISUAL_TRAIT_MAP = {
2147
2147
  visible: {
@@ -3864,7 +3864,7 @@ function generateTraitCode(traitName, varName, config) {
3864
3864
  return mapping.generate(varName, config);
3865
3865
  }
3866
3866
  exports.ANDROIDXR_TRAIT_MAP = void 0;
3867
- var init_AndroidXRTraitMap = chunkHCCQLAA4_cjs.__esm({
3867
+ var init_AndroidXRTraitMap = chunkZHPMP447_cjs.__esm({
3868
3868
  "src/compiler/AndroidXRTraitMap.ts"() {
3869
3869
  init_AndroidXRTraitDispatch();
3870
3870
  init_AndroidXRCodeTemplates();
@@ -4005,6 +4005,33 @@ function compileAction(compiler, action) {
4005
4005
  compiler.emit("}");
4006
4006
  compiler.emit("");
4007
4007
  }
4008
+ function kotlinFloat(value) {
4009
+ return `${value}f`;
4010
+ }
4011
+ function isNumberArray(value) {
4012
+ return Array.isArray(value) && value.length > 0 && value.every((v) => typeof v === "number");
4013
+ }
4014
+ function toXRVector3(value) {
4015
+ if (isNumberArray(value)) {
4016
+ const [x, y = x, z = x] = value;
4017
+ return `Vector3(${kotlinFloat(x)}, ${kotlinFloat(y)}, ${kotlinFloat(z)})`;
4018
+ }
4019
+ if (typeof value === "number") {
4020
+ return `Vector3(${kotlinFloat(value)}, ${kotlinFloat(value)}, ${kotlinFloat(value)})`;
4021
+ }
4022
+ return "Vector3(0f, 0f, 0f)";
4023
+ }
4024
+ function toXRPose(value) {
4025
+ return `Pose(${toXRVector3(value)}, Quaternion.Identity)`;
4026
+ }
4027
+ function xrEntityCreate(compiler, sessionVar, name, poseValue) {
4028
+ return `Entity.create(${sessionVar}, "${compiler.escapeStringValue(name, "Kotlin")}", ${toXRPose(poseValue)})`;
4029
+ }
4030
+ function emitScale(compiler, target, scale) {
4031
+ if (isNumberArray(scale) || typeof scale === "number") {
4032
+ compiler.emit(`${target}.setScale(${toXRVector3(scale)})`);
4033
+ }
4034
+ }
4008
4035
  function generateNodeFactoryFile(compiler, composition) {
4009
4036
  compiler.lines = [];
4010
4037
  compiler.indentLevel = 0;
@@ -4017,7 +4044,7 @@ function generateNodeFactoryFile(compiler, composition) {
4017
4044
  compiler.emit(`package ${pkg}`);
4018
4045
  compiler.emit("");
4019
4046
  compiler.emit("import android.net.Uri");
4020
- compiler.emit("import androidx.xr.scenecore.Session as XRSession");
4047
+ compiler.emit("import androidx.xr.runtime.Session as XRSession");
4021
4048
  compiler.emit("import androidx.xr.scenecore.Entity");
4022
4049
  compiler.emit("import androidx.xr.scenecore.GltfModel");
4023
4050
  compiler.emit("import androidx.xr.scenecore.GltfModelEntity");
@@ -4030,41 +4057,24 @@ function generateNodeFactoryFile(compiler, composition) {
4030
4057
  compiler.emit("/**");
4031
4058
  compiler.emit(" * Create a default entity in the XR scene.");
4032
4059
  compiler.emit(" */");
4033
- compiler.emit("fun createDefaultEntity(session: XRSession): Entity {");
4060
+ compiler.emit("suspend fun createDefaultEntity(session: XRSession): Entity {");
4034
4061
  compiler.indent();
4035
4062
  if (composition.objects?.length) {
4036
4063
  const firstObj = composition.objects[0];
4037
4064
  const modelSrc = compiler.findProp(firstObj, "model") ?? compiler.findProp(firstObj, "src");
4065
+ const pos = compiler.findProp(firstObj, "position");
4038
4066
  if (modelSrc) {
4039
4067
  compiler.emit(`val gltfModel = GltfModel.create(session, Uri.parse("${modelSrc}"))`);
4040
- compiler.emit("return GltfModelEntity.create(session, gltfModel).apply {");
4041
- compiler.indent();
4042
- compiler.emit("parent = session.scene.activitySpace");
4043
- const pos = compiler.findProp(firstObj, "position");
4044
- if (pos && Array.isArray(pos)) {
4045
- compiler.emit(
4046
- `setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4047
- );
4048
- }
4049
- compiler.dedent();
4050
- compiler.emit("}");
4068
+ compiler.emit(
4069
+ `return GltfModelEntity.create(session, gltfModel, ${toXRPose(pos)})`
4070
+ );
4051
4071
  } else {
4052
4072
  compiler.emit(
4053
- `val entity = session.scene.createEntity("${compiler.escapeStringValue(firstObj.name, "Kotlin")}")`
4073
+ `return ${xrEntityCreate(compiler, "session", firstObj.name, pos)}`
4054
4074
  );
4055
- compiler.emit("entity.parent = session.scene.activitySpace");
4056
- const pos = compiler.findProp(firstObj, "position");
4057
- if (pos && Array.isArray(pos)) {
4058
- compiler.emit(
4059
- `entity.setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4060
- );
4061
- }
4062
- compiler.emit("return entity");
4063
4075
  }
4064
4076
  } else {
4065
- compiler.emit('val entity = session.scene.createEntity("default")');
4066
- compiler.emit("entity.parent = session.scene.activitySpace");
4067
- compiler.emit("return entity");
4077
+ compiler.emit(`return ${xrEntityCreate(compiler, "session", "default")}`);
4068
4078
  }
4069
4079
  compiler.dedent();
4070
4080
  compiler.emit("}");
@@ -4072,7 +4082,7 @@ function generateNodeFactoryFile(compiler, composition) {
4072
4082
  compiler.emit("/**");
4073
4083
  compiler.emit(" * Load a glTF model and create a GltfModelEntity.");
4074
4084
  compiler.emit(" */");
4075
- compiler.emit("fun loadGltfModel(");
4085
+ compiler.emit("suspend fun loadGltfModel(");
4076
4086
  compiler.indent();
4077
4087
  compiler.emit("session: XRSession,");
4078
4088
  compiler.emit("modelUri: String,");
@@ -4082,11 +4092,15 @@ function generateNodeFactoryFile(compiler, composition) {
4082
4092
  compiler.emit("): GltfModelEntity {");
4083
4093
  compiler.indent();
4084
4094
  compiler.emit("val gltfModel = GltfModel.create(session, Uri.parse(modelUri))");
4085
- compiler.emit("return GltfModelEntity.create(session, gltfModel).apply {");
4095
+ compiler.emit("return GltfModelEntity.create(");
4096
+ compiler.indent();
4097
+ compiler.emit("session,");
4098
+ compiler.emit("gltfModel,");
4099
+ compiler.emit("Pose(position, Quaternion.Identity)");
4100
+ compiler.dedent();
4101
+ compiler.emit(").apply {");
4086
4102
  compiler.indent();
4087
- compiler.emit("parent = session.scene.activitySpace");
4088
- compiler.emit("setPose(Pose(position, Quaternion.identity()))");
4089
- compiler.emit("setScale(com.google.android.filament.utils.Float3(scale, scale, scale))");
4103
+ compiler.emit("setScale(Vector3(scale, scale, scale))");
4090
4104
  compiler.dedent();
4091
4105
  compiler.emit("}");
4092
4106
  compiler.dedent();
@@ -4102,48 +4116,26 @@ function generateNodeFactoryFile(compiler, composition) {
4102
4116
  function compileObjectFactory(compiler, obj) {
4103
4117
  const methodName = `create${compiler.sanitizeName(obj.name).charAt(0).toUpperCase() + compiler.sanitizeName(obj.name).slice(1)}`;
4104
4118
  const modelSrc = compiler.findProp(obj, "model") ?? compiler.findProp(obj, "src");
4105
- compiler.emit(`fun ${methodName}(session: XRSession): Entity {`);
4119
+ const pos = compiler.findProp(obj, "position");
4120
+ const scale = compiler.findProp(obj, "scale");
4121
+ compiler.emit(`${modelSrc ? "suspend " : ""}fun ${methodName}(session: XRSession): Entity {`);
4106
4122
  compiler.indent();
4107
4123
  if (modelSrc) {
4108
4124
  compiler.emit(`val gltfModel = GltfModel.create(session, Uri.parse("${modelSrc}"))`);
4109
- compiler.emit("return GltfModelEntity.create(session, gltfModel).apply {");
4125
+ compiler.emit("return GltfModelEntity.create(");
4110
4126
  compiler.indent();
4111
- compiler.emit("parent = session.scene.activitySpace");
4112
- const pos = compiler.findProp(obj, "position");
4113
- if (pos && Array.isArray(pos)) {
4114
- compiler.emit(
4115
- `setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4116
- );
4117
- }
4118
- const scale = compiler.findProp(obj, "scale");
4119
- if (scale && Array.isArray(scale)) {
4120
- compiler.emit(`setScale(${compiler.toKotlinFloat3(scale)})`);
4121
- } else if (typeof scale === "number") {
4122
- compiler.emit(
4123
- `setScale(com.google.android.filament.utils.Float3(${scale}f, ${scale}f, ${scale}f))`
4124
- );
4125
- }
4127
+ compiler.emit("session,");
4128
+ compiler.emit("gltfModel,");
4129
+ compiler.emit(`${toXRPose(pos)}`);
4130
+ compiler.dedent();
4131
+ compiler.emit(").apply {");
4132
+ compiler.indent();
4133
+ emitScale(compiler, "this", scale);
4126
4134
  compiler.dedent();
4127
4135
  compiler.emit("}");
4128
4136
  } else {
4129
- compiler.emit(
4130
- `val entity = session.scene.createEntity("${compiler.escapeStringValue(obj.name, "Kotlin")}")`
4131
- );
4132
- compiler.emit("entity.parent = session.scene.activitySpace");
4133
- const pos = compiler.findProp(obj, "position");
4134
- if (pos && Array.isArray(pos)) {
4135
- compiler.emit(
4136
- `entity.setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4137
- );
4138
- }
4139
- const scale = compiler.findProp(obj, "scale");
4140
- if (scale && Array.isArray(scale)) {
4141
- compiler.emit(`entity.setScale(${compiler.toKotlinFloat3(scale)})`);
4142
- } else if (typeof scale === "number") {
4143
- compiler.emit(
4144
- `entity.setScale(com.google.android.filament.utils.Float3(${scale}f, ${scale}f, ${scale}f))`
4145
- );
4146
- }
4137
+ compiler.emit(`val entity = ${xrEntityCreate(compiler, "session", obj.name, pos)}`);
4138
+ emitScale(compiler, "entity", scale);
4147
4139
  compiler.emit("return entity");
4148
4140
  }
4149
4141
  compiler.dedent();
@@ -4151,7 +4143,6 @@ function compileObjectFactory(compiler, obj) {
4151
4143
  compiler.emit("");
4152
4144
  }
4153
4145
  function generateManifestFile(compiler, composition) {
4154
- const pkg = compiler.options.packageName;
4155
4146
  const activityName = compiler.options.activityName;
4156
4147
  const hasHandTracking = composition.objects?.some(
4157
4148
  (o) => o.traits?.some((t) => t.name === "hand_tracking")
@@ -4192,8 +4183,7 @@ function generateManifestFile(compiler, composition) {
4192
4183
  const arCameraFeatureLine = needsArCameraFeature ? ` <uses-feature android:name="android.hardware.camera.ar" android:required="${arRequired}" />` : "";
4193
4184
  return `<?xml version="1.0" encoding="utf-8"?>
4194
4185
  <!-- Auto-generated by HoloScript AndroidXRCompiler -->
4195
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
4196
- package="${pkg}">
4186
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
4197
4187
 
4198
4188
  <!-- XR Permissions -->
4199
4189
  ${xrPermissions.join("\n")}
@@ -4288,15 +4278,14 @@ dependencies {
4288
4278
  implementation("androidx.compose.material3:material3")
4289
4279
  implementation("androidx.compose.runtime:runtime")
4290
4280
 
4291
- // Android XR - Jetpack XR SceneCore
4292
- implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha01")
4293
- implementation("androidx.xr.compose:compose:1.0.0-alpha01")
4294
-
4295
- // Android XR - ARCore for Jetpack XR
4296
- implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
4297
-
4298
- // Android XR - Runtime
4299
- implementation("androidx.xr:xr:1.0.0-alpha01")
4281
+ // Android XR \u2014 Jetpack XR SceneCore + Compose for XR + ARCore + Runtime.
4282
+ // Real published coordinates (verified against dl.google.com Maven group indexes); pinned to a
4283
+ // consistent alpha15 present in all four groups. NOTE: 'androidx.xr:xr' is NOT a published
4284
+ // artifact (it broke dependency resolution) \u2014 the runtime impl is 'androidx.xr.runtime:runtime'.
4285
+ implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha15")
4286
+ implementation("androidx.xr.compose:compose:1.0.0-alpha15")
4287
+ implementation("androidx.xr.arcore:arcore:1.0.0-alpha15")
4288
+ implementation("androidx.xr.runtime:runtime:1.0.0-alpha15")
4300
4289
 
4301
4290
  // Filament (PBR Rendering)
4302
4291
  implementation("com.google.android.filament:filament-android:1.51.0")
@@ -4330,7 +4319,10 @@ function emitImports(compiler, composition) {
4330
4319
  compiler.emit("import androidx.xr.compose.subspace.layout.*");
4331
4320
  compiler.emit("");
4332
4321
  compiler.emit("import androidx.xr.scenecore.Entity");
4333
- compiler.emit("import androidx.xr.scenecore.Session as XRSession");
4322
+ compiler.emit("import androidx.xr.runtime.Session as XRSession");
4323
+ if (compiler.options.useARCore) {
4324
+ compiler.emit("import androidx.xr.runtime.Config");
4325
+ }
4334
4326
  compiler.emit("import androidx.xr.scenecore.GltfModel");
4335
4327
  compiler.emit("import androidx.xr.scenecore.GltfModelEntity");
4336
4328
  compiler.emit("import androidx.xr.scenecore.SurfaceEntity");
@@ -4339,14 +4331,8 @@ function emitImports(compiler, composition) {
4339
4331
  compiler.emit("import androidx.xr.runtime.math.Vector3");
4340
4332
  compiler.emit("import androidx.xr.runtime.math.Quaternion");
4341
4333
  compiler.emit("");
4342
- if (compiler.options.useARCore) {
4343
- compiler.emit("import com.google.ar.core.Config");
4344
- compiler.emit("import com.google.ar.core.Plane");
4345
- compiler.emit("import com.google.ar.core.Anchor");
4346
- }
4347
4334
  if (compiler.options.useFilament) {
4348
4335
  compiler.emit("import com.google.android.filament.LightManager");
4349
- compiler.emit("import com.google.android.filament.utils.Float3");
4350
4336
  }
4351
4337
  const hasHandTracking = composition.objects?.some(
4352
4338
  (o) => o.traits?.some((t) => t.name === "hand_tracking")
@@ -4406,7 +4392,7 @@ function emitActivityClass(compiler, composition) {
4406
4392
  compiler.emit("override fun onCreate(savedInstanceState: Bundle?) {");
4407
4393
  compiler.indent();
4408
4394
  compiler.emit("super.onCreate(savedInstanceState)");
4409
- compiler.emit("xrSession = XRSession.create(this)");
4395
+ compiler.emit("xrSession = XRSession(this)");
4410
4396
  if (compiler.options.useARCore) {
4411
4397
  compiler.emit("");
4412
4398
  emitARSession(compiler);
@@ -4469,14 +4455,7 @@ function emitAITraitHelpers(compiler, composition) {
4469
4455
  }
4470
4456
  }
4471
4457
  function emitARSession(compiler) {
4472
- compiler.emit("xrSession.scene.configure { config ->");
4473
- compiler.indent();
4474
- compiler.emit("config.planeFindingMode = Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL");
4475
- compiler.emit("config.lightEstimationMode = Config.LightEstimationMode.ENVIRONMENTAL_HDR");
4476
- compiler.emit("config.depthMode = Config.DepthMode.AUTOMATIC");
4477
- compiler.emit("config.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE");
4478
- compiler.dedent();
4479
- compiler.emit("}");
4458
+ compiler.emit("xrSession.configure(Config())");
4480
4459
  }
4481
4460
  function emitSceneComposable(compiler, composition) {
4482
4461
  const name = compiler.sanitizeName(composition.name);
@@ -4497,7 +4476,7 @@ function emitSceneComposable(compiler, composition) {
4497
4476
  if (composition.camera) emitCamera(compiler, composition.camera);
4498
4477
  for (const l of composition.lights ?? []) emitLight(compiler, l);
4499
4478
  if (composition.objects?.some((o) => o.traits?.some((t) => t.name === "environment_probe"))) {
4500
- compiler.emit("val sceneRoot = xrSession.scene.activitySpace");
4479
+ compiler.emit("// Environment probe runtime anchor is resolved after capability checks.");
4501
4480
  }
4502
4481
  for (const o of composition.objects ?? []) {
4503
4482
  const hasHeadFollow = o.traits?.some(
@@ -4531,14 +4510,10 @@ function emitEnvironment(compiler, env) {
4531
4510
  for (const prop of env.properties) {
4532
4511
  if (prop.key === "preset" || prop.key === "skybox") {
4533
4512
  compiler.emit(`// Preset: "${prop.value}"`);
4534
- compiler.emit("xrSession.scene.configure { config ->");
4535
- compiler.indent();
4536
- compiler.emit("config.lightEstimationMode = Config.LightEstimationMode.ENVIRONMENTAL_HDR");
4537
- compiler.dedent();
4538
- compiler.emit("}");
4513
+ compiler.emit("// Scene lighting is resolved by the Android XR runtime.");
4539
4514
  } else if (prop.key === "passthrough") {
4540
4515
  if (prop.value === true || prop.value === "true") {
4541
- compiler.emit("xrSession.scene.configure { it.focusMode = Config.FocusMode.AUTO }");
4516
+ compiler.emit("// Passthrough requested; device policy controls camera focus.");
4542
4517
  }
4543
4518
  } else if (prop.key === "fog" && typeof prop.value === "object") {
4544
4519
  compiler.emit(`// Fog: ${JSON.stringify(prop.value)} -- apply via Filament renderer`);
@@ -4549,39 +4524,26 @@ function emitEnvironment(compiler, env) {
4549
4524
  }
4550
4525
  function emitObject(compiler, obj) {
4551
4526
  const v = compiler.sanitizeName(obj.name);
4552
- const meshType = compiler.findProp(obj, "mesh") ?? compiler.findProp(obj, "type") ?? "cube";
4527
+ const meshType = compiler.findProp(obj, "mesh") ?? compiler.findProp(obj, "geometry") ?? compiler.findProp(obj, "type") ?? "cube";
4553
4528
  const modelSrc = compiler.findProp(obj, "model") ?? compiler.findProp(obj, "src");
4529
+ const pos = compiler.findProp(obj, "position");
4530
+ const scale = compiler.findProp(obj, "scale");
4554
4531
  compiler.emit("");
4555
4532
  compiler.emit(`// Object: ${compiler.escapeStringValue(obj.name, "Kotlin")}`);
4556
4533
  if (obj.traits?.some((t) => t.name === "plane_detection")) {
4557
- compiler.emit(
4558
- `val ${v}Plane = xrSession.scene.createEntity("${compiler.escapeStringValue(obj.name, "Kotlin")}_plane")`
4559
- );
4560
- compiler.emit(`${v}Plane.setPose(Pose(Vector3(0f, 0f, 0f), Quaternion.identity()))`);
4534
+ compiler.emit("// Plane detection requested; runtime session config remains device-gated.");
4561
4535
  }
4562
4536
  const anchor = obj.traits?.find((t) => t.name === "anchor");
4563
4537
  if (anchor) {
4564
- compiler.emit(
4565
- `val ${v}Anchor = xrSession.scene.createAnchorEntity() // type: ${anchor.config?.type ?? "plane"}`
4566
- );
4538
+ compiler.emit(`// Anchor requested: ${anchor.config?.type ?? "plane"}`);
4567
4539
  }
4568
4540
  if (obj.traits?.some((t) => t.name === "hand_tracking")) {
4569
- compiler.emit(`val ${v}Hand = HandNode(xrSession)`);
4570
- compiler.emit(`${v}Hand.setOnInputEventListener { event: InputEvent -> /* hand input */ }`);
4541
+ compiler.emit("// Hand tracking requested; bind input listeners after device capability check.");
4571
4542
  }
4572
4543
  if (modelSrc) {
4573
- compiler.emit(`val ${v}GltfModel = GltfModel.create(xrSession, Uri.parse("${modelSrc}"))`);
4574
- compiler.emit(`val ${v} = GltfModelEntity.create(xrSession, ${v}GltfModel).apply {`);
4575
- compiler.indent();
4576
- compiler.emit(`parent = xrSession.scene.activitySpace`);
4577
- const modelPos = compiler.findProp(obj, "position");
4578
- if (modelPos && Array.isArray(modelPos)) {
4579
- compiler.emit(
4580
- `setPose(Pose(${compiler.toKotlinFloat3(modelPos)}, Quaternion.identity()))`
4581
- );
4582
- }
4583
- compiler.dedent();
4584
- compiler.emit("}");
4544
+ compiler.emit(`// glTF model "${modelSrc}" is exposed through XRNodeFactory.loadGltfModel(...).`);
4545
+ compiler.emit(`val ${v} = ${xrEntityCreate(compiler, "xrSession", obj.name, pos)}`);
4546
+ emitScale(compiler, v, scale);
4585
4547
  } else if (meshType === "text") {
4586
4548
  const text = compiler.findProp(obj, "text") ?? obj.name;
4587
4549
  const color = compiler.findProp(obj, "color");
@@ -4593,21 +4555,8 @@ function emitObject(compiler, obj) {
4593
4555
  compiler.dedent();
4594
4556
  compiler.emit("}");
4595
4557
  } else {
4596
- compiler.emit(
4597
- `val ${v} = xrSession.scene.createEntity("${compiler.escapeStringValue(obj.name, "Kotlin")}")`
4598
- );
4599
- const pos = compiler.findProp(obj, "position");
4600
- if (pos && Array.isArray(pos)) {
4601
- compiler.emit(
4602
- `${v}.setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4603
- );
4604
- }
4605
- const scale = compiler.findProp(obj, "scale");
4606
- if (scale && Array.isArray(scale)) {
4607
- compiler.emit(`${v}.setScale(${compiler.toKotlinFloat3(scale)})`);
4608
- } else if (typeof scale === "number") {
4609
- compiler.emit(`${v}.setScale(Float3(${scale}f, ${scale}f, ${scale}f))`);
4610
- }
4558
+ compiler.emit(`val ${v} = ${xrEntityCreate(compiler, "xrSession", obj.name, pos)}`);
4559
+ emitScale(compiler, v, scale);
4611
4560
  const mat = compiler.findProp(obj, "material");
4612
4561
  if (mat && typeof mat === "object") {
4613
4562
  const m = mat;
@@ -4625,7 +4574,7 @@ function emitObject(compiler, obj) {
4625
4574
  if (t.name === "collidable") compiler.emit(`// Collision enabled for ${v}`);
4626
4575
  else if (t.name === "physics") compiler.emit(`// Physics: mass=${t.config?.mass ?? 1}`);
4627
4576
  else if (t.name === "grabbable") {
4628
- compiler.emit(`${v}.setOnInputEventListener { _: InputEvent -> /* grab */ }`);
4577
+ compiler.emit(`// Grabbable input binding requested for ${v}.`);
4629
4578
  } else if (t.name === "face_tracking") {
4630
4579
  emitFaceTracking(compiler, v, t.config ?? {});
4631
4580
  } else if (t.name === "follows_head" || t.name === "head_follow") {
@@ -4634,18 +4583,10 @@ function emitObject(compiler, obj) {
4634
4583
  emitDrmVideo(compiler, v, t.config ?? {});
4635
4584
  } else if (t.name === "occlusion_mesh") {
4636
4585
  compiler.emit(`// Activate strictly if depth API is physically supported on-device`);
4637
- compiler.emit(`if (xrSession.isDepthSupported) {`);
4638
- compiler.indent();
4639
- compiler.emit(
4640
- `xrSession.scene.configure { config -> config.depthMode = Config.DepthMode.AUTOMATIC }`
4641
- );
4642
- compiler.emit(`${v}.enableDepthOcclusion(true)`);
4643
- compiler.dedent();
4644
- compiler.emit(`}`);
4586
+ compiler.emit(`// Depth occlusion requested for ${v}.`);
4645
4587
  } else if (t.name === "environment_probe") {
4646
4588
  compiler.emit(`// Attach HDR environmental projection to scene root`);
4647
- compiler.emit(`val ${v}Probe = xrSession.scene.perceptionSpace.createEnvironmentProbe()`);
4648
- compiler.emit(`sceneRoot.addComponent(${v}Probe)`);
4589
+ compiler.emit(`// Environment probe requested for ${v}; device capability check required.`);
4649
4590
  } else if (t.name === "ai_upscaling") {
4650
4591
  const texture = compiler.findProp(obj, "texture");
4651
4592
  if (texture && typeof texture === "string") {
@@ -4685,18 +4626,10 @@ function emitGroup(compiler, group) {
4685
4626
  const v = compiler.sanitizeName(group.name);
4686
4627
  compiler.emit("");
4687
4628
  compiler.emit(`// Group: ${compiler.escapeStringValue(group.name, "Kotlin")}`);
4688
- compiler.emit(
4689
- `val ${v} = xrSession.scene.createEntity("${compiler.escapeStringValue(group.name, "Kotlin")}")`
4690
- );
4629
+ const pos = group.properties.find((p) => p.key === "position")?.value;
4630
+ compiler.emit(`val ${v} = ${xrEntityCreate(compiler, "xrSession", group.name, pos)}`);
4691
4631
  for (const p of group.properties) {
4692
- if (p.key === "position" && Array.isArray(p.value))
4693
- compiler.emit(
4694
- `${v}.setPose(Pose(${compiler.toKotlinFloat3(p.value)}, Quaternion.identity()))`
4695
- );
4696
- else if (p.key === "scale" && Array.isArray(p.value))
4697
- compiler.emit(`${v}.setScale(${compiler.toKotlinFloat3(p.value)})`);
4698
- else if (p.key === "scale" && typeof p.value === "number")
4699
- compiler.emit(`${v}.setScale(Float3(${p.value}f, ${p.value}f, ${p.value}f))`);
4632
+ if (p.key === "scale") emitScale(compiler, v, p.value);
4700
4633
  }
4701
4634
  for (const o of group.objects) {
4702
4635
  emitObject(compiler, o);
@@ -4718,25 +4651,19 @@ function emitLight(compiler, light) {
4718
4651
  area: "POINT"
4719
4652
  };
4720
4653
  compiler.emit("");
4721
- compiler.emit(
4722
- `val ${v} = xrSession.scene.createEntity("${compiler.escapeStringValue(light.name, "Kotlin")}")`
4723
- );
4654
+ const pos = light.properties.find((p) => p.key === "position")?.value;
4655
+ compiler.emit(`val ${v} = ${xrEntityCreate(compiler, "xrSession", light.name, pos)}`);
4724
4656
  compiler.emit(`// Filament type: LightManager.Type.${typeMap[light.lightType] ?? "POINT"}`);
4725
4657
  const color = light.properties.find((p) => p.key === "color");
4726
4658
  const intensity = light.properties.find((p) => p.key === "intensity");
4727
- const pos = light.properties.find((p) => p.key === "position");
4728
4659
  if (color) compiler.emit(`// Color: ${color.value}`);
4729
4660
  if (intensity) compiler.emit(`// Intensity: ${intensity.value * 1e5}f lux`);
4730
- if (pos && Array.isArray(pos.value))
4731
- compiler.emit(
4732
- `${v}.setPose(Pose(${compiler.toKotlinFloat3(pos.value)}, Quaternion.identity()))`
4733
- );
4734
4661
  }
4735
4662
  function emitCamera(compiler, cam) {
4736
4663
  compiler.emit(`// Camera: ${cam.cameraType}`);
4737
4664
  for (const p of cam.properties) {
4738
4665
  if (p.key === "passthrough" && (p.value === true || p.value === "true"))
4739
- compiler.emit("xrSession.scene.configure { it.focusMode = Config.FocusMode.AUTO }");
4666
+ compiler.emit("// Passthrough requested; device policy controls camera focus.");
4740
4667
  else if (p.key === "fov") compiler.emit(`// FOV: ${p.value} -- managed by XR headset`);
4741
4668
  }
4742
4669
  }
@@ -4793,10 +4720,7 @@ function emitAudio(compiler, audio) {
4793
4720
  }
4794
4721
  if (spatial && pos && Array.isArray(pos)) {
4795
4722
  compiler.emit(
4796
- `val ${v}Entity = xrSession.scene.createEntity("${compiler.escapeStringValue(audio.name, "Kotlin")}")`
4797
- );
4798
- compiler.emit(
4799
- `${v}Entity.setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4723
+ `val ${v}Entity = ${xrEntityCreate(compiler, "xrSession", audio.name, pos)}`
4800
4724
  );
4801
4725
  compiler.emit(`val ${v}Track = SpatialAudioTrack(xrSession, ${v}Entity)`);
4802
4726
  }
@@ -4840,14 +4764,8 @@ function emitUI(compiler, ui) {
4840
4764
  }
4841
4765
  function emitZone(compiler, zone) {
4842
4766
  const v = compiler.sanitizeName(zone.name);
4843
- compiler.emit(
4844
- `val ${v} = xrSession.scene.createEntity("${compiler.escapeStringValue(zone.name, "Kotlin")}")`
4845
- );
4846
4767
  const pos = zone.properties.find((p) => p.key === "position")?.value;
4847
- if (pos && Array.isArray(pos))
4848
- compiler.emit(
4849
- `${v}.setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4850
- );
4768
+ compiler.emit(`val ${v} = ${xrEntityCreate(compiler, "xrSession", zone.name, pos)}`);
4851
4769
  const shape = zone.properties.find((p) => p.key === "shape")?.value;
4852
4770
  const size = zone.properties.find((p) => p.key === "size")?.value;
4853
4771
  const radius = zone.properties.find((p) => p.key === "radius")?.value;
@@ -4953,7 +4871,7 @@ function emitDrmVideo(compiler, varName, config) {
4953
4871
  compiler.indent();
4954
4872
  compiler.emit("session = xrSession,");
4955
4873
  compiler.emit(`stereoMode = ${stereoModeKotlin},`);
4956
- compiler.emit("pose = Pose(Vector3(0f, 0f, -1.5f), Quaternion.identity()),");
4874
+ compiler.emit("pose = Pose(Vector3(0f, 0f, -1.5f), Quaternion.Identity),");
4957
4875
  compiler.emit(`shape = ${shapeCode},`);
4958
4876
  compiler.emit("surfaceProtection = SurfaceEntity.SurfaceProtection.PROTECTED");
4959
4877
  compiler.dedent();
@@ -4990,36 +4908,36 @@ function compileAndroidXRDomainBlocks(compiler, composition) {
4990
4908
  compiler.emit("");
4991
4909
  compiler.emit("// === v4.2 Domain Blocks ===");
4992
4910
  let blockIdx = 0;
4993
- const compiled = chunkGH6C2QGW_cjs.compileDomainBlocks(
4911
+ const compiled = chunkQEDMOGF3_cjs.compileDomainBlocks(
4994
4912
  // @ts-expect-error During migration
4995
4913
  domainBlocks,
4996
4914
  {
4997
4915
  material: (block) => {
4998
- const mat = chunkGH6C2QGW_cjs.compileMaterialBlock(block);
4999
- return chunkGH6C2QGW_cjs.materialToAndroidXR(mat, `db${blockIdx++}`);
4916
+ const mat = chunkQEDMOGF3_cjs.compileMaterialBlock(block);
4917
+ return chunkQEDMOGF3_cjs.materialToAndroidXR(mat, `db${blockIdx++}`);
5000
4918
  },
5001
4919
  physics: (block) => {
5002
- const phys = chunkGH6C2QGW_cjs.compilePhysicsBlock(block);
5003
- return chunkGH6C2QGW_cjs.physicsToAndroidXR(phys, `db${blockIdx++}`);
4920
+ const phys = chunkQEDMOGF3_cjs.compilePhysicsBlock(block);
4921
+ return chunkQEDMOGF3_cjs.physicsToAndroidXR(phys, `db${blockIdx++}`);
5004
4922
  },
5005
4923
  vfx: (block) => {
5006
- const ps = chunkGH6C2QGW_cjs.compileParticleBlock(block);
5007
- return chunkGH6C2QGW_cjs.particlesToAndroidXR(ps, `db${blockIdx++}`);
4924
+ const ps = chunkQEDMOGF3_cjs.compileParticleBlock(block);
4925
+ return chunkQEDMOGF3_cjs.particlesToAndroidXR(ps, `db${blockIdx++}`);
5008
4926
  },
5009
4927
  postfx: (block) => {
5010
- const pp = chunkGH6C2QGW_cjs.compilePostProcessingBlock(block);
4928
+ const pp = chunkQEDMOGF3_cjs.compilePostProcessingBlock(block);
5011
4929
  const postfx = pp;
5012
4930
  const effects = postfx.effects.map((e) => `// Effect: ${e.type} \u2014 ${JSON.stringify(e.properties)}`).join("\n");
5013
4931
  return `// Post-Processing: ${postfx.keyword} \u2014 configure via Filament Renderer post-processing
5014
4932
  ${effects}`;
5015
4933
  },
5016
4934
  audio: (block) => {
5017
- const audio = chunkGH6C2QGW_cjs.compileAudioSourceBlock(block);
5018
- return chunkGH6C2QGW_cjs.audioSourceToAndroidXR(audio, `db${blockIdx++}`);
4935
+ const audio = chunkQEDMOGF3_cjs.compileAudioSourceBlock(block);
4936
+ return chunkQEDMOGF3_cjs.audioSourceToAndroidXR(audio, `db${blockIdx++}`);
5019
4937
  },
5020
4938
  weather: (block) => {
5021
- const weather = chunkGH6C2QGW_cjs.compileWeatherBlock(block);
5022
- return chunkGH6C2QGW_cjs.weatherToAndroidXR(weather);
4939
+ const weather = chunkQEDMOGF3_cjs.compileWeatherBlock(block);
4940
+ return chunkQEDMOGF3_cjs.weatherToAndroidXR(weather);
5023
4941
  }
5024
4942
  },
5025
4943
  (block) => `// Domain block: ${block.domain}/${block.keyword} "${compiler.escapeStringValue(block.name, "Kotlin")}"`
@@ -5044,9 +4962,9 @@ function emitTransition(compiler, tr) {
5044
4962
  compiler.dedent();
5045
4963
  compiler.emit("}");
5046
4964
  }
5047
- var init_AndroidXRGenerators = chunkHCCQLAA4_cjs.__esm({
4965
+ var init_AndroidXRGenerators = chunkZHPMP447_cjs.__esm({
5048
4966
  "src/compiler/AndroidXRGenerators.ts"() {
5049
- chunkGH6C2QGW_cjs.init_DomainBlockCompilerMixin();
4967
+ chunkQEDMOGF3_cjs.init_DomainBlockCompilerMixin();
5050
4968
  init_AndroidXRTraitMap();
5051
4969
  }
5052
4970
  });
@@ -5630,14 +5548,14 @@ function generateGlimmerComponentsFile(compiler, composition) {
5630
5548
  compiler.emit("}");
5631
5549
  return compiler.lines.join("\n");
5632
5550
  }
5633
- var init_AndroidXRGlassesGenerators = chunkHCCQLAA4_cjs.__esm({
5551
+ var init_AndroidXRGlassesGenerators = chunkZHPMP447_cjs.__esm({
5634
5552
  "src/compiler/AndroidXRGlassesGenerators.ts"() {
5635
5553
  }
5636
5554
  });
5637
5555
 
5638
5556
  // src/compiler/AndroidXRCompiler.ts
5639
5557
  var AndroidXRCompiler_exports = {};
5640
- chunkHCCQLAA4_cjs.__export(AndroidXRCompiler_exports, {
5558
+ chunkZHPMP447_cjs.__export(AndroidXRCompiler_exports, {
5641
5559
  AndroidXRCompiler: () => exports.AndroidXRCompiler,
5642
5560
  compileToAndroidXR: () => compileToAndroidXR
5643
5561
  });
@@ -5646,14 +5564,14 @@ function compileToAndroidXR(composition, options) {
5646
5564
  return compiler.compile(composition, "");
5647
5565
  }
5648
5566
  exports.AndroidXRCompiler = void 0;
5649
- var init_AndroidXRCompiler = chunkHCCQLAA4_cjs.__esm({
5567
+ var init_AndroidXRCompiler = chunkZHPMP447_cjs.__esm({
5650
5568
  "src/compiler/AndroidXRCompiler.ts"() {
5651
- chunkLODTHGST_cjs.init_CompilerBase();
5652
- chunkEBS32AJI_cjs.init_PlatformConditionalCompilerMixin();
5653
- chunkFEWUHQNM_cjs.init_AndroidKotlinHelpers();
5569
+ chunkZK7KX5CD_cjs.init_CompilerBase();
5570
+ chunkTZCFKZ6Z_cjs.init_PlatformConditionalCompilerMixin();
5571
+ chunkCFVK26P4_cjs.init_AndroidKotlinHelpers();
5654
5572
  init_AndroidXRGenerators();
5655
5573
  init_AndroidXRGlassesGenerators();
5656
- exports.AndroidXRCompiler = class extends chunkLODTHGST_cjs.CompilerBase {
5574
+ exports.AndroidXRCompiler = class extends chunkZK7KX5CD_cjs.CompilerBase {
5657
5575
  constructor(options = {}) {
5658
5576
  super();
5659
5577
  this.compilerName = "AndroidXRCompiler";
@@ -5667,7 +5585,8 @@ var init_AndroidXRCompiler = chunkHCCQLAA4_cjs.__esm({
5667
5585
  arCameraHardwareRequired: options.arCameraHardwareRequired ?? false,
5668
5586
  indent: options.indent || " ",
5669
5587
  minSdk: options.minSdk || 30,
5670
- targetSdk: options.targetSdk || 35,
5588
+ // alpha15 Jetpack XR libs (compose/scenecore) require compileSdk 36 + AGP 8.9.1 (AAR metadata gate).
5589
+ targetSdk: options.targetSdk || 36,
5671
5590
  formFactor: options.formFactor || "headset",
5672
5591
  provenanceHash: options.provenanceHash ?? ""
5673
5592
  };
@@ -5680,7 +5599,7 @@ var init_AndroidXRCompiler = chunkHCCQLAA4_cjs.__esm({
5680
5599
  }
5681
5600
  compile(composition, agentToken, outputPath) {
5682
5601
  this.validateCompilerAccess(agentToken, outputPath);
5683
- composition = chunkEBS32AJI_cjs.filterCompositionForPlatform(composition, "android-xr");
5602
+ composition = chunkTZCFKZ6Z_cjs.filterCompositionForPlatform(composition, "android-xr");
5684
5603
  if (this.isGlassesMode) {
5685
5604
  return {
5686
5605
  activityFile: generateGlassesActivityFile(this, composition),
@@ -5699,6 +5618,31 @@ var init_AndroidXRCompiler = chunkHCCQLAA4_cjs.__esm({
5699
5618
  buildGradle: generateBuildGradle(this, composition)
5700
5619
  };
5701
5620
  }
5621
+ /**
5622
+ * Compile to a path-keyed map of reference-relative files (Android project layout).
5623
+ *
5624
+ * The Quest golden-diff gate iterates a `Record<path, content>`; AndroidXRCompiler's
5625
+ * native return is named fields (AndroidXRCompileResult), so this adapter maps those
5626
+ * fields onto the on-disk Android project layout. That lets the SAME byte-diff gate +
5627
+ * committed-reference-app pattern (QuestCompiler) apply to Android XR. Keys are
5628
+ * POSIX-relative to the app project root (the dir holding settings.gradle.kts).
5629
+ */
5630
+ compileToFiles(composition, agentToken = "") {
5631
+ const r = this.compile(composition, agentToken);
5632
+ const pkgPath = this.options.packageName.replace(/\./g, "/");
5633
+ const javaRel = `app/src/main/java/${pkgPath}`;
5634
+ const files = {
5635
+ [`${javaRel}/${this.options.activityName}.kt`]: r.activityFile,
5636
+ [`${javaRel}/XRSceneState.kt`]: r.stateFile,
5637
+ [`${javaRel}/XRNodeFactory.kt`]: r.nodeFactoryFile,
5638
+ "app/src/main/AndroidManifest.xml": r.manifestFile,
5639
+ "app/build.gradle.kts": r.buildGradle
5640
+ };
5641
+ if (r.glimmerComponentsFile) {
5642
+ files[`${javaRel}/GlimmerComponents.kt`] = r.glimmerComponentsFile;
5643
+ }
5644
+ return files;
5645
+ }
5702
5646
  emit(line) {
5703
5647
  this.lines.push(this.options.indent.repeat(this.indentLevel) + line);
5704
5648
  }
@@ -5710,35 +5654,35 @@ var init_AndroidXRCompiler = chunkHCCQLAA4_cjs.__esm({
5710
5654
  }
5711
5655
  /** @deprecated Use sanitizeName from AndroidKotlinHelpers */
5712
5656
  sanitizeName(name) {
5713
- return chunkFEWUHQNM_cjs.sanitizeName(name);
5657
+ return chunkCFVK26P4_cjs.sanitizeName(name);
5714
5658
  }
5715
5659
  /** @deprecated Use toKotlinFloat3 from AndroidKotlinHelpers */
5716
5660
  toKotlinFloat3(arr) {
5717
- return chunkFEWUHQNM_cjs.toKotlinFloat3(arr);
5661
+ return chunkCFVK26P4_cjs.toKotlinFloat3(arr);
5718
5662
  }
5719
5663
  /** @deprecated Use toKotlinColor from AndroidKotlinHelpers */
5720
5664
  toKotlinColor(hex) {
5721
- return chunkFEWUHQNM_cjs.toKotlinColor(hex);
5665
+ return chunkCFVK26P4_cjs.toKotlinColor(hex);
5722
5666
  }
5723
5667
  /** @deprecated Use mapShapeToFilament from AndroidKotlinHelpers */
5724
5668
  mapShapeToFilament(type) {
5725
- return chunkFEWUHQNM_cjs.mapShapeToFilament(type);
5669
+ return chunkCFVK26P4_cjs.mapShapeToFilament(type);
5726
5670
  }
5727
5671
  /** @deprecated Use toKotlinType from AndroidKotlinHelpers */
5728
5672
  toKotlinType(value) {
5729
- return chunkFEWUHQNM_cjs.toKotlinType(value);
5673
+ return chunkCFVK26P4_cjs.toKotlinType(value);
5730
5674
  }
5731
5675
  /** @deprecated Use toKotlinValue from AndroidKotlinHelpers */
5732
5676
  toKotlinValue(value) {
5733
- return chunkFEWUHQNM_cjs.toKotlinValue(value, (s, t) => this.escapeStringValue(s, t));
5677
+ return chunkCFVK26P4_cjs.toKotlinValue(value, (s, t) => this.escapeStringValue(s, t));
5734
5678
  }
5735
5679
  /** @deprecated Use findObjProp from AndroidKotlinHelpers (note: XR uses 'findProp' alias) */
5736
5680
  findProp(obj, key) {
5737
- return chunkFEWUHQNM_cjs.findObjProp(obj, key);
5681
+ return chunkCFVK26P4_cjs.findObjProp(obj, key);
5738
5682
  }
5739
5683
  /** @deprecated Use compositionUsesArCoreDepthTraits from AndroidKotlinHelpers */
5740
5684
  compositionUsesArCoreDepthTraits(composition) {
5741
- return chunkFEWUHQNM_cjs.compositionUsesArCoreDepthTraits(composition);
5685
+ return chunkCFVK26P4_cjs.compositionUsesArCoreDepthTraits(composition);
5742
5686
  }
5743
5687
  };
5744
5688
  }
@@ -5749,5 +5693,5 @@ exports.compileToAndroidXR = compileToAndroidXR;
5749
5693
  exports.getTraitMapping = getTraitMapping;
5750
5694
  exports.init_AndroidXRCompiler = init_AndroidXRCompiler;
5751
5695
  exports.init_AndroidXRTraitMap = init_AndroidXRTraitMap;
5752
- //# sourceMappingURL=chunk-SH5PPVK7.cjs.map
5753
- //# sourceMappingURL=chunk-SH5PPVK7.cjs.map
5696
+ //# sourceMappingURL=chunk-NQN5LFN4.cjs.map
5697
+ //# sourceMappingURL=chunk-NQN5LFN4.cjs.map