@holoscript/core 6.0.4 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/bin/holoscript.cjs +3 -0
  4. package/dist/GLTFPipeline-SFIORFJU.js +16 -0
  5. package/dist/GLTFPipeline-VNNDPONV.cjs +37 -0
  6. package/dist/{HoloScriptPlusParser-BN6KVRCM.js → HoloScriptPlusParser-7FBIFUFC.js} +6 -5
  7. package/dist/{HoloScriptPlusParser-NC5FE6AL.cjs → HoloScriptPlusParser-A2W7OCN2.cjs} +17 -16
  8. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  9. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  10. package/dist/{USDZExporter-UWGWNMMD.cjs → USDZExporter-3FWJ25JI.cjs} +344 -16
  11. package/dist/{USDZExporter-NTMBNTDB.js → USDZExporter-D2HQLQYK.js} +344 -16
  12. package/dist/agents/index.cjs +19 -0
  13. package/dist/agents/index.d.ts +100 -0
  14. package/dist/agents/index.js +17 -0
  15. package/dist/chunk-22W6NGYN.js +725 -0
  16. package/dist/{chunk-5OEOHAAW.cjs → chunk-27MPVJVZ.cjs} +64 -28
  17. package/dist/{chunk-RVYPEYPX.js → chunk-2A7FURVO.js} +44 -8
  18. package/dist/{chunk-XCWFGZAA.js → chunk-2B7WVIDZ.js} +11 -8
  19. package/dist/{chunk-NDQNIJEH.js → chunk-2BSMSUCE.js} +250 -24
  20. package/dist/chunk-2HLIGOKU.cjs +5546 -0
  21. package/dist/{chunk-EONILVMF.js → chunk-2M2DPHKB.js} +4 -4
  22. package/dist/{chunk-G7CT3EMP.cjs → chunk-2YSNA2F2.cjs} +319 -47
  23. package/dist/{chunk-IWI6J7FX.js → chunk-33XCOVE3.js} +5 -5
  24. package/dist/chunk-3FOKASKO.cjs +348 -0
  25. package/dist/{chunk-DXJQDCFL.js → chunk-4C57PR42.js} +3 -3
  26. package/dist/{chunk-MPXBVFHQ.js → chunk-4N4SXXWF.js} +4 -3
  27. package/dist/chunk-4PDEPEQW.cjs +41 -0
  28. package/dist/chunk-4R6HPSHJ.js +2176 -0
  29. package/dist/chunk-4R6SBXDB.js +45 -0
  30. package/dist/chunk-4SY77NA4.cjs +413 -0
  31. package/dist/{chunk-YCXFCXDS.js → chunk-4UUKPCY4.js} +668 -110
  32. package/dist/{chunk-LGGRPKTV.cjs → chunk-52ULD552.cjs} +114 -35
  33. package/dist/{chunk-L4G4RLXX.js → chunk-5CKA5SXU.js} +438 -22
  34. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  35. package/dist/{chunk-FF3Q7ADR.js → chunk-5JEU52DW.js} +5 -3
  36. package/dist/chunk-5N54COB6.cjs +327 -0
  37. package/dist/chunk-5S7RKFGR.cjs +446 -0
  38. package/dist/{chunk-KED34ILP.js → chunk-6ASWLXXN.js} +21 -9
  39. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  40. package/dist/{chunk-CAUCGUEA.cjs → chunk-6EX3I5P4.cjs} +6 -6
  41. package/dist/chunk-6FGQNDR4.js +5731 -0
  42. package/dist/{chunk-72EQECGT.cjs → chunk-6KMK2UXT.cjs} +122 -46
  43. package/dist/{chunk-G4VZTCIB.js → chunk-6L4VE27M.js} +33 -23
  44. package/dist/{chunk-ATSKSYVE.cjs → chunk-6S6TKNEA.cjs} +6478 -1738
  45. package/dist/chunk-77V4GTCA.js +596 -0
  46. package/dist/{chunk-ZP4D3CSX.cjs → chunk-7AD52FRS.cjs} +16 -16
  47. package/dist/chunk-A6KINLZJ.js +236 -0
  48. package/dist/chunk-AIA52I7T.cjs +543 -0
  49. package/dist/chunk-AIX25INK.cjs +602 -0
  50. package/dist/{chunk-B5TCIAPQ.cjs → chunk-AO4I2Z7M.cjs} +17 -18
  51. package/dist/{chunk-Q5SJOGHQ.cjs → chunk-BPICAGBV.cjs} +324 -199
  52. package/dist/chunk-BRQJKJGT.cjs +20 -0
  53. package/dist/{chunk-3FXV5S25.cjs → chunk-C37BHB7N.cjs} +6 -3
  54. package/dist/{chunk-XUTX5CBW.js → chunk-CBJY23VL.js} +3 -3
  55. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  56. package/dist/{chunk-XXINBTZK.cjs → chunk-DIL6DDDN.cjs} +101 -45
  57. package/dist/chunk-DMXC24WV.js +404 -0
  58. package/dist/{chunk-PMGODDJA.cjs → chunk-DTGBOSEM.cjs} +12 -12
  59. package/dist/chunk-E7JP3BS3.cjs +61 -0
  60. package/dist/{chunk-HJJLD366.js → chunk-EKBKLK7P.js} +3 -3
  61. package/dist/chunk-EKYL4PE3.cjs +404 -0
  62. package/dist/{chunk-UPJBDCVF.js → chunk-EMMC5CSQ.js} +12 -8
  63. package/dist/{chunk-GGHSW2NN.js → chunk-EOBB6A4B.js} +6389 -1718
  64. package/dist/chunk-EOFNVCM6.js +325 -0
  65. package/dist/{chunk-FHQVYCH2.js → chunk-ER4GATIU.js} +7 -7
  66. package/dist/{chunk-N5FTS757.cjs → chunk-EXKSFGSX.cjs} +7 -148
  67. package/dist/{chunk-LK5IAVH6.cjs → chunk-EXUP2BUM.cjs} +27 -27
  68. package/dist/chunk-FDSGHPAK.js +130 -0
  69. package/dist/chunk-FEWUHQNM.cjs +144 -0
  70. package/dist/{chunk-5TOFIR6L.js → chunk-FGGJQRLZ.js} +5 -142
  71. package/dist/chunk-FHP6LXJS.js +415 -0
  72. package/dist/{chunk-7LCYLPW2.cjs → chunk-FJPADH77.cjs} +7 -4
  73. package/dist/{chunk-T36DDXSF.js → chunk-FXKTYFYA.js} +150 -25
  74. package/dist/chunk-G2LS3RFO.js +623 -0
  75. package/dist/chunk-GCMWDSBZ.cjs +729 -0
  76. package/dist/chunk-GJNCFRJU.cjs +125 -0
  77. package/dist/{chunk-Q4QX3AET.cjs → chunk-GMP623FG.cjs} +16 -13
  78. package/dist/{chunk-XD6IYDUX.js → chunk-GN3KDX4W.js} +119 -43
  79. package/dist/{chunk-QLEAOI3Q.cjs → chunk-GQYKQSTC.cjs} +10 -10
  80. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  81. package/dist/chunk-GZG4KA4E.js +529 -0
  82. package/dist/{chunk-BND3ST2K.cjs → chunk-H3MGK7TX.cjs} +42 -32
  83. package/dist/{chunk-XRKWN5PL.cjs → chunk-H5DZIHJP.cjs} +14 -18
  84. package/dist/{chunk-Z34RLXRA.cjs → chunk-HANL7K2Q.cjs} +65 -50
  85. package/dist/{chunk-3SAK5KFL.cjs → chunk-HCCQLAA4.cjs} +2 -11
  86. package/dist/{chunk-LXJ4667L.cjs → chunk-HGVXZDSK.cjs} +108 -20
  87. package/dist/{chunk-3FJCK5XA.js → chunk-HRODTEEO.js} +30 -10
  88. package/dist/{chunk-HQUEA5R6.cjs → chunk-HZCQO4JM.cjs} +6 -6
  89. package/dist/{chunk-S565K7NK.js → chunk-I2O7TW6B.js} +12 -8
  90. package/dist/chunk-IHESJZSW.js +4490 -0
  91. package/dist/{chunk-FSF7EQVA.cjs → chunk-IRWWS72C.cjs} +63 -22
  92. package/dist/{chunk-5O6TQC6M.cjs → chunk-IVIA7K75.cjs} +689 -127
  93. package/dist/chunk-IVY74O6C.js +247 -0
  94. package/dist/chunk-J32ZJZJH.js +554 -0
  95. package/dist/chunk-J56PTA46.cjs +639 -0
  96. package/dist/chunk-JD7CIZ33.js +1949 -0
  97. package/dist/{chunk-T7LEXZUZ.cjs → chunk-JIYN45TV.cjs} +14 -15
  98. package/dist/{chunk-FFKU7BTK.cjs → chunk-KHPCJRI3.cjs} +24 -21
  99. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  100. package/dist/chunk-KPJL34Y7.cjs +186 -0
  101. package/dist/{chunk-HE7ULERA.cjs → chunk-KQTPCYTG.cjs} +128 -44
  102. package/dist/{chunk-OFKWH2IP.js → chunk-KX76JUQY.js} +3 -3
  103. package/dist/{chunk-33LSUQDD.cjs → chunk-L63H3SQ4.cjs} +43 -31
  104. package/dist/{chunk-K6EKD26I.js → chunk-LAOCQJ2M.js} +64 -8
  105. package/dist/chunk-LM2VU56C.cjs +37 -0
  106. package/dist/chunk-M56JSP4A.js +400 -0
  107. package/dist/chunk-MBOOR7X4.js +18 -0
  108. package/dist/{chunk-XWPNTWDN.cjs → chunk-MJVIRCUV.cjs} +31 -27
  109. package/dist/{chunk-SDAMZIRE.js → chunk-MSMIFMBL.js} +135 -18
  110. package/dist/{chunk-56IF4NTA.js → chunk-MXFUTKCO.js} +18 -18
  111. package/dist/{chunk-6UEHYZ7V.cjs → chunk-MXJ5SS53.cjs} +447 -31
  112. package/dist/chunk-MYY4PMWX.cjs +264 -0
  113. package/dist/chunk-N75IH2HY.js +258 -0
  114. package/dist/{chunk-GVUR45UF.cjs → chunk-NG77ATEW.cjs} +7 -6
  115. package/dist/chunk-NW5G5FBQ.js +215 -0
  116. package/dist/{chunk-E3FWRT3Z.js → chunk-OEFY723R.js} +28 -13
  117. package/dist/chunk-OEV5RMZO.cjs +3042 -0
  118. package/dist/{chunk-X4ZF6CNE.cjs → chunk-OIQYIIO3.cjs} +7 -7
  119. package/dist/{chunk-2CWOLHTE.js → chunk-OL46QLBJ.js} +3 -11
  120. package/dist/chunk-OPZ7XDDI.js +487 -0
  121. package/dist/chunk-OSYNRVOV.cjs +243 -0
  122. package/dist/{chunk-TEWCN33Y.js → chunk-P7YIA5LN.js} +91 -7
  123. package/dist/chunk-PGANYCAG.cjs +220 -0
  124. package/dist/{chunk-CS2EMTGF.js → chunk-QAVXL2IH.js} +62 -21
  125. package/dist/{chunk-T4NKMBDL.js → chunk-QCCBXSCE.js} +1666 -756
  126. package/dist/{chunk-F4IULT7N.js → chunk-QPOQ7VPI.js} +16 -13
  127. package/dist/{chunk-6XSERL6L.js → chunk-QTPMJRGS.js} +3108 -2827
  128. package/dist/{chunk-F3HH56EB.cjs → chunk-QWNQ523V.cjs} +1730 -823
  129. package/dist/{chunk-R7MA7QWV.js → chunk-R3IVNY6P.js} +102 -23
  130. package/dist/chunk-R75BSDH7.cjs +50 -0
  131. package/dist/chunk-RAXUF5DF.cjs +2196 -0
  132. package/dist/{chunk-BF2235SI.cjs → chunk-RMHC2VG7.cjs} +2876 -2592
  133. package/dist/chunk-RUXGBKPS.cjs +4517 -0
  134. package/dist/{chunk-UERJ3YJV.js → chunk-S5IFXW6E.js} +113 -9
  135. package/dist/{chunk-27LWW5FU.cjs → chunk-S6YWHCKV.cjs} +5 -5
  136. package/dist/{chunk-WB4Z63GG.js → chunk-SIEXCILW.js} +3 -3
  137. package/dist/{chunk-CLYEIWA5.cjs → chunk-SLU6UPJI.cjs} +5 -3
  138. package/dist/{chunk-LZ266PCM.cjs → chunk-T5J7ZKP3.cjs} +446 -60
  139. package/dist/chunk-TDCNJHWO.js +341 -0
  140. package/dist/{chunk-IHOUYQIA.js → chunk-TG7O4WBC.js} +5 -5
  141. package/dist/chunk-THCK6ECW.js +2085 -0
  142. package/dist/chunk-TJHVSBP2.js +439 -0
  143. package/dist/chunk-TK74TR4H.js +5541 -0
  144. package/dist/{chunk-CDPGV4DN.js → chunk-U4NBQJBY.js} +14 -15
  145. package/dist/{chunk-NOZZ46QU.js → chunk-UD3DSHZM.js} +10 -14
  146. package/dist/chunk-UDMYRFDZ.js +3038 -0
  147. package/dist/{chunk-WDW67DZB.cjs → chunk-UOIGFQXC.cjs} +90 -68
  148. package/dist/{chunk-BU7VWW2K.js → chunk-URG2SJLK.js} +14 -15
  149. package/dist/{chunk-EQV4R3EV.cjs → chunk-V73NPPTM.cjs} +152 -35
  150. package/dist/chunk-VECQYRXL.js +474 -0
  151. package/dist/chunk-VEXPG4WN.js +1989 -0
  152. package/dist/{chunk-LDP5OK6G.js → chunk-VMLKSV26.js} +5 -5
  153. package/dist/{chunk-5BGSECRJ.cjs → chunk-VSK7W3O5.cjs} +47 -27
  154. package/dist/chunk-VVKVQZI6.js +55 -0
  155. package/dist/{chunk-YQK5JNFK.js → chunk-W55Z7QIX.js} +103 -15
  156. package/dist/{chunk-KSGXLT74.cjs → chunk-W6P2GBHH.cjs} +3 -3
  157. package/dist/{chunk-IBDG74G2.cjs → chunk-W6RW64BB.cjs} +7 -7
  158. package/dist/chunk-WDT3JTGM.cjs +483 -0
  159. package/dist/{chunk-HPS76H7Q.js → chunk-WKX5AMOY.js} +3 -3
  160. package/dist/chunk-WNNE3PO3.js +34 -0
  161. package/dist/{chunk-XG23EUQX.cjs → chunk-WRLUBRKS.cjs} +538 -312
  162. package/dist/{chunk-IFNQFCTM.js → chunk-WRNEH5MO.js} +79 -8
  163. package/dist/{chunk-54FHG2MX.js → chunk-WRWEX5ZF.js} +7 -4
  164. package/dist/{chunk-KCQ5NDYC.cjs → chunk-X3GJPRVK.cjs} +154 -80
  165. package/dist/{chunk-7AGYRWKW.cjs → chunk-XFXGA5IW.cjs} +126 -22
  166. package/dist/{chunk-TQSZUOW5.cjs → chunk-XHIV6326.cjs} +4 -4
  167. package/dist/chunk-XJAN7CZG.cjs +432 -0
  168. package/dist/chunk-XL6INWKT.js +121 -0
  169. package/dist/{chunk-E3UALNFA.js → chunk-XMWZG36H.js} +4 -4
  170. package/dist/{chunk-BKIGPPVM.js → chunk-XSFNHP2E.js} +6 -3
  171. package/dist/{chunk-H5Z7NASB.js → chunk-XT6JY5W5.js} +25 -3
  172. package/dist/chunk-XXZJEFKW.cjs +490 -0
  173. package/dist/chunk-Y3MWXQSB.cjs +5737 -0
  174. package/dist/chunk-YF2I3MV3.js +46 -0
  175. package/dist/{chunk-V3NN3HPP.js → chunk-YIMN575O.js} +437 -52
  176. package/dist/chunk-YIVFJNYV.js +176 -0
  177. package/dist/{chunk-MD6KDHVE.cjs → chunk-YKGPCZEE.cjs} +10 -10
  178. package/dist/chunk-YQELFNJV.js +39 -0
  179. package/dist/chunk-Z5XMPRNC.cjs +5390 -0
  180. package/dist/{chunk-3FYZOR7S.cjs → chunk-ZDSYWBIE.cjs} +18 -18
  181. package/dist/{chunk-6TZPZCOJ.cjs → chunk-ZKSS47EV.cjs} +24 -19
  182. package/dist/chunk-ZUL5AVTX.cjs +1993 -0
  183. package/dist/chunk-ZXBZVXDW.js +5386 -0
  184. package/dist/{chunk-DMG7C4H2.js → chunk-ZZ7RO2UQ.js} +312 -44
  185. package/dist/cli/holoscript-runner.cjs +200 -204
  186. package/dist/cli/holoscript-runner.js +144 -148
  187. package/dist/codebase/index.cjs +1 -1
  188. package/dist/codebase/index.js +1 -1
  189. package/dist/compiler/agent-inference.cjs +10 -7
  190. package/dist/compiler/agent-inference.js +6 -3
  191. package/dist/compiler/android-xr.cjs +12 -7
  192. package/dist/compiler/android-xr.js +10 -5
  193. package/dist/compiler/android.cjs +12 -8
  194. package/dist/compiler/android.js +10 -6
  195. package/dist/compiler/ar.cjs +9 -6
  196. package/dist/compiler/ar.js +7 -4
  197. package/dist/compiler/babylon.cjs +12 -8
  198. package/dist/compiler/babylon.js +11 -7
  199. package/dist/compiler/business-quest.cjs +43 -0
  200. package/dist/compiler/business-quest.js +4 -0
  201. package/dist/compiler/coco.cjs +1 -1
  202. package/dist/compiler/coco.js +1 -1
  203. package/dist/compiler/context.cjs +25 -0
  204. package/dist/compiler/context.d.ts +28 -0
  205. package/dist/compiler/context.js +8 -0
  206. package/dist/compiler/domain-block-utils.cjs +155 -152
  207. package/dist/compiler/domain-block-utils.js +7 -4
  208. package/dist/compiler/dtdl.cjs +10 -7
  209. package/dist/compiler/dtdl.js +7 -4
  210. package/dist/compiler/gltf-pipeline.cjs +9 -9
  211. package/dist/compiler/gltf-pipeline.js +2 -2
  212. package/dist/compiler/godot.cjs +9 -6
  213. package/dist/compiler/godot.js +8 -5
  214. package/dist/compiler/incremental.cjs +12 -7
  215. package/dist/compiler/incremental.js +7 -2
  216. package/dist/compiler/index.cjs +3550 -268
  217. package/dist/compiler/index.d.ts +404 -21
  218. package/dist/compiler/index.js +3280 -138
  219. package/dist/compiler/ios.cjs +11 -8
  220. package/dist/compiler/ios.js +9 -6
  221. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  222. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  223. package/dist/compiler/llm-provider-capabilities.js +8 -0
  224. package/dist/compiler/multi-layer.cjs +14 -10
  225. package/dist/compiler/multi-layer.js +13 -9
  226. package/dist/compiler/nodetoy.cjs +5 -5
  227. package/dist/compiler/nodetoy.js +2 -2
  228. package/dist/compiler/openxr.cjs +10 -6
  229. package/dist/compiler/openxr.js +9 -5
  230. package/dist/compiler/playcanvas.cjs +10 -7
  231. package/dist/compiler/playcanvas.js +9 -6
  232. package/dist/compiler/r3f.cjs +17 -13
  233. package/dist/compiler/r3f.d.ts +22 -0
  234. package/dist/compiler/r3f.js +12 -8
  235. package/dist/compiler/remotion.cjs +1 -1
  236. package/dist/compiler/remotion.js +1 -1
  237. package/dist/compiler/reproducibility.cjs +1 -1
  238. package/dist/compiler/reproducibility.js +1 -1
  239. package/dist/compiler/sdf.cjs +10 -7
  240. package/dist/compiler/sdf.js +8 -5
  241. package/dist/compiler/semantic-scene.cjs +1 -1
  242. package/dist/compiler/semantic-scene.js +1 -1
  243. package/dist/compiler/state.cjs +9 -5
  244. package/dist/compiler/state.js +7 -3
  245. package/dist/compiler/trait-composition.cjs +11 -7
  246. package/dist/compiler/trait-composition.js +7 -3
  247. package/dist/compiler/unity.cjs +10 -6
  248. package/dist/compiler/unity.js +9 -5
  249. package/dist/compiler/unreal.cjs +11 -7
  250. package/dist/compiler/unreal.js +9 -5
  251. package/dist/compiler/urdf.cjs +20 -13
  252. package/dist/compiler/urdf.js +8 -5
  253. package/dist/compiler/usd-physics.cjs +10 -7
  254. package/dist/compiler/usd-physics.js +7 -4
  255. package/dist/compiler/visionos.cjs +10 -6
  256. package/dist/compiler/visionos.js +9 -5
  257. package/dist/compiler/vrchat.cjs +10 -7
  258. package/dist/compiler/vrchat.js +8 -5
  259. package/dist/compiler/vrr.cjs +10 -7
  260. package/dist/compiler/vrr.js +8 -5
  261. package/dist/compiler/wasm.cjs +13 -10
  262. package/dist/compiler/wasm.js +8 -5
  263. package/dist/compiler/webgpu.cjs +9 -6
  264. package/dist/compiler/webgpu.js +8 -5
  265. package/dist/constants.d.ts +3 -2
  266. package/dist/coordinators/index.cjs +1266 -0
  267. package/dist/coordinators/index.d.ts +260 -0
  268. package/dist/coordinators/index.js +1259 -0
  269. package/dist/debugger.cjs +9 -7
  270. package/dist/debugger.js +7 -5
  271. package/dist/entries/interop.cjs +23 -21
  272. package/dist/entries/interop.js +5 -3
  273. package/dist/entries/scripting.cjs +18 -18
  274. package/dist/entries/scripting.js +8 -8
  275. package/dist/hololand/index.cjs +146 -0
  276. package/dist/hololand/index.d.ts +70 -0
  277. package/dist/hololand/index.js +5 -0
  278. package/dist/index.cjs +20332 -18121
  279. package/dist/index.d.ts +1477 -40
  280. package/dist/index.js +19451 -17638
  281. package/dist/math/tropical-spmv.cjs +45 -0
  282. package/dist/math/tropical-spmv.js +4 -0
  283. package/dist/math/vec3.cjs +14 -14
  284. package/dist/math/vec3.js +2 -2
  285. package/dist/{ml-dsa-PHCWUBPX.cjs → ml-dsa-FSKBTE3W.cjs} +177 -90
  286. package/dist/{ml-dsa-WYLJHJO6.js → ml-dsa-Z7JDKW4L.js} +158 -71
  287. package/dist/paper-0c-spike/index.cjs +150 -0
  288. package/dist/paper-0c-spike/index.d.ts +29 -0
  289. package/dist/paper-0c-spike/index.js +141 -0
  290. package/dist/parser.cjs +45 -11
  291. package/dist/parser.d.ts +11 -0
  292. package/dist/parser.js +10 -8
  293. package/dist/{playwright-RL6GY4F7.cjs → playwright-3AT3AKTV.cjs} +1985 -1985
  294. package/dist/{playwright-5OSAPTNH.js → playwright-VZPDVUEQ.js} +3 -3
  295. package/dist/reconstruction/index.cjs +153 -0
  296. package/dist/reconstruction/index.d.ts +105 -0
  297. package/dist/reconstruction/index.js +8 -0
  298. package/dist/runtime.cjs +7 -5
  299. package/dist/runtime.js +6 -4
  300. package/dist/self-improvement/index.cjs +563 -0
  301. package/dist/self-improvement/index.js +545 -0
  302. package/dist/storage/index.cjs +10 -9
  303. package/dist/storage/index.js +3 -2
  304. package/dist/testing.cjs +25 -0
  305. package/dist/testing.d.ts +70 -0
  306. package/dist/testing.js +4 -0
  307. package/dist/tools/index.d.ts +22 -1
  308. package/dist/traitDocs/traitDocs.cjs +33 -0
  309. package/dist/traitDocs/traitDocs.d.ts +69 -0
  310. package/dist/traitDocs/traitDocs.js +7 -0
  311. package/dist/traits/botanical-lotus.cjs +41 -0
  312. package/dist/traits/botanical-lotus.d.ts +172 -0
  313. package/dist/traits/botanical-lotus.js +4 -0
  314. package/dist/traits/engines/index.cjs +520 -0
  315. package/dist/traits/engines/index.js +380 -0
  316. package/dist/traits/index.cjs +17630 -7881
  317. package/dist/traits/index.d.ts +197 -0
  318. package/dist/traits/index.js +16573 -7193
  319. package/dist/traits/simulation-solver-factory.cjs +13 -0
  320. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  321. package/dist/traits/simulation-solver-factory.js +4 -0
  322. package/dist/traits/webcam-gaze.cjs +35 -0
  323. package/dist/traits/webcam-gaze.d.ts +17 -0
  324. package/dist/traits/webcam-gaze.js +4 -0
  325. package/dist/type-checker.cjs +6 -5
  326. package/dist/type-checker.js +4 -3
  327. package/dist/world/index.cjs +947 -0
  328. package/dist/world/index.d.ts +147 -0
  329. package/dist/world/index.js +939 -0
  330. package/dist/world-model/index.cjs +1446 -0
  331. package/dist/world-model/index.d.ts +119 -0
  332. package/dist/world-model/index.js +1414 -0
  333. package/dist/wot/index.cjs +29 -0
  334. package/dist/wot/index.js +4 -0
  335. package/package.json +153 -61
  336. package/dist/GLTFPipeline-DEN36VNK.js +0 -12
  337. package/dist/GLTFPipeline-YPCAK236.cjs +0 -33
  338. package/dist/chunk-4XSNJCLC.cjs +0 -1859
  339. package/dist/chunk-A7PIMZGU.js +0 -263
  340. package/dist/chunk-BWFJEM5A.js +0 -5419
  341. package/dist/chunk-CBJSLA2E.cjs +0 -5423
  342. package/dist/chunk-K3JDKWGI.cjs +0 -270
  343. package/dist/chunk-LSW7P7ML.js +0 -3675
  344. package/dist/chunk-MEASWI2Y.js +0 -126
  345. package/dist/chunk-NCUKG4SK.cjs +0 -3075
  346. package/dist/chunk-Q5JT3YML.cjs +0 -129
  347. package/dist/chunk-QGKNANZ3.js +0 -3071
  348. package/dist/chunk-S2N5TNMA.js +0 -1855
  349. package/dist/chunk-TSH3MSQU.cjs +0 -129
  350. package/dist/chunk-WGMEAYBG.js +0 -126
  351. package/dist/chunk-X6SEAXAX.cjs +0 -3681
@@ -0,0 +1,415 @@
1
+ // src/traits/engines/tensor-ops.ts
2
+ function sizeOf(shape) {
3
+ return shape.reduce((a, b) => a * b, 1);
4
+ }
5
+ function createTensor(shape, data) {
6
+ if (!Array.isArray(shape) || shape.length === 0 || shape.some((d) => !Number.isInteger(d) || d <= 0)) {
7
+ throw new Error(`tensor-ops: invalid shape ${JSON.stringify(shape)}`);
8
+ }
9
+ const size = sizeOf(shape);
10
+ const buf = new Float32Array(size);
11
+ if (data) {
12
+ const n = Math.min(size, data.length);
13
+ for (let i = 0; i < n; i++) buf[i] = data[i];
14
+ }
15
+ return { shape: shape.slice(), data: buf };
16
+ }
17
+ function add(a, b) {
18
+ if (a.data.length !== b.data.length) {
19
+ throw new Error(
20
+ `tensor-ops: add shape mismatch ${JSON.stringify(a.shape)} vs ${JSON.stringify(b.shape)}`
21
+ );
22
+ }
23
+ const out = new Float32Array(a.data.length);
24
+ for (let i = 0; i < out.length; i++) out[i] = a.data[i] + b.data[i];
25
+ return { shape: a.shape.slice(), data: out };
26
+ }
27
+ function matmul(a, b) {
28
+ if (a.shape.length !== 2 || b.shape.length !== 2) {
29
+ throw new Error("tensor-ops: matmul requires 2D tensors");
30
+ }
31
+ const [m, k] = a.shape;
32
+ const [k2, n] = b.shape;
33
+ if (k !== k2) {
34
+ throw new Error(`tensor-ops: matmul inner dim mismatch ${k} vs ${k2}`);
35
+ }
36
+ const out = new Float32Array(m * n);
37
+ for (let i = 0; i < m; i++) {
38
+ for (let j = 0; j < n; j++) {
39
+ let acc = 0;
40
+ for (let p = 0; p < k; p++) acc += a.data[i * k + p] * b.data[p * n + j];
41
+ out[i * n + j] = acc;
42
+ }
43
+ }
44
+ return { shape: [m, n], data: out };
45
+ }
46
+
47
+ // src/traits/engines/pfnn-network.ts
48
+ var PHASE_CONTROL_POINTS = 4;
49
+ var HIDDEN_DIM = 64;
50
+ function mulberry32(seed) {
51
+ let a = seed >>> 0;
52
+ return () => {
53
+ a |= 0;
54
+ a = a + 1831565813 | 0;
55
+ let t = Math.imul(a ^ a >>> 15, 1 | a);
56
+ t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
57
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
58
+ };
59
+ }
60
+ function eluInPlace(data) {
61
+ for (let i = 0; i < data.length; i++) {
62
+ const x = data[i];
63
+ data[i] = x >= 0 ? x : Math.exp(x) - 1;
64
+ }
65
+ }
66
+ function initWeight(rng, inDim, outDim) {
67
+ const limit = Math.sqrt(6 / (inDim + outDim));
68
+ const data = new Float32Array(inDim * outDim);
69
+ for (let i = 0; i < data.length; i++) data[i] = (rng() * 2 - 1) * limit;
70
+ return { shape: [inDim, outDim], data };
71
+ }
72
+ function initBias(rng, outDim) {
73
+ const data = new Float32Array(outDim);
74
+ for (let i = 0; i < data.length; i++) data[i] = (rng() * 2 - 1) * 0.01;
75
+ return { shape: [1, outDim], data };
76
+ }
77
+ var PfnnNetwork = class {
78
+ constructor(inputDim, outputDim, seed = 2654435769, hiddenDim = HIDDEN_DIM) {
79
+ this.inputDim = inputDim;
80
+ this.outputDim = outputDim;
81
+ this.hiddenDim = hiddenDim;
82
+ const rng = mulberry32(seed);
83
+ this.controlPoints = [];
84
+ for (let c = 0; c < PHASE_CONTROL_POINTS; c++) {
85
+ const layers = [
86
+ { weight: initWeight(rng, inputDim, hiddenDim), bias: initBias(rng, hiddenDim) },
87
+ { weight: initWeight(rng, hiddenDim, hiddenDim), bias: initBias(rng, hiddenDim) },
88
+ { weight: initWeight(rng, hiddenDim, outputDim), bias: initBias(rng, outputDim) }
89
+ ];
90
+ this.controlPoints.push({ layers });
91
+ }
92
+ }
93
+ /**
94
+ * Export the raw weights — used by the .onnx provisioning script so the
95
+ * ONNX graph carries the identical numbers. Returned arrays are copies.
96
+ */
97
+ exportWeights() {
98
+ return {
99
+ controlPoints: this.controlPoints.map((cp) => ({
100
+ layers: cp.layers.map((l) => ({
101
+ weight: Array.from(l.weight.data),
102
+ bias: Array.from(l.bias.data),
103
+ shape: [l.weight.shape[0], l.weight.shape[1]]
104
+ }))
105
+ }))
106
+ };
107
+ }
108
+ /**
109
+ * Cyclic cubic Catmull-Rom blend of the four control points at phase φ.
110
+ * Holden 2017 eq. 4: the four banks are knots on a periodic spline indexed
111
+ * by φ·4, and the fractional part drives a Catmull-Rom interpolation. We
112
+ * blend per-layer weight and bias buffers.
113
+ */
114
+ blendLayer(layerIdx, phase) {
115
+ const t = (phase % 1 + 1) % 1;
116
+ const scaled = t * PHASE_CONTROL_POINTS;
117
+ const k = Math.floor(scaled);
118
+ const f = scaled - k;
119
+ const mod = (n) => (n % PHASE_CONTROL_POINTS + PHASE_CONTROL_POINTS) % PHASE_CONTROL_POINTS;
120
+ const p0 = this.controlPoints[mod(k - 1)].layers[layerIdx];
121
+ const p1 = this.controlPoints[mod(k)].layers[layerIdx];
122
+ const p2 = this.controlPoints[mod(k + 1)].layers[layerIdx];
123
+ const p3 = this.controlPoints[mod(k + 2)].layers[layerIdx];
124
+ const f2 = f * f;
125
+ const f3 = f2 * f;
126
+ const w0 = -0.5 * f3 + f2 - 0.5 * f;
127
+ const w1 = 1.5 * f3 - 2.5 * f2 + 1;
128
+ const w2 = -1.5 * f3 + 2 * f2 + 0.5 * f;
129
+ const w3 = 0.5 * f3 - 0.5 * f2;
130
+ const blend = (a, b, c, d) => {
131
+ const out = new Float32Array(a.data.length);
132
+ for (let i = 0; i < out.length; i++) {
133
+ out[i] = w0 * a.data[i] + w1 * b.data[i] + w2 * c.data[i] + w3 * d.data[i];
134
+ }
135
+ return { shape: a.shape.slice(), data: out };
136
+ };
137
+ return {
138
+ weight: blend(p0.weight, p1.weight, p2.weight, p3.weight),
139
+ bias: blend(p0.bias, p1.bias, p2.bias, p3.bias)
140
+ };
141
+ }
142
+ /**
143
+ * Run a real forward pass. `input` is a Float32Array of length inputDim.
144
+ * `phase` ∈ [0,1) selects the blended weights. Returns a Float32Array of
145
+ * length outputDim. Pure, deterministic, no native deps.
146
+ */
147
+ forward(input, phase) {
148
+ if (input.length !== this.inputDim) {
149
+ throw new Error(
150
+ `PfnnNetwork.forward: input length ${input.length} != inputDim ${this.inputDim}`
151
+ );
152
+ }
153
+ let x = createTensor([1, this.inputDim], input);
154
+ const layer0 = this.blendLayer(0, phase);
155
+ const layer1 = this.blendLayer(1, phase);
156
+ const layer2 = this.blendLayer(2, phase);
157
+ x = add(matmul(x, layer0.weight), layer0.bias);
158
+ eluInPlace(x.data);
159
+ x = add(matmul(x, layer1.weight), layer1.bias);
160
+ eluInPlace(x.data);
161
+ x = add(matmul(x, layer2.weight), layer2.bias);
162
+ return x.data;
163
+ }
164
+ /**
165
+ * Forward pass using ONLY control point `cp` (no phase blending). This is the
166
+ * exact computation the provisioned .onnx graph encodes (it bakes a single
167
+ * control point). Used by the pure-JS ↔ ONNX numerical-parity test to prove
168
+ * both paths run the identical genuine forward pass.
169
+ */
170
+ forwardControlPoint(input, cp = 0) {
171
+ if (input.length !== this.inputDim) {
172
+ throw new Error(
173
+ `PfnnNetwork.forwardControlPoint: input length ${input.length} != inputDim ${this.inputDim}`
174
+ );
175
+ }
176
+ const layers = this.controlPoints[(cp % PHASE_CONTROL_POINTS + PHASE_CONTROL_POINTS) % PHASE_CONTROL_POINTS].layers;
177
+ let x = createTensor([1, this.inputDim], input);
178
+ x = add(matmul(x, layers[0].weight), layers[0].bias);
179
+ eluInPlace(x.data);
180
+ x = add(matmul(x, layers[1].weight), layers[1].bias);
181
+ eluInPlace(x.data);
182
+ x = add(matmul(x, layers[2].weight), layers[2].bias);
183
+ return x.data;
184
+ }
185
+ };
186
+ var BUNDLED_MODEL_SEED = 2654435769;
187
+ function createBundledPfnn(inputDim, outputDim) {
188
+ return new PfnnNetwork(inputDim, outputDim, BUNDLED_MODEL_SEED);
189
+ }
190
+
191
+ // src/traits/engines/onnx-adapter.ts
192
+ var NoOpInferenceAdapter = class {
193
+ constructor() {
194
+ this.name = "NoOpInferenceAdapter";
195
+ this.preferredProvider = "cpu";
196
+ this.loaded = false;
197
+ this.modelUrl = null;
198
+ }
199
+ async load(modelUrl) {
200
+ this.modelUrl = modelUrl;
201
+ this.loaded = true;
202
+ }
203
+ runSync(request) {
204
+ if (!this.loaded) {
205
+ throw new Error("NoOpInferenceAdapter: load() must be called before run()");
206
+ }
207
+ const inputNames = Object.keys(request.inputs);
208
+ if (inputNames.length === 0) {
209
+ throw new Error("NoOpInferenceAdapter: at least one input required");
210
+ }
211
+ const firstInput = request.inputs[inputNames[0]];
212
+ const outputNames = request.outputs && request.outputs.length > 0 ? request.outputs : ["output"];
213
+ const outputs = {};
214
+ for (const name of outputNames) {
215
+ outputs[name] = {
216
+ data: new Float32Array(firstInput.data.length),
217
+ shape: firstInput.shape
218
+ };
219
+ }
220
+ return {
221
+ outputs,
222
+ durationMs: 0,
223
+ providerUsed: this.preferredProvider
224
+ };
225
+ }
226
+ async run(request) {
227
+ return this.runSync(request);
228
+ }
229
+ dispose() {
230
+ this.loaded = false;
231
+ this.modelUrl = null;
232
+ }
233
+ /** Returns the URL the adapter was loaded with — diagnostic only. */
234
+ get loadedModelUrl() {
235
+ return this.modelUrl;
236
+ }
237
+ };
238
+ function createNoOpInferenceAdapter() {
239
+ return new NoOpInferenceAdapter();
240
+ }
241
+ var PureJsInferenceAdapter = class {
242
+ constructor(inputDim, outputDim) {
243
+ this.inputDim = inputDim;
244
+ this.outputDim = outputDim;
245
+ this.name = "PureJsInferenceAdapter";
246
+ this.preferredProvider = "cpu";
247
+ this.loaded = false;
248
+ this.net = null;
249
+ this.modelUrl = null;
250
+ }
251
+ async load(modelUrl) {
252
+ this.modelUrl = modelUrl;
253
+ if (this.inputDim != null && this.outputDim != null) {
254
+ this.net = createBundledPfnn(this.inputDim, this.outputDim);
255
+ }
256
+ this.loaded = true;
257
+ }
258
+ ensureNet(inputDim) {
259
+ if (this.net && this.net.inputDim === inputDim) return this.net;
260
+ const outDim = this.outputDim ?? MOTION_OUTPUT_DIM_DEFAULT;
261
+ this.net = createBundledPfnn(inputDim, outDim);
262
+ return this.net;
263
+ }
264
+ /** Recover the locomotion phase from the engine's phase channels. */
265
+ phaseFromInput(data) {
266
+ const n = data.length;
267
+ const sinP = data[n - 4] ?? 0;
268
+ const cosP = data[n - 3] ?? 1;
269
+ return (Math.atan2(sinP, cosP) / (2 * Math.PI) + 1) % 1;
270
+ }
271
+ runSync(request) {
272
+ if (!this.loaded) {
273
+ throw new Error("PureJsInferenceAdapter: load() must be called before run()");
274
+ }
275
+ const inputNames = Object.keys(request.inputs);
276
+ if (inputNames.length === 0) {
277
+ throw new Error("PureJsInferenceAdapter: at least one input required");
278
+ }
279
+ const input = request.inputs[inputNames[0]];
280
+ const net = this.ensureNet(input.data.length);
281
+ const phase = this.phaseFromInput(input.data);
282
+ const start = nowMs();
283
+ const out = net.forward(input.data, phase);
284
+ const durationMs = nowMs() - start;
285
+ const outName = request.outputs && request.outputs.length > 0 ? request.outputs[0] : "motion_output";
286
+ return {
287
+ outputs: { [outName]: { data: out, shape: [1, out.length] } },
288
+ durationMs,
289
+ providerUsed: this.preferredProvider
290
+ };
291
+ }
292
+ async run(request) {
293
+ return this.runSync(request);
294
+ }
295
+ dispose() {
296
+ this.loaded = false;
297
+ this.net = null;
298
+ this.modelUrl = null;
299
+ }
300
+ };
301
+ var MOTION_OUTPUT_DIM_DEFAULT = 50;
302
+ function nowMs() {
303
+ return typeof performance !== "undefined" && performance.now ? performance.now() : Date.now();
304
+ }
305
+ function createPureJsInferenceAdapter(inputDim, outputDim) {
306
+ return new PureJsInferenceAdapter(inputDim, outputDim);
307
+ }
308
+ var OnnxNodeInferenceAdapter = class {
309
+ constructor(preferredProvider = "cpu") {
310
+ this.name = "OnnxNodeInferenceAdapter";
311
+ this.loaded = false;
312
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
313
+ this.session = null;
314
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
+ this.ort = null;
316
+ this.resolvedPath = null;
317
+ this.preferredProvider = preferredProvider;
318
+ }
319
+ async load(modelUrl) {
320
+ const path = await resolveOnnxModelPath(modelUrl);
321
+ if (!path) {
322
+ throw new Error(
323
+ `OnnxNodeInferenceAdapter: no .onnx model file resolved for "${modelUrl}". Provision it with scripts/provision-motion-model.mjs or set HOLOSCRIPT_MOTION_MODELS_DIR.`
324
+ );
325
+ }
326
+ this.ort = await import('onnxruntime-node');
327
+ this.session = await this.ort.InferenceSession.create(path);
328
+ this.resolvedPath = path;
329
+ this.loaded = true;
330
+ }
331
+ async run(request) {
332
+ if (!this.loaded || !this.session || !this.ort) {
333
+ throw new Error("OnnxNodeInferenceAdapter: load() must be called before run()");
334
+ }
335
+ const inputNames = Object.keys(request.inputs);
336
+ if (inputNames.length === 0) {
337
+ throw new Error("OnnxNodeInferenceAdapter: at least one input required");
338
+ }
339
+ const feeds = {};
340
+ const sessionInputs = this.session.inputNames ?? [];
341
+ const requestEntries = Object.entries(request.inputs);
342
+ requestEntries.forEach(([name, tensor], i) => {
343
+ const target = sessionInputs[i] ?? name;
344
+ feeds[target] = new this.ort.Tensor("float32", tensor.data, Array.from(tensor.shape));
345
+ });
346
+ const start = nowMs();
347
+ const results = await this.session.run(feeds);
348
+ const durationMs = nowMs() - start;
349
+ const sessionOutputs = this.session.outputNames ?? Object.keys(results);
350
+ const wanted = request.outputs && request.outputs.length > 0 ? request.outputs : sessionOutputs;
351
+ const outputs = {};
352
+ wanted.forEach((name, i) => {
353
+ const srcName = sessionOutputs[i] ?? name;
354
+ const t = results[srcName] ?? results[name];
355
+ if (t) {
356
+ outputs[name] = { data: t.data, shape: t.dims.slice() };
357
+ }
358
+ });
359
+ return { outputs, durationMs, providerUsed: this.preferredProvider };
360
+ }
361
+ dispose() {
362
+ if (this.session && typeof this.session.release === "function") {
363
+ try {
364
+ void this.session.release();
365
+ } catch {
366
+ }
367
+ }
368
+ this.session = null;
369
+ this.ort = null;
370
+ this.resolvedPath = null;
371
+ this.loaded = false;
372
+ }
373
+ /** The on-disk path the session was created from — diagnostic only. */
374
+ get loadedModelPath() {
375
+ return this.resolvedPath;
376
+ }
377
+ };
378
+ function createOnnxNodeInferenceAdapter(preferredProvider = "cpu") {
379
+ return new OnnxNodeInferenceAdapter(preferredProvider);
380
+ }
381
+ async function resolveOnnxModelPath(modelUrl) {
382
+ let fs;
383
+ let path;
384
+ try {
385
+ fs = await import('fs');
386
+ path = await import('path');
387
+ } catch {
388
+ return null;
389
+ }
390
+ const exists = (p) => {
391
+ try {
392
+ return fs.existsSync(p);
393
+ } catch {
394
+ return false;
395
+ }
396
+ };
397
+ if (!modelUrl.startsWith("bundled://") && exists(modelUrl)) return modelUrl;
398
+ const id = modelUrl.startsWith("bundled://") ? modelUrl.slice("bundled://".length) : path.basename(modelUrl);
399
+ const fileName = id.endsWith(".onnx") ? id : `${id}.onnx`;
400
+ const candidates = [];
401
+ const envDir = process?.env?.HOLOSCRIPT_MOTION_MODELS_DIR?.trim();
402
+ if (envDir) candidates.push(path.join(path.resolve(envDir), fileName));
403
+ let dir = process?.cwd?.() ?? ".";
404
+ for (let i = 0; i < 8; i++) {
405
+ candidates.push(path.join(dir, ".models", "motion", fileName));
406
+ const parent = path.dirname(dir);
407
+ if (parent === dir) break;
408
+ dir = parent;
409
+ }
410
+ return candidates.find(exists) ?? null;
411
+ }
412
+
413
+ export { BUNDLED_MODEL_SEED, HIDDEN_DIM, NoOpInferenceAdapter, OnnxNodeInferenceAdapter, PHASE_CONTROL_POINTS, PfnnNetwork, PureJsInferenceAdapter, add, createBundledPfnn, createNoOpInferenceAdapter, createOnnxNodeInferenceAdapter, createPureJsInferenceAdapter, createTensor, eluInPlace, matmul, resolveOnnxModelPath };
414
+ //# sourceMappingURL=chunk-FHP6LXJS.js.map
415
+ //# sourceMappingURL=chunk-FHP6LXJS.js.map
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var chunkE7JP3BS3_cjs = require('./chunk-E7JP3BS3.cjs');
4
+
3
5
  // src/storage/IPFSTypes.ts
4
6
  var IPFSUploadError = class extends Error {
5
7
  constructor(message, provider, originalError) {
@@ -27,6 +29,7 @@ var FileSizeExceededError = class extends Error {
27
29
  };
28
30
 
29
31
  // src/storage/IPFSProviders.ts
32
+ chunkE7JP3BS3_cjs.init_safeJsonParse();
30
33
  var PinataProvider = class {
31
34
  constructor(apiKey, apiSecret) {
32
35
  this.baseUrl = "https://api.pinata.cloud";
@@ -267,10 +270,10 @@ var InfuraProvider = class {
267
270
  }
268
271
  const text = await response.text();
269
272
  const lines = text.trim().split("\n");
270
- const lastLine = JSON.parse(lines[lines.length - 1]);
273
+ const lastLine = chunkE7JP3BS3_cjs.readJson(lines[lines.length - 1]);
271
274
  let totalSize = 0;
272
275
  for (const line of lines) {
273
- const data = JSON.parse(line);
276
+ const data = chunkE7JP3BS3_cjs.readJson(line);
274
277
  totalSize += data.Size || 0;
275
278
  }
276
279
  return {
@@ -659,5 +662,5 @@ exports.IPFSUploadError = IPFSUploadError;
659
662
  exports.InfuraProvider = InfuraProvider;
660
663
  exports.NFTStorageProvider = NFTStorageProvider;
661
664
  exports.PinataProvider = PinataProvider;
662
- //# sourceMappingURL=chunk-7LCYLPW2.cjs.map
663
- //# sourceMappingURL=chunk-7LCYLPW2.cjs.map
665
+ //# sourceMappingURL=chunk-FJPADH77.cjs.map
666
+ //# sourceMappingURL=chunk-FJPADH77.cjs.map