@holoscript/core 7.0.0 → 8.0.0

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 (345) hide show
  1. package/README.md +2 -2
  2. package/bin/holoscript.cjs +3 -0
  3. package/dist/GLTFPipeline-276GE64O.js +16 -0
  4. package/dist/GLTFPipeline-M7WSSJED.cjs +37 -0
  5. package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
  6. package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
  7. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  8. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  9. package/dist/HoloScriptRuntime-3URVTKPJ.js +10 -0
  10. package/dist/HoloScriptRuntime-SXEAEU2N.cjs +19 -0
  11. package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
  12. package/dist/USDZExporter-D2HQLQYK.js +1035 -0
  13. package/dist/agents/index.cjs +19 -0
  14. package/dist/agents/index.d.ts +100 -0
  15. package/dist/agents/index.js +17 -0
  16. package/dist/chunk-23J755AR.js +1046 -0
  17. package/dist/chunk-253GBQZY.cjs +627 -0
  18. package/dist/chunk-25IQCHTO.cjs +781 -0
  19. package/dist/chunk-2BSMSUCE.js +1941 -0
  20. package/dist/chunk-2M2DPHKB.js +762 -0
  21. package/dist/chunk-2YSNA2F2.cjs +1274 -0
  22. package/dist/chunk-3AO425MZ.cjs +886 -0
  23. package/dist/chunk-3FOKASKO.cjs +348 -0
  24. package/dist/chunk-3HYYMEXI.cjs +56578 -0
  25. package/dist/chunk-3NFFOWGG.js +4287 -0
  26. package/dist/chunk-3WZEJHUQ.cjs +116 -0
  27. package/dist/chunk-4C57PR42.js +468 -0
  28. package/dist/chunk-4N4SXXWF.js +769 -0
  29. package/dist/chunk-4PDEPEQW.cjs +41 -0
  30. package/dist/chunk-4R6SBXDB.js +45 -0
  31. package/dist/chunk-4V2E7U7Q.cjs +2015 -0
  32. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  33. package/dist/chunk-5GLCTO44.js +161 -0
  34. package/dist/chunk-5JEU52DW.js +382 -0
  35. package/dist/chunk-5S7RKFGR.cjs +446 -0
  36. package/dist/chunk-5WUNN6ZN.cjs +428 -0
  37. package/dist/chunk-62FBK3B7.js +70 -0
  38. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  39. package/dist/chunk-6DPSFNJB.cjs +847 -0
  40. package/dist/chunk-6EX3I5P4.cjs +130 -0
  41. package/dist/chunk-73FELZVJ.cjs +611 -0
  42. package/dist/chunk-7CUEMLDZ.cjs +6445 -0
  43. package/dist/chunk-7HIASF7S.cjs +814 -0
  44. package/dist/chunk-A6KINLZJ.js +236 -0
  45. package/dist/chunk-AIA52I7T.cjs +543 -0
  46. package/dist/chunk-ANXZFVY2.js +113 -0
  47. package/dist/chunk-AYBXB26F.js +2176 -0
  48. package/dist/chunk-B4TFTDG4.js +449 -0
  49. package/dist/chunk-BE4UJCQT.js +623 -0
  50. package/dist/chunk-BRQJKJGT.cjs +20 -0
  51. package/dist/chunk-C2A5DUMF.cjs +689 -0
  52. package/dist/chunk-C37BHB7N.cjs +636 -0
  53. package/dist/chunk-CBJY23VL.js +126 -0
  54. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  55. package/dist/chunk-CXFDRBQU.cjs +672 -0
  56. package/dist/chunk-D54CNIAJ.cjs +413 -0
  57. package/dist/chunk-DAJXW4KX.js +725 -0
  58. package/dist/chunk-DTGBOSEM.cjs +319 -0
  59. package/dist/chunk-E7JP3BS3.cjs +61 -0
  60. package/dist/chunk-EKBKLK7P.js +1169 -0
  61. package/dist/chunk-EKYL4PE3.cjs +404 -0
  62. package/dist/chunk-EUDQTK7N.cjs +4310 -0
  63. package/dist/chunk-EXKSFGSX.cjs +274 -0
  64. package/dist/chunk-EXUP2BUM.cjs +1173 -0
  65. package/dist/chunk-F43YAA34.js +623 -0
  66. package/dist/chunk-FDSGHPAK.js +130 -0
  67. package/dist/chunk-FEWUHQNM.cjs +144 -0
  68. package/dist/chunk-FGGJQRLZ.js +270 -0
  69. package/dist/chunk-FHP6LXJS.js +415 -0
  70. package/dist/chunk-FJPADH77.cjs +666 -0
  71. package/dist/chunk-FYSPZT4V.cjs +169 -0
  72. package/dist/chunk-GIOYPNTH.js +5575 -0
  73. package/dist/chunk-GJNCFRJU.cjs +125 -0
  74. package/dist/chunk-GMP623FG.cjs +1508 -0
  75. package/dist/chunk-GQHQOPXZ.cjs +5580 -0
  76. package/dist/chunk-GQT4TYKY.cjs +4381 -0
  77. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  78. package/dist/chunk-GYZE55MO.js +2007 -0
  79. package/dist/chunk-GZG4KA4E.js +529 -0
  80. package/dist/chunk-H652NHX5.js +600 -0
  81. package/dist/chunk-HCCQLAA4.cjs +74 -0
  82. package/dist/chunk-HINXWAOD.cjs +1049 -0
  83. package/dist/chunk-HYNTS5CP.js +422 -0
  84. package/dist/chunk-HZSPDCXV.cjs +457 -0
  85. package/dist/chunk-HZTDET3N.js +1399 -0
  86. package/dist/chunk-I6XZ5DZF.cjs +488 -0
  87. package/dist/chunk-ILRBGFVD.cjs +72 -0
  88. package/dist/chunk-IPWSXCCN.js +1183 -0
  89. package/dist/chunk-IUTY5WQ2.cjs +424 -0
  90. package/dist/chunk-IVSZDECV.js +882 -0
  91. package/dist/chunk-IVY74O6C.js +247 -0
  92. package/dist/chunk-IZM5VQZD.js +714 -0
  93. package/dist/chunk-J32ZJZJH.js +554 -0
  94. package/dist/chunk-J6M4FPK5.js +421 -0
  95. package/dist/chunk-JC5YBPSF.cjs +984 -0
  96. package/dist/chunk-JCLBKPMX.js +3813 -0
  97. package/dist/chunk-JD7CIZ33.js +1949 -0
  98. package/dist/chunk-JIYN45TV.cjs +2525 -0
  99. package/dist/chunk-JJBE3TIH.cjs +1189 -0
  100. package/dist/chunk-JX7YL6ZE.js +2252 -0
  101. package/dist/chunk-K4VVR7CN.cjs +2433 -0
  102. package/dist/chunk-KEFNV2WM.cjs +2257 -0
  103. package/dist/chunk-KH4CNH66.cjs +424 -0
  104. package/dist/chunk-KJLB4OPV.js +5731 -0
  105. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  106. package/dist/chunk-KKP7JKN4.cjs +6002 -0
  107. package/dist/chunk-KPJL34Y7.cjs +186 -0
  108. package/dist/chunk-KQCN6AKJ.cjs +3042 -0
  109. package/dist/chunk-KVRSTFNH.cjs +72 -0
  110. package/dist/chunk-LICPB5HZ.cjs +1409 -0
  111. package/dist/chunk-LM2VU56C.cjs +37 -0
  112. package/dist/chunk-M56JSP4A.js +400 -0
  113. package/dist/chunk-MBOOR7X4.js +18 -0
  114. package/dist/chunk-MGE5Z4GS.js +608 -0
  115. package/dist/chunk-MXFUTKCO.js +56 -0
  116. package/dist/chunk-MYY4PMWX.cjs +264 -0
  117. package/dist/chunk-N75IH2HY.js +258 -0
  118. package/dist/chunk-NBMHU6SW.js +669 -0
  119. package/dist/chunk-NG77ATEW.cjs +778 -0
  120. package/dist/chunk-NGKREZ36.js +6384 -0
  121. package/dist/chunk-NHWSN2SD.cjs +718 -0
  122. package/dist/chunk-NV4VMVXU.js +421 -0
  123. package/dist/chunk-NW5G5FBQ.js +215 -0
  124. package/dist/chunk-NXZFOPVD.cjs +5737 -0
  125. package/dist/chunk-OBIYPYYS.cjs +1993 -0
  126. package/dist/chunk-OIQYIIO3.cjs +473 -0
  127. package/dist/chunk-OL46QLBJ.js +61 -0
  128. package/dist/chunk-OMXII44L.js +5386 -0
  129. package/dist/chunk-OR4Q2BGL.cjs +759 -0
  130. package/dist/chunk-OSYNRVOV.cjs +243 -0
  131. package/dist/chunk-PGANYCAG.cjs +220 -0
  132. package/dist/chunk-PHENW4MQ.js +65 -0
  133. package/dist/chunk-PHVRG4I2.js +844 -0
  134. package/dist/chunk-Q56TT7IL.js +483 -0
  135. package/dist/chunk-QPOQ7VPI.js +1491 -0
  136. package/dist/chunk-QPSKHBJP.js +5963 -0
  137. package/dist/chunk-QXH7QDSZ.js +1989 -0
  138. package/dist/chunk-R75BSDH7.cjs +50 -0
  139. package/dist/chunk-RARB3MBR.js +207 -0
  140. package/dist/chunk-RVBHAXFG.js +56160 -0
  141. package/dist/chunk-S3MDHNKB.cjs +490 -0
  142. package/dist/chunk-S4W6Z2MN.js +2426 -0
  143. package/dist/chunk-S6YWHCKV.cjs +410 -0
  144. package/dist/chunk-SIEXCILW.js +229 -0
  145. package/dist/chunk-SJBGLS25.cjs +2196 -0
  146. package/dist/chunk-SLU6UPJI.cjs +410 -0
  147. package/dist/chunk-SMIWS6DE.cjs +212 -0
  148. package/dist/chunk-T2QCTZMO.js +811 -0
  149. package/dist/chunk-T5J7ZKP3.cjs +4885 -0
  150. package/dist/chunk-TDCNJHWO.js +341 -0
  151. package/dist/chunk-TG7O4WBC.js +406 -0
  152. package/dist/chunk-THCK6ECW.js +2085 -0
  153. package/dist/chunk-TJHVSBP2.js +439 -0
  154. package/dist/chunk-TVHSPJ4N.cjs +606 -0
  155. package/dist/chunk-U44IKGG7.cjs +5390 -0
  156. package/dist/chunk-UJXISJBN.js +487 -0
  157. package/dist/chunk-UM6C3CGK.js +4375 -0
  158. package/dist/chunk-UMABK6SI.js +686 -0
  159. package/dist/chunk-UOIGFQXC.cjs +9750 -0
  160. package/dist/chunk-URG2SJLK.js +2521 -0
  161. package/dist/chunk-V6MKC2FZ.js +979 -0
  162. package/dist/chunk-VECQYRXL.js +474 -0
  163. package/dist/chunk-VJ3L7CHT.cjs +169 -0
  164. package/dist/chunk-VMLKSV26.js +1216 -0
  165. package/dist/chunk-VVKVQZI6.js +55 -0
  166. package/dist/chunk-W6RW64BB.cjs +1219 -0
  167. package/dist/chunk-W7VDOASB.cjs +639 -0
  168. package/dist/chunk-WDT3JTGM.cjs +483 -0
  169. package/dist/chunk-WJIHFLMJ.js +404 -0
  170. package/dist/chunk-WKX5AMOY.js +309 -0
  171. package/dist/chunk-WNNE3PO3.js +34 -0
  172. package/dist/chunk-WRKUDAZJ.js +3038 -0
  173. package/dist/chunk-WRLUBRKS.cjs +1943 -0
  174. package/dist/chunk-WRNEH5MO.js +3169 -0
  175. package/dist/chunk-WRWEX5ZF.js +658 -0
  176. package/dist/chunk-X3GJPRVK.cjs +3246 -0
  177. package/dist/chunk-XHIV6326.cjs +793 -0
  178. package/dist/chunk-XIVIE43A.cjs +729 -0
  179. package/dist/chunk-XJAN7CZG.cjs +432 -0
  180. package/dist/chunk-XKTPFXGA.js +164 -0
  181. package/dist/chunk-XL6INWKT.js +121 -0
  182. package/dist/chunk-XSFNHP2E.js +632 -0
  183. package/dist/chunk-XT6JY5W5.js +9684 -0
  184. package/dist/chunk-XUILI4KB.cjs +430 -0
  185. package/dist/chunk-XUUVDHIF.cjs +3962 -0
  186. package/dist/chunk-YF2I3MV3.js +46 -0
  187. package/dist/chunk-YIMN575O.js +4847 -0
  188. package/dist/chunk-YIVFJNYV.js +176 -0
  189. package/dist/chunk-YKGPCZEE.cjs +237 -0
  190. package/dist/chunk-YN6V7R3L.cjs +327 -0
  191. package/dist/chunk-YQELFNJV.js +39 -0
  192. package/dist/chunk-YYXH45E2.js +426 -0
  193. package/dist/chunk-ZBQXLH2L.js +756 -0
  194. package/dist/chunk-ZDSYWBIE.cjs +69 -0
  195. package/dist/chunk-ZU7NIRT6.js +325 -0
  196. package/dist/chunk-ZZ7RO2UQ.js +1243 -0
  197. package/dist/chunk-ZZEI7MV4.js +778 -0
  198. package/dist/cli/holoscript-runner.cjs +2255 -0
  199. package/dist/cli/holoscript-runner.js +2230 -0
  200. package/dist/codebase/index.cjs +336 -0
  201. package/dist/codebase/index.js +331 -0
  202. package/dist/compiler/agent-inference.cjs +31 -0
  203. package/dist/compiler/agent-inference.js +8 -0
  204. package/dist/compiler/android-xr.cjs +24 -0
  205. package/dist/compiler/android-xr.js +14 -0
  206. package/dist/compiler/android.cjs +24 -0
  207. package/dist/compiler/android.js +14 -0
  208. package/dist/compiler/ar.cjs +23 -0
  209. package/dist/compiler/ar.js +11 -0
  210. package/dist/compiler/babylon.cjs +21 -0
  211. package/dist/compiler/babylon.js +15 -0
  212. package/dist/compiler/business-quest.cjs +43 -0
  213. package/dist/compiler/business-quest.js +4 -0
  214. package/dist/compiler/coco.cjs +27 -0
  215. package/dist/compiler/coco.js +4 -0
  216. package/dist/compiler/context.cjs +25 -0
  217. package/dist/compiler/context.d.ts +28 -0
  218. package/dist/compiler/context.js +8 -0
  219. package/dist/compiler/domain-block-utils.cjs +605 -0
  220. package/dist/compiler/domain-block-utils.js +11 -0
  221. package/dist/compiler/dtdl.cjs +27 -0
  222. package/dist/compiler/dtdl.js +11 -0
  223. package/dist/compiler/gltf-pipeline.cjs +39 -0
  224. package/dist/compiler/gltf-pipeline.js +4 -0
  225. package/dist/compiler/godot.cjs +18 -0
  226. package/dist/compiler/godot.js +12 -0
  227. package/dist/compiler/incremental.cjs +34 -0
  228. package/dist/compiler/incremental.js +9 -0
  229. package/dist/compiler/index.cjs +5860 -0
  230. package/dist/compiler/index.d.ts +322 -21
  231. package/dist/compiler/index.js +5525 -0
  232. package/dist/compiler/ios.cjs +23 -0
  233. package/dist/compiler/ios.js +13 -0
  234. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  235. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  236. package/dist/compiler/llm-provider-capabilities.js +8 -0
  237. package/dist/compiler/multi-layer.cjs +24 -0
  238. package/dist/compiler/multi-layer.js +15 -0
  239. package/dist/compiler/nodetoy.cjs +23 -0
  240. package/dist/compiler/nodetoy.js +4 -0
  241. package/dist/compiler/openxr.cjs +19 -0
  242. package/dist/compiler/openxr.js +13 -0
  243. package/dist/compiler/playcanvas.cjs +19 -0
  244. package/dist/compiler/playcanvas.js +13 -0
  245. package/dist/compiler/r3f.cjs +38 -0
  246. package/dist/compiler/r3f.d.ts +22 -0
  247. package/dist/compiler/r3f.js +16 -0
  248. package/dist/compiler/remotion.cjs +23 -0
  249. package/dist/compiler/remotion.js +4 -0
  250. package/dist/compiler/reproducibility.cjs +39 -0
  251. package/dist/compiler/reproducibility.js +4 -0
  252. package/dist/compiler/sdf.cjs +24 -0
  253. package/dist/compiler/sdf.js +12 -0
  254. package/dist/compiler/semantic-scene.cjs +31 -0
  255. package/dist/compiler/semantic-scene.js +4 -0
  256. package/dist/compiler/state.cjs +21 -0
  257. package/dist/compiler/state.js +11 -0
  258. package/dist/compiler/trait-composition.cjs +30 -0
  259. package/dist/compiler/trait-composition.js +9 -0
  260. package/dist/compiler/unity.cjs +19 -0
  261. package/dist/compiler/unity.js +13 -0
  262. package/dist/compiler/unreal.cjs +23 -0
  263. package/dist/compiler/unreal.js +13 -0
  264. package/dist/compiler/urdf.cjs +52 -0
  265. package/dist/compiler/urdf.js +12 -0
  266. package/dist/compiler/usd-physics.cjs +26 -0
  267. package/dist/compiler/usd-physics.js +9 -0
  268. package/dist/compiler/visionos.cjs +19 -0
  269. package/dist/compiler/visionos.js +13 -0
  270. package/dist/compiler/vrchat.cjs +22 -0
  271. package/dist/compiler/vrchat.js +12 -0
  272. package/dist/compiler/vrr.cjs +24 -0
  273. package/dist/compiler/vrr.js +12 -0
  274. package/dist/compiler/wasm.cjs +36 -0
  275. package/dist/compiler/wasm.js +12 -0
  276. package/dist/compiler/webgpu.cjs +18 -0
  277. package/dist/compiler/webgpu.js +12 -0
  278. package/dist/coordinators/index.cjs +1266 -0
  279. package/dist/coordinators/index.d.ts +72 -1
  280. package/dist/coordinators/index.js +1259 -0
  281. package/dist/debugger.cjs +24 -0
  282. package/dist/debugger.js +11 -0
  283. package/dist/entries/interop.cjs +64 -0
  284. package/dist/entries/interop.js +7 -0
  285. package/dist/entries/scripting.cjs +55 -0
  286. package/dist/entries/scripting.js +10 -0
  287. package/dist/hololand/index.cjs +146 -0
  288. package/dist/hololand/index.d.ts +70 -0
  289. package/dist/hololand/index.js +5 -0
  290. package/dist/index.cjs +43233 -0
  291. package/dist/index.d.ts +976 -21
  292. package/dist/index.js +39995 -0
  293. package/dist/math/tropical-spmv.cjs +45 -0
  294. package/dist/math/tropical-spmv.js +4 -0
  295. package/dist/math/vec3.cjs +57 -0
  296. package/dist/math/vec3.js +4 -0
  297. package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
  298. package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
  299. package/dist/paper-0c-spike/index.cjs +150 -0
  300. package/dist/paper-0c-spike/index.js +141 -0
  301. package/dist/parser.cjs +61 -0
  302. package/dist/parser.d.ts +11 -0
  303. package/dist/parser.js +12 -0
  304. package/dist/playwright-3AT3AKTV.cjs +98673 -0
  305. package/dist/playwright-VZPDVUEQ.js +98660 -0
  306. package/dist/reconstruction/index.cjs +153 -0
  307. package/dist/reconstruction/index.d.ts +29 -2
  308. package/dist/reconstruction/index.js +8 -0
  309. package/dist/runtime.cjs +316 -0
  310. package/dist/runtime.d.ts +61 -0
  311. package/dist/runtime.js +31 -0
  312. package/dist/self-improvement/index.cjs +563 -0
  313. package/dist/self-improvement/index.js +545 -0
  314. package/dist/storage/index.cjs +38 -0
  315. package/dist/storage/index.js +5 -0
  316. package/dist/testing.cjs +25 -0
  317. package/dist/testing.d.ts +70 -0
  318. package/dist/testing.js +4 -0
  319. package/dist/traitDocs/traitDocs.cjs +33 -0
  320. package/dist/traitDocs/traitDocs.js +7 -0
  321. package/dist/traits/botanical-lotus.cjs +41 -0
  322. package/dist/traits/botanical-lotus.d.ts +172 -0
  323. package/dist/traits/botanical-lotus.js +4 -0
  324. package/dist/traits/engines/index.cjs +520 -0
  325. package/dist/traits/engines/index.js +380 -0
  326. package/dist/traits/index.cjs +24409 -0
  327. package/dist/traits/index.d.ts +171 -35
  328. package/dist/traits/index.js +21634 -0
  329. package/dist/traits/simulation-solver-factory.cjs +13 -0
  330. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  331. package/dist/traits/simulation-solver-factory.js +4 -0
  332. package/dist/traits/webcam-gaze.cjs +35 -0
  333. package/dist/traits/webcam-gaze.d.ts +17 -0
  334. package/dist/traits/webcam-gaze.js +4 -0
  335. package/dist/type-checker.cjs +19 -0
  336. package/dist/type-checker.js +6 -0
  337. package/dist/world/index.cjs +947 -0
  338. package/dist/world/index.d.ts +147 -0
  339. package/dist/world/index.js +939 -0
  340. package/dist/world-model/index.cjs +1446 -0
  341. package/dist/world-model/index.d.ts +119 -0
  342. package/dist/world-model/index.js +1414 -0
  343. package/dist/wot/index.cjs +29 -0
  344. package/dist/wot/index.js +4 -0
  345. package/package.json +93 -49
@@ -0,0 +1,150 @@
1
+ 'use strict';
2
+
3
+ var chunkLM2VU56C_cjs = require('../chunk-LM2VU56C.cjs');
4
+ require('../chunk-HCCQLAA4.cjs');
5
+
6
+ // src/paper-0c-spike/subgrid-attestation.ts
7
+ var DEFAULT_HASH_MODE = "fnv1a";
8
+ var MissingSubgridParamsError = class extends Error {
9
+ constructor() {
10
+ super(
11
+ "Subgrid parameter vector is required \xE2\u20AC\u201D empty or missing vectors are refused to prevent silent empty-hash attestation. Pass explicit keys with their run-time values."
12
+ );
13
+ this.name = "MissingSubgridParamsError";
14
+ }
15
+ };
16
+ var InvalidSubgridParamValueError = class extends Error {
17
+ constructor(key, value) {
18
+ super(
19
+ `Subgrid parameter '${key}' has invalid value ${String(value)} (type ${typeof value}). Allowed value types: finite number, boolean, string.`
20
+ );
21
+ this.name = "InvalidSubgridParamValueError";
22
+ }
23
+ };
24
+ function canonicalizeSubgridParams(params) {
25
+ const keys = Object.keys(params);
26
+ if (keys.length === 0) {
27
+ throw new MissingSubgridParamsError();
28
+ }
29
+ const sorted = keys.slice().sort();
30
+ const parts = [];
31
+ for (const key of sorted) {
32
+ const v = params[key];
33
+ if (typeof v === "number") {
34
+ if (!Number.isFinite(v)) {
35
+ throw new InvalidSubgridParamValueError(key, v);
36
+ }
37
+ parts.push(`${key}=${v.toString()}`);
38
+ } else if (typeof v === "boolean") {
39
+ parts.push(`${key}=${v ? "true" : "false"}`);
40
+ } else if (typeof v === "string") {
41
+ parts.push(`${key}=\`${v}\``);
42
+ } else {
43
+ throw new InvalidSubgridParamValueError(key, v);
44
+ }
45
+ }
46
+ return parts.join("|");
47
+ }
48
+ async function sha256Hex(input) {
49
+ const subtle = typeof globalThis.crypto !== "undefined" && "subtle" in globalThis.crypto ? globalThis.crypto.subtle : void 0;
50
+ if (!subtle) {
51
+ throw new Error(
52
+ "SubtleCrypto unavailable: SHA-256 mode requires Web Crypto (Node 20+, browsers, Deno)."
53
+ );
54
+ }
55
+ const bytes = new TextEncoder().encode(input);
56
+ const digest = await subtle.digest("SHA-256", bytes);
57
+ const view = new Uint8Array(digest);
58
+ const hex = [];
59
+ for (const b of view) hex.push(b.toString(16).padStart(2, "0"));
60
+ return hex.join("");
61
+ }
62
+ function hashSubgridParams(params, mode = DEFAULT_HASH_MODE) {
63
+ const canonical = canonicalizeSubgridParams(params);
64
+ if (mode === "fnv1a") return chunkLM2VU56C_cjs.fnv1a32Hex(canonical);
65
+ if (mode === "sha256") return sha256Hex(canonical);
66
+ throw new Error(`Unknown hash mode: ${String(mode)}`);
67
+ }
68
+ function attestSubgridParams(params, mode = DEFAULT_HASH_MODE) {
69
+ const canonicalForm = canonicalizeSubgridParams(params);
70
+ if (mode === "fnv1a") {
71
+ return Object.freeze({
72
+ hash: chunkLM2VU56C_cjs.fnv1a32Hex(canonicalForm),
73
+ hashMode: "fnv1a",
74
+ canonicalForm
75
+ });
76
+ }
77
+ if (mode === "sha256") {
78
+ return sha256Hex(canonicalForm).then(
79
+ (hash) => Object.freeze({ hash, hashMode: "sha256", canonicalForm })
80
+ );
81
+ }
82
+ throw new Error(`Unknown hash mode: ${String(mode)}`);
83
+ }
84
+ var FNV1A_HEX_SHAPE = /^[0-9a-f]{16}$/;
85
+ var SHA256_HEX_SHAPE = /^[0-9a-f]{64}$/;
86
+ function describeExpectedShape(mode) {
87
+ return mode === "fnv1a" ? "fnv1a hash (16 hex chars)" : "sha256 hash (64 hex chars)";
88
+ }
89
+ function verifySubgridAttestation(attestation, params) {
90
+ const canonical = canonicalizeSubgridParams(params);
91
+ if (canonical !== attestation.canonicalForm) {
92
+ return {
93
+ valid: false,
94
+ reason: "canonical-form-mismatch",
95
+ expected: attestation.canonicalForm,
96
+ actual: canonical
97
+ };
98
+ }
99
+ const expectedShape = attestation.hashMode === "fnv1a" ? FNV1A_HEX_SHAPE : SHA256_HEX_SHAPE;
100
+ if (!expectedShape.test(attestation.hash)) {
101
+ return {
102
+ valid: false,
103
+ reason: "hashMode-mismatch",
104
+ expected: describeExpectedShape(attestation.hashMode),
105
+ actual: `${attestation.hash.length} hex chars`
106
+ };
107
+ }
108
+ if (attestation.hashMode === "fnv1a") {
109
+ const computed = chunkLM2VU56C_cjs.fnv1a32Hex(canonical);
110
+ return computed === attestation.hash ? { valid: true } : { valid: false, reason: "hash-mismatch", expected: attestation.hash, actual: computed };
111
+ }
112
+ throw new Error(
113
+ "verifySubgridAttestation: sha256 mode requires verifySubgridAttestationAsync (async crypto)."
114
+ );
115
+ }
116
+ async function verifySubgridAttestationAsync(attestation, params) {
117
+ if (attestation.hashMode === "fnv1a") {
118
+ return verifySubgridAttestation(attestation, params);
119
+ }
120
+ const canonical = canonicalizeSubgridParams(params);
121
+ if (canonical !== attestation.canonicalForm) {
122
+ return {
123
+ valid: false,
124
+ reason: "canonical-form-mismatch",
125
+ expected: attestation.canonicalForm,
126
+ actual: canonical
127
+ };
128
+ }
129
+ if (!SHA256_HEX_SHAPE.test(attestation.hash)) {
130
+ return {
131
+ valid: false,
132
+ reason: "hashMode-mismatch",
133
+ expected: describeExpectedShape("sha256"),
134
+ actual: `${attestation.hash.length} hex chars`
135
+ };
136
+ }
137
+ const computed = await sha256Hex(canonical);
138
+ return computed === attestation.hash ? { valid: true } : { valid: false, reason: "hash-mismatch", expected: attestation.hash, actual: computed };
139
+ }
140
+
141
+ exports.DEFAULT_HASH_MODE = DEFAULT_HASH_MODE;
142
+ exports.InvalidSubgridParamValueError = InvalidSubgridParamValueError;
143
+ exports.MissingSubgridParamsError = MissingSubgridParamsError;
144
+ exports.attestSubgridParams = attestSubgridParams;
145
+ exports.canonicalizeSubgridParams = canonicalizeSubgridParams;
146
+ exports.hashSubgridParams = hashSubgridParams;
147
+ exports.verifySubgridAttestation = verifySubgridAttestation;
148
+ exports.verifySubgridAttestationAsync = verifySubgridAttestationAsync;
149
+ //# sourceMappingURL=index.cjs.map
150
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,141 @@
1
+ import { fnv1a32Hex } from '../chunk-WNNE3PO3.js';
2
+ import '../chunk-OL46QLBJ.js';
3
+
4
+ // src/paper-0c-spike/subgrid-attestation.ts
5
+ var DEFAULT_HASH_MODE = "fnv1a";
6
+ var MissingSubgridParamsError = class extends Error {
7
+ constructor() {
8
+ super(
9
+ "Subgrid parameter vector is required \xE2\u20AC\u201D empty or missing vectors are refused to prevent silent empty-hash attestation. Pass explicit keys with their run-time values."
10
+ );
11
+ this.name = "MissingSubgridParamsError";
12
+ }
13
+ };
14
+ var InvalidSubgridParamValueError = class extends Error {
15
+ constructor(key, value) {
16
+ super(
17
+ `Subgrid parameter '${key}' has invalid value ${String(value)} (type ${typeof value}). Allowed value types: finite number, boolean, string.`
18
+ );
19
+ this.name = "InvalidSubgridParamValueError";
20
+ }
21
+ };
22
+ function canonicalizeSubgridParams(params) {
23
+ const keys = Object.keys(params);
24
+ if (keys.length === 0) {
25
+ throw new MissingSubgridParamsError();
26
+ }
27
+ const sorted = keys.slice().sort();
28
+ const parts = [];
29
+ for (const key of sorted) {
30
+ const v = params[key];
31
+ if (typeof v === "number") {
32
+ if (!Number.isFinite(v)) {
33
+ throw new InvalidSubgridParamValueError(key, v);
34
+ }
35
+ parts.push(`${key}=${v.toString()}`);
36
+ } else if (typeof v === "boolean") {
37
+ parts.push(`${key}=${v ? "true" : "false"}`);
38
+ } else if (typeof v === "string") {
39
+ parts.push(`${key}=\`${v}\``);
40
+ } else {
41
+ throw new InvalidSubgridParamValueError(key, v);
42
+ }
43
+ }
44
+ return parts.join("|");
45
+ }
46
+ async function sha256Hex(input) {
47
+ const subtle = typeof globalThis.crypto !== "undefined" && "subtle" in globalThis.crypto ? globalThis.crypto.subtle : void 0;
48
+ if (!subtle) {
49
+ throw new Error(
50
+ "SubtleCrypto unavailable: SHA-256 mode requires Web Crypto (Node 20+, browsers, Deno)."
51
+ );
52
+ }
53
+ const bytes = new TextEncoder().encode(input);
54
+ const digest = await subtle.digest("SHA-256", bytes);
55
+ const view = new Uint8Array(digest);
56
+ const hex = [];
57
+ for (const b of view) hex.push(b.toString(16).padStart(2, "0"));
58
+ return hex.join("");
59
+ }
60
+ function hashSubgridParams(params, mode = DEFAULT_HASH_MODE) {
61
+ const canonical = canonicalizeSubgridParams(params);
62
+ if (mode === "fnv1a") return fnv1a32Hex(canonical);
63
+ if (mode === "sha256") return sha256Hex(canonical);
64
+ throw new Error(`Unknown hash mode: ${String(mode)}`);
65
+ }
66
+ function attestSubgridParams(params, mode = DEFAULT_HASH_MODE) {
67
+ const canonicalForm = canonicalizeSubgridParams(params);
68
+ if (mode === "fnv1a") {
69
+ return Object.freeze({
70
+ hash: fnv1a32Hex(canonicalForm),
71
+ hashMode: "fnv1a",
72
+ canonicalForm
73
+ });
74
+ }
75
+ if (mode === "sha256") {
76
+ return sha256Hex(canonicalForm).then(
77
+ (hash) => Object.freeze({ hash, hashMode: "sha256", canonicalForm })
78
+ );
79
+ }
80
+ throw new Error(`Unknown hash mode: ${String(mode)}`);
81
+ }
82
+ var FNV1A_HEX_SHAPE = /^[0-9a-f]{16}$/;
83
+ var SHA256_HEX_SHAPE = /^[0-9a-f]{64}$/;
84
+ function describeExpectedShape(mode) {
85
+ return mode === "fnv1a" ? "fnv1a hash (16 hex chars)" : "sha256 hash (64 hex chars)";
86
+ }
87
+ function verifySubgridAttestation(attestation, params) {
88
+ const canonical = canonicalizeSubgridParams(params);
89
+ if (canonical !== attestation.canonicalForm) {
90
+ return {
91
+ valid: false,
92
+ reason: "canonical-form-mismatch",
93
+ expected: attestation.canonicalForm,
94
+ actual: canonical
95
+ };
96
+ }
97
+ const expectedShape = attestation.hashMode === "fnv1a" ? FNV1A_HEX_SHAPE : SHA256_HEX_SHAPE;
98
+ if (!expectedShape.test(attestation.hash)) {
99
+ return {
100
+ valid: false,
101
+ reason: "hashMode-mismatch",
102
+ expected: describeExpectedShape(attestation.hashMode),
103
+ actual: `${attestation.hash.length} hex chars`
104
+ };
105
+ }
106
+ if (attestation.hashMode === "fnv1a") {
107
+ const computed = fnv1a32Hex(canonical);
108
+ return computed === attestation.hash ? { valid: true } : { valid: false, reason: "hash-mismatch", expected: attestation.hash, actual: computed };
109
+ }
110
+ throw new Error(
111
+ "verifySubgridAttestation: sha256 mode requires verifySubgridAttestationAsync (async crypto)."
112
+ );
113
+ }
114
+ async function verifySubgridAttestationAsync(attestation, params) {
115
+ if (attestation.hashMode === "fnv1a") {
116
+ return verifySubgridAttestation(attestation, params);
117
+ }
118
+ const canonical = canonicalizeSubgridParams(params);
119
+ if (canonical !== attestation.canonicalForm) {
120
+ return {
121
+ valid: false,
122
+ reason: "canonical-form-mismatch",
123
+ expected: attestation.canonicalForm,
124
+ actual: canonical
125
+ };
126
+ }
127
+ if (!SHA256_HEX_SHAPE.test(attestation.hash)) {
128
+ return {
129
+ valid: false,
130
+ reason: "hashMode-mismatch",
131
+ expected: describeExpectedShape("sha256"),
132
+ actual: `${attestation.hash.length} hex chars`
133
+ };
134
+ }
135
+ const computed = await sha256Hex(canonical);
136
+ return computed === attestation.hash ? { valid: true } : { valid: false, reason: "hash-mismatch", expected: attestation.hash, actual: computed };
137
+ }
138
+
139
+ export { DEFAULT_HASH_MODE, InvalidSubgridParamValueError, MissingSubgridParamsError, attestSubgridParams, canonicalizeSubgridParams, hashSubgridParams, verifySubgridAttestation, verifySubgridAttestationAsync };
140
+ //# sourceMappingURL=index.js.map
141
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var chunkGQHQOPXZ_cjs = require('./chunk-GQHQOPXZ.cjs');
4
+ require('./chunk-KKFZ3B6J.cjs');
5
+ var chunkT5J7ZKP3_cjs = require('./chunk-T5J7ZKP3.cjs');
6
+ require('./chunk-NG77ATEW.cjs');
7
+ require('./chunk-WRLUBRKS.cjs');
8
+ require('./chunk-X3GJPRVK.cjs');
9
+ require('./chunk-DTGBOSEM.cjs');
10
+ require('./chunk-YKGPCZEE.cjs');
11
+ require('./chunk-6EX3I5P4.cjs');
12
+ require('./chunk-HCCQLAA4.cjs');
13
+
14
+
15
+
16
+ Object.defineProperty(exports, "HoloCompositionParser", {
17
+ enumerable: true,
18
+ get: function () { return chunkGQHQOPXZ_cjs.HoloCompositionParser; }
19
+ });
20
+ Object.defineProperty(exports, "parseHolo", {
21
+ enumerable: true,
22
+ get: function () { return chunkGQHQOPXZ_cjs.parseHolo; }
23
+ });
24
+ Object.defineProperty(exports, "parseHoloPartial", {
25
+ enumerable: true,
26
+ get: function () { return chunkGQHQOPXZ_cjs.parseHoloPartial; }
27
+ });
28
+ Object.defineProperty(exports, "parseHoloStrict", {
29
+ enumerable: true,
30
+ get: function () { return chunkGQHQOPXZ_cjs.parseHoloStrict; }
31
+ });
32
+ Object.defineProperty(exports, "ChunkBasedIncrementalParser", {
33
+ enumerable: true,
34
+ get: function () { return chunkT5J7ZKP3_cjs.ChunkBasedIncrementalParser; }
35
+ });
36
+ Object.defineProperty(exports, "HoloScriptPlusParser", {
37
+ enumerable: true,
38
+ get: function () { return chunkT5J7ZKP3_cjs.HoloScriptPlusParser; }
39
+ });
40
+ Object.defineProperty(exports, "ParseCache", {
41
+ enumerable: true,
42
+ get: function () { return chunkT5J7ZKP3_cjs.ParseCache; }
43
+ });
44
+ Object.defineProperty(exports, "createParser", {
45
+ enumerable: true,
46
+ get: function () { return chunkT5J7ZKP3_cjs.createParser; }
47
+ });
48
+ Object.defineProperty(exports, "globalParseCache", {
49
+ enumerable: true,
50
+ get: function () { return chunkT5J7ZKP3_cjs.globalParseCache; }
51
+ });
52
+ Object.defineProperty(exports, "parse", {
53
+ enumerable: true,
54
+ get: function () { return chunkT5J7ZKP3_cjs.parse; }
55
+ });
56
+ Object.defineProperty(exports, "parseIncrementalChunks", {
57
+ enumerable: true,
58
+ get: function () { return chunkT5J7ZKP3_cjs.parseIncrementalChunks; }
59
+ });
60
+ //# sourceMappingURL=parser.cjs.map
61
+ //# sourceMappingURL=parser.cjs.map
package/dist/parser.d.ts CHANGED
@@ -2,3 +2,14 @@ export class HoloScriptPlusParser {
2
2
  parse(source: string): any;
3
3
  }
4
4
  export function parse(source: string): any;
5
+ export function createParser(options?: any): HoloScriptPlusParser;
6
+ export class HoloCompositionParser {
7
+ constructor(options?: any);
8
+ parse(source: string): any;
9
+ }
10
+ export function parseHolo(source: string, options?: any): any;
11
+ export function parseHoloStrict(source: string, options?: any): any;
12
+ export function parseHoloPartial(source: string, options?: any): any;
13
+ export type HoloParseResult = any;
14
+ export type HoloParseError = any;
15
+ export type HoloParserOptions = any;
package/dist/parser.js ADDED
@@ -0,0 +1,12 @@
1
+ export { HoloCompositionParser, parseHolo, parseHoloPartial, parseHoloStrict } from './chunk-GIOYPNTH.js';
2
+ import './chunk-J32ZJZJH.js';
3
+ export { ChunkBasedIncrementalParser, HoloScriptPlusParser, ParseCache, createParser, globalParseCache, parse, parseIncrementalChunks } from './chunk-YIMN575O.js';
4
+ import './chunk-4N4SXXWF.js';
5
+ import './chunk-2BSMSUCE.js';
6
+ import './chunk-WRNEH5MO.js';
7
+ import './chunk-WKX5AMOY.js';
8
+ import './chunk-SIEXCILW.js';
9
+ import './chunk-CBJY23VL.js';
10
+ import './chunk-OL46QLBJ.js';
11
+ //# sourceMappingURL=parser.js.map
12
+ //# sourceMappingURL=parser.js.map