functionalscript 0.43.0 → 0.44.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 (1096) hide show
  1. package/README.md +53 -21
  2. package/fjs/asn.1/module.f.d.mts +123 -0
  3. package/fjs/asn.1/module.f.mjs +459 -0
  4. package/fjs/asn.1/proof.f.mjs +309 -0
  5. package/fjs/asn.1/types.d.ts +37 -0
  6. package/fjs/asn.1/types.js +6 -0
  7. package/fjs/asserts/module.f.d.mts +37 -0
  8. package/fjs/asserts/module.f.mjs +49 -0
  9. package/fjs/asserts/proof.f.mjs +19 -0
  10. package/fjs/asserts/types.d.ts +11 -0
  11. package/fjs/asserts/types.js +6 -0
  12. package/fjs/basen/base128/module.f.d.mts +22 -0
  13. package/fjs/basen/base128/module.f.mjs +51 -0
  14. package/fjs/basen/base128/proof.f.d.mts +2 -0
  15. package/fjs/basen/base128/proof.f.mjs +30 -0
  16. package/fjs/basen/base64/module.f.d.mts +14 -0
  17. package/fjs/basen/base64/module.f.mjs +71 -0
  18. package/fjs/basen/base64/proof.f.d.mts +17 -0
  19. package/fjs/basen/base64/proof.f.mjs +147 -0
  20. package/fjs/basen/cbase32/module.f.d.mts +18 -0
  21. package/fjs/basen/cbase32/module.f.mjs +61 -0
  22. package/fjs/basen/cbase32/proof.f.d.mts +8 -0
  23. package/fjs/basen/cbase32/proof.f.mjs +77 -0
  24. package/fjs/basen/module.f.d.mts +30 -0
  25. package/fjs/basen/module.f.mjs +88 -0
  26. package/fjs/basen/proof.f.mjs +69 -0
  27. package/fjs/basen/types.d.ts +14 -0
  28. package/fjs/basen/types.js +6 -0
  29. package/fjs/bnf/data/module.f.d.mts +47 -0
  30. package/fjs/bnf/data/module.f.mjs +188 -0
  31. package/fjs/bnf/data/proof.f.d.mts +13 -0
  32. package/fjs/bnf/data/proof.f.mjs +160 -0
  33. package/fjs/bnf/data/types.d.ts +35 -0
  34. package/fjs/bnf/data/types.js +6 -0
  35. package/fjs/bnf/descent/module.f.d.mts +33 -0
  36. package/fjs/bnf/descent/module.f.mjs +212 -0
  37. package/fjs/bnf/descent/proof.f.d.mts +13 -0
  38. package/fjs/bnf/descent/proof.f.mjs +351 -0
  39. package/fjs/bnf/descent/types.d.ts +71 -0
  40. package/fjs/bnf/descent/types.js +6 -0
  41. package/fjs/bnf/ll1/module.f.d.mts +41 -0
  42. package/fjs/bnf/ll1/module.f.mjs +199 -0
  43. package/fjs/bnf/ll1/proof.f.d.mts +16 -0
  44. package/fjs/bnf/ll1/proof.f.mjs +352 -0
  45. package/fjs/bnf/ll1/types.d.ts +59 -0
  46. package/fjs/bnf/ll1/types.js +6 -0
  47. package/fjs/bnf/module.f.d.mts +164 -0
  48. package/fjs/bnf/module.f.mjs +298 -0
  49. package/fjs/bnf/proof.f.d.mts +17 -0
  50. package/fjs/bnf/proof.f.mjs +89 -0
  51. package/fjs/bnf/testlib.f.d.mts +10 -0
  52. package/fjs/bnf/testlib.f.mjs +196 -0
  53. package/fjs/bnf/token_symbol/module.f.d.mts +35 -0
  54. package/fjs/bnf/token_symbol/module.f.mjs +62 -0
  55. package/fjs/bnf/token_symbol/proof.f.mjs +43 -0
  56. package/fjs/bnf/token_symbol/types.d.ts +27 -0
  57. package/fjs/bnf/token_symbol/types.js +6 -0
  58. package/fjs/bnf/types.d.ts +67 -0
  59. package/fjs/bnf/types.js +6 -0
  60. package/fjs/cas/cli/module.f.d.mts +17 -0
  61. package/fjs/cas/cli/module.f.mjs +73 -0
  62. package/fjs/cas/cli/proof.f.d.mts +18 -0
  63. package/fjs/cas/cli/proof.f.mjs +118 -0
  64. package/fjs/cas/evo/module.f.d.mts +163 -0
  65. package/fjs/cas/evo/module.f.mjs +556 -0
  66. package/fjs/cas/evo/proof.f.d.mts +55 -0
  67. package/fjs/cas/evo/proof.f.mjs +749 -0
  68. package/fjs/cas/evo/types.d.ts +111 -0
  69. package/fjs/cas/evo/types.js +7 -0
  70. package/fjs/cas/module.f.d.mts +68 -0
  71. package/fjs/cas/module.f.mjs +363 -0
  72. package/fjs/cas/proof.f.d.mts +29 -0
  73. package/fjs/cas/proof.f.mjs +371 -0
  74. package/fjs/cas/types.d.ts +35 -0
  75. package/fjs/cas/types.js +6 -0
  76. package/fjs/ci/bun/module.f.d.mts +11 -0
  77. package/fjs/ci/bun/module.f.mjs +20 -0
  78. package/fjs/ci/common/module.f.d.mts +80 -0
  79. package/fjs/ci/common/module.f.mjs +87 -0
  80. package/fjs/ci/common/types.d.ts +27 -0
  81. package/fjs/ci/config/module.f.d.mts +45 -0
  82. package/fjs/ci/config/module.f.mjs +89 -0
  83. package/fjs/ci/deno/module.f.d.mts +16 -0
  84. package/fjs/ci/deno/module.f.mjs +29 -0
  85. package/fjs/ci/deno/proof.f.d.mts +4 -0
  86. package/fjs/ci/deno/proof.f.mjs +26 -0
  87. package/fjs/ci/module.f.d.mts +19 -0
  88. package/fjs/ci/module.f.mjs +89 -0
  89. package/fjs/ci/nix/module.f.d.mts +69 -0
  90. package/fjs/ci/nix/module.f.mjs +136 -0
  91. package/fjs/ci/nix/proof.f.d.mts +28 -0
  92. package/fjs/ci/nix/proof.f.mjs +146 -0
  93. package/fjs/ci/nix/types.d.ts +16 -0
  94. package/fjs/ci/nix/types.js +6 -0
  95. package/fjs/ci/node/module.f.d.mts +48 -0
  96. package/fjs/ci/node/module.f.mjs +139 -0
  97. package/fjs/ci/node/proof.f.mjs +18 -0
  98. package/fjs/ci/proof.f.d.mts +20 -0
  99. package/fjs/ci/proof.f.mjs +219 -0
  100. package/fjs/ci/rust/module.f.d.mts +15 -0
  101. package/fjs/ci/rust/module.f.mjs +108 -0
  102. package/fjs/ci/types.d.ts +9 -0
  103. package/fjs/ci/types.js +6 -0
  104. package/fjs/cli/module.f.d.mts +16 -0
  105. package/fjs/cli/module.f.mjs +51 -0
  106. package/fjs/cli/proof.f.d.mts +16 -0
  107. package/fjs/cli/proof.f.mjs +130 -0
  108. package/fjs/cli/types.d.ts +15 -0
  109. package/fjs/cli/types.js +6 -0
  110. package/fjs/common/monoid/module.f.d.mts +87 -0
  111. package/fjs/common/monoid/module.f.mjs +104 -0
  112. package/fjs/common/monoid/proof.f.d.mts +10 -0
  113. package/fjs/common/monoid/proof.f.mjs +58 -0
  114. package/fjs/common/monoid/types.d.ts +50 -0
  115. package/fjs/common/monoid/types.js +6 -0
  116. package/fjs/crypto/hmac/module.f.d.mts +32 -0
  117. package/fjs/crypto/hmac/module.f.mjs +65 -0
  118. package/fjs/crypto/hmac/proof.f.mjs +34 -0
  119. package/fjs/crypto/pow/module.f.d.mts +43 -0
  120. package/fjs/crypto/pow/module.f.mjs +93 -0
  121. package/fjs/crypto/pow/proof.f.mjs +121 -0
  122. package/fjs/crypto/pow/types.d.ts +19 -0
  123. package/fjs/crypto/pow/types.js +6 -0
  124. package/fjs/crypto/secp/module.f.d.mts +61 -0
  125. package/fjs/crypto/secp/module.f.mjs +204 -0
  126. package/fjs/crypto/secp/proof.f.d.mts +9 -0
  127. package/fjs/crypto/secp/proof.f.mjs +137 -0
  128. package/fjs/crypto/secp/types.d.ts +36 -0
  129. package/fjs/crypto/secp/types.js +6 -0
  130. package/fjs/crypto/sha2/module.f.d.mts +80 -0
  131. package/fjs/crypto/sha2/module.f.mjs +431 -0
  132. package/fjs/crypto/sha2/proof.f.d.mts +32 -0
  133. package/fjs/crypto/sha2/proof.f.mjs +144 -0
  134. package/fjs/crypto/sha2/types.d.ts +57 -0
  135. package/fjs/crypto/sha2/types.js +6 -0
  136. package/fjs/crypto/sign/module.f.d.mts +46 -0
  137. package/fjs/crypto/sign/module.f.mjs +189 -0
  138. package/fjs/crypto/sign/proof.f.d.mts +17 -0
  139. package/fjs/crypto/sign/proof.f.mjs +604 -0
  140. package/fjs/crypto/sign/types.d.ts +13 -0
  141. package/fjs/crypto/sign/types.js +6 -0
  142. package/fjs/crypto/vdf/module.f.d.mts +15 -0
  143. package/fjs/crypto/vdf/module.f.mjs +84 -0
  144. package/fjs/crypto/vdf/proof.f.mjs +106 -0
  145. package/fjs/crypto/vdf/types.d.ts +18 -0
  146. package/fjs/crypto/vdf/types.js +6 -0
  147. package/fjs/dev/module.f.d.mts +56 -0
  148. package/fjs/dev/module.f.mjs +170 -0
  149. package/fjs/dev/package_json/module.f.d.mts +32 -0
  150. package/fjs/dev/package_json/module.f.mjs +37 -0
  151. package/fjs/dev/package_json/proof.f.mjs +32 -0
  152. package/fjs/dev/proof.f.d.mts +13 -0
  153. package/fjs/dev/proof.f.mjs +78 -0
  154. package/fjs/dev/types.d.ts +14 -0
  155. package/fjs/dev/types.js +6 -0
  156. package/fjs/dev/update/module.f.d.mts +19 -0
  157. package/fjs/dev/update/module.f.mjs +36 -0
  158. package/fjs/dev/update/proof.f.d.mts +7 -0
  159. package/fjs/dev/update/proof.f.mjs +36 -0
  160. package/fjs/djs/ast/module.f.d.mts +35 -0
  161. package/fjs/djs/ast/module.f.mjs +82 -0
  162. package/fjs/djs/ast/proof.f.mjs +48 -0
  163. package/fjs/djs/ast/types.d.ts +54 -0
  164. package/fjs/djs/ast/types.js +8 -0
  165. package/fjs/djs/examples/input.f.mjs +4 -0
  166. package/fjs/djs/examples/m.f.mjs +1 -0
  167. package/fjs/djs/module.f.d.mts +17 -0
  168. package/fjs/djs/module.f.mjs +47 -0
  169. package/fjs/djs/parser/module.f.d.mts +75 -0
  170. package/fjs/djs/parser/module.f.mjs +547 -0
  171. package/fjs/djs/parser/proof.f.mjs +543 -0
  172. package/fjs/djs/parser/types.d.ts +11 -0
  173. package/fjs/djs/parser/types.js +7 -0
  174. package/fjs/djs/proof.f.mjs +52 -0
  175. package/fjs/djs/serializer/module.f.d.mts +30 -0
  176. package/fjs/djs/serializer/module.f.mjs +206 -0
  177. package/fjs/djs/serializer/proof.f.mjs +116 -0
  178. package/fjs/djs/tokenizer/module.f.d.mts +65 -0
  179. package/fjs/djs/tokenizer/module.f.mjs +624 -0
  180. package/fjs/djs/tokenizer/proof.f.mjs +980 -0
  181. package/fjs/djs/tokenizer/types.d.ts +20 -0
  182. package/fjs/djs/tokenizer/types.js +7 -0
  183. package/fjs/djs/transpiler/module.f.d.mts +44 -0
  184. package/fjs/djs/transpiler/module.f.mjs +141 -0
  185. package/fjs/djs/transpiler/proof.f.mjs +76 -0
  186. package/fjs/djs/types.d.ts +13 -0
  187. package/fjs/djs/types.js +7 -0
  188. package/fjs/effects/eff/module.f.d.mts +10 -0
  189. package/fjs/effects/eff/module.f.mjs +68 -0
  190. package/fjs/effects/eff/proof.f.d.mts +12 -0
  191. package/fjs/effects/eff/proof.f.mjs +66 -0
  192. package/fjs/effects/eff/types.d.ts +71 -0
  193. package/fjs/effects/eff/types.js +6 -0
  194. package/fjs/effects/list/module.f.d.mts +24 -0
  195. package/fjs/effects/list/module.f.mjs +34 -0
  196. package/fjs/effects/list/types.d.ts +26 -0
  197. package/fjs/effects/list/types.js +6 -0
  198. package/fjs/effects/memory/module.f.d.mts +32 -0
  199. package/fjs/effects/memory/module.f.mjs +44 -0
  200. package/fjs/effects/memory/proof.f.d.mts +12 -0
  201. package/fjs/effects/memory/proof.f.mjs +83 -0
  202. package/fjs/effects/memory/types.d.ts +18 -0
  203. package/fjs/effects/memory/types.js +6 -0
  204. package/fjs/effects/mock/module.f.d.mts +6 -0
  205. package/fjs/effects/mock/module.f.mjs +26 -0
  206. package/fjs/effects/mock/types.d.ts +15 -0
  207. package/fjs/effects/mock/types.js +6 -0
  208. package/fjs/effects/module.d.mts +7 -0
  209. package/fjs/effects/module.f.d.mts +350 -0
  210. package/fjs/effects/module.f.mjs +382 -0
  211. package/fjs/effects/module.mjs +18 -0
  212. package/fjs/effects/node/memory/module.d.mts +24 -0
  213. package/fjs/effects/node/memory/module.mjs +59 -0
  214. package/fjs/effects/node/memory/proof.mjs +43 -0
  215. package/fjs/effects/node/module.d.mts +54 -0
  216. package/fjs/effects/node/module.f.d.mts +172 -0
  217. package/fjs/effects/node/module.f.mjs +354 -0
  218. package/fjs/effects/node/module.mjs +393 -0
  219. package/fjs/effects/node/proof.f.d.mts +76 -0
  220. package/fjs/effects/node/proof.f.mjs +444 -0
  221. package/fjs/effects/node/types.d.ts +203 -0
  222. package/fjs/effects/node/types.js +6 -0
  223. package/fjs/effects/node/virtual/module.f.d.mts +31 -0
  224. package/fjs/effects/node/virtual/module.f.mjs +434 -0
  225. package/fjs/effects/node/virtual/proof.f.d.mts +35 -0
  226. package/fjs/effects/node/virtual/proof.f.mjs +226 -0
  227. package/fjs/effects/node/virtual/types.d.ts +39 -0
  228. package/fjs/effects/node/virtual/types.js +7 -0
  229. package/fjs/effects/proof.f.d.mts +62 -0
  230. package/fjs/effects/proof.f.mjs +231 -0
  231. package/fjs/effects/types.d.ts +115 -0
  232. package/fjs/effects/types.js +6 -0
  233. package/fjs/emergent_testing/all.test.js +2 -2
  234. package/fjs/emergent_testing/example.f.d.mts +16 -0
  235. package/fjs/emergent_testing/example.f.mjs +34 -0
  236. package/fjs/emergent_testing/module.f.d.mts +150 -0
  237. package/fjs/emergent_testing/module.f.mjs +414 -0
  238. package/fjs/emergent_testing/proof.f.d.mts +97 -0
  239. package/fjs/emergent_testing/proof.f.mjs +518 -0
  240. package/fjs/emergent_testing/types.d.ts +53 -0
  241. package/fjs/emergent_testing/types.js +6 -0
  242. package/fjs/fsc/bnf.f.d.mts +3 -0
  243. package/fjs/fsc/bnf.f.mjs +77 -0
  244. package/fjs/fsc/json.f.d.mts +13 -0
  245. package/fjs/fsc/json.f.mjs +124 -0
  246. package/fjs/fsc/module.f.d.mts +14 -0
  247. package/fjs/fsc/module.f.mjs +138 -0
  248. package/fjs/fsc/proof.f.mjs +119 -0
  249. package/fjs/fsm/module.f.d.mts +27 -0
  250. package/fjs/fsm/module.f.mjs +99 -0
  251. package/fjs/fsm/proof.f.mjs +146 -0
  252. package/fjs/js/tokenizer/module.f.d.mts +19 -0
  253. package/fjs/js/tokenizer/module.f.mjs +795 -0
  254. package/fjs/js/tokenizer/proof.f.d.mts +12 -0
  255. package/fjs/js/tokenizer/proof.f.mjs +681 -0
  256. package/fjs/js/tokenizer/types.d.ts +193 -0
  257. package/fjs/js/tokenizer/types.js +6 -0
  258. package/fjs/mcp/cas/module.f.d.mts +156 -0
  259. package/fjs/mcp/cas/module.f.mjs +302 -0
  260. package/fjs/mcp/evo/module.f.d.mts +88 -0
  261. package/fjs/mcp/evo/module.f.mjs +153 -0
  262. package/fjs/mcp/evo/proof.f.d.mts +17 -0
  263. package/fjs/mcp/evo/proof.f.mjs +166 -0
  264. package/fjs/mcp/module.f.d.mts +32 -0
  265. package/fjs/mcp/module.f.mjs +96 -0
  266. package/fjs/mcp/proof.f.d.mts +46 -0
  267. package/fjs/mcp/proof.f.mjs +725 -0
  268. package/fjs/media/html/module.f.d.mts +43 -0
  269. package/fjs/media/html/module.f.mjs +167 -0
  270. package/fjs/media/html/proof.f.mjs +77 -0
  271. package/fjs/media/html/types.d.ts +19 -0
  272. package/fjs/media/html/types.js +6 -0
  273. package/fjs/media/json/module.f.d.mts +48 -0
  274. package/fjs/media/json/module.f.mjs +104 -0
  275. package/fjs/media/json/parser/module.f.d.mts +30 -0
  276. package/fjs/media/json/parser/module.f.mjs +219 -0
  277. package/fjs/media/json/parser/proof.f.d.mts +8 -0
  278. package/fjs/media/json/parser/proof.f.mjs +314 -0
  279. package/fjs/media/json/parser/types.d.ts +34 -0
  280. package/fjs/media/json/parser/types.js +6 -0
  281. package/fjs/media/json/proof.f.mjs +79 -0
  282. package/fjs/media/json/rtti/module.f.d.mts +38 -0
  283. package/fjs/media/json/rtti/module.f.mjs +51 -0
  284. package/fjs/media/json/rtti/proof.f.d.mts +26 -0
  285. package/fjs/media/json/rtti/proof.f.mjs +86 -0
  286. package/fjs/media/json/schema/module.f.d.mts +79 -0
  287. package/fjs/media/json/schema/module.f.mjs +144 -0
  288. package/fjs/media/json/schema/proof.f.d.mts +40 -0
  289. package/fjs/media/json/schema/proof.f.mjs +93 -0
  290. package/fjs/media/json/serializer/module.f.d.mts +27 -0
  291. package/fjs/media/json/serializer/module.f.mjs +131 -0
  292. package/fjs/media/json/serializer/proof.f.mjs +92 -0
  293. package/fjs/media/json/tokenizer/module.f.d.mts +17 -0
  294. package/fjs/media/json/tokenizer/module.f.mjs +77 -0
  295. package/fjs/media/json/tokenizer/proof.f.d.mts +8 -0
  296. package/fjs/media/json/tokenizer/proof.f.mjs +291 -0
  297. package/fjs/media/json/tokenizer/types.d.ts +17 -0
  298. package/fjs/media/json/tokenizer/types.js +6 -0
  299. package/fjs/media/json/types.d.ts +25 -0
  300. package/fjs/media/json/types.js +13 -0
  301. package/fjs/media/module.f.d.mts +116 -0
  302. package/fjs/media/module.f.mjs +152 -0
  303. package/fjs/media/nix/module.f.d.mts +14 -0
  304. package/fjs/media/nix/module.f.mjs +261 -0
  305. package/fjs/media/nix/proof.f.mjs +181 -0
  306. package/fjs/media/nix/types.d.ts +22 -0
  307. package/fjs/media/nix/types.js +6 -0
  308. package/fjs/media/proof.f.d.mts +19 -0
  309. package/fjs/media/proof.f.mjs +159 -0
  310. package/fjs/media/revision/module.f.d.mts +119 -0
  311. package/fjs/media/revision/module.f.mjs +166 -0
  312. package/fjs/media/revision/proof.f.d.mts +42 -0
  313. package/fjs/media/revision/proof.f.mjs +228 -0
  314. package/fjs/media/revision/types.d.ts +16 -0
  315. package/fjs/media/revision/types.js +8 -0
  316. package/fjs/media/rust/module.f.d.mts +61 -0
  317. package/fjs/media/rust/module.f.mjs +93 -0
  318. package/fjs/media/rust/proof.f.d.mts +17 -0
  319. package/fjs/media/rust/proof.f.mjs +50 -0
  320. package/fjs/media/type/module.f.d.mts +97 -0
  321. package/fjs/media/type/module.f.mjs +281 -0
  322. package/fjs/media/type/proof.f.mjs +285 -0
  323. package/fjs/media/type/types.d.ts +67 -0
  324. package/fjs/media/type/types.js +6 -0
  325. package/fjs/media/types.d.ts +26 -0
  326. package/fjs/media/types.js +7 -0
  327. package/fjs/module.f.d.mts +3 -0
  328. package/fjs/module.f.mjs +60 -0
  329. package/fjs/module.mjs +6 -0
  330. package/fjs/nanvm/module.f.d.mts +54 -0
  331. package/fjs/nanvm/module.f.mjs +240 -0
  332. package/fjs/nanvm/proof.f.d.mts +41 -0
  333. package/fjs/nanvm/proof.f.mjs +173 -0
  334. package/fjs/nanvm/rust/module.f.d.mts +54 -0
  335. package/fjs/nanvm/rust/module.f.mjs +166 -0
  336. package/fjs/nanvm/rust/proof.f.d.mts +21 -0
  337. package/fjs/nanvm/rust/proof.f.mjs +119 -0
  338. package/fjs/nanvm/types.d.ts +105 -0
  339. package/fjs/nanvm/types.js +11 -0
  340. package/fjs/nanvm/update/module.f.d.mts +23 -0
  341. package/fjs/nanvm/update/module.f.mjs +33 -0
  342. package/fjs/nanvm/update/proof.f.d.mts +9 -0
  343. package/fjs/nanvm/update/proof.f.mjs +32 -0
  344. package/fjs/path/module.f.d.mts +55 -0
  345. package/fjs/path/module.f.mjs +96 -0
  346. package/fjs/path/proof.f.mjs +125 -0
  347. package/fjs/proof.f.mjs +48 -0
  348. package/fjs/protocol/json_rpc/module.f.d.mts +127 -0
  349. package/fjs/protocol/json_rpc/module.f.mjs +112 -0
  350. package/fjs/protocol/json_rpc/proof.f.mjs +84 -0
  351. package/fjs/protocol/json_rpc/types.d.ts +30 -0
  352. package/fjs/protocol/json_rpc/types.js +8 -0
  353. package/fjs/protocol/mcp/module.f.d.mts +227 -0
  354. package/fjs/protocol/mcp/module.f.mjs +369 -0
  355. package/fjs/protocol/mcp/proof.f.d.mts +53 -0
  356. package/fjs/protocol/mcp/proof.f.mjs +312 -0
  357. package/fjs/protocol/mcp/stdio/module.f.d.mts +52 -0
  358. package/fjs/protocol/mcp/stdio/module.f.mjs +132 -0
  359. package/fjs/protocol/mcp/stdio/proof.f.d.mts +20 -0
  360. package/fjs/protocol/mcp/stdio/proof.f.mjs +190 -0
  361. package/fjs/protocol/mcp/types.d.ts +59 -0
  362. package/fjs/protocol/mcp/types.js +8 -0
  363. package/fjs/sul/id/module.f.d.mts +37 -0
  364. package/fjs/sul/id/module.f.mjs +143 -0
  365. package/fjs/sul/id/proof.f.mjs +72 -0
  366. package/fjs/sul/id/types.d.ts +8 -0
  367. package/fjs/sul/id/types.js +6 -0
  368. package/fjs/sul/level/hash/module.f.d.mts +37 -0
  369. package/fjs/sul/level/hash/module.f.mjs +61 -0
  370. package/fjs/sul/level/hash/proof.f.d.mts +15 -0
  371. package/fjs/sul/level/hash/proof.f.mjs +131 -0
  372. package/fjs/sul/level/hash/types.d.ts +20 -0
  373. package/fjs/sul/level/hash/types.js +6 -0
  374. package/fjs/sul/level/literal/module.f.d.mts +54 -0
  375. package/fjs/sul/level/literal/module.f.mjs +120 -0
  376. package/fjs/sul/level/literal/proof.f.mjs +788 -0
  377. package/fjs/sul/level/literal/types.d.ts +31 -0
  378. package/fjs/sul/level/literal/types.js +6 -0
  379. package/fjs/sul/module.f.d.mts +25 -0
  380. package/fjs/sul/module.f.mjs +69 -0
  381. package/fjs/sul/proof.f.d.mts +11 -0
  382. package/fjs/sul/proof.f.mjs +62 -0
  383. package/fjs/sul/types.d.ts +19 -0
  384. package/fjs/sul/types.js +6 -0
  385. package/fjs/text/ascii/module.f.d.mts +136 -0
  386. package/fjs/text/ascii/module.f.mjs +224 -0
  387. package/fjs/text/ascii/proof.f.mjs +16 -0
  388. package/fjs/text/code_point/module.f.d.mts +74 -0
  389. package/fjs/text/code_point/module.f.mjs +139 -0
  390. package/fjs/text/code_point/proof.f.mjs +80 -0
  391. package/fjs/text/module.f.d.mts +39 -0
  392. package/fjs/text/module.f.mjs +61 -0
  393. package/fjs/text/proof.f.mjs +48 -0
  394. package/fjs/text/sgr/module.f.d.mts +58 -0
  395. package/fjs/text/sgr/module.f.mjs +99 -0
  396. package/fjs/text/sgr/proof.f.mjs +39 -0
  397. package/fjs/text/sgr/types.d.ts +12 -0
  398. package/fjs/text/sgr/types.js +6 -0
  399. package/fjs/text/types.d.ts +13 -0
  400. package/fjs/text/types.js +6 -0
  401. package/fjs/text/utf16/module.f.d.mts +147 -0
  402. package/fjs/text/utf16/module.f.mjs +350 -0
  403. package/fjs/text/utf16/proof.f.d.mts +11 -0
  404. package/fjs/text/utf16/proof.f.mjs +158 -0
  405. package/fjs/text/utf16/types.d.ts +19 -0
  406. package/fjs/text/utf16/types.js +6 -0
  407. package/fjs/text/utf8/module.f.d.mts +69 -0
  408. package/fjs/text/utf8/module.f.mjs +280 -0
  409. package/fjs/text/utf8/proof.f.mjs +217 -0
  410. package/fjs/text/utf8/types.d.ts +26 -0
  411. package/fjs/text/utf8/types.js +6 -0
  412. package/fjs/types/array/module.f.d.mts +68 -0
  413. package/fjs/types/array/module.f.mjs +101 -0
  414. package/fjs/types/array/proof.f.mjs +98 -0
  415. package/fjs/types/array/types.d.ts +13 -0
  416. package/fjs/types/array/types.js +6 -0
  417. package/fjs/types/bigfloat/module.f.d.mts +14 -0
  418. package/fjs/types/bigfloat/module.f.mjs +99 -0
  419. package/fjs/types/bigfloat/proof.f.mjs +218 -0
  420. package/fjs/types/bigfloat/types.d.ts +6 -0
  421. package/fjs/types/bigfloat/types.js +6 -0
  422. package/fjs/types/bigint/benchmark.d.mts +1 -0
  423. package/fjs/types/bigint/benchmark.mjs +205 -0
  424. package/fjs/types/bigint/module.f.d.mts +176 -0
  425. package/fjs/types/bigint/module.f.mjs +289 -0
  426. package/fjs/types/bigint/proof.f.d.mts +39 -0
  427. package/fjs/types/bigint/proof.f.mjs +443 -0
  428. package/fjs/types/bigint/types.d.ts +14 -0
  429. package/fjs/types/bigint/types.js +6 -0
  430. package/fjs/types/bit_vec/module.f.d.mts +199 -0
  431. package/fjs/types/bit_vec/module.f.mjs +485 -0
  432. package/fjs/types/bit_vec/proof.f.mjs +495 -0
  433. package/fjs/types/bit_vec/types.d.ts +51 -0
  434. package/fjs/types/bit_vec/types.js +6 -0
  435. package/fjs/types/btree/find/module.f.d.mts +15 -0
  436. package/fjs/types/btree/find/module.f.mjs +80 -0
  437. package/fjs/types/btree/find/proof.f.d.mts +4 -0
  438. package/fjs/types/btree/find/proof.f.mjs +121 -0
  439. package/fjs/types/btree/find/types.d.ts +22 -0
  440. package/fjs/types/btree/find/types.js +6 -0
  441. package/fjs/types/btree/module.f.d.mts +10 -0
  442. package/fjs/types/btree/module.f.mjs +39 -0
  443. package/fjs/types/btree/proof.f.d.mts +14 -0
  444. package/fjs/types/btree/proof.f.mjs +85 -0
  445. package/fjs/types/btree/remove/module.f.d.mts +21 -0
  446. package/fjs/types/btree/remove/module.f.mjs +187 -0
  447. package/fjs/types/btree/remove/proof.f.mjs +472 -0
  448. package/fjs/types/btree/set/module.f.d.mts +5 -0
  449. package/fjs/types/btree/set/module.f.mjs +117 -0
  450. package/fjs/types/btree/set/proof.f.mjs +427 -0
  451. package/fjs/types/btree/types/module.f.d.mts +19 -0
  452. package/fjs/types/btree/types/module.f.mjs +19 -0
  453. package/fjs/types/btree/types/types.d.ts +14 -0
  454. package/fjs/types/btree/types/types.js +6 -0
  455. package/fjs/types/byte_set/module.f.d.mts +26 -0
  456. package/fjs/types/byte_set/module.f.mjs +66 -0
  457. package/fjs/types/byte_set/proof.f.d.mts +12 -0
  458. package/fjs/types/byte_set/proof.f.mjs +84 -0
  459. package/fjs/types/byte_set/types.d.ts +6 -0
  460. package/fjs/types/byte_set/types.js +6 -0
  461. package/fjs/types/function/compare/module.f.d.mts +44 -0
  462. package/fjs/types/function/compare/module.f.mjs +71 -0
  463. package/fjs/types/function/compare/proof.f.mjs +50 -0
  464. package/fjs/types/function/compare/types.d.ts +22 -0
  465. package/fjs/types/function/compare/types.js +6 -0
  466. package/fjs/types/function/module.f.d.mts +26 -0
  467. package/fjs/types/function/module.f.mjs +32 -0
  468. package/fjs/types/function/operator/module.f.d.mts +37 -0
  469. package/fjs/types/function/operator/module.f.mjs +55 -0
  470. package/fjs/types/function/operator/proof.f.mjs +76 -0
  471. package/fjs/types/function/operator/types.d.ts +39 -0
  472. package/fjs/types/function/operator/types.js +6 -0
  473. package/fjs/types/function/proof.f.mjs +16 -0
  474. package/fjs/types/function/types.d.ts +16 -0
  475. package/fjs/types/function/types.js +6 -0
  476. package/fjs/types/list/module.f.d.mts +88 -0
  477. package/fjs/types/list/module.f.mjs +309 -0
  478. package/fjs/types/list/proof.f.d.mts +32 -0
  479. package/fjs/types/list/proof.f.mjs +363 -0
  480. package/fjs/types/list/types.d.ts +36 -0
  481. package/fjs/types/list/types.js +6 -0
  482. package/fjs/types/map/module.f.d.mts +13 -0
  483. package/fjs/types/map/module.f.mjs +42 -0
  484. package/fjs/types/map/proof.f.mjs +25 -0
  485. package/fjs/types/nibble_set/module.f.d.mts +30 -0
  486. package/fjs/types/nibble_set/module.f.mjs +43 -0
  487. package/fjs/types/nibble_set/proof.f.mjs +59 -0
  488. package/fjs/types/nibble_set/types.d.ts +9 -0
  489. package/fjs/types/nibble_set/types.js +6 -0
  490. package/fjs/types/nominal/module.f.d.mts +9 -0
  491. package/fjs/types/nominal/module.f.mjs +16 -0
  492. package/fjs/types/nominal/proof.f.d.mts +7 -0
  493. package/fjs/types/nominal/proof.f.mjs +79 -0
  494. package/fjs/types/nominal/types.d.ts +25 -0
  495. package/fjs/types/nominal/types.js +6 -0
  496. package/fjs/types/nullable/module.f.d.mts +38 -0
  497. package/fjs/types/nullable/module.f.mjs +53 -0
  498. package/fjs/types/nullable/proof.f.mjs +34 -0
  499. package/fjs/types/nullable/types.d.ts +6 -0
  500. package/fjs/types/nullable/types.js +6 -0
  501. package/fjs/types/number/module.f.d.mts +23 -0
  502. package/fjs/types/number/module.f.mjs +55 -0
  503. package/fjs/types/number/proof.f.mjs +204 -0
  504. package/fjs/types/object/module.f.d.mts +33 -0
  505. package/fjs/types/object/module.f.mjs +58 -0
  506. package/fjs/types/object/proof.f.d.mts +25 -0
  507. package/fjs/types/object/proof.f.mjs +26 -0
  508. package/fjs/types/object/types.d.ts +50 -0
  509. package/fjs/types/object/types.js +8 -0
  510. package/fjs/types/ordered_map/module.f.d.mts +21 -0
  511. package/fjs/types/ordered_map/module.f.mjs +54 -0
  512. package/fjs/types/ordered_map/proof.f.mjs +88 -0
  513. package/fjs/types/ordered_map/types.d.ts +8 -0
  514. package/fjs/types/ordered_map/types.js +6 -0
  515. package/fjs/types/patricia_trie/module.f.d.mts +19 -0
  516. package/fjs/types/patricia_trie/module.f.mjs +43 -0
  517. package/fjs/types/patricia_trie/proof.f.d.mts +14 -0
  518. package/fjs/types/patricia_trie/proof.f.mjs +148 -0
  519. package/fjs/types/patricia_trie/types.d.ts +34 -0
  520. package/fjs/types/patricia_trie/types.js +6 -0
  521. package/fjs/types/prime_field/module.f.d.mts +42 -0
  522. package/fjs/types/prime_field/module.f.mjs +136 -0
  523. package/fjs/types/prime_field/proof.f.mjs +131 -0
  524. package/fjs/types/prime_field/types.d.ts +38 -0
  525. package/fjs/types/prime_field/types.js +6 -0
  526. package/fjs/types/range/module.f.d.mts +11 -0
  527. package/fjs/types/range/module.f.mjs +13 -0
  528. package/fjs/types/range/proof.f.mjs +10 -0
  529. package/fjs/types/range/types.d.ts +6 -0
  530. package/fjs/types/range/types.js +6 -0
  531. package/fjs/types/range_map/module.f.d.mts +72 -0
  532. package/fjs/types/range_map/module.f.mjs +130 -0
  533. package/fjs/types/range_map/proof.f.d.mts +7 -0
  534. package/fjs/types/range_map/proof.f.mjs +186 -0
  535. package/fjs/types/range_map/types.d.ts +56 -0
  536. package/fjs/types/range_map/types.js +6 -0
  537. package/fjs/types/range_set/module.f.d.mts +5 -0
  538. package/fjs/types/range_set/module.f.mjs +19 -0
  539. package/fjs/types/range_set/proof.f.mjs +26 -0
  540. package/fjs/types/result/module.d.mts +5 -0
  541. package/fjs/types/result/module.f.d.mts +59 -0
  542. package/fjs/types/result/module.f.mjs +67 -0
  543. package/fjs/types/result/module.mjs +22 -0
  544. package/fjs/types/result/proof.f.mjs +41 -0
  545. package/fjs/types/result/types.d.ts +17 -0
  546. package/fjs/types/result/types.js +6 -0
  547. package/fjs/types/rtti/common/module.f.d.mts +86 -0
  548. package/fjs/types/rtti/common/module.f.mjs +183 -0
  549. package/fjs/types/rtti/common/proof.f.d.mts +9 -0
  550. package/fjs/types/rtti/common/proof.f.mjs +64 -0
  551. package/fjs/types/rtti/common/types.d.ts +43 -0
  552. package/fjs/types/rtti/common/types.js +1 -0
  553. package/fjs/types/rtti/module.f.d.mts +76 -0
  554. package/fjs/types/rtti/module.f.mjs +110 -0
  555. package/fjs/types/rtti/parse/module.f.d.mts +9 -0
  556. package/fjs/types/rtti/parse/module.f.mjs +196 -0
  557. package/fjs/types/rtti/parse/proof.f.d.mts +122 -0
  558. package/fjs/types/rtti/parse/proof.f.mjs +363 -0
  559. package/fjs/types/rtti/parse/types.d.ts +12 -0
  560. package/fjs/types/rtti/parse/types.js +1 -0
  561. package/fjs/types/rtti/proof.f.d.mts +8 -0
  562. package/fjs/types/rtti/proof.f.mjs +20 -0
  563. package/fjs/types/rtti/ts/module.f.d.mts +34 -0
  564. package/fjs/types/rtti/ts/module.f.mjs +64 -0
  565. package/fjs/types/rtti/ts/proof.f.mjs +88 -0
  566. package/fjs/types/rtti/ts/types.d.ts +88 -0
  567. package/fjs/types/rtti/ts/types.js +1 -0
  568. package/fjs/types/rtti/types.d.ts +43 -0
  569. package/fjs/types/rtti/types.js +1 -0
  570. package/fjs/types/rtti/validate/module.f.d.mts +6 -0
  571. package/fjs/types/rtti/validate/module.f.mjs +169 -0
  572. package/fjs/types/rtti/validate/proof.f.d.mts +125 -0
  573. package/fjs/types/rtti/validate/proof.f.mjs +437 -0
  574. package/fjs/types/rtti/validate/types.d.ts +6 -0
  575. package/fjs/types/rtti/validate/types.js +1 -0
  576. package/fjs/types/sorted_list/module.f.d.mts +43 -0
  577. package/fjs/types/sorted_list/module.f.mjs +110 -0
  578. package/fjs/types/sorted_list/proof.f.d.mts +5 -0
  579. package/fjs/types/sorted_list/proof.f.mjs +52 -0
  580. package/fjs/types/sorted_list/types.d.ts +15 -0
  581. package/fjs/types/sorted_list/types.js +6 -0
  582. package/fjs/types/sorted_set/module.f.d.mts +24 -0
  583. package/fjs/types/sorted_set/module.f.mjs +56 -0
  584. package/fjs/types/sorted_set/proof.f.d.mts +7 -0
  585. package/fjs/types/sorted_set/proof.f.mjs +77 -0
  586. package/fjs/types/sorted_set/types.d.ts +6 -0
  587. package/fjs/types/sorted_set/types.js +6 -0
  588. package/fjs/types/string/module.f.d.mts +36 -0
  589. package/fjs/types/string/module.f.mjs +58 -0
  590. package/fjs/types/string/proof.f.mjs +76 -0
  591. package/fjs/types/string_set/module.f.d.mts +37 -0
  592. package/fjs/types/string_set/module.f.mjs +53 -0
  593. package/fjs/types/string_set/proof.f.mjs +46 -0
  594. package/fjs/types/string_set/types.d.ts +7 -0
  595. package/fjs/types/string_set/types.js +6 -0
  596. package/fjs/types/ts/module.f.d.mts +20 -0
  597. package/fjs/types/ts/module.f.mjs +51 -0
  598. package/fjs/types/ts/proof.f.mjs +97 -0
  599. package/fjs/types/ts/types.d.ts +16 -0
  600. package/fjs/types/ts/types.js +8 -0
  601. package/fjs/types/uint8array/module.f.d.mts +31 -0
  602. package/fjs/types/uint8array/module.f.mjs +53 -0
  603. package/fjs/types/uint8array/proof.f.d.mts +17 -0
  604. package/fjs/types/uint8array/proof.f.mjs +73 -0
  605. package/fjs/website/module.f.d.mts +8 -0
  606. package/fjs/website/module.f.mjs +24 -0
  607. package/fjs/website/proof.f.mjs +14 -0
  608. package/package.json +12 -10
  609. package/todo/proof.f.d.mts +22 -0
  610. package/todo/proof.f.mjs +59 -0
  611. package/fjs/asn.1/module.f.d.ts +0 -62
  612. package/fjs/asn.1/module.f.js +0 -278
  613. package/fjs/asn.1/proof.f.js +0 -285
  614. package/fjs/asserts/module.f.d.ts +0 -36
  615. package/fjs/asserts/module.f.js +0 -39
  616. package/fjs/asserts/proof.f.js +0 -18
  617. package/fjs/base_n/module.f.d.ts +0 -45
  618. package/fjs/base_n/module.f.js +0 -72
  619. package/fjs/base_n/proof.f.js +0 -73
  620. package/fjs/basen/base128/module.f.d.ts +0 -20
  621. package/fjs/basen/base128/module.f.js +0 -43
  622. package/fjs/basen/base128/proof.f.js +0 -26
  623. package/fjs/basen/base64/module.f.d.ts +0 -9
  624. package/fjs/basen/base64/module.f.js +0 -71
  625. package/fjs/basen/base64/proof.f.d.ts +0 -16
  626. package/fjs/basen/base64/proof.f.js +0 -139
  627. package/fjs/basen/cbase32/module.f.d.ts +0 -11
  628. package/fjs/basen/cbase32/module.f.js +0 -55
  629. package/fjs/basen/cbase32/proof.f.d.ts +0 -7
  630. package/fjs/basen/cbase32/proof.f.js +0 -62
  631. package/fjs/bnf/data/module.f.d.ts +0 -52
  632. package/fjs/bnf/data/module.f.js +0 -143
  633. package/fjs/bnf/data/proof.f.d.ts +0 -8
  634. package/fjs/bnf/data/proof.f.js +0 -169
  635. package/fjs/bnf/descent/module.f.d.ts +0 -87
  636. package/fjs/bnf/descent/module.f.js +0 -149
  637. package/fjs/bnf/descent/proof.f.d.ts +0 -7
  638. package/fjs/bnf/descent/proof.f.js +0 -368
  639. package/fjs/bnf/ll1/module.f.d.ts +0 -72
  640. package/fjs/bnf/ll1/module.f.js +0 -155
  641. package/fjs/bnf/ll1/proof.f.d.ts +0 -10
  642. package/fjs/bnf/ll1/proof.f.js +0 -375
  643. package/fjs/bnf/module.f.d.ts +0 -165
  644. package/fjs/bnf/module.f.js +0 -174
  645. package/fjs/bnf/proof.f.d.ts +0 -12
  646. package/fjs/bnf/proof.f.js +0 -69
  647. package/fjs/bnf/testlib.f.d.ts +0 -3
  648. package/fjs/bnf/testlib.f.js +0 -138
  649. package/fjs/bnf/token_symbol/module.f.d.ts +0 -38
  650. package/fjs/bnf/token_symbol/module.f.js +0 -48
  651. package/fjs/bnf/token_symbol/proof.f.js +0 -37
  652. package/fjs/cas/cli/module.f.d.ts +0 -6
  653. package/fjs/cas/cli/module.f.js +0 -53
  654. package/fjs/cas/cli/proof.f.d.ts +0 -17
  655. package/fjs/cas/cli/proof.f.js +0 -112
  656. package/fjs/cas/evo/module.f.d.ts +0 -222
  657. package/fjs/cas/evo/module.f.js +0 -454
  658. package/fjs/cas/evo/proof.f.d.ts +0 -43
  659. package/fjs/cas/evo/proof.f.js +0 -653
  660. package/fjs/cas/module.f.d.ts +0 -64
  661. package/fjs/cas/module.f.js +0 -255
  662. package/fjs/cas/proof.f.d.ts +0 -18
  663. package/fjs/cas/proof.f.js +0 -305
  664. package/fjs/ci/bun/module.f.d.ts +0 -2
  665. package/fjs/ci/bun/module.f.js +0 -15
  666. package/fjs/ci/common/module.f.d.ts +0 -88
  667. package/fjs/ci/common/module.f.js +0 -63
  668. package/fjs/ci/config/module.f.d.ts +0 -45
  669. package/fjs/ci/config/module.f.js +0 -80
  670. package/fjs/ci/deno/module.f.d.ts +0 -10
  671. package/fjs/ci/deno/module.f.js +0 -28
  672. package/fjs/ci/deno/proof.f.d.ts +0 -5
  673. package/fjs/ci/deno/proof.f.js +0 -26
  674. package/fjs/ci/module.f.d.ts +0 -13
  675. package/fjs/ci/module.f.js +0 -58
  676. package/fjs/ci/nix/module.f.d.ts +0 -61
  677. package/fjs/ci/nix/module.f.js +0 -92
  678. package/fjs/ci/nix/proof.f.d.ts +0 -23
  679. package/fjs/ci/nix/proof.f.js +0 -109
  680. package/fjs/ci/node/module.f.d.ts +0 -28
  681. package/fjs/ci/node/module.f.js +0 -92
  682. package/fjs/ci/node/proof.f.js +0 -17
  683. package/fjs/ci/proof.f.d.ts +0 -18
  684. package/fjs/ci/proof.f.js +0 -182
  685. package/fjs/ci/rust/module.f.d.ts +0 -3
  686. package/fjs/ci/rust/module.f.js +0 -75
  687. package/fjs/cli/module.f.d.ts +0 -11
  688. package/fjs/cli/module.f.js +0 -34
  689. package/fjs/cli/proof.f.d.ts +0 -14
  690. package/fjs/cli/proof.f.js +0 -111
  691. package/fjs/common/monoid/module.f.d.ts +0 -126
  692. package/fjs/common/monoid/module.f.js +0 -88
  693. package/fjs/common/monoid/proof.f.d.ts +0 -9
  694. package/fjs/common/monoid/proof.f.js +0 -48
  695. package/fjs/crypto/hmac/module.f.d.ts +0 -29
  696. package/fjs/crypto/hmac/module.f.js +0 -56
  697. package/fjs/crypto/hmac/proof.f.js +0 -32
  698. package/fjs/crypto/pow/module.f.d.ts +0 -37
  699. package/fjs/crypto/pow/module.f.js +0 -72
  700. package/fjs/crypto/pow/proof.f.js +0 -111
  701. package/fjs/crypto/secp/module.f.d.ts +0 -85
  702. package/fjs/crypto/secp/module.f.js +0 -176
  703. package/fjs/crypto/secp/proof.f.d.ts +0 -8
  704. package/fjs/crypto/secp/proof.f.js +0 -124
  705. package/fjs/crypto/sha2/module.f.d.ts +0 -102
  706. package/fjs/crypto/sha2/module.f.js +0 -266
  707. package/fjs/crypto/sha2/proof.f.d.ts +0 -31
  708. package/fjs/crypto/sha2/proof.f.js +0 -139
  709. package/fjs/crypto/sign/module.f.d.ts +0 -33
  710. package/fjs/crypto/sign/module.f.js +0 -163
  711. package/fjs/crypto/sign/proof.f.d.ts +0 -11
  712. package/fjs/crypto/sign/proof.f.js +0 -562
  713. package/fjs/crypto/vdf/module.f.d.ts +0 -21
  714. package/fjs/crypto/vdf/module.f.js +0 -57
  715. package/fjs/crypto/vdf/proof.f.js +0 -94
  716. package/fjs/dev/module.f.d.ts +0 -57
  717. package/fjs/dev/module.f.js +0 -135
  718. package/fjs/dev/package_json/module.f.d.ts +0 -16
  719. package/fjs/dev/package_json/module.f.js +0 -24
  720. package/fjs/dev/package_json/proof.f.js +0 -28
  721. package/fjs/dev/proof.f.d.ts +0 -13
  722. package/fjs/dev/proof.f.js +0 -77
  723. package/fjs/dev/update/module.f.d.ts +0 -11
  724. package/fjs/dev/update/module.f.js +0 -20
  725. package/fjs/dev/update/proof.f.d.ts +0 -7
  726. package/fjs/dev/update/proof.f.js +0 -35
  727. package/fjs/djs/ast/module.f.d.ts +0 -62
  728. package/fjs/djs/ast/module.f.js +0 -61
  729. package/fjs/djs/ast/proof.f.js +0 -49
  730. package/fjs/djs/examples/input.f.js +0 -4
  731. package/fjs/djs/examples/m.f.js +0 -1
  732. package/fjs/djs/module.f.d.ts +0 -17
  733. package/fjs/djs/module.f.js +0 -22
  734. package/fjs/djs/parser/module.f.d.ts +0 -23
  735. package/fjs/djs/parser/module.f.js +0 -410
  736. package/fjs/djs/parser/proof.f.js +0 -556
  737. package/fjs/djs/proof.f.js +0 -50
  738. package/fjs/djs/serializer/module.f.d.ts +0 -17
  739. package/fjs/djs/serializer/module.f.js +0 -173
  740. package/fjs/djs/serializer/proof.f.js +0 -133
  741. package/fjs/djs/tokenizer/module.f.d.ts +0 -24
  742. package/fjs/djs/tokenizer/module.f.js +0 -472
  743. package/fjs/djs/tokenizer/proof.f.js +0 -1211
  744. package/fjs/djs/transpiler/module.f.d.ts +0 -41
  745. package/fjs/djs/transpiler/module.f.js +0 -88
  746. package/fjs/djs/transpiler/proof.f.js +0 -67
  747. package/fjs/effects/eff/module.f.d.ts +0 -72
  748. package/fjs/effects/eff/module.f.js +0 -46
  749. package/fjs/effects/eff/proof.f.d.ts +0 -11
  750. package/fjs/effects/eff/proof.f.js +0 -58
  751. package/fjs/effects/list/module.f.d.ts +0 -37
  752. package/fjs/effects/list/module.f.js +0 -17
  753. package/fjs/effects/memory/module.f.d.ts +0 -37
  754. package/fjs/effects/memory/module.f.js +0 -24
  755. package/fjs/effects/memory/proof.f.d.ts +0 -6
  756. package/fjs/effects/memory/proof.f.js +0 -50
  757. package/fjs/effects/mock/module.f.d.ts +0 -16
  758. package/fjs/effects/mock/module.f.js +0 -20
  759. package/fjs/effects/module.d.ts +0 -2
  760. package/fjs/effects/module.f.d.ts +0 -408
  761. package/fjs/effects/module.f.js +0 -312
  762. package/fjs/effects/module.js +0 -11
  763. package/fjs/effects/node/memory/module.d.ts +0 -20
  764. package/fjs/effects/node/memory/module.js +0 -44
  765. package/fjs/effects/node/memory/proof.js +0 -29
  766. package/fjs/effects/node/module.d.ts +0 -20
  767. package/fjs/effects/node/module.f.d.ts +0 -300
  768. package/fjs/effects/node/module.f.js +0 -171
  769. package/fjs/effects/node/module.js +0 -305
  770. package/fjs/effects/node/proof.f.d.ts +0 -69
  771. package/fjs/effects/node/proof.f.js +0 -409
  772. package/fjs/effects/node/virtual/module.f.d.ts +0 -49
  773. package/fjs/effects/node/virtual/module.f.js +0 -440
  774. package/fjs/effects/node/virtual/proof.f.d.ts +0 -33
  775. package/fjs/effects/node/virtual/proof.f.js +0 -186
  776. package/fjs/effects/proof.f.d.ts +0 -56
  777. package/fjs/effects/proof.f.js +0 -200
  778. package/fjs/emergent_testing/example.f.d.ts +0 -13
  779. package/fjs/emergent_testing/example.f.js +0 -31
  780. package/fjs/emergent_testing/module.f.d.ts +0 -140
  781. package/fjs/emergent_testing/module.f.js +0 -289
  782. package/fjs/emergent_testing/proof.f.d.ts +0 -67
  783. package/fjs/emergent_testing/proof.f.js +0 -416
  784. package/fjs/fsc/bnf.f.d.ts +0 -2
  785. package/fjs/fsc/bnf.f.js +0 -42
  786. package/fjs/fsc/json.f.d.ts +0 -7
  787. package/fjs/fsc/json.f.js +0 -64
  788. package/fjs/fsc/module.f.d.ts +0 -11
  789. package/fjs/fsc/module.f.js +0 -73
  790. package/fjs/fsc/proof.f.js +0 -104
  791. package/fjs/fsm/module.f.d.ts +0 -17
  792. package/fjs/fsm/module.f.js +0 -55
  793. package/fjs/fsm/proof.f.js +0 -126
  794. package/fjs/js/tokenizer/module.f.d.ts +0 -104
  795. package/fjs/js/tokenizer/module.f.js +0 -547
  796. package/fjs/js/tokenizer/proof.f.d.ts +0 -9
  797. package/fjs/js/tokenizer/proof.f.js +0 -986
  798. package/fjs/mcp/cas/module.f.d.ts +0 -27
  799. package/fjs/mcp/cas/module.f.js +0 -232
  800. package/fjs/mcp/evo/module.f.d.ts +0 -32
  801. package/fjs/mcp/evo/module.f.js +0 -99
  802. package/fjs/mcp/evo/proof.f.d.ts +0 -12
  803. package/fjs/mcp/evo/proof.f.js +0 -147
  804. package/fjs/mcp/module.f.d.ts +0 -56
  805. package/fjs/mcp/module.f.js +0 -69
  806. package/fjs/mcp/proof.f.d.ts +0 -45
  807. package/fjs/mcp/proof.f.js +0 -535
  808. package/fjs/media/html/module.f.d.ts +0 -52
  809. package/fjs/media/html/module.f.js +0 -117
  810. package/fjs/media/html/proof.f.js +0 -65
  811. package/fjs/media/json/module.f.d.ts +0 -64
  812. package/fjs/media/json/module.f.js +0 -109
  813. package/fjs/media/json/parser/module.f.d.ts +0 -21
  814. package/fjs/media/json/parser/module.f.js +0 -194
  815. package/fjs/media/json/parser/proof.f.d.ts +0 -5
  816. package/fjs/media/json/parser/proof.f.js +0 -314
  817. package/fjs/media/json/proof.f.js +0 -98
  818. package/fjs/media/json/schema/module.f.d.ts +0 -78
  819. package/fjs/media/json/schema/module.f.js +0 -96
  820. package/fjs/media/json/schema/proof.f.d.ts +0 -36
  821. package/fjs/media/json/schema/proof.f.js +0 -83
  822. package/fjs/media/json/serializer/module.f.d.ts +0 -28
  823. package/fjs/media/json/serializer/module.f.js +0 -73
  824. package/fjs/media/json/serializer/proof.f.js +0 -94
  825. package/fjs/media/json/tokenizer/module.f.d.ts +0 -15
  826. package/fjs/media/json/tokenizer/module.f.js +0 -63
  827. package/fjs/media/json/tokenizer/proof.f.d.ts +0 -5
  828. package/fjs/media/json/tokenizer/proof.f.js +0 -417
  829. package/fjs/media/module.f.d.ts +0 -119
  830. package/fjs/media/module.f.js +0 -88
  831. package/fjs/media/nix/module.f.d.ts +0 -30
  832. package/fjs/media/nix/module.f.js +0 -166
  833. package/fjs/media/nix/proof.f.js +0 -127
  834. package/fjs/media/proof.f.d.ts +0 -19
  835. package/fjs/media/proof.f.js +0 -127
  836. package/fjs/media/revision/module.f.d.ts +0 -86
  837. package/fjs/media/revision/module.f.js +0 -131
  838. package/fjs/media/revision/proof.f.d.ts +0 -31
  839. package/fjs/media/revision/proof.f.js +0 -140
  840. package/fjs/media/type/module.f.d.ts +0 -135
  841. package/fjs/media/type/module.f.js +0 -231
  842. package/fjs/media/type/proof.f.js +0 -213
  843. package/fjs/module.f.d.ts +0 -2
  844. package/fjs/module.f.js +0 -50
  845. package/fjs/module.js +0 -4
  846. package/fjs/path/module.f.d.ts +0 -46
  847. package/fjs/path/module.f.js +0 -71
  848. package/fjs/path/proof.f.js +0 -119
  849. package/fjs/proof.f.js +0 -38
  850. package/fjs/protocol/json_rpc/module.f.d.ts +0 -114
  851. package/fjs/protocol/json_rpc/module.f.js +0 -89
  852. package/fjs/protocol/json_rpc/proof.f.js +0 -68
  853. package/fjs/protocol/mcp/module.f.d.ts +0 -239
  854. package/fjs/protocol/mcp/module.f.js +0 -272
  855. package/fjs/protocol/mcp/proof.f.d.ts +0 -34
  856. package/fjs/protocol/mcp/proof.f.js +0 -208
  857. package/fjs/protocol/mcp/stdio/module.f.d.ts +0 -47
  858. package/fjs/protocol/mcp/stdio/module.f.js +0 -78
  859. package/fjs/protocol/mcp/stdio/proof.f.d.ts +0 -13
  860. package/fjs/protocol/mcp/stdio/proof.f.js +0 -143
  861. package/fjs/sul/id/module.f.d.ts +0 -33
  862. package/fjs/sul/id/module.f.js +0 -93
  863. package/fjs/sul/id/proof.f.js +0 -61
  864. package/fjs/sul/level/hash/module.f.d.ts +0 -38
  865. package/fjs/sul/level/hash/module.f.js +0 -43
  866. package/fjs/sul/level/hash/proof.f.d.ts +0 -13
  867. package/fjs/sul/level/hash/proof.f.js +0 -112
  868. package/fjs/sul/level/literal/module.f.d.ts +0 -64
  869. package/fjs/sul/level/literal/module.f.js +0 -88
  870. package/fjs/sul/level/literal/proof.f.js +0 -714
  871. package/fjs/sul/module.f.d.ts +0 -23
  872. package/fjs/sul/module.f.js +0 -46
  873. package/fjs/sul/proof.f.d.ts +0 -9
  874. package/fjs/sul/proof.f.js +0 -47
  875. package/fjs/text/ascii/module.f.d.ts +0 -136
  876. package/fjs/text/ascii/module.f.js +0 -154
  877. package/fjs/text/ascii/proof.f.js +0 -14
  878. package/fjs/text/code_point/module.f.d.ts +0 -65
  879. package/fjs/text/code_point/module.f.js +0 -103
  880. package/fjs/text/code_point/proof.f.js +0 -72
  881. package/fjs/text/module.f.d.ts +0 -40
  882. package/fjs/text/module.f.js +0 -43
  883. package/fjs/text/proof.f.js +0 -44
  884. package/fjs/text/sgr/module.f.d.ts +0 -53
  885. package/fjs/text/sgr/module.f.js +0 -63
  886. package/fjs/text/sgr/proof.f.js +0 -33
  887. package/fjs/text/utf16/module.f.d.ts +0 -161
  888. package/fjs/text/utf16/module.f.js +0 -311
  889. package/fjs/text/utf16/proof.f.d.ts +0 -10
  890. package/fjs/text/utf16/proof.f.js +0 -144
  891. package/fjs/text/utf8/module.f.d.ts +0 -83
  892. package/fjs/text/utf8/module.f.js +0 -247
  893. package/fjs/text/utf8/proof.f.js +0 -217
  894. package/fjs/types/array/module.f.d.ts +0 -49
  895. package/fjs/types/array/module.f.js +0 -42
  896. package/fjs/types/array/proof.f.js +0 -92
  897. package/fjs/types/bigfloat/module.f.d.ts +0 -6
  898. package/fjs/types/bigfloat/module.f.js +0 -69
  899. package/fjs/types/bigfloat/proof.f.js +0 -217
  900. package/fjs/types/bigint/module.f.d.ts +0 -172
  901. package/fjs/types/bigint/module.f.js +0 -251
  902. package/fjs/types/bigint/proof.f.d.ts +0 -37
  903. package/fjs/types/bigint/proof.f.js +0 -400
  904. package/fjs/types/bit_vec/module.f.d.ts +0 -302
  905. package/fjs/types/bit_vec/module.f.js +0 -375
  906. package/fjs/types/bit_vec/proof.f.js +0 -465
  907. package/fjs/types/btree/find/module.f.d.ts +0 -25
  908. package/fjs/types/btree/find/module.f.js +0 -80
  909. package/fjs/types/btree/find/proof.f.d.ts +0 -3
  910. package/fjs/types/btree/find/proof.f.js +0 -108
  911. package/fjs/types/btree/module.f.d.ts +0 -9
  912. package/fjs/types/btree/module.f.js +0 -33
  913. package/fjs/types/btree/proof.f.d.ts +0 -13
  914. package/fjs/types/btree/proof.f.js +0 -64
  915. package/fjs/types/btree/remove/module.f.d.ts +0 -14
  916. package/fjs/types/btree/remove/module.f.js +0 -186
  917. package/fjs/types/btree/remove/proof.f.js +0 -484
  918. package/fjs/types/btree/set/module.f.d.ts +0 -8
  919. package/fjs/types/btree/set/module.f.js +0 -128
  920. package/fjs/types/btree/set/proof.f.js +0 -368
  921. package/fjs/types/btree/types/module.f.d.ts +0 -23
  922. package/fjs/types/btree/types/module.f.js +0 -9
  923. package/fjs/types/byte_set/module.f.d.ts +0 -16
  924. package/fjs/types/byte_set/module.f.js +0 -30
  925. package/fjs/types/byte_set/proof.f.d.ts +0 -11
  926. package/fjs/types/byte_set/proof.f.js +0 -79
  927. package/fjs/types/function/compare/module.f.d.ts +0 -49
  928. package/fjs/types/function/compare/module.f.js +0 -51
  929. package/fjs/types/function/compare/proof.f.js +0 -47
  930. package/fjs/types/function/module.f.d.ts +0 -28
  931. package/fjs/types/function/module.f.js +0 -19
  932. package/fjs/types/function/operator/module.f.d.ts +0 -48
  933. package/fjs/types/function/operator/module.f.js +0 -16
  934. package/fjs/types/function/operator/proof.f.js +0 -53
  935. package/fjs/types/function/proof.f.js +0 -10
  936. package/fjs/types/list/module.f.d.ts +0 -75
  937. package/fjs/types/list/module.f.js +0 -190
  938. package/fjs/types/list/proof.f.d.ts +0 -31
  939. package/fjs/types/list/proof.f.js +0 -330
  940. package/fjs/types/map/module.f.d.ts +0 -2
  941. package/fjs/types/map/module.f.js +0 -22
  942. package/fjs/types/map/proof.f.js +0 -22
  943. package/fjs/types/nibble_set/module.f.d.ts +0 -27
  944. package/fjs/types/nibble_set/module.f.js +0 -25
  945. package/fjs/types/nibble_set/proof.f.js +0 -60
  946. package/fjs/types/nominal/module.f.d.ts +0 -22
  947. package/fjs/types/nominal/module.f.js +0 -13
  948. package/fjs/types/nominal/proof.f.d.ts +0 -4
  949. package/fjs/types/nominal/proof.f.js +0 -48
  950. package/fjs/types/nullable/module.f.d.ts +0 -21
  951. package/fjs/types/nullable/module.f.js +0 -29
  952. package/fjs/types/nullable/proof.f.js +0 -29
  953. package/fjs/types/number/module.f.d.ts +0 -16
  954. package/fjs/types/number/module.f.js +0 -30
  955. package/fjs/types/number/proof.f.js +0 -124
  956. package/fjs/types/object/module.f.d.ts +0 -54
  957. package/fjs/types/object/module.f.js +0 -25
  958. package/fjs/types/object/proof.f.d.ts +0 -4
  959. package/fjs/types/object/proof.f.js +0 -14
  960. package/fjs/types/ordered_map/module.f.d.ts +0 -17
  961. package/fjs/types/ordered_map/module.f.js +0 -22
  962. package/fjs/types/ordered_map/proof.f.js +0 -73
  963. package/fjs/types/patricia_trie/module.f.d.ts +0 -25
  964. package/fjs/types/patricia_trie/module.f.js +0 -35
  965. package/fjs/types/patricia_trie/proof.f.d.ts +0 -13
  966. package/fjs/types/patricia_trie/proof.f.js +0 -121
  967. package/fjs/types/prime_field/module.f.d.ts +0 -62
  968. package/fjs/types/prime_field/module.f.js +0 -112
  969. package/fjs/types/prime_field/proof.f.js +0 -128
  970. package/fjs/types/range/module.f.d.ts +0 -8
  971. package/fjs/types/range/module.f.js +0 -2
  972. package/fjs/types/range/proof.f.js +0 -9
  973. package/fjs/types/range_map/module.f.d.ts +0 -92
  974. package/fjs/types/range_map/module.f.js +0 -82
  975. package/fjs/types/range_map/proof.f.d.ts +0 -6
  976. package/fjs/types/range_map/proof.f.js +0 -151
  977. package/fjs/types/range_set/module.f.d.ts +0 -5
  978. package/fjs/types/range_set/module.f.js +0 -16
  979. package/fjs/types/range_set/proof.f.d.ts +0 -1
  980. package/fjs/types/range_set/proof.f.js +0 -19
  981. package/fjs/types/result/module.d.ts +0 -3
  982. package/fjs/types/result/module.f.d.ts +0 -61
  983. package/fjs/types/result/module.f.js +0 -54
  984. package/fjs/types/result/module.js +0 -19
  985. package/fjs/types/result/proof.f.js +0 -31
  986. package/fjs/types/rtti/common/module.f.d.ts +0 -121
  987. package/fjs/types/rtti/common/module.f.js +0 -94
  988. package/fjs/types/rtti/common/proof.f.d.ts +0 -8
  989. package/fjs/types/rtti/common/proof.f.js +0 -51
  990. package/fjs/types/rtti/module.f.d.ts +0 -75
  991. package/fjs/types/rtti/module.f.js +0 -34
  992. package/fjs/types/rtti/parse/module.f.d.ts +0 -36
  993. package/fjs/types/rtti/parse/module.f.js +0 -114
  994. package/fjs/types/rtti/parse/proof.f.d.ts +0 -115
  995. package/fjs/types/rtti/parse/proof.f.js +0 -334
  996. package/fjs/types/rtti/proof.f.d.ts +0 -5
  997. package/fjs/types/rtti/proof.f.js +0 -16
  998. package/fjs/types/rtti/ts/module.f.d.ts +0 -118
  999. package/fjs/types/rtti/ts/module.f.js +0 -59
  1000. package/fjs/types/rtti/ts/proof.f.js +0 -75
  1001. package/fjs/types/rtti/validate/module.f.d.ts +0 -4
  1002. package/fjs/types/rtti/validate/module.f.js +0 -74
  1003. package/fjs/types/rtti/validate/proof.f.d.ts +0 -118
  1004. package/fjs/types/rtti/validate/proof.f.js +0 -349
  1005. package/fjs/types/sorted_list/module.f.d.ts +0 -26
  1006. package/fjs/types/sorted_list/module.f.js +0 -51
  1007. package/fjs/types/sorted_list/proof.f.d.ts +0 -4
  1008. package/fjs/types/sorted_list/proof.f.js +0 -46
  1009. package/fjs/types/sorted_set/module.f.d.ts +0 -33
  1010. package/fjs/types/sorted_set/module.f.js +0 -5
  1011. package/fjs/types/sorted_set/proof.f.d.ts +0 -6
  1012. package/fjs/types/sorted_set/proof.f.js +0 -67
  1013. package/fjs/types/string/module.f.d.ts +0 -24
  1014. package/fjs/types/string/module.f.js +0 -35
  1015. package/fjs/types/string/proof.f.js +0 -77
  1016. package/fjs/types/string_set/module.f.d.ts +0 -30
  1017. package/fjs/types/string_set/module.f.js +0 -37
  1018. package/fjs/types/string_set/proof.f.js +0 -43
  1019. package/fjs/types/ts/module.f.d.ts +0 -23
  1020. package/fjs/types/ts/module.f.js +0 -27
  1021. package/fjs/types/ts/proof.f.js +0 -86
  1022. package/fjs/types/uint8array/module.f.d.ts +0 -13
  1023. package/fjs/types/uint8array/module.f.js +0 -34
  1024. package/fjs/types/uint8array/proof.f.d.ts +0 -17
  1025. package/fjs/types/uint8array/proof.f.js +0 -64
  1026. package/fjs/website/module.f.d.ts +0 -3
  1027. package/fjs/website/module.f.js +0 -14
  1028. package/fjs/website/proof.f.js +0 -13
  1029. package/nanvm-lib/tests/proof.f.d.ts +0 -122
  1030. package/nanvm-lib/tests/proof.f.js +0 -330
  1031. package/todo/031-json.f.js +0 -241
  1032. package/todo/proof.f.d.ts +0 -20
  1033. package/todo/proof.f.js +0 -62
  1034. /package/fjs/asn.1/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1035. /package/fjs/asserts/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1036. /package/fjs/{base_n/proof.f.d.ts → basen/proof.f.d.mts} +0 -0
  1037. /package/fjs/bnf/token_symbol/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1038. /package/{todo/031-json.f.d.ts → fjs/ci/common/types.js} +0 -0
  1039. /package/fjs/ci/node/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1040. /package/fjs/crypto/hmac/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1041. /package/fjs/crypto/pow/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1042. /package/fjs/crypto/vdf/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1043. /package/fjs/dev/package_json/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1044. /package/fjs/djs/ast/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1045. /package/fjs/djs/examples/{input.f.d.ts → input.f.d.mts} +0 -0
  1046. /package/fjs/djs/examples/{m.f.d.ts → m.f.d.mts} +0 -0
  1047. /package/fjs/djs/parser/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1048. /package/fjs/djs/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1049. /package/fjs/djs/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1050. /package/fjs/djs/tokenizer/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1051. /package/fjs/djs/transpiler/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1052. /package/fjs/effects/node/memory/{proof.d.ts → proof.d.mts} +0 -0
  1053. /package/fjs/fsc/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1054. /package/fjs/fsm/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1055. /package/fjs/media/html/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1056. /package/fjs/media/json/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1057. /package/fjs/media/json/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1058. /package/fjs/media/nix/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1059. /package/fjs/media/type/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1060. /package/fjs/{module.d.ts → module.d.mts} +0 -0
  1061. /package/fjs/path/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1062. /package/fjs/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1063. /package/fjs/protocol/json_rpc/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1064. /package/fjs/sul/id/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1065. /package/fjs/sul/level/literal/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1066. /package/fjs/text/ascii/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1067. /package/fjs/text/code_point/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1068. /package/fjs/text/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1069. /package/fjs/text/sgr/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1070. /package/fjs/text/utf8/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1071. /package/fjs/types/array/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1072. /package/fjs/types/bigfloat/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1073. /package/fjs/types/bit_vec/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1074. /package/fjs/types/btree/remove/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1075. /package/fjs/types/btree/set/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1076. /package/fjs/{basen/base128/proof.f.d.ts → types/function/compare/proof.f.d.mts} +0 -0
  1077. /package/fjs/types/function/operator/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1078. /package/fjs/types/function/{compare/proof.f.d.ts → proof.f.d.mts} +0 -0
  1079. /package/fjs/types/map/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1080. /package/fjs/types/nibble_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1081. /package/fjs/types/nullable/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1082. /package/fjs/types/number/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1083. /package/fjs/types/option/{module.f.d.ts → types.d.ts} +0 -0
  1084. /package/fjs/types/option/{module.f.js → types.js} +0 -0
  1085. /package/fjs/types/ordered_map/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1086. /package/fjs/types/phantom/{module.f.d.ts → types.d.ts} +0 -0
  1087. /package/fjs/types/phantom/{module.f.js → types.js} +0 -0
  1088. /package/fjs/types/prime_field/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1089. /package/fjs/types/{function/proof.f.d.ts → range/proof.f.d.mts} +0 -0
  1090. /package/fjs/types/{range/proof.f.d.ts → range_set/proof.f.d.mts} +0 -0
  1091. /package/fjs/types/result/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1092. /package/fjs/types/rtti/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1093. /package/fjs/types/string/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1094. /package/fjs/types/string_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1095. /package/fjs/types/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1096. /package/fjs/website/{proof.f.d.ts → proof.f.d.mts} +0 -0
@@ -1,69 +0,0 @@
1
- /**
2
- * The FJS MCP server: the composition root the `fjs mcp` / `m` CLI command
3
- * runs. Session configuration (`McpConfig`), the top-level entry point
4
- * (`casMcpServer`, wiring `mcpStep` + `stdioTransport` from
5
- * `fjs/protocol/mcp/`), and the composed tool registry — nothing CAS- or
6
- * Evo-specific lives here, it only knows about tool *registries*, not what is
7
- * in them, so a future non-CAS tool set can land as a new sibling of
8
- * `fjs/mcp/cas/` and `fjs/mcp/evo/` without touching either of them.
9
- *
10
- * ## Tools
11
- *
12
- * | Tool | args | action | result |
13
- * |----------------|------------------------------------------------|------------------|--------------------------------------|
14
- * | `cas_add` | `{ content, type? }` | `c.write(...)` | hash (cBase32) |
15
- * | `cas_get` | `{ hash, content?: boolean }` | `c.read(key)` | JSON `{length,mimeType,type[,uri][,text\|blob]}` |
16
- * | `cas_list` | `{}` | `c.list()` | hashes, one per line |
17
- * | `evo_list` | `{ archived? }` | `e.list(...)` | subjects, as a JSON array of strings |
18
- * | `evo_head` | `{ subject }` | `e.head(...)` | head hashes, one per line |
19
- * | `evo_revision` | `{ hash }` | `e.revision(...)`| the revision, as JSON |
20
- * | `evo_add` | `{ parents, snapshot?, subject?, archived? }` | `e.add(...)` | hash (cBase32) |
21
- *
22
- * `cas_add`/`cas_get`/`cas_list` are `fjs/mcp/cas` — see that module for tool
23
- * documentation (input encoding, output shape, error convention). `evo_*` is
24
- * `fjs/mcp/evo`. Both tool sets run in one process, sharing one `~/.cas/`
25
- * store and one in-memory Evo cache scanned once at startup (`initEvo`).
26
- *
27
- * @module
28
- */
29
- import { step } from '../effects/module.f.js';
30
- import { create } from '../effects/memory/module.f.js';
31
- import {} from '../effects/node/module.f.js';
32
- import { stdioTransport } from '../protocol/mcp/stdio/module.f.js';
33
- import { mcpStep, uninitializedState, fromRegistry, } from '../protocol/mcp/module.f.js';
34
- import { fileCas } from '../cas/module.f.js';
35
- import { initEvo, evo } from '../cas/evo/module.f.js';
36
- import { sha256 } from '../crypto/sha2/module.f.js';
37
- import { casToolRegistry } from './cas/module.f.js';
38
- import { evoToolRegistry } from './evo/module.f.js';
39
- // ── Handlers ────────────────────────────────────────────────────────────────────
40
- /**
41
- * MCP handlers for `FileCas` (`fjs/mcp/cas`) plus the Evo API (`fjs/mcp/evo`)
42
- * layered on it, bound to `home` and an already-built Evo cache slot (see
43
- * `initEvo`).
44
- */
45
- export const casMcpHandlers = (home) => (cacheKey) => fromRegistry([...casToolRegistry(home)(cacheKey), ...evoToolRegistry(evo(fileCas(sha256)(home))(cacheKey))]);
46
- // ── Session configuration ───────────────────────────────────────────────────────
47
- /**
48
- * Static MCP configuration for the CAS server: advertises the `tools`
49
- * capability, identifies the server, and pins the protocol version.
50
- */
51
- export const casConfig = {
52
- serverInfo: { name: 'functionalscript-cas', version: '0.30.0' },
53
- capabilities: { tools: {} },
54
- protocolVersion: '2024-11-05',
55
- };
56
- // ── Server ──────────────────────────────────────────────────────────────────────
57
- /**
58
- * Runs the combined CAS + Evo MCP server over stdio: scans `~/.cas/` once to
59
- * build the Evo subject/head cache (`initEvo`), allocates the session-state
60
- * slot, builds the `mcpStep` for the merged tool registry, and drives the
61
- * read → parse → dispatch → write loop until stdin EOF.
62
- */
63
- export const casMcpServer = (home) => step(initEvo(fileCas(sha256)(home)), cacheKey => step(create(uninitializedState), sessionKey => stdioTransport(mcpStep(casConfig)(casMcpHandlers(home)(cacheKey))(sessionKey))));
64
- // ── Tests ────────────────────────────────────────────────────────────────────
65
- export const proof = {
66
- // casMcpServer is never called in integration tests because it drives a
67
- // real stdio server; call it here to cover its Effect-building body.
68
- casMcpServer: () => { casMcpServer('/'); },
69
- };
@@ -1,45 +0,0 @@
1
- export declare const proof: {
2
- getMetaLargeMultiChunkBlobNoError: () => void;
3
- getMetaLargeMultiChunkUtf8Symbols: () => void;
4
- getMetaLargeMultiChunkTextThenBinary: () => void;
5
- getContentLargeBlobTooLargeError: () => void;
6
- getContentMissingHashIsError: () => void;
7
- getContentBase64InflationOverflowWritesInternalError: () => void;
8
- getContentBase64NearBoundarySucceeds: () => void;
9
- getContentDoubleEscapedOverflowWritesInternalError: () => void;
10
- toolsListAdvertisesSevenTools: () => void;
11
- evoAddListHeadRoundTripsThroughCasServer: () => void;
12
- evoAddDomainErrorIsErrorThroughCasServer: () => void;
13
- casAddSyncsEvoCacheForRevisionContent: () => void;
14
- addReturnsHash: () => void;
15
- textAddGetMetaRoundTrips: () => void;
16
- textAddGetContentRoundTrips: () => void;
17
- binaryAddGetMetaRoundTrips: () => void;
18
- binaryAddGetContentRoundTrips: () => void;
19
- addGetRoundTrips: () => void;
20
- getUntypedReturnsText: () => void;
21
- getTypedReturnsBinaryJson: () => void;
22
- getMetaRecognizesRevisionDialect: () => void;
23
- getContentRecognizesRevisionDialect: () => void;
24
- listEnumeratesStoredHashes: () => void;
25
- addInvalidContentIsError: () => void;
26
- addBadLengthContentIsError: () => void;
27
- addBase64OverLimitIsError: () => void;
28
- addTextOverLimitIsError: () => void;
29
- addTextAtLimitSucceeds: () => void;
30
- addBase64AtLimitSucceeds: () => void;
31
- getUnterminatedHashIsError: () => void;
32
- addMissingContentIsError: () => void;
33
- getMissingHashArgumentIsError: () => void;
34
- getInvalidHashIsError: () => void;
35
- getMissingHashIsError: () => void;
36
- unknownToolIsError: () => void;
37
- toolErrorIsNotJsonRpcError: () => void;
38
- getMetaReturnsLengthAndMimeType: () => void;
39
- getMetaBinaryBlob: () => void;
40
- getMetaOctetStreamForUnknownBinary: () => void;
41
- getMetaOctetStreamForNulBlob: () => void;
42
- getMetaMissingHashIsError: () => void;
43
- getMetaInvalidHashIsError: () => void;
44
- getOctetStreamWithContentIncludesBase64: () => void;
45
- };
@@ -1,535 +0,0 @@
1
- import { assert, assertEq } from '../asserts/module.f.js';
2
- import { pure, step } from '../effects/module.f.js';
3
- import { create } from '../effects/memory/module.f.js';
4
- import { parse as parseJson } from '../media/json/module.f.js';
5
- import { number as rttiNumber, option, string as rttiString } from '../types/rtti/module.f.js';
6
- import { parse as rttiParse } from '../types/rtti/parse/module.f.js';
7
- import { msb, u8ListToVec, vec8, repeat, length, maxLengthBytes } from '../types/bit_vec/module.f.js';
8
- import { vecToCBase32 } from '../basen/cbase32/module.f.js';
9
- import { encode as base64Encode } from '../basen/base64/module.f.js';
10
- import { utf8 } from '../text/module.f.js';
11
- import { fileCas } from '../cas/module.f.js';
12
- import { dialect as revisionDialect, mediaType as revisionMediaType } from '../media/revision/module.f.js';
13
- import { sha256 } from '../crypto/sha2/module.f.js';
14
- import { nonEmpty, empty as elEmpty } from '../effects/list/module.f.js';
15
- import { mcpStep, uninitializedState, } from '../protocol/mcp/module.f.js';
16
- import { emptyState, virtual } from '../effects/node/virtual/module.f.js';
17
- import { casConfig, casMcpHandlers } from './module.f.js';
18
- import { ok as resultOk, unwrap } from '../types/result/module.f.js';
19
- import { stdioTransport } from '../protocol/mcp/stdio/module.f.js';
20
- import { fromVec } from '../types/uint8array/module.f.js';
21
- import { initEvo } from '../cas/evo/module.f.js';
22
- // `cas_get`'s result JSON. As an rtti schema it both describes the shape and
23
- // checks it, so reading a field needs neither a hand-written type nor an `as`
24
- // cast — a response that drifts from this fails the test at the parse, not
25
- // silently at the assertion. `uri` is always emitted; only the payload
26
- // (`text` for `type: 'text'`, `blob` for `type: 'base64'`) is conditional.
27
- const casGetResult = {
28
- length: rttiNumber,
29
- mimeType: rttiString,
30
- type: rttiString,
31
- uri: rttiString,
32
- text: option(rttiString),
33
- blob: option(rttiString),
34
- };
35
- const parseCasGetResult = rttiParse(casGetResult);
36
- // ── Session driver ──────────────────────────────────────────────────────────────
37
- // Feeds each message to `handler` in order, collecting every response.
38
- const feed = (handler) => (msgs) => {
39
- const go = (i, acc) => i === msgs.length
40
- ? pure(acc)
41
- : step(handler(msgs[i]), r => go(i + 1, [...acc, r]));
42
- return go(0, []);
43
- };
44
- // Runs a session backed by the virtual node runner (for cas_upload which uses
45
- // Rename/ReadBytes/RandomInt/Mkdir). Uses fileKvStore so upload and get share
46
- // the same filesystem-backed CAS.
47
- const runSessionVirtual = (root, home = '/home/user') => (msgs) => {
48
- const effect = step(initEvo(fileCas(sha256)(home)), cacheKey => step(create(uninitializedState), sessionKey => {
49
- const step = mcpStep(casConfig)(casMcpHandlers(home)(cacheKey))(sessionKey);
50
- return feed(step)(msgs);
51
- }));
52
- return virtual({ ...emptyState, root })(effect)[1];
53
- };
54
- // Seeds a blob directly into the virtual store via `c.write`, bypassing the
55
- // MCP `cas_add` tool entirely — used by tests that need a stored blob larger
56
- // than `cas_add`'s inline limit, now that the removed `type:'url'` path is no
57
- // longer available to stage one through MCP. Returns the resulting root
58
- // `Dir` (with the new shard written) and the blob's cBase32 hash so a
59
- // subsequent `runSessionVirtual` call can read it back via `cas_get`.
60
- const seedBlob = (root, home = '/home/user') => (chunks) => {
61
- const c = fileCas(sha256)(home);
62
- const stream = chunks.reduceRight((tail, chunk) => nonEmpty(resultOk(chunk), tail), elEmpty());
63
- const [state, result] = virtual({ ...emptyState, root })(c.write(stream));
64
- assert(result[0] === 'ok', result);
65
- return [state.root, vecToCBase32(result[1])];
66
- };
67
- // ── Messages ────────────────────────────────────────────────────────────────────
68
- const init = { jsonrpc: '2.0', method: 'initialize', id: 1,
69
- params: { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'c', version: '0' } } };
70
- const initialized = { jsonrpc: '2.0', method: 'notifications/initialized' };
71
- const call = (id, name, args) => ({ jsonrpc: '2.0', method: 'tools/call', id, params: { name, arguments: args } });
72
- const list = (id) => ({ jsonrpc: '2.0', method: 'tools/list', id });
73
- // Runs `init`, `notifications/initialized`, then `msgs`; returns the tool responses.
74
- const session = (...msgs) => runSessionVirtual({}, '/home/user')([init, initialized, ...msgs]).slice(2);
75
- // UTF-8 bytes of `s` as a plain array — the virtual stdin byte stream.
76
- const toBytes = (s) => [...fromVec(utf8(s))];
77
- // Runs `init`, `notifications/initialized`, then `msgs` through the *real*
78
- // stdio pipeline — `mcpStep` wrapped in `stdioTransport`, driving
79
- // `writeResponse`'s `tryUtf8` encode over actual stdin/stdout bytes. Unlike
80
- // `session`/`runSessionVirtual`, which collect `mcpStep`'s `Response` values
81
- // as plain JS objects and never serialize/encode them, this is the only
82
- // helper that can observe the transport's oversized-response fallback (see
83
- // `fjs/protocol/mcp/stdio/module.f.ts` `writeResponse`).
84
- const runStdio = (root, home = '/home/user') => (msgs) => {
85
- const input = [init, initialized, ...msgs].map(m => JSON.stringify(m)).join('\n') + '\n';
86
- const effect = step(initEvo(fileCas(sha256)(home)), cacheKey => step(create(uninitializedState), sessionKey => stdioTransport(mcpStep(casConfig)(casMcpHandlers(home)(cacheKey))(sessionKey))));
87
- const stdout = virtual({ ...emptyState, root, stdin: toBytes(input) })(effect)[0].stdout;
88
- // Only requests get a written line (notifications, like `initialized`,
89
- // write nothing) — drop the `init` response, keep one line per `msgs` entry.
90
- return stdout.split('\n').filter(line => line.length > 0).slice(1).map(line => unwrap(parseJson(line)));
91
- };
92
- const resultOf = (resp) => resp.result;
93
- const item0 = (resp) => resultOf(resp).content[0];
94
- const textOf = (resp) => item0(resp).text;
95
- /** The `text` payload of a `cas_get` response, parsed and checked against {@link casGetResult}. */
96
- const casGetResultOf = (resp) => unwrap(parseCasGetResult(unwrap(parseJson(textOf(resp)))));
97
- // A plain text sample for text add→get round-trips.
98
- const textSample = 'hello, world!';
99
- // A valid `vnd.fjs.revision` blob: every required field present, including the
100
- // explicit `snapshot` and `generation` the format now mandates.
101
- const revisionSample = `{"dialect":"${revisionDialect}","subject":"8","parents":[],"snapshot":"8","generation":0}`;
102
- // A base64-encoded binary payload for binary add→get round-trips.
103
- const binarySample = base64Encode(vec8(0x2an));
104
- // A base64 blob whose leading bytes are the PNG magic-byte signature, so
105
- // `cas_get` detects its type and returns base64 with mimeType image/png.
106
- const pngSample = base64Encode(u8ListToVec(msb)([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x01]));
107
- // Returns the RFC 4648 base64 encoding of `n` zero bytes, computed directly
108
- // without bigint arithmetic — independent of `base64.encode` so these tests
109
- // don't rely on the correctness of the function they're indirectly exercising
110
- // (`cas_add` decodes the string via `base64.decode`). Handles every n%3
111
- // residue: rem=0 → no padding, rem=1 → 'AA==', rem=2 → 'AAA='.
112
- const base64OfA = (n) => {
113
- const groups = Number(n / 3n);
114
- const rem = Number(n % 3n);
115
- const body = 'AAAA'.repeat(groups);
116
- if (rem === 0) {
117
- return body;
118
- }
119
- if (rem === 1) {
120
- return body + 'AA==';
121
- }
122
- return body + 'AAA=';
123
- };
124
- // ── Tests ───────────────────────────────────────────────────────────────────────
125
- // A blob larger than one read chunk (> 128 KiB) used to fail metadata-only
126
- // cas_get because `collectRead` overflowed `maxLength`. With `detectStream`,
127
- // content:false returns correct metadata regardless of size. Each chunk is
128
- // exactly `maxLengthBytes` (the largest single `Vec` the runtime allows), so the
129
- // two-chunk blob spans two read chunks without any one `Vec` exceeding the cap.
130
- const largeMultiChunkBlobMeta = (chunk0, chunk1, expectedType, expectedMime) => () => {
131
- const [root, hash] = seedBlob({})([chunk0, chunk1]);
132
- const [metaResp] = runSessionVirtual(root)([
133
- init, initialized,
134
- call(2, 'cas_get', { hash }),
135
- ]).slice(2);
136
- assert(!resultOf(metaResp).isError);
137
- const meta = casGetResultOf(metaResp);
138
- assertEq(meta.type, expectedType);
139
- assertEq(meta.mimeType, expectedMime);
140
- assertEq(meta.length, Number((length(chunk0) + length(chunk1)) / 8n));
141
- assertEq(meta.text, undefined);
142
- assertEq(meta.blob, undefined);
143
- };
144
- // A full `maxLengthBytes`-long chunk of repeated ASCII 'a' — valid UTF-8.
145
- const asciiChunk = repeat(maxLengthBytes)(vec8(0x61n));
146
- // The same length, but repeated 2-byte "é" (C3 A9) — valid UTF-8 of multi-byte symbols.
147
- const symbolChunk = repeat(maxLengthBytes / 2n)(u8ListToVec(msb)([0xc3, 0xa9]));
148
- // A full chunk of 0xFF — an invalid UTF-8 lead byte, so binary (no magic match).
149
- const binaryChunk = repeat(maxLengthBytes)(vec8(0xffn));
150
- // 100,000 raw bytes of 0xFF: comfortably under `maxLengthBytes` (so `cas_get`'s
151
- // own `length > maxLengthBytes` guard does not fire), but base64 inflates it to
152
- // ceil(100_000/3)*4 = 133,336 chars — already past `maxLength` (131,072 bytes)
153
- // before the JSON-RPC envelope adds anything.
154
- const oversizedBase64Chunk = repeat(100000n)(vec8(0xffn));
155
- // 90,000 raw bytes: base64 inflates to 120,000 chars, leaving ~11 KiB of margin
156
- // under `maxLength` once the envelope is added — the paired "still succeeds" case.
157
- const boundaryBase64Chunk = repeat(90000n)(vec8(0xffn));
158
- // 33,000 `"` bytes (0x22): valid UTF-8, so `cas_get` classifies it as text and
159
- // takes the double-JSON-escaping path (`toJson` builds the inner CAS JSON, then
160
- // the outer `stringifyJson` embeds that as the `text` field). Each quote costs
161
- // 4 final bytes (2 on each escaping pass), so 33,000 of them alone push the
162
- // encoded line past `maxLength` (131,072 bytes) — well above the strict 32,769
163
- // minimum needed, without approaching any other size-related edge case.
164
- const quotesChunk = repeat(33000n)(vec8(0x22n));
165
- export const proof = {
166
- // Both chunks repeated ASCII → text/plain, no error on a > 128 KiB blob.
167
- getMetaLargeMultiChunkBlobNoError: largeMultiChunkBlobMeta(asciiChunk, asciiChunk, 'text', 'text/plain'),
168
- // Both chunks valid UTF-8 sequences of multi-byte symbols → text/plain.
169
- getMetaLargeMultiChunkUtf8Symbols: largeMultiChunkBlobMeta(symbolChunk, symbolChunk, 'text', 'text/plain'),
170
- // First chunk valid UTF-8, second chunk binary → base64/octet-stream. The
171
- // streaming validator must see the trailing binary chunk to reject text.
172
- getMetaLargeMultiChunkTextThenBinary: largeMultiChunkBlobMeta(asciiChunk, binaryChunk, 'base64', 'application/octet-stream'),
173
- // content:true on a present blob larger than `maxLength` reports a distinct
174
- // "too large" error, not "no such hash" — the blob exists, it just can't be
175
- // buffered inline. The metadata-only path (above) still returns its size/type.
176
- getContentLargeBlobTooLargeError: () => {
177
- const [root, hash] = seedBlob({})([asciiChunk, asciiChunk]);
178
- const [getResp] = runSessionVirtual(root)([
179
- init, initialized,
180
- call(2, 'cas_get', { hash, content: true }),
181
- ]).slice(2);
182
- assertEq(resultOf(getResp).isError, true);
183
- const text = textOf(getResp);
184
- assert(text.includes('too large'));
185
- assert(!text.includes('no such hash'));
186
- },
187
- // content:true on a genuinely absent hash still reports "no such hash" — the
188
- // oversized branch above must not absorb the absent case.
189
- getContentMissingHashIsError: () => {
190
- const absent = vecToCBase32(vec8(0x55n));
191
- const [resp] = session(call(2, 'cas_get', { hash: absent, content: true }));
192
- assertEq(resultOf(resp).isError, true);
193
- assert(textOf(resp).includes('no such hash'));
194
- },
195
- // A blob at exactly `maxLengthBytes` passes cas_get's own raw-length guard
196
- // (it checks the *stored* size, not the encoded response), but base64
197
- // inflation of a 100,000-byte blob alone already exceeds `maxLength` before
198
- // the JSON-RPC envelope is even added. The transport's `writeResponse`
199
- // (`tryUtf8`) must catch this and write a JSON-RPC internal-error response —
200
- // carrying the *original request's* `id` — instead of crashing the process.
201
- // See `fjs/protocol/mcp/stdio/module.f.ts` `writeResponse`.
202
- //
203
- // This test originally timed out under `bun test`'s native 5s per-test
204
- // limit (12-14s observed in CI on PR #1201) — the cost was in
205
- // `base64Encode`, quadratic before the `baseN.vecToString` fix (see
206
- // `fjs/basen/base64/proof.f.ts` `encodeLargeVecIsSlow`). Now well under budget on
207
- // both engines.
208
- getContentBase64InflationOverflowWritesInternalError: () => {
209
- const [root, hash] = seedBlob({})([oversizedBase64Chunk]);
210
- const [getResp] = runStdio(root)([
211
- call(2, 'cas_get', { hash, content: true }),
212
- ]);
213
- const err = getResp;
214
- assertEq(err.error?.code, -32603);
215
- assertEq(err.id, 2);
216
- },
217
- // The paired boundary case: a blob whose base64 inflation leaves enough
218
- // margin under `maxLength` for the envelope — confirms the fallback above
219
- // only triggers on genuine overflow, not on every `content:true` binary read.
220
- getContentBase64NearBoundarySucceeds: () => {
221
- const [root, hash] = seedBlob({})([boundaryBase64Chunk]);
222
- const [getResp] = runStdio(root)([
223
- call(2, 'cas_get', { hash, content: true }),
224
- ]);
225
- assert(!resultOf(getResp).isError);
226
- const result = casGetResultOf(getResp);
227
- assertEq(result.type, 'base64');
228
- assertEq(result.length, 90_000);
229
- },
230
- // A text blob made entirely of `"` characters keeps the *raw* content
231
- // (33,000 bytes) well under `maxLengthBytes`, but each quote costs 2 bytes on
232
- // the inner CAS-JSON escape and 4 bytes once the outer JSON-RPC envelope
233
- // re-escapes that backslash-quote pair — no `cas_get`-level size guard could
234
- // see this coming, only the transport's real encode attempt can. Seeded
235
- // directly into the store via `seedBlob` (not an inlined `cas_add` JSON
236
- // string) so the test exercises `cas_get`'s response-side escaping without
237
- // also paying for parsing a huge inline `content` argument on the request
238
- // side. Confirms `writeResponse`'s
239
- // `tryUtf8` fallback (not a crash) handles double-escaping overflow, again
240
- // preserving the request's `id`.
241
- getContentDoubleEscapedOverflowWritesInternalError: () => {
242
- const [root, hash] = seedBlob({})([quotesChunk]);
243
- const [getResp] = runStdio(root)([
244
- call(2, 'cas_get', { hash, content: true }),
245
- ]);
246
- const err = getResp;
247
- assertEq(err.error?.code, -32603);
248
- assertEq(err.id, 2);
249
- },
250
- toolsListAdvertisesSevenTools: () => {
251
- const [resp] = runSessionVirtual({})([init, initialized, list(2)]).slice(2);
252
- const tools = resp.result.tools;
253
- assertEq(tools.length, 7);
254
- assertEq(tools.map(t => t.name).join(','), 'cas_add,cas_get,cas_list,evo_list,evo_head,evo_revision,evo_add');
255
- const add = resp.result.tools[0];
256
- assertEq(add.inputSchema.type, 'object');
257
- },
258
- // The same server also exposes Evo (fjs/cas/evo): add a revision, then
259
- // find it via evo_list/evo_head — one process, one store, one cache.
260
- evoAddListHeadRoundTripsThroughCasServer: () => {
261
- const [addResp, listResp, headResp] = session(call(2, 'evo_add', { parents: [], subject: 'doc', snapshot: vecToCBase32(vec8(0x1n)) }), call(3, 'evo_list', {}), call(4, 'evo_head', { subject: 'doc' }));
262
- assert(!resultOf(addResp).isError);
263
- const hash = textOf(addResp);
264
- assert(hash.length > 0);
265
- assertEq(textOf(listResp), '["doc"]');
266
- assertEq(textOf(headResp), hash);
267
- },
268
- evoAddDomainErrorIsErrorThroughCasServer: () => {
269
- // Valid arguments, but the domain rule fails: `subject` is required
270
- // unless there is exactly one parent.
271
- const [resp] = session(call(2, 'evo_add', { parents: [] }));
272
- assertEq(resultOf(resp).isError, true);
273
- assert(textOf(resp).includes('subject is required'));
274
- },
275
- // A plain `cas_add` of `vnd.fjs.revision` content is folded into the Evo
276
- // cache too (`syncRevision`), not just `evo_add` — `cas_add`/`evo_add`
277
- // are two ways to reach the same store and cache.
278
- casAddSyncsEvoCacheForRevisionContent: () => {
279
- const [addResp, listResp, headResp] = session(call(2, 'cas_add', { content: revisionSample }), call(3, 'evo_list', {}), call(4, 'evo_head', { subject: '8' }));
280
- assert(!resultOf(addResp).isError);
281
- const hash = textOf(addResp);
282
- assertEq(textOf(listResp), '["8"]');
283
- assertEq(textOf(headResp), hash);
284
- },
285
- addReturnsHash: () => {
286
- const [resp] = session(call(2, 'cas_add', { content: textSample }));
287
- assert(!resultOf(resp).isError);
288
- assert(textOf(resp).length > 0);
289
- },
290
- // Text add→get round-trip: store as UTF-8 text, retrieve metadata.
291
- textAddGetMetaRoundTrips: () => {
292
- const [addResp] = session(call(2, 'cas_add', { content: textSample }));
293
- const hash = textOf(addResp);
294
- const [, getResp] = session(call(2, 'cas_add', { content: textSample }), call(3, 'cas_get', { hash }));
295
- assert(!resultOf(getResp).isError);
296
- const result = casGetResultOf(getResp);
297
- assertEq(result.mimeType, 'text/plain');
298
- assertEq(result.type, 'text');
299
- assertEq(result.length, textSample.length);
300
- assertEq(result.text, undefined);
301
- },
302
- // cas_get with content:true returns inline content.
303
- textAddGetContentRoundTrips: () => {
304
- const [addResp] = session(call(2, 'cas_add', { content: textSample }));
305
- const hash = textOf(addResp);
306
- const [, getResp] = session(call(2, 'cas_add', { content: textSample }), call(3, 'cas_get', { hash, content: true }));
307
- assert(!resultOf(getResp).isError);
308
- const result = casGetResultOf(getResp);
309
- assertEq(result.type, 'text');
310
- assertEq(result.mimeType, 'text/plain');
311
- assertEq(result.text, textSample);
312
- },
313
- // Binary add→get round-trip: store as base64, retrieve metadata without content.
314
- binaryAddGetMetaRoundTrips: () => {
315
- const [addResp] = session(call(2, 'cas_add', { content: binarySample, type: 'base64' }));
316
- const hash = textOf(addResp);
317
- const [, getResp] = session(call(2, 'cas_add', { content: binarySample, type: 'base64' }), call(3, 'cas_get', { hash }));
318
- assert(!resultOf(getResp).isError);
319
- const result = casGetResultOf(getResp);
320
- assertEq(result.text, undefined);
321
- assertEq(result.type, 'text');
322
- assertEq(result.mimeType, 'text/plain');
323
- },
324
- // Binary add→get with content:true returns inline base64 content.
325
- binaryAddGetContentRoundTrips: () => {
326
- const [addResp] = session(call(2, 'cas_add', { content: binarySample, type: 'base64' }));
327
- const hash = textOf(addResp);
328
- const [, getResp] = session(call(2, 'cas_add', { content: binarySample, type: 'base64' }), call(3, 'cas_get', { hash, content: true }));
329
- assert(!resultOf(getResp).isError);
330
- const result = casGetResultOf(getResp);
331
- assertEq(result.type, 'text');
332
- assertEq(result.text, '*');
333
- },
334
- addGetRoundTrips: () => {
335
- const [addResp] = session(call(2, 'cas_add', { content: textSample }));
336
- const hash = textOf(addResp);
337
- const [, getResp] = session(call(2, 'cas_add', { content: textSample }), call(3, 'cas_get', { hash, content: true }));
338
- assert(!resultOf(getResp).isError);
339
- const result = casGetResultOf(getResp);
340
- assertEq(result.text, textSample);
341
- },
342
- // Text content (no magic-byte match, valid UTF-8) comes back with type:'text' when content requested.
343
- getUntypedReturnsText: () => {
344
- const [addResp] = session(call(2, 'cas_add', { content: textSample }));
345
- const hash = textOf(addResp);
346
- const [, getResp] = session(call(2, 'cas_add', { content: textSample }), call(3, 'cas_get', { hash, content: true }));
347
- assertEq(item0(getResp) === null ? null : item0(getResp).type, 'text');
348
- const result = casGetResultOf(getResp);
349
- assertEq(result.type, 'text');
350
- assertEq(result.mimeType, 'text/plain');
351
- },
352
- // Bytes with a recognised PNG signature come back as base64 with mimeType image/png when content requested.
353
- getTypedReturnsBinaryJson: () => {
354
- const [addResp] = session(call(2, 'cas_add', { content: pngSample, type: 'base64' }));
355
- const hash = textOf(addResp);
356
- const [, getResp] = session(call(2, 'cas_add', { content: pngSample, type: 'base64' }), call(3, 'cas_get', { hash, content: true }));
357
- assert(!resultOf(getResp).isError);
358
- assertEq(item0(getResp).type, 'text');
359
- const result = casGetResultOf(getResp);
360
- assertEq(result.type, 'base64');
361
- assertEq(result.mimeType, 'image/png');
362
- assertEq(result.blob, pngSample);
363
- },
364
- // A stored `vnd.fjs.revision` blob is recognized by metadata-only
365
- // `cas_get` (content:false, the default) — the CAS read path routes the
366
- // bounded, whole-blob-text case through the dialect-aware detector rather
367
- // than only reporting the streaming text/plain verdict.
368
- getMetaRecognizesRevisionDialect: () => {
369
- const [addResp] = session(call(2, 'cas_add', { content: revisionSample }));
370
- const hash = textOf(addResp);
371
- const [, metaResp] = session(call(2, 'cas_add', { content: revisionSample }), call(3, 'cas_get', { hash }));
372
- assert(!resultOf(metaResp).isError);
373
- const meta = casGetResultOf(metaResp);
374
- assertEq(meta.mimeType, revisionMediaType);
375
- assertEq(meta.type, 'text');
376
- },
377
- // Same dialect recognition on the `content: true` path, alongside the
378
- // inline text payload.
379
- getContentRecognizesRevisionDialect: () => {
380
- const [addResp] = session(call(2, 'cas_add', { content: revisionSample }));
381
- const hash = textOf(addResp);
382
- const [, getResp] = session(call(2, 'cas_add', { content: revisionSample }), call(3, 'cas_get', { hash, content: true }));
383
- assert(!resultOf(getResp).isError);
384
- const result = casGetResultOf(getResp);
385
- assertEq(result.mimeType, revisionMediaType);
386
- assertEq(result.type, 'text');
387
- assertEq(result.text, revisionSample);
388
- },
389
- listEnumeratesStoredHashes: () => {
390
- const [addResp, listResp] = session(call(2, 'cas_add', { content: textSample }), call(3, 'cas_list', {}));
391
- const hash = textOf(addResp);
392
- assert(!resultOf(listResp).isError);
393
- assertEq(textOf(listResp), hash);
394
- },
395
- addInvalidContentIsError: () => {
396
- const [resp] = session(call(2, 'cas_add', { content: 'not valid!', type: 'base64' }));
397
- assertEq(resultOf(resp).isError, true);
398
- },
399
- addBadLengthContentIsError: () => {
400
- const [resp] = session(call(2, 'cas_add', { content: 'A', type: 'base64' }));
401
- assertEq(resultOf(resp).isError, true);
402
- },
403
- // 174_764 'A' chars × 6 bits = 1_048_584 bits, 8 over maxLength — base64Decode
404
- // returns null and cas_add surfaces an error.
405
- addBase64OverLimitIsError: () => {
406
- const [resp] = session(call(2, 'cas_add', { content: 'A'.repeat(174_764), type: 'base64' }));
407
- assertEq(resultOf(resp).isError, true);
408
- assert(textOf(resp).includes('too large or malformed'));
409
- assert(textOf(resp).includes('cas add'));
410
- },
411
- // One ASCII byte past maxLengthBytes — tryUtf8 returns null and cas_add
412
- // surfaces an error.
413
- addTextOverLimitIsError: () => {
414
- const [resp] = session(call(2, 'cas_add', { content: 'a'.repeat(Number(maxLengthBytes) + 1) }));
415
- assertEq(resultOf(resp).isError, true);
416
- assert(textOf(resp).includes('too large or malformed'));
417
- assert(textOf(resp).includes('cas add'));
418
- },
419
- // Exactly maxLengthBytes (131,072) ASCII bytes — tryUtf8 returns a non-null
420
- // Vec (len === maxLength, not over), so cas_add stores cleanly.
421
- addTextAtLimitSucceeds: () => {
422
- const [resp] = session(call(2, 'cas_add', { content: 'a'.repeat(Number(maxLengthBytes)) }));
423
- assert(!resultOf(resp).isError);
424
- assert(textOf(resp).length > 0);
425
- },
426
- // base64 of exactly maxLengthBytes — base64Decode trims the encoding's
427
- // padding bits from the last character before measuring the result
428
- // against maxLength, so a payload landing exactly at the limit decodes
429
- // and stores cleanly.
430
- addBase64AtLimitSucceeds: () => {
431
- const [resp] = session(call(2, 'cas_add', { content: base64OfA(maxLengthBytes), type: 'base64' }));
432
- assert(!resultOf(resp).isError);
433
- assert(textOf(resp).length > 0);
434
- },
435
- getUnterminatedHashIsError: () => {
436
- const [resp] = session(call(2, 'cas_get', { hash: '0' }));
437
- assertEq(resultOf(resp).isError, true);
438
- },
439
- addMissingContentIsError: () => {
440
- const [resp] = session(call(2, 'cas_add', {}));
441
- assertEq(resultOf(resp).isError, true);
442
- },
443
- getMissingHashArgumentIsError: () => {
444
- const [resp] = session(call(2, 'cas_get', {}));
445
- assertEq(resultOf(resp).isError, true);
446
- },
447
- getInvalidHashIsError: () => {
448
- const [resp] = session(call(2, 'cas_get', { hash: 'not valid!' }));
449
- assertEq(resultOf(resp).isError, true);
450
- },
451
- getMissingHashIsError: () => {
452
- const absent = vecToCBase32(vec8(0x99n));
453
- const [resp] = session(call(2, 'cas_get', { hash: absent }));
454
- assertEq(resultOf(resp).isError, true);
455
- },
456
- unknownToolIsError: () => {
457
- const [resp] = session(call(2, 'cas_remove', { hash: binarySample }));
458
- assertEq(resultOf(resp).isError, true);
459
- },
460
- toolErrorIsNotJsonRpcError: () => {
461
- const [resp] = session(call(2, 'cas_add', { content: 'not valid!', type: 'base64' }));
462
- assert(!('error' in resp));
463
- assert('result' in resp);
464
- },
465
- // cas_get without content:true returns only metadata.
466
- getMetaReturnsLengthAndMimeType: () => {
467
- const [addResp] = session(call(2, 'cas_add', { content: 'text content' }));
468
- const hash = textOf(addResp);
469
- const [, metaResp] = session(call(2, 'cas_add', { content: 'text content' }), call(3, 'cas_get', { hash }));
470
- assert(!resultOf(metaResp).isError);
471
- const meta = casGetResultOf(metaResp);
472
- assertEq(meta.mimeType, 'text/plain');
473
- assertEq(meta.type, 'text');
474
- assertEq(meta.length, 12);
475
- assertEq(meta.text, undefined);
476
- },
477
- getMetaBinaryBlob: () => {
478
- const [addResp] = session(call(2, 'cas_add', { content: pngSample, type: 'base64' }));
479
- const hash = textOf(addResp);
480
- const [, metaResp] = session(call(2, 'cas_add', { content: pngSample, type: 'base64' }), call(3, 'cas_get', { hash }));
481
- assert(!resultOf(metaResp).isError);
482
- const meta = casGetResultOf(metaResp);
483
- assertEq(meta.mimeType, 'image/png');
484
- assertEq(meta.type, 'base64');
485
- assertEq(meta.length, 10);
486
- assertEq(meta.blob, undefined);
487
- },
488
- getMetaOctetStreamForUnknownBinary: () => {
489
- const binaryContent = u8ListToVec(msb)([0xFF, 0xFE, 0x00, 0x01]);
490
- const binaryB64 = base64Encode(binaryContent);
491
- const [addResp] = session(call(2, 'cas_add', { content: binaryB64, type: 'base64' }));
492
- const hash = textOf(addResp);
493
- const [, metaResp] = session(call(2, 'cas_add', { content: binaryB64, type: 'base64' }), call(3, 'cas_get', { hash }));
494
- assert(!resultOf(metaResp).isError);
495
- const meta = casGetResultOf(metaResp);
496
- assertEq(meta.mimeType, 'application/octet-stream');
497
- assertEq(meta.type, 'base64');
498
- assertEq(meta.blob, undefined);
499
- },
500
- // A NUL-bearing blob is valid UTF-8 yet binary: cas_get must report
501
- // base64/octet-stream, not text/plain.
502
- getMetaOctetStreamForNulBlob: () => {
503
- const nulContent = u8ListToVec(msb)([0x00, 0x00, 0x00]);
504
- const nulB64 = base64Encode(nulContent);
505
- const [addResp] = session(call(2, 'cas_add', { content: nulB64, type: 'base64' }));
506
- const hash = textOf(addResp);
507
- const [, metaResp] = session(call(2, 'cas_add', { content: nulB64, type: 'base64' }), call(3, 'cas_get', { hash }));
508
- assert(!resultOf(metaResp).isError);
509
- const meta = casGetResultOf(metaResp);
510
- assertEq(meta.mimeType, 'application/octet-stream');
511
- assertEq(meta.type, 'base64');
512
- },
513
- getMetaMissingHashIsError: () => {
514
- const absent = vecToCBase32(vec8(0x77n));
515
- const [resp] = session(call(2, 'cas_get', { hash: absent }));
516
- assertEq(resultOf(resp).isError, true);
517
- },
518
- getMetaInvalidHashIsError: () => {
519
- const [resp] = session(call(2, 'cas_get', { hash: 'bad!' }));
520
- assertEq(resultOf(resp).isError, true);
521
- },
522
- // cas_get with content:true on octet-stream (no magic bytes, not UTF-8) returns inline base64.
523
- getOctetStreamWithContentIncludesBase64: () => {
524
- const binaryContent = u8ListToVec(msb)([0xFF, 0xFE, 0x00, 0x01]);
525
- const binaryB64 = base64Encode(binaryContent);
526
- const [addResp] = session(call(2, 'cas_add', { content: binaryB64, type: 'base64' }));
527
- const hash = textOf(addResp);
528
- const [, getResp] = session(call(2, 'cas_add', { content: binaryB64, type: 'base64' }), call(3, 'cas_get', { hash, content: true }));
529
- assert(!resultOf(getResp).isError);
530
- const result = casGetResultOf(getResp);
531
- assertEq(result.mimeType, 'application/octet-stream');
532
- assertEq(result.type, 'base64');
533
- assertEq(result.blob, binaryB64);
534
- },
535
- };