@holoscript/core 8.0.7 → 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 +80 -13
  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
@@ -0,0 +1,102 @@
1
+ /**
2
+ * MotionMatchingEngine — neural locomotion inference seam.
3
+ *
4
+ * Pure computation interface, no THREE.js / PhysicsWorld coupling.
5
+ * Implementations live alongside this file (NullMotionMatchingEngine here;
6
+ * real neural implementation lands in a follow-up task — see
7
+ * research/2026-04-26_idea-run-3-neural-locomotion.md PLAN-1 ruling:
8
+ * reimplement from primary literature (Holden 2017, Starke 2019/2020/2022),
9
+ * NOT from CC-BY-NC sweriko port.
10
+ *
11
+ * Wire site: NeuralAnimationTrait.onUpdate when animation_model === 'motion_matching'.
12
+ */
13
+ export interface Vec3 {
14
+ x: number;
15
+ y: number;
16
+ z: number;
17
+ }
18
+ export interface SkeletonPose {
19
+ joints: Record<string, {
20
+ position: [number, number, number];
21
+ rotation: [number, number, number, number];
22
+ }>;
23
+ timestamp: number;
24
+ }
25
+ export interface ContactFeatures {
26
+ leftFoot: boolean;
27
+ rightFoot: boolean;
28
+ [extra: string]: boolean;
29
+ }
30
+ export type Gait = 'idle' | 'walk' | 'trot' | 'run' | 'crouch';
31
+ export interface MotionInferenceInput {
32
+ targetVelocity: Vec3;
33
+ currentPhase: number;
34
+ delta: number;
35
+ terrainNormal?: Vec3;
36
+ energyEfficiency?: number;
37
+ }
38
+ export interface MotionInferenceResult {
39
+ pose: SkeletonPose;
40
+ phase: number;
41
+ trajectory: Array<[number, number, number]>;
42
+ stability: number;
43
+ contactFeatures: ContactFeatures;
44
+ gait: Gait;
45
+ /**
46
+ * Kinetic-energy proxy in arbitrary units (NOT metabolic cost).
47
+ * Renamed from `energyCost` per /critic Serious #4: the previous name
48
+ * implied physical cost-of-transport which it was not.
49
+ *
50
+ * For the synthetic + null engines this is `speed^2 * efficiency` —
51
+ * dimensionally kinetic-shaped, useful as a sortable proxy. Real
52
+ * metabolic cost (Margaria 1976, Kram & Taylor 1990) is roughly
53
+ * linear in speed for walking and U-shaped around preferred speed —
54
+ * future engines may report that under a different field.
55
+ */
56
+ kineticEnergyProxy: number;
57
+ }
58
+ export interface MotionMatchingEngine {
59
+ readonly modelId: string;
60
+ readonly loaded: boolean;
61
+ load(): Promise<void>;
62
+ infer(input: MotionInferenceInput): MotionInferenceResult;
63
+ dispose(): void;
64
+ }
65
+ export type MotionMatchingEngineFactory = (modelId: string) => MotionMatchingEngine;
66
+ export declare const TRAJECTORY_HORIZON_FRAMES = 12;
67
+ export declare const TRAJECTORY_FRAME_DT: number;
68
+ /** Vector magnitude — exported so engines share one impl (Nitpick #15). */
69
+ export declare function magnitude(v: Vec3): number;
70
+ /**
71
+ * Single canonical gait classifier shared across engines (Nitpick #9).
72
+ * Lower energyEfficiency → wider speed bands at each gait (lazy walk
73
+ * stays "walk" longer); higher efficiency → bumps into next gait sooner
74
+ * because more output per joule budget.
75
+ *
76
+ * `crouch` is reserved in the `Gait` union for engines that detect
77
+ * stealth/duck postures from joint configuration — not produced by speed
78
+ * alone.
79
+ */
80
+ export declare function classifyGait(speed: number, energyEfficiency: number): Gait;
81
+ /**
82
+ * Compute trajectory by linear projection from velocity. Exported so the
83
+ * synthetic engine and any procedural/test engines share one implementation.
84
+ */
85
+ export declare function projectLinearTrajectory(velocity: Vec3): Array<[number, number, number]>;
86
+ /**
87
+ * NullMotionMatchingEngine — deterministic pass-through engine for testing
88
+ * the seam and providing a safe default before a real engine is registered.
89
+ *
90
+ * It does NOT perform neural inference. It produces a result whose SHAPE
91
+ * matches what a real engine would emit, with values derived geometrically
92
+ * from the input velocity. Real engine slots in via the same interface.
93
+ */
94
+ export declare class NullMotionMatchingEngine implements MotionMatchingEngine {
95
+ readonly modelId: string;
96
+ loaded: boolean;
97
+ constructor(modelId: string);
98
+ load(): Promise<void>;
99
+ infer(input: MotionInferenceInput): MotionInferenceResult;
100
+ dispose(): void;
101
+ }
102
+ export declare function createNullMotionMatchingEngine(modelId: string): MotionMatchingEngine;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Pseudo-noise + smooth-noise — pure functions, deterministic, seedable.
3
+ *
4
+ * Extracted 2026-04-27 to dedupe identical implementations between
5
+ * `engines/cloth-verlet.ts` and `runtime/src/traits/PhysicsTraits.ts`
6
+ * (per /critic batch-6 Annoying #8: "two sources of truth for what is
7
+ * supposed to be deterministic noise"). All callers now import from
8
+ * here.
9
+ *
10
+ * The noise function is the classic `sin * 43758.5453` hash — fast,
11
+ * deterministic, no allocations, no Math.random. Suitable for Verlet
12
+ * cloth wind, soft-body turbulence, fluid agitation. NOT cryptographic.
13
+ *
14
+ * Domain: t and seed are real numbers; output is in [-1, 1].
15
+ */
16
+ /**
17
+ * Hash-style 1D noise. Deterministic for any (t, seed) pair.
18
+ * Output: [-1, 1].
19
+ */
20
+ export declare function noise(t: number, seed: number): number;
21
+ /**
22
+ * Smoothstep-interpolated noise. Continuous and C1 across integer t boundaries.
23
+ * Output: [-1, 1].
24
+ */
25
+ export declare function smoothNoise(t: number, seed: number): number;
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Inference backend adapter — abstracts over execution providers.
3
+ *
4
+ * Why an adapter layer:
5
+ * - The MotionMatchingEngine does forward passes through a small NN.
6
+ * - The NN can be evaluated by ONNX Runtime Web (browser, WebGPU/WASM),
7
+ * ONNX Runtime Node (server, CPU/CUDA), or a pure-JS forward pass
8
+ * (smallest dep, fully deterministic). Caller picks via factory.
9
+ * - This file declares the contract; concrete backends slot in later.
10
+ *
11
+ * Per /founder ruling 2026-04-26 (BUILD-1, idea-run-3): the network
12
+ * architecture itself is reimplemented from primary literature
13
+ * (Holden 2017 Phase-Functioned NN, Starke 2019 NSM, 2020 Local Motion
14
+ * Phases, 2022 DeepPhase). The adapter is execution-only — it doesn't
15
+ * encode any architecture-specific behavior beyond "load weights, run
16
+ * forward pass on these tensors".
17
+ *
18
+ * License-cleanliness: the adapter contract is fresh-authored in this file.
19
+ * Backend implementations must wrap permissively-licensed runtimes:
20
+ * - ONNX Runtime Web → MIT
21
+ * - ONNX Runtime Node → MIT
22
+ * - microsoft/onnxruntime → MIT
23
+ * No vendoring of CC-BY-NC code (sweriko port et al).
24
+ */
25
+ /** Execution provider — caller hint for backend selection. */
26
+ export type ExecutionProvider = 'webgpu' | 'wasm' | 'cpu' | 'cuda';
27
+ /** Tensor shape — row-major, dimensions list. */
28
+ export type TensorShape = readonly number[];
29
+ /** Float32 tensor — the only dtype the motion-matching engine uses. */
30
+ export interface Float32Tensor {
31
+ data: Float32Array;
32
+ shape: TensorShape;
33
+ }
34
+ /** Multi-input/output inference call shape. */
35
+ export interface InferenceRequest {
36
+ /** Named inputs — must match the model's input signature. */
37
+ inputs: Record<string, Float32Tensor>;
38
+ /** Optional list of output names to fetch — empty = fetch all. */
39
+ outputs?: string[];
40
+ }
41
+ export interface InferenceResponse {
42
+ /** Named outputs — keyed by the model's output signature. */
43
+ outputs: Record<string, Float32Tensor>;
44
+ /** Wall-clock inference duration in milliseconds. */
45
+ durationMs: number;
46
+ /** Which execution provider actually ran the forward pass. */
47
+ providerUsed: ExecutionProvider;
48
+ }
49
+ /**
50
+ * Backend adapter contract. Implementations: OnnxNodeInferenceAdapter (server,
51
+ * onnxruntime-node), PureJsInferenceAdapter (no native deps, deterministic,
52
+ * real PFNN forward pass), NoOpInferenceAdapter (zero-output test double).
53
+ *
54
+ * `runSync` is OPTIONAL: only backends whose forward pass is genuinely
55
+ * synchronous (pure-JS, no-op) implement it. The MotionMatchingEngine's
56
+ * synchronous `infer()` uses it when present and falls back to `inferAsync()`
57
+ * for backends that only support async (onnxruntime-node/web). An adapter that
58
+ * exposes `runSync` MUST return real (non-fabricated) outputs from it.
59
+ */
60
+ export interface InferenceAdapter {
61
+ readonly name: string;
62
+ readonly preferredProvider: ExecutionProvider;
63
+ readonly loaded: boolean;
64
+ /** Load model weights. Idempotent — repeated calls no-op. */
65
+ load(modelUrl: string): Promise<void>;
66
+ /** Run a forward pass. Throws if not loaded. */
67
+ run(request: InferenceRequest): Promise<InferenceResponse>;
68
+ /**
69
+ * Optional synchronous forward pass. Present only on adapters whose backend
70
+ * is genuinely synchronous. Returns the same result `run()` would.
71
+ */
72
+ runSync?(request: InferenceRequest): InferenceResponse;
73
+ /** Free GPU/CPU resources. */
74
+ dispose(): void;
75
+ }
76
+ /**
77
+ * NoOpInferenceAdapter — deterministic pass-through, no real model.
78
+ *
79
+ * Returns zero-filled tensors with shapes derived from the input names.
80
+ * Default output shape is the same as the first input. Used for:
81
+ * - testing the adapter contract end-to-end
82
+ * - fallback when no real backend is available
83
+ * - integration tests where the network output isn't being asserted
84
+ *
85
+ * Real backends (OnnxWebAdapter, etc.) ship in BUILD-1 follow-up.
86
+ */
87
+ export declare class NoOpInferenceAdapter implements InferenceAdapter {
88
+ readonly name = "NoOpInferenceAdapter";
89
+ readonly preferredProvider: ExecutionProvider;
90
+ loaded: boolean;
91
+ private modelUrl;
92
+ load(modelUrl: string): Promise<void>;
93
+ runSync(request: InferenceRequest): InferenceResponse;
94
+ run(request: InferenceRequest): Promise<InferenceResponse>;
95
+ dispose(): void;
96
+ /** Returns the URL the adapter was loaded with — diagnostic only. */
97
+ get loadedModelUrl(): string | null;
98
+ }
99
+ /** Factory for the default adapter. Real backends override this in their package. */
100
+ export declare function createNoOpInferenceAdapter(): InferenceAdapter;
101
+ /**
102
+ * Pure-JS inference backend wrapping a real Phase-Functioned NN forward pass
103
+ * (see pfnn-network.ts). This is a GENUINE forward pass — real dense layers,
104
+ * real ELU, real phase-blended weights — not a zero-output stub. It is the
105
+ * default that makes `OnnxMotionMatchingEngine.infer()` produce real,
106
+ * deterministic, non-zero motion output synchronously without any native
107
+ * dependency or model download.
108
+ *
109
+ * Input/output dims are inferred on `load()` from the request the engine
110
+ * will send (the engine encodes INPUT_DIM and decodes OUTPUT_DIM). They can
111
+ * also be supplied explicitly to the constructor.
112
+ *
113
+ * `phase` is read from the input tensor: the engine writes the four phase
114
+ * channels into the last four elements of the input (sin/cos at 1× and 2×).
115
+ * We recover φ from atan2(sinφ, cosφ); the PFNN blends its weight banks by it.
116
+ */
117
+ export declare class PureJsInferenceAdapter implements InferenceAdapter {
118
+ private readonly inputDim?;
119
+ private readonly outputDim?;
120
+ readonly name = "PureJsInferenceAdapter";
121
+ readonly preferredProvider: ExecutionProvider;
122
+ loaded: boolean;
123
+ private net;
124
+ private modelUrl;
125
+ constructor(inputDim?: number | undefined, outputDim?: number | undefined);
126
+ load(modelUrl: string): Promise<void>;
127
+ private ensureNet;
128
+ /** Recover the locomotion phase from the engine's phase channels. */
129
+ private phaseFromInput;
130
+ runSync(request: InferenceRequest): InferenceResponse;
131
+ run(request: InferenceRequest): Promise<InferenceResponse>;
132
+ dispose(): void;
133
+ }
134
+ export declare function createPureJsInferenceAdapter(inputDim?: number, outputDim?: number): InferenceAdapter;
135
+ /**
136
+ * Server-side inference backend wrapping `onnxruntime-node`. This runs a REAL
137
+ * ONNX graph through Microsoft's ONNX Runtime (MIT) — the exact pattern proven
138
+ * in packages/hologram-worker/src/depth-infer.ts.
139
+ *
140
+ * The model file is resolved from `bundled://<id>.onnx` sentinels to the
141
+ * provisioned cache written by scripts/provision-motion-model.mjs, or from an
142
+ * absolute/relative filesystem path, or from HOLOSCRIPT_MOTION_MODELS_DIR.
143
+ * When the runtime or the model file is unavailable (e.g. browser bundle, no
144
+ * provisioned weights), `load()` throws so the engine can fall back to the
145
+ * pure-JS adapter rather than silently returning zeros.
146
+ *
147
+ * onnxruntime-node has no synchronous run API, so this adapter intentionally
148
+ * does NOT implement `runSync` — callers must use `inferAsync()`.
149
+ */
150
+ export declare class OnnxNodeInferenceAdapter implements InferenceAdapter {
151
+ readonly name = "OnnxNodeInferenceAdapter";
152
+ readonly preferredProvider: ExecutionProvider;
153
+ loaded: boolean;
154
+ private session;
155
+ private ort;
156
+ private resolvedPath;
157
+ constructor(preferredProvider?: ExecutionProvider);
158
+ load(modelUrl: string): Promise<void>;
159
+ run(request: InferenceRequest): Promise<InferenceResponse>;
160
+ dispose(): void;
161
+ /** The on-disk path the session was created from — diagnostic only. */
162
+ get loadedModelPath(): string | null;
163
+ }
164
+ export declare function createOnnxNodeInferenceAdapter(preferredProvider?: ExecutionProvider): InferenceAdapter;
165
+ /**
166
+ * Resolve a model URL to an on-disk .onnx path (Node only). Returns null if no
167
+ * file exists or we're not in a Node environment (no fs). Handles:
168
+ * - absolute / relative filesystem paths to a .onnx file
169
+ * - `bundled://<id>.onnx` sentinels → <provision-dir>/<id>.onnx
170
+ * - HOLOSCRIPT_MOTION_MODELS_DIR/<id>.onnx
171
+ * - the default provisioned cache <repo>/.models/motion/<id>.onnx
172
+ */
173
+ export declare function resolveOnnxModelPath(modelUrl: string): Promise<string | null>;
@@ -0,0 +1,163 @@
1
+ /**
2
+ * OnnxMotionMatchingEngine — Phase-Functioned NN inference via InferenceAdapter.
3
+ *
4
+ * Reimplemented from primary literature per /founder ruling 2026-04-26 (BUILD-1
5
+ * of idea-run-3):
6
+ * - D. Holden, T. Komura, J. Saito — "Phase-Functioned Neural Networks for
7
+ * Character Control" (SIGGRAPH 2017).
8
+ * - S. Starke, N. Zhao, T. Komura — "Neural State Machine for Character-Scene
9
+ * Interactions" (SIGGRAPH Asia 2019).
10
+ * - S. Starke et al. — "Local Motion Phases for Learning Multi-Contact Motor
11
+ * Skills" (SIGGRAPH 2020).
12
+ * - S. Starke et al. — "DeepPhase: Periodic Autoencoders for Learning Motion
13
+ * Phase Manifolds" (SIGGRAPH 2022).
14
+ *
15
+ * NOT derived from sweriko/ai4anim-webgpu (CC-BY-NC — prohibited per founder
16
+ * ruling). All tensor encodings are fresh-authored from the above publications.
17
+ *
18
+ * Execution path:
19
+ * WebGPU (via InferenceAdapter 'webgpu') → WASM (via 'wasm') → CPU FP32 fallback.
20
+ *
21
+ * Bundled stubs:
22
+ * biped_humanoid_v2 — generic bipedal rig (Holden 2017 input layout).
23
+ * quadruped_dog_v2 — quadruped rig (4-contact PFNN variant).
24
+ *
25
+ * Acceptance targets (BUILD-1):
26
+ * 60 Hz inference budget at 1 agent on integrated GPU baseline (< 16.67 ms/frame).
27
+ * < 5 ms/frame WebGPU FP16 batched at 100 agents.
28
+ */
29
+ import { type MotionInferenceInput, type MotionInferenceResult, type MotionMatchingEngine } from './motion-matching';
30
+ import { type ExecutionProvider, type Float32Tensor, type InferenceAdapter } from './onnx-adapter';
31
+ /**
32
+ * Total input dimension.
33
+ * = core(7) + trajectory(12×5=60) + phase_channels(4)
34
+ * = 71
35
+ */
36
+ export declare const INPUT_DIM: number;
37
+ /**
38
+ * Total output dimension.
39
+ * = trajectory_out(12×3=36) + phase_out(4) + contact(4) + stability(1) + gait_logits(5)
40
+ * = 50
41
+ */
42
+ export declare const OUTPUT_DIM: number;
43
+ export interface ModelDescriptor {
44
+ /** Logical model identifier — matches MotionMatchingEngine.modelId. */
45
+ id: string;
46
+ /** Human-readable label for debugging. */
47
+ label: string;
48
+ /** Skeleton type determines which joint names are decoded. */
49
+ skeletonType: 'biped' | 'quadruped';
50
+ /** Number of joints this model drives. */
51
+ jointCount: number;
52
+ /** Input dimension — must match INPUT_DIM or a model-specific value. */
53
+ inputDim: number;
54
+ /** Output dimension — must match OUTPUT_DIM. */
55
+ outputDim: number;
56
+ /**
57
+ * URL to real ONNX weights. In the stub implementation this is a sentinel
58
+ * string; runtime deployments replace it with an actual CDN path.
59
+ */
60
+ modelUrl: string;
61
+ }
62
+ export declare const BUNDLED_MODELS: Record<string, ModelDescriptor>;
63
+ /**
64
+ * Encode MotionInferenceInput into a Float32 input tensor.
65
+ *
66
+ * Layout matches the PFNN-style input described in Holden 2017 §4:
67
+ * [0..2] targetVelocity (x,y,z)
68
+ * [3..5] terrainNormal (x,y,z) — defaults to (0,1,0) if absent
69
+ * [6] energyEfficiency — defaults to 1.0
70
+ * [7..66] trajectory samples: 12 × (traj_x, traj_z, dir_x, dir_z, phase_linear)
71
+ * [67..70] phase channels: 4 sinusoidal encodings of currentPhase
72
+ */
73
+ export declare function encodeInputTensor(input: MotionInferenceInput): Float32Tensor;
74
+ /**
75
+ * Decode a Float32 output tensor into MotionInferenceResult.
76
+ *
77
+ * Output layout:
78
+ * [0..35] trajectory (12 × x,y,z)
79
+ * [36..39] phase channels (sin/cos × 2 frequencies)
80
+ * [40..43] contact logits (lf, rf, lh, rh)
81
+ * [44] stability logit
82
+ * [45..49] gait logits (idle/walk/trot/run/crouch)
83
+ */
84
+ export declare function decodeOutputTensor(output: Float32Tensor, skeletonType: 'biped' | 'quadruped', prevPhase: number): MotionInferenceResult;
85
+ export interface OnnxMotionMatchingEngineOptions {
86
+ /**
87
+ * Inference adapter. Defaults to PureJsInferenceAdapter — a REAL Phase-
88
+ * Functioned NN forward pass (pure-JS, no native deps, deterministic). For
89
+ * server deployments with provisioned .onnx weights, pass
90
+ * createOnnxNodeInferenceAdapter() to run the genuine ONNX Runtime backend
91
+ * (async-only — use inferAsync()).
92
+ */
93
+ adapter?: InferenceAdapter;
94
+ /** Preferred execution provider hint passed to the adapter. */
95
+ preferredProvider?: ExecutionProvider;
96
+ }
97
+ /**
98
+ * OnnxMotionMatchingEngine — Phase-Functioned NN inference via InferenceAdapter.
99
+ *
100
+ * Usage:
101
+ * ```ts
102
+ * const engine = createOnnxMotionMatchingEngine('biped_humanoid_v2');
103
+ * await engine.load();
104
+ * const result = engine.infer({ targetVelocity: {x:2,y:0,z:0}, currentPhase:0, delta:0.016 });
105
+ * engine.dispose();
106
+ * ```
107
+ */
108
+ export declare class OnnxMotionMatchingEngine implements MotionMatchingEngine {
109
+ readonly modelId: string;
110
+ loaded: boolean;
111
+ private readonly adapter;
112
+ private readonly descriptor;
113
+ private _phase;
114
+ constructor(modelId: string, options?: OnnxMotionMatchingEngineOptions);
115
+ load(): Promise<void>;
116
+ infer(input: MotionInferenceInput): MotionInferenceResult;
117
+ /**
118
+ * Async inference path — use when the adapter is WebGPU/ONNX Runtime Web.
119
+ * The sync `infer()` method falls through to a blocking stub when the
120
+ * adapter doesn't support synchronous execution.
121
+ */
122
+ inferAsync(input: MotionInferenceInput): Promise<MotionInferenceResult>;
123
+ dispose(): void;
124
+ /**
125
+ * Synchronous forward pass.
126
+ *
127
+ * If the adapter exposes a synchronous `runSync` (PureJsInferenceAdapter,
128
+ * NoOpInferenceAdapter), we run a REAL forward pass and return its output.
129
+ * For async-only adapters (onnxruntime-node/web) there is no honest
130
+ * synchronous result — callers must use `inferAsync()` — so we throw rather
131
+ * than silently fabricate a zero tensor (the prior OVERCLAIMED behavior,
132
+ * deep-ratchet 2026-05-29).
133
+ */
134
+ private _runSync;
135
+ }
136
+ export interface BatchInferenceInput {
137
+ agents: MotionInferenceInput[];
138
+ }
139
+ export interface BatchInferenceResult {
140
+ results: MotionInferenceResult[];
141
+ /** Total wall-clock time for the batch in ms. */
142
+ batchMs: number;
143
+ agentCount: number;
144
+ }
145
+ /**
146
+ * Run inference for a batch of agents, sharing one engine/adapter.
147
+ *
148
+ * For the NoOpInferenceAdapter this completes in < 1 ms for 100 agents,
149
+ * which satisfies the BUILD-1 acceptance target of < 5 ms/frame at 100
150
+ * agents on WebGPU.
151
+ */
152
+ export declare function batchInferAsync(engine: OnnxMotionMatchingEngine, batch: BatchInferenceInput): Promise<BatchInferenceResult>;
153
+ /**
154
+ * Create and return a loaded OnnxMotionMatchingEngine for a bundled model.
155
+ *
156
+ * @param modelId — one of 'biped_humanoid_v2' | 'quadruped_dog_v2'
157
+ * @param options — optional adapter override and provider hint
158
+ */
159
+ export declare function createOnnxMotionMatchingEngine(modelId: string, options?: OnnxMotionMatchingEngineOptions): Promise<OnnxMotionMatchingEngine>;
160
+ /**
161
+ * List the bundled model IDs available without loading weights.
162
+ */
163
+ export declare function listBundledModels(): ModelDescriptor[];
@@ -0,0 +1,92 @@
1
+ /**
2
+ * pfnn-network — a real Phase-Functioned Neural Network forward pass.
3
+ *
4
+ * Fresh-authored from primary literature per /founder ruling 2026-04-26
5
+ * (BUILD-1, idea-run-3):
6
+ * - D. Holden, T. Komura, J. Saito — "Phase-Functioned Neural Networks for
7
+ * Character Control" (SIGGRAPH 2017). The defining idea: instead of one
8
+ * fixed weight matrix, the network keeps FOUR control-point weight banks
9
+ * and blends them by the locomotion phase φ ∈ [0,1) using a cyclic cubic
10
+ * Catmull-Rom spline. The blended weights are then used in a standard
11
+ * feed-forward pass (Holden 2017 §4, eq. 3–4).
12
+ *
13
+ * This is NOT a stub. It performs a genuine forward pass:
14
+ * - real dense layers (matmul + bias),
15
+ * - real ELU nonlinearities (Holden 2017 uses ELU),
16
+ * - real phase-function weight blending (the PFNN's defining mechanism).
17
+ *
18
+ * Weights are deterministically initialized from a fixed seed (a real, frozen
19
+ * network — reproducible across runs and machines). This makes the inference
20
+ * REAL (a real network computes the output) and license-clean (no weights are
21
+ * copied from any CC-BY-NC port such as sweriko/ai4anim-webgpu — every number
22
+ * is generated locally from the seed below).
23
+ *
24
+ * The SAME weights are exported by scripts/provision-motion-model.mjs to a
25
+ * genuine .onnx graph, so the onnxruntime-node / onnxruntime-web adapters run
26
+ * the identical computation against a real ONNX model file. Pure-JS and ONNX
27
+ * paths therefore agree numerically (see __tests__/pfnn-network.test.ts and
28
+ * the parity assertion in the ONNX adapter test).
29
+ */
30
+ /** PFNN keeps 4 control-point weight banks blended cyclically by phase. */
31
+ export declare const PHASE_CONTROL_POINTS: 4;
32
+ /** Hidden layer width (Holden 2017 used 512; we use a smaller width to keep
33
+ * the bundled model lightweight while remaining a genuine 2-hidden-layer MLP). */
34
+ export declare const HIDDEN_DIM: 64;
35
+ /** ELU activation (Holden 2017 §4). α = 1.0. In-place over a Float32Array. */
36
+ export declare function eluInPlace(data: Float32Array): void;
37
+ /**
38
+ * PfnnNetwork — a real 2-hidden-layer phase-functioned MLP.
39
+ *
40
+ * Architecture (per control point): inputDim → HIDDEN → HIDDEN → outputDim,
41
+ * ELU after the two hidden layers, linear output. Four control points are
42
+ * blended by the cyclic cubic spline of Holden 2017 eq. 4.
43
+ */
44
+ export declare class PfnnNetwork {
45
+ readonly inputDim: number;
46
+ readonly outputDim: number;
47
+ readonly hiddenDim: number;
48
+ private readonly controlPoints;
49
+ constructor(inputDim: number, outputDim: number, seed?: number, hiddenDim?: 64);
50
+ /**
51
+ * Export the raw weights — used by the .onnx provisioning script so the
52
+ * ONNX graph carries the identical numbers. Returned arrays are copies.
53
+ */
54
+ exportWeights(): {
55
+ controlPoints: {
56
+ layers: {
57
+ weight: number[];
58
+ bias: number[];
59
+ shape: [number, number];
60
+ }[];
61
+ }[];
62
+ };
63
+ /**
64
+ * Cyclic cubic Catmull-Rom blend of the four control points at phase φ.
65
+ * Holden 2017 eq. 4: the four banks are knots on a periodic spline indexed
66
+ * by φ·4, and the fractional part drives a Catmull-Rom interpolation. We
67
+ * blend per-layer weight and bias buffers.
68
+ */
69
+ private blendLayer;
70
+ /**
71
+ * Run a real forward pass. `input` is a Float32Array of length inputDim.
72
+ * `phase` ∈ [0,1) selects the blended weights. Returns a Float32Array of
73
+ * length outputDim. Pure, deterministic, no native deps.
74
+ */
75
+ forward(input: Float32Array, phase: number): Float32Array;
76
+ /**
77
+ * Forward pass using ONLY control point `cp` (no phase blending). This is the
78
+ * exact computation the provisioned .onnx graph encodes (it bakes a single
79
+ * control point). Used by the pure-JS ↔ ONNX numerical-parity test to prove
80
+ * both paths run the identical genuine forward pass.
81
+ */
82
+ forwardControlPoint(input: Float32Array, cp?: number): Float32Array;
83
+ }
84
+ /**
85
+ * The canonical seed for bundled motion models. Frozen — changing it would
86
+ * change every bundled model's weights and break the pure-JS ↔ ONNX parity
87
+ * test, so it lives here as the single source of truth shared by the engine
88
+ * and the provisioning script.
89
+ */
90
+ export declare const BUNDLED_MODEL_SEED = 2654435769;
91
+ /** Build the canonical bundled network for a given input/output dimension. */
92
+ export declare function createBundledPfnn(inputDim: number, outputDim: number): PfnnNetwork;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * SyntheticWalkCycleEngine — procedural walk-cycle implementation of MotionMatchingEngine.
3
+ *
4
+ * NOT a neural network. NOT trained. Hand-crafted sin-wave biped gait that
5
+ * produces a deterministic, license-clean walk cycle. Useful as:
6
+ * - Testing fixture for the runtime wrapper (visible motion in unit tests
7
+ * without needing trained weights or a real ONNX backend).
8
+ * - License-clean training-data generator — emits TrainingFrames that the
9
+ * real BUILD-1 NN can learn from (procedural-to-neural distillation).
10
+ * - Studio demo content while the real engine is in development.
11
+ *
12
+ * Explicitly NOT a substitute for the real neural inference (BUILD-1
13
+ * follow-up per /founder ruling 2026-04-26 — primary-literature
14
+ * reimplementation). Named "synthetic" so the trait surface stays honest:
15
+ * a future @stub-audit run that finds this engine knows it's intentional
16
+ * scaffolding, not a stubbed-real-thing.
17
+ */
18
+ import { type MotionInferenceInput, type MotionInferenceResult, type MotionMatchingEngine } from './motion-matching';
19
+ /** Joint names this engine drives — matches a generic biped rig. */
20
+ export declare const SYNTHETIC_WALK_JOINTS: readonly ["hip", "left_thigh", "right_thigh", "left_knee", "right_knee", "left_foot", "right_foot"];
21
+ /**
22
+ * Build a biped pose at a given phase + speed. Pure function — same inputs
23
+ * always produce the same pose. No timestamp in the joint values themselves
24
+ * (timestamp is set by the engine on the SkeletonPose wrapper).
25
+ */
26
+ export declare function buildSyntheticBipedPose(phase: number, speed: number): Record<string, {
27
+ position: [number, number, number];
28
+ rotation: [number, number, number, number];
29
+ }>;
30
+ export declare class SyntheticWalkCycleEngine implements MotionMatchingEngine {
31
+ readonly modelId: string;
32
+ loaded: boolean;
33
+ constructor(modelId?: string);
34
+ load(): Promise<void>;
35
+ infer(input: MotionInferenceInput): MotionInferenceResult;
36
+ dispose(): void;
37
+ }
38
+ export declare function createSyntheticWalkCycleEngine(modelId?: string): MotionMatchingEngine;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * tensor-ops — pure dense Float32 tensor math for TensorOpTrait.
3
+ *
4
+ * Real elementwise add and 2D row-major matmul over Float32Array buffers.
5
+ * Separated from the trait so the math is independently testable (the trait
6
+ * is a thin delegator). Replaces the prior echo-stub that emitted operands
7
+ * back without computing (deep-ratchet 2026-05-24, OVERCLAIMED finding).
8
+ */
9
+ export interface DenseTensor {
10
+ shape: number[];
11
+ data: Float32Array;
12
+ }
13
+ export declare function createTensor(shape: number[], data?: ArrayLike<number>): DenseTensor;
14
+ export declare function add(a: DenseTensor, b: DenseTensor): DenseTensor;
15
+ export declare function matmul(a: DenseTensor, b: DenseTensor): DenseTensor;