@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,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkHCCQLAA4_cjs = require('./chunk-HCCQLAA4.cjs');
3
+ var chunkZHPMP447_cjs = require('./chunk-ZHPMP447.cjs');
4
4
 
5
5
  // ../snn-webgpu/dist/index.js
6
- var __require2 = /* @__PURE__ */ ((x) => typeof chunkHCCQLAA4_cjs.__require !== "undefined" ? chunkHCCQLAA4_cjs.__require : typeof Proxy !== "undefined" ? new Proxy(x, {
7
- get: (a, b) => (typeof chunkHCCQLAA4_cjs.__require !== "undefined" ? chunkHCCQLAA4_cjs.__require : a)[b]
6
+ var __require2 = /* @__PURE__ */ ((x) => typeof chunkZHPMP447_cjs.__require !== "undefined" ? chunkZHPMP447_cjs.__require : typeof Proxy !== "undefined" ? new Proxy(x, {
7
+ get: (a, b) => (typeof chunkZHPMP447_cjs.__require !== "undefined" ? chunkZHPMP447_cjs.__require : a)[b]
8
8
  }) : x)(function(x) {
9
- if (typeof chunkHCCQLAA4_cjs.__require !== "undefined") return chunkHCCQLAA4_cjs.__require.apply(this, arguments);
9
+ if (typeof chunkZHPMP447_cjs.__require !== "undefined") return chunkZHPMP447_cjs.__require.apply(this, arguments);
10
10
  throw Error('Dynamic require of "' + x + '" is not supported');
11
11
  });
12
12
  var _bootstrapAttempted = false;
@@ -1173,26 +1173,57 @@ function extractBotanicalMaterialFromPhotoFixtures(input) {
1173
1173
  const shadowLuma = luminance(petalShadow);
1174
1174
  const petalSat = saturation(petalMid);
1175
1175
  const petalContrast = colorDistance(petalRim, petalShadow);
1176
- const veinContrast = Math.max(colorDistance(vein, petalMid), Math.abs(luminance(vein) - petalLuma));
1176
+ const veinContrast = Math.max(
1177
+ colorDistance(vein, petalMid),
1178
+ Math.abs(luminance(vein) - petalLuma)
1179
+ );
1177
1180
  const silhouetteContrast = colorDistance(silhouetteEdge, petalBase);
1178
1181
  const coverage = regionCoverage(input.fixtures);
1179
1182
  const provConfidence = provenanceConfidence(input.anchors);
1180
1183
  const subsurfaceScattering = round(
1181
- clamp(0.48 + petalSat * 0.18 + Math.max(0, edgeLuma - shadowLuma) * 0.2 + coverage * 0.09, 0.28, 0.92)
1184
+ clamp(
1185
+ 0.48 + petalSat * 0.18 + Math.max(0, edgeLuma - shadowLuma) * 0.2 + coverage * 0.09,
1186
+ 0.28,
1187
+ 0.92
1188
+ )
1189
+ );
1190
+ const translucencyBase = round(
1191
+ clamp(0.34 + luminance(petalBase) * 0.28 + coverage * 0.08, 0.2, 0.82)
1192
+ );
1193
+ const translucencyEdge = round(
1194
+ clamp(translucencyBase * (0.48 + petalContrast * 0.34), 0.14, 0.72)
1195
+ );
1196
+ const translucencyTip = round(
1197
+ clamp(translucencyEdge + Math.max(0, edgeLuma - petalLuma) * 0.16, 0.16, 0.78)
1182
1198
  );
1183
- const translucencyBase = round(clamp(0.34 + luminance(petalBase) * 0.28 + coverage * 0.08, 0.2, 0.82));
1184
- const translucencyEdge = round(clamp(translucencyBase * (0.48 + petalContrast * 0.34), 0.14, 0.72));
1185
- const translucencyTip = round(clamp(translucencyEdge + Math.max(0, edgeLuma - petalLuma) * 0.16, 0.16, 0.78));
1186
1199
  const roughness = round(clamp(0.84 - petalSat * 0.16 - petalContrast * 0.18, 0.46, 0.88));
1187
1200
  const ior = round(clamp(1.31 + petalLuma * 0.06 + petalSat * 0.045, 1.31, 1.44), 2);
1188
- const veinNormalIntensity = round(clamp(0.018 + veinContrast * 0.095 + coverage * 0.012, 0.012, 0.12));
1189
- const edgeCurlIntensity = round(clamp(0.34 + silhouetteContrast * 0.46 + petalContrast * 0.18, 0.24, 0.82));
1190
- const gravitySagOuter = round(clamp(0.12 + (1 - luminance(leafDark)) * 0.16 + silhouetteContrast * 0.08, 0.1, 0.42));
1201
+ const veinNormalIntensity = round(
1202
+ clamp(0.018 + veinContrast * 0.095 + coverage * 0.012, 0.012, 0.12)
1203
+ );
1204
+ const edgeCurlIntensity = round(
1205
+ clamp(0.34 + silhouetteContrast * 0.46 + petalContrast * 0.18, 0.24, 0.82)
1206
+ );
1207
+ const gravitySagOuter = round(
1208
+ clamp(0.12 + (1 - luminance(leafDark)) * 0.16 + silhouetteContrast * 0.08, 0.1, 0.42)
1209
+ );
1191
1210
  const sssConfidence = round(clamp(coverage * 0.6 + provConfidence * 0.4, 0, 1));
1192
- const translucencyConfidence = round(clamp((coverage + (collectRegionPixels(input.fixtures, "petal_rim").length ? 1 : 0)) / 2, 0, 1));
1193
- const veinConfidence = round(clamp((collectRegionPixels(input.fixtures, "vein").length ? 0.64 : 0.22) + provConfidence * 0.36, 0, 1));
1194
- const roughnessConfidence = round(clamp(coverage * 0.5 + provConfidence * 0.28 + (input.fixtures.length > 0 ? 0.22 : 0), 0, 1));
1195
- const overall = round((sssConfidence + translucencyConfidence + veinConfidence + roughnessConfidence + provConfidence) / 5);
1211
+ const translucencyConfidence = round(
1212
+ clamp((coverage + (collectRegionPixels(input.fixtures, "petal_rim").length ? 1 : 0)) / 2, 0, 1)
1213
+ );
1214
+ const veinConfidence = round(
1215
+ clamp(
1216
+ (collectRegionPixels(input.fixtures, "vein").length ? 0.64 : 0.22) + provConfidence * 0.36,
1217
+ 0,
1218
+ 1
1219
+ )
1220
+ );
1221
+ const roughnessConfidence = round(
1222
+ clamp(coverage * 0.5 + provConfidence * 0.28 + (input.fixtures.length > 0 ? 0.22 : 0), 0, 1)
1223
+ );
1224
+ const overall = round(
1225
+ (sssConfidence + translucencyConfidence + veinConfidence + roughnessConfidence + provConfidence) / 5
1226
+ );
1196
1227
  return {
1197
1228
  schema: "holoscript.botanical.material-extract.v1",
1198
1229
  status: extractionStatus(input.anchors),
@@ -1762,7 +1793,9 @@ var TropicalShortestPaths = class _TropicalShortestPaths {
1762
1793
  }
1763
1794
  static computeAPSPCPU(adjacencyMatrix, n) {
1764
1795
  if (adjacencyMatrix.length !== n * n) {
1765
- throw new Error(`adjacencyMatrix length (${adjacencyMatrix.length}) must equal n*n (${n * n})`);
1796
+ throw new Error(
1797
+ `adjacencyMatrix length (${adjacencyMatrix.length}) must equal n*n (${n * n})`
1798
+ );
1766
1799
  }
1767
1800
  const dist = new Float32Array(adjacencyMatrix);
1768
1801
  for (let k = 0; k < n; k++) {
@@ -1843,7 +1876,9 @@ var TropicalShortestPaths = class _TropicalShortestPaths {
1843
1876
  }
1844
1877
  async computeAPSP(adjacencyMatrix, n) {
1845
1878
  if (adjacencyMatrix.length !== n * n) {
1846
- throw new Error(`adjacencyMatrix length (${adjacencyMatrix.length}) must equal n*n (${n * n})`);
1879
+ throw new Error(
1880
+ `adjacencyMatrix length (${adjacencyMatrix.length}) must equal n*n (${n * n})`
1881
+ );
1847
1882
  }
1848
1883
  if (!this.preferGPU || n < this.denseCpuThreshold) {
1849
1884
  return _TropicalShortestPaths.computeAPSPCPU(adjacencyMatrix, n);
@@ -2206,7 +2241,9 @@ async function runLIFDeterminismProbe(ctx, options) {
2206
2241
  const stimulusSeed = options.stimulusSeed;
2207
2242
  const stimulusAmplitude = options.stimulusAmplitude ?? { min: 0, max: 1.2 };
2208
2243
  if (neuronCount <= 0 || !Number.isInteger(neuronCount)) {
2209
- throw new Error(`LIFDeterminismProbe: neuronCount must be a positive integer, got ${neuronCount}`);
2244
+ throw new Error(
2245
+ `LIFDeterminismProbe: neuronCount must be a positive integer, got ${neuronCount}`
2246
+ );
2210
2247
  }
2211
2248
  if (tickCount <= 0 || !Number.isInteger(tickCount)) {
2212
2249
  throw new Error(`LIFDeterminismProbe: tickCount must be a positive integer, got ${tickCount}`);
@@ -2219,11 +2256,7 @@ async function runLIFDeterminismProbe(ctx, options) {
2219
2256
  sim.setSynapticInput(stimulus);
2220
2257
  await sim.stepN(tickCount);
2221
2258
  const readback = await sim.readMembranePotentials();
2222
- return new Uint8Array(
2223
- readback.data.buffer,
2224
- readback.data.byteOffset,
2225
- readback.data.byteLength
2226
- );
2259
+ return new Uint8Array(readback.data.buffer, readback.data.byteOffset, readback.data.byteLength);
2227
2260
  } finally {
2228
2261
  sim.destroy();
2229
2262
  }
@@ -2250,6 +2283,7 @@ var ProphecyOrchestrator = class {
2250
2283
  this.config = config;
2251
2284
  this.frameCounter = 0;
2252
2285
  this.lastFrame = null;
2286
+ this.lastScene = null;
2253
2287
  this.initialized = false;
2254
2288
  this.uniformBuffer = null;
2255
2289
  this.spikeRatesBuffer = null;
@@ -2288,9 +2322,7 @@ var ProphecyOrchestrator = class {
2288
2322
  }
2289
2323
  const floor = config.confidenceFloor ?? 0.05;
2290
2324
  if (floor < 0 || floor > 1) {
2291
- throw new Error(
2292
- `ProphecyOrchestrator: confidenceFloor must be in [0,1], got ${floor}`
2293
- );
2325
+ throw new Error(`ProphecyOrchestrator: confidenceFloor must be in [0,1], got ${floor}`);
2294
2326
  }
2295
2327
  }
2296
2328
  /** Allocate GPU buffers and upload static probe positions / albedo. */
@@ -2405,7 +2437,7 @@ var ProphecyOrchestrator = class {
2405
2437
  const t0 = typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
2406
2438
  const uniforms = this.packUniforms(scene);
2407
2439
  this.ctx.device.queue.writeBuffer(this.uniformBuffer, 0, uniforms);
2408
- const probes = this.computeProbesCpu(scene);
2440
+ const probes = this.applyTemporalReprojection(this.computeProbesCpu(scene), scene);
2409
2441
  const t1 = typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
2410
2442
  const frame = {
2411
2443
  frameId: this.frameCounter++,
@@ -2415,6 +2447,7 @@ var ProphecyOrchestrator = class {
2415
2447
  source: "local"
2416
2448
  };
2417
2449
  this.lastFrame = frame;
2450
+ this.lastScene = scene;
2418
2451
  return frame;
2419
2452
  }
2420
2453
  /**
@@ -2447,17 +2480,61 @@ var ProphecyOrchestrator = class {
2447
2480
  }
2448
2481
  out[i] = {
2449
2482
  index: i,
2450
- position: [
2451
- positions[i * 3 + 0],
2452
- positions[i * 3 + 1],
2453
- positions[i * 3 + 2]
2454
- ],
2483
+ position: [positions[i * 3 + 0], positions[i * 3 + 1], positions[i * 3 + 2]],
2455
2484
  rgb: [r, g, b],
2456
2485
  confidence
2457
2486
  };
2458
2487
  }
2459
2488
  return out;
2460
2489
  }
2490
+ applyTemporalReprojection(probes, scene) {
2491
+ const temporal = this.config.temporalReprojection;
2492
+ if (!temporal?.enabled || !this.lastFrame || !this.lastScene) {
2493
+ return probes;
2494
+ }
2495
+ const historyWeight = this.clamp01(temporal.historyWeight ?? 0.85);
2496
+ const confidenceDecay = this.clamp01(temporal.confidenceDecay ?? 0.98);
2497
+ const maxCameraDelta = temporal.maxCameraDelta ?? 0.5;
2498
+ const maxSunDelta = temporal.maxSunDelta ?? 0.5;
2499
+ const cameraDelta = this.vecDistance(scene.cameraPosition, this.lastScene.cameraPosition);
2500
+ const sunDelta = this.vecDistance(scene.sunDirection, this.lastScene.sunDirection);
2501
+ const cameraFactor = maxCameraDelta <= 0 ? 0 : this.clamp01(1 - cameraDelta / maxCameraDelta);
2502
+ const sunFactor = maxSunDelta <= 0 ? 0 : this.clamp01(1 - sunDelta / maxSunDelta);
2503
+ const alpha = historyWeight * cameraFactor * sunFactor;
2504
+ if (alpha <= 0) {
2505
+ return probes;
2506
+ }
2507
+ const previous = this.lastFrame.probes;
2508
+ return probes.map((probe, index) => {
2509
+ const prev = previous[index];
2510
+ if (!prev || prev.index !== probe.index) {
2511
+ return probe;
2512
+ }
2513
+ return {
2514
+ ...probe,
2515
+ rgb: [
2516
+ prev.rgb[0] * alpha + probe.rgb[0] * (1 - alpha),
2517
+ prev.rgb[1] * alpha + probe.rgb[1] * (1 - alpha),
2518
+ prev.rgb[2] * alpha + probe.rgb[2] * (1 - alpha)
2519
+ ],
2520
+ confidence: this.clamp01(
2521
+ prev.confidence * confidenceDecay * alpha + probe.confidence * (1 - alpha)
2522
+ )
2523
+ };
2524
+ });
2525
+ }
2526
+ vecDistance(a, b) {
2527
+ const dx = a[0] - b[0];
2528
+ const dy = a[1] - b[1];
2529
+ const dz = a[2] - b[2];
2530
+ return Math.sqrt(dx * dx + dy * dy + dz * dz);
2531
+ }
2532
+ clamp01(value) {
2533
+ if (!Number.isFinite(value)) return 0;
2534
+ if (value < 0) return 0;
2535
+ if (value > 1) return 1;
2536
+ return value;
2537
+ }
2461
2538
  /** Test/dev helper: prime the CPU shadow without touching the GPU
2462
2539
  * buffer, useful for unit tests. */
2463
2540
  primeSpikeRatesShadow(rates) {
@@ -2488,6 +2565,8 @@ var ProphecyOrchestrator = class {
2488
2565
  this.readbackBuffer = null;
2489
2566
  this.initialized = false;
2490
2567
  this.lastSpikeRatesShadow = null;
2568
+ this.lastFrame = null;
2569
+ this.lastScene = null;
2491
2570
  }
2492
2571
  assertInit() {
2493
2572
  if (!this.initialized) {
@@ -2500,8 +2579,10 @@ var LocalProphecyTransport = class {
2500
2579
  this.options = options;
2501
2580
  this.kind = "local";
2502
2581
  this.orchestrator = null;
2582
+ this.config = null;
2503
2583
  }
2504
2584
  async initialize(config) {
2585
+ this.config = config;
2505
2586
  this.orchestrator = new ProphecyOrchestrator(this.options.ctx, config);
2506
2587
  this.orchestrator.initialize();
2507
2588
  }
@@ -2509,15 +2590,7 @@ var LocalProphecyTransport = class {
2509
2590
  if (!this.orchestrator) {
2510
2591
  throw new Error("LocalProphecyTransport: not initialized");
2511
2592
  }
2512
- const rates = await this.options.spikeRates(
2513
- scene,
2514
- this.orchestrator.getLastFrame()?.probes.length ?? // Probe count is fixed at initialize-time; if no frame has run
2515
- // yet we ask the provider for the configured count. We can
2516
- // recover that from the orchestrator's last upload, or we
2517
- // honour what the provider returns. We choose the latter for
2518
- // simplicity and validate length in primeSpikeRatesShadow.
2519
- 0
2520
- );
2593
+ const rates = await this.options.spikeRates(scene, this.config?.probeCount ?? 0);
2521
2594
  this.orchestrator.primeSpikeRatesShadow(rates);
2522
2595
  this.orchestrator.uploadSpikeRates(rates);
2523
2596
  return this.orchestrator.step(scene);
@@ -2525,8 +2598,190 @@ var LocalProphecyTransport = class {
2525
2598
  async destroy() {
2526
2599
  this.orchestrator?.destroy();
2527
2600
  this.orchestrator = null;
2601
+ this.config = null;
2528
2602
  }
2529
2603
  };
2604
+ var PROPHECY_SPIKE_FEATURE_COUNT = 9;
2605
+ function clamp01(value) {
2606
+ if (!Number.isFinite(value)) return 0;
2607
+ if (value < 0) return 0;
2608
+ if (value > 1) return 1;
2609
+ return value;
2610
+ }
2611
+ function sigmoid(value) {
2612
+ if (value <= -30) return 0;
2613
+ if (value >= 30) return 1;
2614
+ return 1 / (1 + Math.exp(-value));
2615
+ }
2616
+ function vectorLength3(x, y, z) {
2617
+ return Math.sqrt(x * x + y * y + z * z);
2618
+ }
2619
+ function writeFeatureVector(out, scene, probePositions, probeIndex) {
2620
+ const px = probePositions[probeIndex * 3 + 0];
2621
+ const py = probePositions[probeIndex * 3 + 1];
2622
+ const pz = probePositions[probeIndex * 3 + 2];
2623
+ const dx = px - scene.cameraPosition[0];
2624
+ const dy = py - scene.cameraPosition[1];
2625
+ const dz = pz - scene.cameraPosition[2];
2626
+ const distance = vectorLength3(dx, dy, dz);
2627
+ const invDistance = 1 / (1 + distance);
2628
+ const dirScale = distance > 0 ? 1 / distance : 0;
2629
+ const forwardDot = (dx * dirScale * scene.cameraForward[0] + dy * dirScale * scene.cameraForward[1] + dz * dirScale * scene.cameraForward[2] + 1) * 0.5;
2630
+ const sunAlignment = (scene.sunDirection[0] * dx * dirScale + scene.sunDirection[1] * dy * dirScale + scene.sunDirection[2] * dz * dirScale + 1) * 0.5;
2631
+ const sunLuminance = scene.sunColor[0] * 0.2126 + scene.sunColor[1] * 0.7152 + scene.sunColor[2] * 0.0722;
2632
+ out[0] = invDistance;
2633
+ out[1] = clamp01(forwardDot);
2634
+ out[2] = clamp01((py + 4) / 8);
2635
+ out[3] = clamp01((scene.sunDirection[1] + 1) * 0.5);
2636
+ out[4] = clamp01(sunAlignment);
2637
+ out[5] = clamp01(scene.sunColor[0]);
2638
+ out[6] = clamp01(scene.sunColor[1]);
2639
+ out[7] = clamp01(scene.sunColor[2]);
2640
+ out[8] = clamp01(scene.prevAvgLuminance ?? sunLuminance);
2641
+ }
2642
+ function encodeProphecySceneProbeFeatures(scene, probePositions, probeIndex) {
2643
+ const features = new Float32Array(PROPHECY_SPIKE_FEATURE_COUNT);
2644
+ writeFeatureVector(features, scene, probePositions, probeIndex);
2645
+ return features;
2646
+ }
2647
+ function assertTrainingShape(samples, options) {
2648
+ if (!Number.isInteger(options.probeCount) || options.probeCount <= 0) {
2649
+ throw new Error(
2650
+ `trainProphecySpikeRateModel: probeCount must be positive, got ${options.probeCount}`
2651
+ );
2652
+ }
2653
+ if (options.probePositions.length !== options.probeCount * 3) {
2654
+ throw new Error(
2655
+ `trainProphecySpikeRateModel: probePositions length ${options.probePositions.length} does not match probeCount*3 (${options.probeCount * 3})`
2656
+ );
2657
+ }
2658
+ if (samples.length === 0) {
2659
+ throw new Error("trainProphecySpikeRateModel: at least one training sample is required");
2660
+ }
2661
+ for (const sample of samples) {
2662
+ if (sample.targetSpikeRates.length !== options.probeCount) {
2663
+ throw new Error(
2664
+ `trainProphecySpikeRateModel: targetSpikeRates length ${sample.targetSpikeRates.length} does not match probeCount ${options.probeCount}`
2665
+ );
2666
+ }
2667
+ }
2668
+ }
2669
+ function modelLoss(model, samples) {
2670
+ const features = new Float32Array(PROPHECY_SPIKE_FEATURE_COUNT);
2671
+ let loss = 0;
2672
+ let count = 0;
2673
+ for (const sample of samples) {
2674
+ const sampleWeight = sample.weight ?? 1;
2675
+ for (let probe = 0; probe < model.probeCount; probe++) {
2676
+ writeFeatureVector(features, sample.scene, model.probePositions, probe);
2677
+ let z = model.bias[probe];
2678
+ const offset = probe * PROPHECY_SPIKE_FEATURE_COUNT;
2679
+ for (let i = 0; i < PROPHECY_SPIKE_FEATURE_COUNT; i++) {
2680
+ z += model.weights[offset + i] * features[i];
2681
+ }
2682
+ const err = clamp01(sample.targetSpikeRates[probe]) - sigmoid(z);
2683
+ loss += err * err * sampleWeight;
2684
+ count += sampleWeight;
2685
+ }
2686
+ }
2687
+ return count > 0 ? loss / count : 0;
2688
+ }
2689
+ function trainProphecySpikeRateModel(samples, options) {
2690
+ assertTrainingShape(samples, options);
2691
+ const epochs = options.epochs ?? 32;
2692
+ const learningRate = options.learningRate ?? 0.08;
2693
+ const l2 = options.l2 ?? 1e-4;
2694
+ const weights = new Float32Array(options.probeCount * PROPHECY_SPIKE_FEATURE_COUNT);
2695
+ const bias = new Float32Array(options.probeCount);
2696
+ const probePositions = new Float32Array(options.probePositions);
2697
+ const features = new Float32Array(PROPHECY_SPIKE_FEATURE_COUNT);
2698
+ const modelBase = { probeCount: options.probeCount, probePositions, weights, bias };
2699
+ const initialLoss = modelLoss(modelBase, samples);
2700
+ for (let epoch = 0; epoch < epochs; epoch++) {
2701
+ for (const sample of samples) {
2702
+ const sampleWeight = sample.weight ?? 1;
2703
+ for (let probe = 0; probe < options.probeCount; probe++) {
2704
+ writeFeatureVector(features, sample.scene, probePositions, probe);
2705
+ const offset = probe * PROPHECY_SPIKE_FEATURE_COUNT;
2706
+ let z = bias[probe];
2707
+ for (let i = 0; i < PROPHECY_SPIKE_FEATURE_COUNT; i++) {
2708
+ z += weights[offset + i] * features[i];
2709
+ }
2710
+ const prediction = sigmoid(z);
2711
+ const target = clamp01(sample.targetSpikeRates[probe]);
2712
+ const grad = (target - prediction) * prediction * (1 - prediction) * sampleWeight;
2713
+ for (let i = 0; i < PROPHECY_SPIKE_FEATURE_COUNT; i++) {
2714
+ const wi = offset + i;
2715
+ weights[wi] += learningRate * (grad * features[i] - l2 * weights[wi]);
2716
+ }
2717
+ bias[probe] += learningRate * grad;
2718
+ }
2719
+ }
2720
+ }
2721
+ const finalLoss = modelLoss(modelBase, samples);
2722
+ return {
2723
+ kind: "prophetic-gi-spike-rate-model",
2724
+ version: 1,
2725
+ probeCount: options.probeCount,
2726
+ featureCount: PROPHECY_SPIKE_FEATURE_COUNT,
2727
+ probePositions,
2728
+ weights,
2729
+ bias,
2730
+ training: {
2731
+ epochs,
2732
+ learningRate,
2733
+ l2,
2734
+ sampleCount: samples.length,
2735
+ initialLoss,
2736
+ finalLoss
2737
+ }
2738
+ };
2739
+ }
2740
+ function decodeProphecySpikeRates(model, scene, probeCount = model.probeCount) {
2741
+ if (probeCount !== model.probeCount) {
2742
+ throw new Error(
2743
+ `decodeProphecySpikeRates: provider asked for ${probeCount} probes, model has ${model.probeCount}`
2744
+ );
2745
+ }
2746
+ const features = new Float32Array(PROPHECY_SPIKE_FEATURE_COUNT);
2747
+ const out = new Float32Array(model.probeCount);
2748
+ for (let probe = 0; probe < model.probeCount; probe++) {
2749
+ writeFeatureVector(features, scene, model.probePositions, probe);
2750
+ const offset = probe * PROPHECY_SPIKE_FEATURE_COUNT;
2751
+ let z = model.bias[probe];
2752
+ for (let i = 0; i < PROPHECY_SPIKE_FEATURE_COUNT; i++) {
2753
+ z += model.weights[offset + i] * features[i];
2754
+ }
2755
+ out[probe] = clamp01(sigmoid(z));
2756
+ }
2757
+ return out;
2758
+ }
2759
+ function decodeSpikeRateWindow(spikeWindow, probeCount, timeWindow) {
2760
+ if (!Number.isInteger(probeCount) || probeCount <= 0) {
2761
+ throw new Error(`decodeSpikeRateWindow: probeCount must be positive, got ${probeCount}`);
2762
+ }
2763
+ if (!Number.isInteger(timeWindow) || timeWindow <= 0) {
2764
+ throw new Error(`decodeSpikeRateWindow: timeWindow must be positive, got ${timeWindow}`);
2765
+ }
2766
+ if (spikeWindow.length !== probeCount * timeWindow) {
2767
+ throw new Error(
2768
+ `decodeSpikeRateWindow: spike window length ${spikeWindow.length} does not match probeCount*timeWindow (${probeCount * timeWindow})`
2769
+ );
2770
+ }
2771
+ const out = new Float32Array(probeCount);
2772
+ for (let probe = 0; probe < probeCount; probe++) {
2773
+ let spikes = 0;
2774
+ const offset = probe * timeWindow;
2775
+ for (let t = 0; t < timeWindow; t++) {
2776
+ if (spikeWindow[offset + t] > 0.5) spikes++;
2777
+ }
2778
+ out[probe] = spikes / timeWindow;
2779
+ }
2780
+ return out;
2781
+ }
2782
+ function createTrainedSpikeRateProvider(model) {
2783
+ return (scene, probeCount) => decodeProphecySpikeRates(model, scene, probeCount);
2784
+ }
2530
2785
  function resolveTtuEndpoint(endpoint, holomeshHost = "https://mcp.holoscript.net") {
2531
2786
  if (!endpoint || typeof endpoint !== "string") {
2532
2787
  throw new Error("HoloMeshProphecyTransport: endpoint must be a non-empty string");
@@ -2547,9 +2802,7 @@ function resolveTtuEndpoint(endpoint, holomeshHost = "https://mcp.holoscript.net
2547
2802
  const rest = endpoint.slice("ttu://".length);
2548
2803
  const parts = rest.split("/").filter(Boolean);
2549
2804
  if (parts.length < 2) {
2550
- throw new Error(
2551
- `HoloMeshProphecyTransport: unsupported ttu URI shape: ${endpoint}`
2552
- );
2805
+ throw new Error(`HoloMeshProphecyTransport: unsupported ttu URI shape: ${endpoint}`);
2553
2806
  }
2554
2807
  const targetHost = parts[0].includes("://") ? parts[0] : `https://${parts[0]}`;
2555
2808
  const sessionId = parts.slice(1).join("/");
@@ -2591,10 +2844,7 @@ var HoloMeshProphecyTransport = class {
2591
2844
  });
2592
2845
  }
2593
2846
  async initialize(config) {
2594
- this.resolved = resolveTtuEndpoint(
2595
- this.options.endpoint,
2596
- this.options.holomeshHost
2597
- );
2847
+ this.resolved = resolveTtuEndpoint(this.options.endpoint, this.options.holomeshHost);
2598
2848
  if (this.options.fallback && !this.initializedFallback) {
2599
2849
  await this.options.fallback.initialize(config);
2600
2850
  this.initializedFallback = true;
@@ -2713,22 +2963,36 @@ function extractBotanicalLotusMaterial(samples, options = {}) {
2713
2963
  (pixel) => pixel.luma,
2714
2964
  meanPetalLuma
2715
2965
  );
2716
- const backlightLift = clamp01(petalEdgeLuma - petalCenterLuma + 0.5);
2966
+ const backlightLift = clamp012(petalEdgeLuma - petalCenterLuma + 0.5);
2717
2967
  const veinNormal = clamp2(round4(0.018 + petalGradient * 0.22), 0.018, 0.09);
2718
2968
  const colors = deriveColors(petal, leaf, stamen, water);
2719
2969
  const material = {
2720
- subsurface_scattering: clamp2(round4(0.48 + meanPetalSat * 0.22 + backlightLift * 0.18), 0.45, 0.82),
2970
+ subsurface_scattering: clamp2(
2971
+ round4(0.48 + meanPetalSat * 0.22 + backlightLift * 0.18),
2972
+ 0.45,
2973
+ 0.82
2974
+ ),
2721
2975
  subsurface_radius_rgb: deriveSubsurfaceRadius(colors.petal_mid),
2722
- petal_translucency_base: clamp2(round4(0.42 + meanPetalLuma * 0.24 + backlightLift * 0.18), 0.38, 0.78),
2976
+ petal_translucency_base: clamp2(
2977
+ round4(0.42 + meanPetalLuma * 0.24 + backlightLift * 0.18),
2978
+ 0.38,
2979
+ 0.78
2980
+ ),
2723
2981
  petal_translucency_edge: clamp2(round4(0.24 + petalEdgeLuma * 0.18), 0.24, 0.48),
2724
2982
  roughness: clamp2(round4(0.64 + veinNormal * 1.4), 0.62, 0.82),
2725
2983
  ior: clamp2(round4(1.33 + meanPetalSat * 0.055), 1.33, 1.39),
2726
2984
  vein_normal_intensity: veinNormal,
2727
- edge_curl_intensity: clamp2(round4(0.34 + mean(petal, (pixel) => pixel.edge, 0.5) * 0.38), 0.34, 0.68),
2985
+ edge_curl_intensity: clamp2(
2986
+ round4(0.34 + mean(petal, (pixel) => pixel.edge, 0.5) * 0.38),
2987
+ 0.34,
2988
+ 0.68
2989
+ ),
2728
2990
  gravity_sag_outer: clamp2(round4(0.18 + meanPetalLuma * 0.18), 0.18, 0.36)
2729
2991
  };
2730
2992
  const provenanceHashCount = samples.filter((sample) => sample.provenance?.contentHash).length;
2731
- const provenanceSignatureCount = samples.filter((sample) => sample.provenance?.walletSignature).length;
2993
+ const provenanceSignatureCount = samples.filter(
2994
+ (sample) => sample.provenance?.walletSignature
2995
+ ).length;
2732
2996
  const contentHashStatus = completenessStatus(provenanceHashCount, samples.length);
2733
2997
  const walletSignatureStatus = completenessStatus(provenanceSignatureCount, samples.length);
2734
2998
  const signed = contentHashStatus === "complete" && walletSignatureStatus === "complete";
@@ -2840,7 +3104,9 @@ function assertSampleShape(sample) {
2840
3104
  }
2841
3105
  const expected = sample.width * sample.height * 4;
2842
3106
  if (sample.data.length < expected) {
2843
- throw new Error(`Image sample ${sample.id} has ${sample.data.length} RGBA values; expected ${expected}`);
3107
+ throw new Error(
3108
+ `Image sample ${sample.id} has ${sample.data.length} RGBA values; expected ${expected}`
3109
+ );
2844
3110
  }
2845
3111
  }
2846
3112
  function deriveColors(petal, leaf, stamen, water) {
@@ -2851,7 +3117,11 @@ function deriveColors(petal, leaf, stamen, water) {
2851
3117
  petal_rim: pixelToHex(percentilePixel(petal, "s", 0.88, DEFAULT_COLORS2.petal_rim)),
2852
3118
  petal_shadow: pixelToHex(percentilePixel(petal, "luma", 0.16, DEFAULT_COLORS2.petal_shadow)),
2853
3119
  seed_pod: pixelToHex(percentilePixel(stamen, "luma", 0.82, DEFAULT_COLORS2.seed_pod)),
2854
- seed_pod_rim: mixHex(pixelToHex(percentilePixel(stamen, "luma", 0.62, DEFAULT_COLORS2.seed_pod_rim)), DEFAULT_COLORS2.seed_pod_rim, 0.35),
3120
+ seed_pod_rim: mixHex(
3121
+ pixelToHex(percentilePixel(stamen, "luma", 0.62, DEFAULT_COLORS2.seed_pod_rim)),
3122
+ DEFAULT_COLORS2.seed_pod_rim,
3123
+ 0.35
3124
+ ),
2855
3125
  stamen: pixelToHex(percentilePixel(stamen, "s", 0.68, DEFAULT_COLORS2.stamen)),
2856
3126
  stamen_tip: pixelToHex(percentilePixel(stamen, "luma", 0.95, DEFAULT_COLORS2.stamen_tip)),
2857
3127
  leaf: pixelToHex(percentilePixel(leaf, "luma", 0.58, DEFAULT_COLORS2.leaf)),
@@ -2890,10 +3160,10 @@ function estimateStamenCount(stamenPixels, petalPixels) {
2890
3160
  return Math.round(clamp2(42 + ratio * 260, 42, 96));
2891
3161
  }
2892
3162
  function estimateConfidence(sampleCount, petalPixels, leafPixels, stamenPixels) {
2893
- const sampleSignal = clamp01(sampleCount / 3);
2894
- const petalSignal = clamp01(petalPixels / 300);
2895
- const contextSignal = clamp01((leafPixels + stamenPixels) / 160);
2896
- return round4(clamp01(0.2 + sampleSignal * 0.25 + petalSignal * 0.35 + contextSignal * 0.2));
3163
+ const sampleSignal = clamp012(sampleCount / 3);
3164
+ const petalSignal = clamp012(petalPixels / 300);
3165
+ const contextSignal = clamp012((leafPixels + stamenPixels) / 160);
3166
+ return round4(clamp012(0.2 + sampleSignal * 0.25 + petalSignal * 0.35 + contextSignal * 0.2));
2897
3167
  }
2898
3168
  function deriveSubsurfaceRadius(hex) {
2899
3169
  const pixel = hexToPixel(hex);
@@ -2926,7 +3196,7 @@ function lumaAt(data, width, x, y) {
2926
3196
  function normalizedEdgeDistance(width, height, x, y) {
2927
3197
  const dx = Math.abs(x / Math.max(1, width - 1) - 0.5) * 2;
2928
3198
  const dy = Math.abs(y / Math.max(1, height - 1) - 0.5) * 2;
2929
- return clamp01(Math.max(dx, dy));
3199
+ return clamp012(Math.max(dx, dy));
2930
3200
  }
2931
3201
  function rgbToHsv(r, g, b) {
2932
3202
  const max = Math.max(r, g, b);
@@ -2972,7 +3242,7 @@ function mixHex(a, b, amountB) {
2972
3242
  b: left.b * (1 - amountB) + right.b * amountB});
2973
3243
  }
2974
3244
  function byteToHex(value) {
2975
- return Math.round(clamp01(value) * 255).toString(16).padStart(2, "0");
3245
+ return Math.round(clamp012(value) * 255).toString(16).padStart(2, "0");
2976
3246
  }
2977
3247
  function mean(items, selector, fallback) {
2978
3248
  if (items.length === 0) {
@@ -2980,7 +3250,7 @@ function mean(items, selector, fallback) {
2980
3250
  }
2981
3251
  return items.reduce((sum, item) => sum + selector(item), 0) / items.length;
2982
3252
  }
2983
- function clamp01(value) {
3253
+ function clamp012(value) {
2984
3254
  return clamp2(value, 0, 1);
2985
3255
  }
2986
3256
  function clamp2(value, min, max) {
@@ -3085,6 +3355,7 @@ exports.HoloMeshProphecyTransport = HoloMeshProphecyTransport;
3085
3355
  exports.LIFSimulator = LIFSimulator;
3086
3356
  exports.LocalProphecyTransport = LocalProphecyTransport;
3087
3357
  exports.PAPER_2_CANONICAL_CONFIG = PAPER_2_CANONICAL_CONFIG;
3358
+ exports.PROPHECY_SPIKE_FEATURE_COUNT = PROPHECY_SPIKE_FEATURE_COUNT;
3088
3359
  exports.PipelineFactory = PipelineFactory;
3089
3360
  exports.ProphecyNotImplementedError = ProphecyNotImplementedError;
3090
3361
  exports.ProphecyOrchestrator = ProphecyOrchestrator;
@@ -3096,8 +3367,12 @@ exports.TropicalActivationTrait = TropicalActivationTrait;
3096
3367
  exports.TropicalShortestPaths = TropicalShortestPaths;
3097
3368
  exports.assertGraphShape = assertGraphShape;
3098
3369
  exports.computeDispatchSize = computeDispatchSize;
3370
+ exports.createTrainedSpikeRateProvider = createTrainedSpikeRateProvider;
3099
3371
  exports.csrToDense = csrToDense;
3372
+ exports.decodeProphecySpikeRates = decodeProphecySpikeRates;
3373
+ exports.decodeSpikeRateWindow = decodeSpikeRateWindow;
3100
3374
  exports.denseToCSR = denseToCSR;
3375
+ exports.encodeProphecySceneProbeFeatures = encodeProphecySceneProbeFeatures;
3101
3376
  exports.ensureNodeWebGpu = ensureNodeWebGpu;
3102
3377
  exports.ensureNodeWebGpuSync = ensureNodeWebGpuSync;
3103
3378
  exports.extractBotanicalLotusMaterial = extractBotanicalLotusMaterial;
@@ -3109,5 +3384,6 @@ exports.normalizeAdjacency = normalizeAdjacency;
3109
3384
  exports.normalizeBotanicalMaterialExtraction = normalizeBotanicalMaterialExtraction;
3110
3385
  exports.runLIFDeterminismProbe = runLIFDeterminismProbe;
3111
3386
  exports.toBotanicalLotusTrait = toBotanicalLotusTrait;
3112
- //# sourceMappingURL=dist-ACXG6IH5.cjs.map
3113
- //# sourceMappingURL=dist-ACXG6IH5.cjs.map
3387
+ exports.trainProphecySpikeRateModel = trainProphecySpikeRateModel;
3388
+ //# sourceMappingURL=dist-GRMOP2UL.cjs.map
3389
+ //# sourceMappingURL=dist-GRMOP2UL.cjs.map