functionalscript 0.43.1 → 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.
- package/README.md +53 -21
- package/fjs/asn.1/module.f.d.mts +123 -0
- package/fjs/asn.1/module.f.mjs +459 -0
- package/fjs/asn.1/proof.f.mjs +309 -0
- package/fjs/asn.1/types.d.ts +37 -0
- package/fjs/asn.1/types.js +6 -0
- package/fjs/asserts/module.f.d.mts +37 -0
- package/fjs/asserts/module.f.mjs +49 -0
- package/fjs/asserts/proof.f.mjs +19 -0
- package/fjs/asserts/types.d.ts +11 -0
- package/fjs/asserts/types.js +6 -0
- package/fjs/basen/base128/module.f.d.mts +22 -0
- package/fjs/basen/base128/module.f.mjs +51 -0
- package/fjs/basen/base128/proof.f.d.mts +2 -0
- package/fjs/basen/base128/proof.f.mjs +30 -0
- package/fjs/basen/base64/module.f.d.mts +14 -0
- package/fjs/basen/base64/module.f.mjs +71 -0
- package/fjs/basen/base64/proof.f.d.mts +17 -0
- package/fjs/basen/base64/proof.f.mjs +147 -0
- package/fjs/basen/cbase32/module.f.d.mts +18 -0
- package/fjs/basen/cbase32/module.f.mjs +61 -0
- package/fjs/basen/cbase32/proof.f.d.mts +8 -0
- package/fjs/basen/cbase32/proof.f.mjs +77 -0
- package/fjs/basen/module.f.d.mts +30 -0
- package/fjs/basen/module.f.mjs +88 -0
- package/fjs/basen/proof.f.mjs +69 -0
- package/fjs/basen/types.d.ts +14 -0
- package/fjs/basen/types.js +6 -0
- package/fjs/bnf/data/module.f.d.mts +47 -0
- package/fjs/bnf/data/module.f.mjs +188 -0
- package/fjs/bnf/data/proof.f.d.mts +13 -0
- package/fjs/bnf/data/proof.f.mjs +160 -0
- package/fjs/bnf/data/types.d.ts +35 -0
- package/fjs/bnf/data/types.js +6 -0
- package/fjs/bnf/descent/module.f.d.mts +33 -0
- package/fjs/bnf/descent/module.f.mjs +212 -0
- package/fjs/bnf/descent/proof.f.d.mts +13 -0
- package/fjs/bnf/descent/proof.f.mjs +351 -0
- package/fjs/bnf/descent/types.d.ts +71 -0
- package/fjs/bnf/descent/types.js +6 -0
- package/fjs/bnf/ll1/module.f.d.mts +41 -0
- package/fjs/bnf/ll1/module.f.mjs +199 -0
- package/fjs/bnf/ll1/proof.f.d.mts +16 -0
- package/fjs/bnf/ll1/proof.f.mjs +352 -0
- package/fjs/bnf/ll1/types.d.ts +59 -0
- package/fjs/bnf/ll1/types.js +6 -0
- package/fjs/bnf/module.f.d.mts +164 -0
- package/fjs/bnf/module.f.mjs +298 -0
- package/fjs/bnf/proof.f.d.mts +17 -0
- package/fjs/bnf/proof.f.mjs +89 -0
- package/fjs/bnf/testlib.f.d.mts +10 -0
- package/fjs/bnf/testlib.f.mjs +196 -0
- package/fjs/bnf/token_symbol/module.f.d.mts +35 -0
- package/fjs/bnf/token_symbol/module.f.mjs +62 -0
- package/fjs/bnf/token_symbol/proof.f.mjs +43 -0
- package/fjs/bnf/token_symbol/types.d.ts +27 -0
- package/fjs/bnf/token_symbol/types.js +6 -0
- package/fjs/bnf/types.d.ts +67 -0
- package/fjs/bnf/types.js +6 -0
- package/fjs/cas/cli/module.f.d.mts +17 -0
- package/fjs/cas/cli/module.f.mjs +73 -0
- package/fjs/cas/cli/proof.f.d.mts +18 -0
- package/fjs/cas/cli/proof.f.mjs +118 -0
- package/fjs/cas/evo/module.f.d.mts +163 -0
- package/fjs/cas/evo/module.f.mjs +556 -0
- package/fjs/cas/evo/proof.f.d.mts +55 -0
- package/fjs/cas/evo/proof.f.mjs +749 -0
- package/fjs/cas/evo/types.d.ts +111 -0
- package/fjs/cas/evo/types.js +7 -0
- package/fjs/cas/module.f.d.mts +68 -0
- package/fjs/cas/module.f.mjs +363 -0
- package/fjs/cas/proof.f.d.mts +29 -0
- package/fjs/cas/proof.f.mjs +371 -0
- package/fjs/cas/types.d.ts +35 -0
- package/fjs/cas/types.js +6 -0
- package/fjs/ci/bun/module.f.d.mts +11 -0
- package/fjs/ci/bun/module.f.mjs +20 -0
- package/fjs/ci/common/module.f.d.mts +80 -0
- package/fjs/ci/common/module.f.mjs +87 -0
- package/fjs/ci/common/types.d.ts +27 -0
- package/fjs/ci/config/module.f.d.mts +45 -0
- package/fjs/ci/config/module.f.mjs +89 -0
- package/fjs/ci/deno/module.f.d.mts +16 -0
- package/fjs/ci/deno/module.f.mjs +29 -0
- package/fjs/ci/deno/proof.f.d.mts +4 -0
- package/fjs/ci/deno/proof.f.mjs +26 -0
- package/fjs/ci/module.f.d.mts +19 -0
- package/fjs/ci/module.f.mjs +89 -0
- package/fjs/ci/nix/module.f.d.mts +69 -0
- package/fjs/ci/nix/module.f.mjs +136 -0
- package/fjs/ci/nix/proof.f.d.mts +28 -0
- package/fjs/ci/nix/proof.f.mjs +146 -0
- package/fjs/ci/nix/types.d.ts +16 -0
- package/fjs/ci/nix/types.js +6 -0
- package/fjs/ci/node/module.f.d.mts +48 -0
- package/fjs/ci/node/module.f.mjs +139 -0
- package/fjs/ci/node/proof.f.mjs +18 -0
- package/fjs/ci/proof.f.d.mts +20 -0
- package/fjs/ci/proof.f.mjs +219 -0
- package/fjs/ci/rust/module.f.d.mts +15 -0
- package/fjs/ci/rust/module.f.mjs +108 -0
- package/fjs/ci/types.d.ts +9 -0
- package/fjs/ci/types.js +6 -0
- package/fjs/cli/module.f.d.mts +16 -0
- package/fjs/cli/module.f.mjs +51 -0
- package/fjs/cli/proof.f.d.mts +16 -0
- package/fjs/cli/proof.f.mjs +130 -0
- package/fjs/cli/types.d.ts +15 -0
- package/fjs/cli/types.js +6 -0
- package/fjs/common/monoid/module.f.d.mts +87 -0
- package/fjs/common/monoid/module.f.mjs +104 -0
- package/fjs/common/monoid/proof.f.d.mts +10 -0
- package/fjs/common/monoid/proof.f.mjs +58 -0
- package/fjs/common/monoid/types.d.ts +50 -0
- package/fjs/common/monoid/types.js +6 -0
- package/fjs/crypto/hmac/module.f.d.mts +32 -0
- package/fjs/crypto/hmac/module.f.mjs +65 -0
- package/fjs/crypto/hmac/proof.f.mjs +34 -0
- package/fjs/crypto/pow/module.f.d.mts +43 -0
- package/fjs/crypto/pow/module.f.mjs +93 -0
- package/fjs/crypto/pow/proof.f.mjs +121 -0
- package/fjs/crypto/pow/types.d.ts +19 -0
- package/fjs/crypto/pow/types.js +6 -0
- package/fjs/crypto/secp/module.f.d.mts +61 -0
- package/fjs/crypto/secp/module.f.mjs +204 -0
- package/fjs/crypto/secp/proof.f.d.mts +9 -0
- package/fjs/crypto/secp/proof.f.mjs +137 -0
- package/fjs/crypto/secp/types.d.ts +36 -0
- package/fjs/crypto/secp/types.js +6 -0
- package/fjs/crypto/sha2/module.f.d.mts +80 -0
- package/fjs/crypto/sha2/module.f.mjs +431 -0
- package/fjs/crypto/sha2/proof.f.d.mts +32 -0
- package/fjs/crypto/sha2/proof.f.mjs +144 -0
- package/fjs/crypto/sha2/types.d.ts +57 -0
- package/fjs/crypto/sha2/types.js +6 -0
- package/fjs/crypto/sign/module.f.d.mts +46 -0
- package/fjs/crypto/sign/module.f.mjs +189 -0
- package/fjs/crypto/sign/proof.f.d.mts +17 -0
- package/fjs/crypto/sign/proof.f.mjs +604 -0
- package/fjs/crypto/sign/types.d.ts +13 -0
- package/fjs/crypto/sign/types.js +6 -0
- package/fjs/crypto/vdf/module.f.d.mts +15 -0
- package/fjs/crypto/vdf/module.f.mjs +84 -0
- package/fjs/crypto/vdf/proof.f.mjs +106 -0
- package/fjs/crypto/vdf/types.d.ts +18 -0
- package/fjs/crypto/vdf/types.js +6 -0
- package/fjs/dev/module.f.d.mts +56 -0
- package/fjs/dev/module.f.mjs +170 -0
- package/fjs/dev/package_json/module.f.d.mts +32 -0
- package/fjs/dev/package_json/module.f.mjs +37 -0
- package/fjs/dev/package_json/proof.f.mjs +32 -0
- package/fjs/dev/proof.f.d.mts +13 -0
- package/fjs/dev/proof.f.mjs +78 -0
- package/fjs/dev/types.d.ts +14 -0
- package/fjs/dev/types.js +6 -0
- package/fjs/dev/update/module.f.d.mts +19 -0
- package/fjs/dev/update/module.f.mjs +36 -0
- package/fjs/dev/update/proof.f.d.mts +7 -0
- package/fjs/dev/update/proof.f.mjs +36 -0
- package/fjs/djs/ast/module.f.d.mts +35 -0
- package/fjs/djs/ast/module.f.mjs +82 -0
- package/fjs/djs/ast/proof.f.mjs +48 -0
- package/fjs/djs/ast/types.d.ts +54 -0
- package/fjs/djs/ast/types.js +8 -0
- package/fjs/djs/examples/input.f.mjs +4 -0
- package/fjs/djs/examples/m.f.mjs +1 -0
- package/fjs/djs/module.f.d.mts +17 -0
- package/fjs/djs/module.f.mjs +47 -0
- package/fjs/djs/parser/module.f.d.mts +75 -0
- package/fjs/djs/parser/module.f.mjs +547 -0
- package/fjs/djs/parser/proof.f.mjs +543 -0
- package/fjs/djs/parser/types.d.ts +11 -0
- package/fjs/djs/parser/types.js +7 -0
- package/fjs/djs/proof.f.mjs +52 -0
- package/fjs/djs/serializer/module.f.d.mts +30 -0
- package/fjs/djs/serializer/module.f.mjs +206 -0
- package/fjs/djs/serializer/proof.f.mjs +116 -0
- package/fjs/djs/tokenizer/module.f.d.mts +65 -0
- package/fjs/djs/tokenizer/module.f.mjs +624 -0
- package/fjs/djs/tokenizer/proof.f.mjs +980 -0
- package/fjs/djs/tokenizer/types.d.ts +20 -0
- package/fjs/djs/tokenizer/types.js +7 -0
- package/fjs/djs/transpiler/module.f.d.mts +44 -0
- package/fjs/djs/transpiler/module.f.mjs +141 -0
- package/fjs/djs/transpiler/proof.f.mjs +76 -0
- package/fjs/djs/types.d.ts +13 -0
- package/fjs/djs/types.js +7 -0
- package/fjs/effects/eff/module.f.d.mts +10 -0
- package/fjs/effects/eff/module.f.mjs +68 -0
- package/fjs/effects/eff/proof.f.d.mts +12 -0
- package/fjs/effects/eff/proof.f.mjs +66 -0
- package/fjs/effects/eff/types.d.ts +71 -0
- package/fjs/effects/eff/types.js +6 -0
- package/fjs/effects/list/module.f.d.mts +24 -0
- package/fjs/effects/list/module.f.mjs +34 -0
- package/fjs/effects/list/types.d.ts +26 -0
- package/fjs/effects/list/types.js +6 -0
- package/fjs/effects/memory/module.f.d.mts +32 -0
- package/fjs/effects/memory/module.f.mjs +44 -0
- package/fjs/effects/memory/proof.f.d.mts +12 -0
- package/fjs/effects/memory/proof.f.mjs +83 -0
- package/fjs/effects/memory/types.d.ts +18 -0
- package/fjs/effects/memory/types.js +6 -0
- package/fjs/effects/mock/module.f.d.mts +6 -0
- package/fjs/effects/mock/module.f.mjs +26 -0
- package/fjs/effects/mock/types.d.ts +15 -0
- package/fjs/effects/mock/types.js +6 -0
- package/fjs/effects/module.d.mts +7 -0
- package/fjs/effects/module.f.d.mts +350 -0
- package/fjs/effects/module.f.mjs +382 -0
- package/fjs/effects/module.mjs +18 -0
- package/fjs/effects/node/memory/module.d.mts +24 -0
- package/fjs/effects/node/memory/module.mjs +59 -0
- package/fjs/effects/node/memory/proof.mjs +43 -0
- package/fjs/effects/node/module.d.mts +54 -0
- package/fjs/effects/node/module.f.d.mts +172 -0
- package/fjs/effects/node/module.f.mjs +354 -0
- package/fjs/effects/node/module.mjs +393 -0
- package/fjs/effects/node/proof.f.d.mts +76 -0
- package/fjs/effects/node/proof.f.mjs +444 -0
- package/fjs/effects/node/types.d.ts +203 -0
- package/fjs/effects/node/types.js +6 -0
- package/fjs/effects/node/virtual/module.f.d.mts +31 -0
- package/fjs/effects/node/virtual/module.f.mjs +434 -0
- package/fjs/effects/node/virtual/proof.f.d.mts +35 -0
- package/fjs/effects/node/virtual/proof.f.mjs +226 -0
- package/fjs/effects/node/virtual/types.d.ts +39 -0
- package/fjs/effects/node/virtual/types.js +7 -0
- package/fjs/effects/proof.f.d.mts +62 -0
- package/fjs/effects/proof.f.mjs +231 -0
- package/fjs/effects/types.d.ts +115 -0
- package/fjs/effects/types.js +6 -0
- package/fjs/emergent_testing/all.test.js +2 -2
- package/fjs/emergent_testing/example.f.d.mts +16 -0
- package/fjs/emergent_testing/example.f.mjs +34 -0
- package/fjs/emergent_testing/module.f.d.mts +150 -0
- package/fjs/emergent_testing/module.f.mjs +414 -0
- package/fjs/emergent_testing/proof.f.d.mts +97 -0
- package/fjs/emergent_testing/proof.f.mjs +518 -0
- package/fjs/emergent_testing/types.d.ts +53 -0
- package/fjs/emergent_testing/types.js +6 -0
- package/fjs/fsc/bnf.f.d.mts +3 -0
- package/fjs/fsc/bnf.f.mjs +77 -0
- package/fjs/fsc/json.f.d.mts +13 -0
- package/fjs/fsc/json.f.mjs +124 -0
- package/fjs/fsc/module.f.d.mts +14 -0
- package/fjs/fsc/module.f.mjs +138 -0
- package/fjs/fsc/proof.f.mjs +119 -0
- package/fjs/fsm/module.f.d.mts +27 -0
- package/fjs/fsm/module.f.mjs +99 -0
- package/fjs/fsm/proof.f.mjs +146 -0
- package/fjs/js/tokenizer/module.f.d.mts +19 -0
- package/fjs/js/tokenizer/module.f.mjs +795 -0
- package/fjs/js/tokenizer/proof.f.d.mts +12 -0
- package/fjs/js/tokenizer/proof.f.mjs +681 -0
- package/fjs/js/tokenizer/types.d.ts +193 -0
- package/fjs/js/tokenizer/types.js +6 -0
- package/fjs/mcp/cas/module.f.d.mts +156 -0
- package/fjs/mcp/cas/module.f.mjs +302 -0
- package/fjs/mcp/evo/module.f.d.mts +88 -0
- package/fjs/mcp/evo/module.f.mjs +153 -0
- package/fjs/mcp/evo/proof.f.d.mts +17 -0
- package/fjs/mcp/evo/proof.f.mjs +166 -0
- package/fjs/mcp/module.f.d.mts +32 -0
- package/fjs/mcp/module.f.mjs +96 -0
- package/fjs/mcp/proof.f.d.mts +46 -0
- package/fjs/mcp/proof.f.mjs +725 -0
- package/fjs/media/html/module.f.d.mts +43 -0
- package/fjs/media/html/module.f.mjs +167 -0
- package/fjs/media/html/proof.f.mjs +77 -0
- package/fjs/media/html/types.d.ts +19 -0
- package/fjs/media/html/types.js +6 -0
- package/fjs/media/json/module.f.d.mts +48 -0
- package/fjs/media/json/module.f.mjs +104 -0
- package/fjs/media/json/parser/module.f.d.mts +30 -0
- package/fjs/media/json/parser/module.f.mjs +219 -0
- package/fjs/media/json/parser/proof.f.d.mts +8 -0
- package/fjs/media/json/parser/proof.f.mjs +314 -0
- package/fjs/media/json/parser/types.d.ts +34 -0
- package/fjs/media/json/parser/types.js +6 -0
- package/fjs/media/json/proof.f.mjs +79 -0
- package/fjs/media/json/rtti/module.f.d.mts +38 -0
- package/fjs/media/json/rtti/module.f.mjs +51 -0
- package/fjs/media/json/rtti/proof.f.d.mts +26 -0
- package/fjs/media/json/rtti/proof.f.mjs +86 -0
- package/fjs/media/json/schema/module.f.d.mts +79 -0
- package/fjs/media/json/schema/module.f.mjs +144 -0
- package/fjs/media/json/schema/proof.f.d.mts +40 -0
- package/fjs/media/json/schema/proof.f.mjs +93 -0
- package/fjs/media/json/serializer/module.f.d.mts +27 -0
- package/fjs/media/json/serializer/module.f.mjs +131 -0
- package/fjs/media/json/serializer/proof.f.mjs +92 -0
- package/fjs/media/json/tokenizer/module.f.d.mts +17 -0
- package/fjs/media/json/tokenizer/module.f.mjs +77 -0
- package/fjs/media/json/tokenizer/proof.f.d.mts +8 -0
- package/fjs/media/json/tokenizer/proof.f.mjs +291 -0
- package/fjs/media/json/tokenizer/types.d.ts +17 -0
- package/fjs/media/json/tokenizer/types.js +6 -0
- package/fjs/media/json/types.d.ts +25 -0
- package/fjs/media/json/types.js +13 -0
- package/fjs/media/module.f.d.mts +116 -0
- package/fjs/media/module.f.mjs +152 -0
- package/fjs/media/nix/module.f.d.mts +14 -0
- package/fjs/media/nix/module.f.mjs +261 -0
- package/fjs/media/nix/proof.f.mjs +181 -0
- package/fjs/media/nix/types.d.ts +22 -0
- package/fjs/media/nix/types.js +6 -0
- package/fjs/media/proof.f.d.mts +19 -0
- package/fjs/media/proof.f.mjs +159 -0
- package/fjs/media/revision/module.f.d.mts +119 -0
- package/fjs/media/revision/module.f.mjs +166 -0
- package/fjs/media/revision/proof.f.mjs +228 -0
- package/fjs/media/revision/types.d.ts +16 -0
- package/fjs/media/revision/types.js +8 -0
- package/fjs/media/rust/module.f.d.mts +61 -0
- package/fjs/media/rust/module.f.mjs +93 -0
- package/fjs/media/rust/proof.f.d.mts +17 -0
- package/fjs/media/rust/proof.f.mjs +50 -0
- package/fjs/media/type/module.f.d.mts +97 -0
- package/fjs/media/type/module.f.mjs +281 -0
- package/fjs/media/type/proof.f.mjs +285 -0
- package/fjs/media/type/types.d.ts +67 -0
- package/fjs/media/type/types.js +6 -0
- package/fjs/media/types.d.ts +26 -0
- package/fjs/media/types.js +7 -0
- package/fjs/module.f.d.mts +3 -0
- package/fjs/module.f.mjs +60 -0
- package/fjs/module.mjs +6 -0
- package/fjs/nanvm/module.f.d.mts +54 -0
- package/fjs/nanvm/module.f.mjs +240 -0
- package/fjs/nanvm/proof.f.d.mts +41 -0
- package/fjs/nanvm/proof.f.mjs +173 -0
- package/fjs/nanvm/rust/module.f.d.mts +54 -0
- package/fjs/nanvm/rust/module.f.mjs +166 -0
- package/fjs/nanvm/rust/proof.f.d.mts +21 -0
- package/fjs/nanvm/rust/proof.f.mjs +119 -0
- package/fjs/nanvm/types.d.ts +105 -0
- package/fjs/nanvm/types.js +11 -0
- package/fjs/nanvm/update/module.f.d.mts +23 -0
- package/fjs/nanvm/update/module.f.mjs +33 -0
- package/fjs/nanvm/update/proof.f.d.mts +9 -0
- package/fjs/nanvm/update/proof.f.mjs +32 -0
- package/fjs/path/module.f.d.mts +55 -0
- package/fjs/path/module.f.mjs +96 -0
- package/fjs/path/proof.f.mjs +125 -0
- package/fjs/proof.f.mjs +48 -0
- package/fjs/protocol/json_rpc/module.f.d.mts +127 -0
- package/fjs/protocol/json_rpc/module.f.mjs +112 -0
- package/fjs/protocol/json_rpc/proof.f.mjs +84 -0
- package/fjs/protocol/json_rpc/types.d.ts +30 -0
- package/fjs/protocol/json_rpc/types.js +8 -0
- package/fjs/protocol/mcp/module.f.d.mts +227 -0
- package/fjs/protocol/mcp/module.f.mjs +369 -0
- package/fjs/protocol/mcp/proof.f.d.mts +53 -0
- package/fjs/protocol/mcp/proof.f.mjs +312 -0
- package/fjs/protocol/mcp/stdio/module.f.d.mts +52 -0
- package/fjs/protocol/mcp/stdio/module.f.mjs +132 -0
- package/fjs/protocol/mcp/stdio/proof.f.d.mts +20 -0
- package/fjs/protocol/mcp/stdio/proof.f.mjs +190 -0
- package/fjs/protocol/mcp/types.d.ts +59 -0
- package/fjs/protocol/mcp/types.js +8 -0
- package/fjs/sul/id/module.f.d.mts +37 -0
- package/fjs/sul/id/module.f.mjs +143 -0
- package/fjs/sul/id/proof.f.mjs +72 -0
- package/fjs/sul/id/types.d.ts +8 -0
- package/fjs/sul/id/types.js +6 -0
- package/fjs/sul/level/hash/module.f.d.mts +37 -0
- package/fjs/sul/level/hash/module.f.mjs +61 -0
- package/fjs/sul/level/hash/proof.f.d.mts +15 -0
- package/fjs/sul/level/hash/proof.f.mjs +131 -0
- package/fjs/sul/level/hash/types.d.ts +20 -0
- package/fjs/sul/level/hash/types.js +6 -0
- package/fjs/sul/level/literal/module.f.d.mts +54 -0
- package/fjs/sul/level/literal/module.f.mjs +120 -0
- package/fjs/sul/level/literal/proof.f.mjs +788 -0
- package/fjs/sul/level/literal/types.d.ts +31 -0
- package/fjs/sul/level/literal/types.js +6 -0
- package/fjs/sul/module.f.d.mts +25 -0
- package/fjs/sul/module.f.mjs +69 -0
- package/fjs/sul/proof.f.d.mts +11 -0
- package/fjs/sul/proof.f.mjs +62 -0
- package/fjs/sul/types.d.ts +19 -0
- package/fjs/sul/types.js +6 -0
- package/fjs/text/ascii/module.f.d.mts +136 -0
- package/fjs/text/ascii/module.f.mjs +224 -0
- package/fjs/text/ascii/proof.f.mjs +16 -0
- package/fjs/text/code_point/module.f.d.mts +74 -0
- package/fjs/text/code_point/module.f.mjs +139 -0
- package/fjs/text/code_point/proof.f.mjs +80 -0
- package/fjs/text/module.f.d.mts +39 -0
- package/fjs/text/module.f.mjs +61 -0
- package/fjs/text/proof.f.mjs +48 -0
- package/fjs/text/sgr/module.f.d.mts +58 -0
- package/fjs/text/sgr/module.f.mjs +99 -0
- package/fjs/text/sgr/proof.f.mjs +39 -0
- package/fjs/text/sgr/types.d.ts +12 -0
- package/fjs/text/sgr/types.js +6 -0
- package/fjs/text/types.d.ts +13 -0
- package/fjs/text/types.js +6 -0
- package/fjs/text/utf16/module.f.d.mts +147 -0
- package/fjs/text/utf16/module.f.mjs +350 -0
- package/fjs/text/utf16/proof.f.d.mts +11 -0
- package/fjs/text/utf16/proof.f.mjs +158 -0
- package/fjs/text/utf16/types.d.ts +19 -0
- package/fjs/text/utf16/types.js +6 -0
- package/fjs/text/utf8/module.f.d.mts +69 -0
- package/fjs/text/utf8/module.f.mjs +280 -0
- package/fjs/text/utf8/proof.f.mjs +217 -0
- package/fjs/text/utf8/types.d.ts +26 -0
- package/fjs/text/utf8/types.js +6 -0
- package/fjs/types/array/module.f.d.mts +68 -0
- package/fjs/types/array/module.f.mjs +101 -0
- package/fjs/types/array/proof.f.mjs +98 -0
- package/fjs/types/array/types.d.ts +13 -0
- package/fjs/types/array/types.js +6 -0
- package/fjs/types/bigfloat/module.f.d.mts +14 -0
- package/fjs/types/bigfloat/module.f.mjs +99 -0
- package/fjs/types/bigfloat/proof.f.mjs +218 -0
- package/fjs/types/bigfloat/types.d.ts +6 -0
- package/fjs/types/bigfloat/types.js +6 -0
- package/fjs/types/bigint/benchmark.d.mts +1 -0
- package/fjs/types/bigint/benchmark.mjs +205 -0
- package/fjs/types/bigint/module.f.d.mts +176 -0
- package/fjs/types/bigint/module.f.mjs +289 -0
- package/fjs/types/bigint/proof.f.d.mts +39 -0
- package/fjs/types/bigint/proof.f.mjs +443 -0
- package/fjs/types/bigint/types.d.ts +14 -0
- package/fjs/types/bigint/types.js +6 -0
- package/fjs/types/bit_vec/module.f.d.mts +199 -0
- package/fjs/types/bit_vec/module.f.mjs +485 -0
- package/fjs/types/bit_vec/proof.f.mjs +495 -0
- package/fjs/types/bit_vec/types.d.ts +51 -0
- package/fjs/types/bit_vec/types.js +6 -0
- package/fjs/types/btree/find/module.f.d.mts +15 -0
- package/fjs/types/btree/find/module.f.mjs +80 -0
- package/fjs/types/btree/find/proof.f.d.mts +4 -0
- package/fjs/types/btree/find/proof.f.mjs +121 -0
- package/fjs/types/btree/find/types.d.ts +22 -0
- package/fjs/types/btree/find/types.js +6 -0
- package/fjs/types/btree/module.f.d.mts +10 -0
- package/fjs/types/btree/module.f.mjs +39 -0
- package/fjs/types/btree/proof.f.d.mts +14 -0
- package/fjs/types/btree/proof.f.mjs +85 -0
- package/fjs/types/btree/remove/module.f.d.mts +21 -0
- package/fjs/types/btree/remove/module.f.mjs +187 -0
- package/fjs/types/btree/remove/proof.f.mjs +472 -0
- package/fjs/types/btree/set/module.f.d.mts +5 -0
- package/fjs/types/btree/set/module.f.mjs +117 -0
- package/fjs/types/btree/set/proof.f.mjs +427 -0
- package/fjs/types/btree/types/module.f.d.mts +19 -0
- package/fjs/types/btree/types/module.f.mjs +19 -0
- package/fjs/types/btree/types/types.d.ts +14 -0
- package/fjs/types/btree/types/types.js +6 -0
- package/fjs/types/byte_set/module.f.d.mts +26 -0
- package/fjs/types/byte_set/module.f.mjs +66 -0
- package/fjs/types/byte_set/proof.f.d.mts +12 -0
- package/fjs/types/byte_set/proof.f.mjs +84 -0
- package/fjs/types/byte_set/types.d.ts +6 -0
- package/fjs/types/byte_set/types.js +6 -0
- package/fjs/types/function/compare/module.f.d.mts +44 -0
- package/fjs/types/function/compare/module.f.mjs +71 -0
- package/fjs/types/function/compare/proof.f.mjs +50 -0
- package/fjs/types/function/compare/types.d.ts +22 -0
- package/fjs/types/function/compare/types.js +6 -0
- package/fjs/types/function/module.f.d.mts +26 -0
- package/fjs/types/function/module.f.mjs +32 -0
- package/fjs/types/function/operator/module.f.d.mts +37 -0
- package/fjs/types/function/operator/module.f.mjs +55 -0
- package/fjs/types/function/operator/proof.f.mjs +76 -0
- package/fjs/types/function/operator/types.d.ts +39 -0
- package/fjs/types/function/operator/types.js +6 -0
- package/fjs/types/function/proof.f.mjs +16 -0
- package/fjs/types/function/types.d.ts +16 -0
- package/fjs/types/function/types.js +6 -0
- package/fjs/types/list/module.f.d.mts +88 -0
- package/fjs/types/list/module.f.mjs +309 -0
- package/fjs/types/list/proof.f.d.mts +32 -0
- package/fjs/types/list/proof.f.mjs +363 -0
- package/fjs/types/list/types.d.ts +36 -0
- package/fjs/types/list/types.js +6 -0
- package/fjs/types/map/module.f.d.mts +13 -0
- package/fjs/types/map/module.f.mjs +42 -0
- package/fjs/types/map/proof.f.mjs +25 -0
- package/fjs/types/nibble_set/module.f.d.mts +30 -0
- package/fjs/types/nibble_set/module.f.mjs +43 -0
- package/fjs/types/nibble_set/proof.f.mjs +59 -0
- package/fjs/types/nibble_set/types.d.ts +9 -0
- package/fjs/types/nibble_set/types.js +6 -0
- package/fjs/types/nominal/module.f.d.mts +9 -0
- package/fjs/types/nominal/module.f.mjs +16 -0
- package/fjs/types/nominal/proof.f.d.mts +7 -0
- package/fjs/types/nominal/proof.f.mjs +79 -0
- package/fjs/types/nominal/types.d.ts +25 -0
- package/fjs/types/nominal/types.js +6 -0
- package/fjs/types/nullable/module.f.d.mts +38 -0
- package/fjs/types/nullable/module.f.mjs +53 -0
- package/fjs/types/nullable/proof.f.mjs +34 -0
- package/fjs/types/nullable/types.d.ts +6 -0
- package/fjs/types/nullable/types.js +6 -0
- package/fjs/types/number/module.f.d.mts +23 -0
- package/fjs/types/number/module.f.mjs +55 -0
- package/fjs/types/number/proof.f.mjs +204 -0
- package/fjs/types/object/module.f.d.mts +33 -0
- package/fjs/types/object/module.f.mjs +58 -0
- package/fjs/types/object/proof.f.d.mts +25 -0
- package/fjs/types/object/proof.f.mjs +26 -0
- package/fjs/types/object/types.d.ts +50 -0
- package/fjs/types/object/types.js +8 -0
- package/fjs/types/ordered_map/module.f.d.mts +21 -0
- package/fjs/types/ordered_map/module.f.mjs +54 -0
- package/fjs/types/ordered_map/proof.f.mjs +88 -0
- package/fjs/types/ordered_map/types.d.ts +8 -0
- package/fjs/types/ordered_map/types.js +6 -0
- package/fjs/types/patricia_trie/module.f.d.mts +19 -0
- package/fjs/types/patricia_trie/module.f.mjs +43 -0
- package/fjs/types/patricia_trie/proof.f.d.mts +14 -0
- package/fjs/types/patricia_trie/proof.f.mjs +148 -0
- package/fjs/types/patricia_trie/types.d.ts +34 -0
- package/fjs/types/patricia_trie/types.js +6 -0
- package/fjs/types/prime_field/module.f.d.mts +42 -0
- package/fjs/types/prime_field/module.f.mjs +136 -0
- package/fjs/types/prime_field/proof.f.mjs +131 -0
- package/fjs/types/prime_field/types.d.ts +38 -0
- package/fjs/types/prime_field/types.js +6 -0
- package/fjs/types/range/module.f.d.mts +11 -0
- package/fjs/types/range/module.f.mjs +13 -0
- package/fjs/types/range/proof.f.mjs +10 -0
- package/fjs/types/range/types.d.ts +6 -0
- package/fjs/types/range/types.js +6 -0
- package/fjs/types/range_map/module.f.d.mts +72 -0
- package/fjs/types/range_map/module.f.mjs +130 -0
- package/fjs/types/range_map/proof.f.d.mts +7 -0
- package/fjs/types/range_map/proof.f.mjs +186 -0
- package/fjs/types/range_map/types.d.ts +56 -0
- package/fjs/types/range_map/types.js +6 -0
- package/fjs/types/range_set/module.f.d.mts +5 -0
- package/fjs/types/range_set/module.f.mjs +19 -0
- package/fjs/types/range_set/proof.f.mjs +26 -0
- package/fjs/types/result/module.d.mts +5 -0
- package/fjs/types/result/module.f.d.mts +59 -0
- package/fjs/types/result/module.f.mjs +67 -0
- package/fjs/types/result/module.mjs +22 -0
- package/fjs/types/result/proof.f.mjs +41 -0
- package/fjs/types/result/types.d.ts +17 -0
- package/fjs/types/result/types.js +6 -0
- package/fjs/types/rtti/common/module.f.d.mts +86 -0
- package/fjs/types/rtti/common/module.f.mjs +183 -0
- package/fjs/types/rtti/common/proof.f.d.mts +9 -0
- package/fjs/types/rtti/common/proof.f.mjs +64 -0
- package/fjs/types/rtti/common/types.d.ts +43 -0
- package/fjs/types/rtti/common/types.js +1 -0
- package/fjs/types/rtti/module.f.d.mts +76 -0
- package/fjs/types/rtti/module.f.mjs +110 -0
- package/fjs/types/rtti/parse/module.f.d.mts +9 -0
- package/fjs/types/rtti/parse/module.f.mjs +196 -0
- package/fjs/types/rtti/parse/proof.f.d.mts +122 -0
- package/fjs/types/rtti/parse/proof.f.mjs +363 -0
- package/fjs/types/rtti/parse/types.d.ts +12 -0
- package/fjs/types/rtti/parse/types.js +1 -0
- package/fjs/types/rtti/proof.f.d.mts +8 -0
- package/fjs/types/rtti/proof.f.mjs +20 -0
- package/fjs/types/rtti/ts/module.f.d.mts +34 -0
- package/fjs/types/rtti/ts/module.f.mjs +64 -0
- package/fjs/types/rtti/ts/proof.f.mjs +88 -0
- package/fjs/types/rtti/ts/types.d.ts +88 -0
- package/fjs/types/rtti/ts/types.js +1 -0
- package/fjs/types/rtti/types.d.ts +43 -0
- package/fjs/types/rtti/types.js +1 -0
- package/fjs/types/rtti/validate/module.f.d.mts +6 -0
- package/fjs/types/rtti/validate/module.f.mjs +169 -0
- package/fjs/types/rtti/validate/proof.f.d.mts +125 -0
- package/fjs/types/rtti/validate/proof.f.mjs +437 -0
- package/fjs/types/rtti/validate/types.d.ts +6 -0
- package/fjs/types/rtti/validate/types.js +1 -0
- package/fjs/types/sorted_list/module.f.d.mts +43 -0
- package/fjs/types/sorted_list/module.f.mjs +110 -0
- package/fjs/types/sorted_list/proof.f.d.mts +5 -0
- package/fjs/types/sorted_list/proof.f.mjs +52 -0
- package/fjs/types/sorted_list/types.d.ts +15 -0
- package/fjs/types/sorted_list/types.js +6 -0
- package/fjs/types/sorted_set/module.f.d.mts +24 -0
- package/fjs/types/sorted_set/module.f.mjs +56 -0
- package/fjs/types/sorted_set/proof.f.d.mts +7 -0
- package/fjs/types/sorted_set/proof.f.mjs +77 -0
- package/fjs/types/sorted_set/types.d.ts +6 -0
- package/fjs/types/sorted_set/types.js +6 -0
- package/fjs/types/string/module.f.d.mts +36 -0
- package/fjs/types/string/module.f.mjs +58 -0
- package/fjs/types/string/proof.f.mjs +76 -0
- package/fjs/types/string_set/module.f.d.mts +37 -0
- package/fjs/types/string_set/module.f.mjs +53 -0
- package/fjs/types/string_set/proof.f.mjs +46 -0
- package/fjs/types/string_set/types.d.ts +7 -0
- package/fjs/types/string_set/types.js +6 -0
- package/fjs/types/ts/module.f.d.mts +20 -0
- package/fjs/types/ts/module.f.mjs +51 -0
- package/fjs/types/ts/proof.f.mjs +97 -0
- package/fjs/types/ts/types.d.ts +16 -0
- package/fjs/types/ts/types.js +8 -0
- package/fjs/types/uint8array/module.f.d.mts +31 -0
- package/fjs/types/uint8array/module.f.mjs +53 -0
- package/fjs/types/uint8array/proof.f.d.mts +17 -0
- package/fjs/types/uint8array/proof.f.mjs +73 -0
- package/fjs/website/module.f.d.mts +8 -0
- package/fjs/website/module.f.mjs +24 -0
- package/fjs/website/proof.f.mjs +14 -0
- package/package.json +12 -10
- package/todo/proof.f.d.mts +22 -0
- package/todo/proof.f.mjs +59 -0
- package/fjs/asn.1/module.f.d.ts +0 -62
- package/fjs/asn.1/module.f.js +0 -278
- package/fjs/asn.1/proof.f.js +0 -285
- package/fjs/asserts/module.f.d.ts +0 -36
- package/fjs/asserts/module.f.js +0 -39
- package/fjs/asserts/proof.f.js +0 -18
- package/fjs/base_n/module.f.d.ts +0 -45
- package/fjs/base_n/module.f.js +0 -72
- package/fjs/base_n/proof.f.js +0 -73
- package/fjs/basen/base128/module.f.d.ts +0 -20
- package/fjs/basen/base128/module.f.js +0 -43
- package/fjs/basen/base128/proof.f.js +0 -26
- package/fjs/basen/base64/module.f.d.ts +0 -9
- package/fjs/basen/base64/module.f.js +0 -71
- package/fjs/basen/base64/proof.f.d.ts +0 -16
- package/fjs/basen/base64/proof.f.js +0 -139
- package/fjs/basen/cbase32/module.f.d.ts +0 -11
- package/fjs/basen/cbase32/module.f.js +0 -55
- package/fjs/basen/cbase32/proof.f.d.ts +0 -7
- package/fjs/basen/cbase32/proof.f.js +0 -62
- package/fjs/bnf/data/module.f.d.ts +0 -52
- package/fjs/bnf/data/module.f.js +0 -143
- package/fjs/bnf/data/proof.f.d.ts +0 -8
- package/fjs/bnf/data/proof.f.js +0 -169
- package/fjs/bnf/descent/module.f.d.ts +0 -87
- package/fjs/bnf/descent/module.f.js +0 -149
- package/fjs/bnf/descent/proof.f.d.ts +0 -7
- package/fjs/bnf/descent/proof.f.js +0 -368
- package/fjs/bnf/ll1/module.f.d.ts +0 -72
- package/fjs/bnf/ll1/module.f.js +0 -155
- package/fjs/bnf/ll1/proof.f.d.ts +0 -10
- package/fjs/bnf/ll1/proof.f.js +0 -375
- package/fjs/bnf/module.f.d.ts +0 -165
- package/fjs/bnf/module.f.js +0 -174
- package/fjs/bnf/proof.f.d.ts +0 -12
- package/fjs/bnf/proof.f.js +0 -69
- package/fjs/bnf/testlib.f.d.ts +0 -3
- package/fjs/bnf/testlib.f.js +0 -138
- package/fjs/bnf/token_symbol/module.f.d.ts +0 -38
- package/fjs/bnf/token_symbol/module.f.js +0 -48
- package/fjs/bnf/token_symbol/proof.f.js +0 -37
- package/fjs/cas/cli/module.f.d.ts +0 -6
- package/fjs/cas/cli/module.f.js +0 -53
- package/fjs/cas/cli/proof.f.d.ts +0 -17
- package/fjs/cas/cli/proof.f.js +0 -112
- package/fjs/cas/evo/module.f.d.ts +0 -223
- package/fjs/cas/evo/module.f.js +0 -455
- package/fjs/cas/evo/proof.f.d.ts +0 -47
- package/fjs/cas/evo/proof.f.js +0 -707
- package/fjs/cas/module.f.d.ts +0 -64
- package/fjs/cas/module.f.js +0 -255
- package/fjs/cas/proof.f.d.ts +0 -18
- package/fjs/cas/proof.f.js +0 -305
- package/fjs/ci/bun/module.f.d.ts +0 -2
- package/fjs/ci/bun/module.f.js +0 -15
- package/fjs/ci/common/module.f.d.ts +0 -88
- package/fjs/ci/common/module.f.js +0 -63
- package/fjs/ci/config/module.f.d.ts +0 -45
- package/fjs/ci/config/module.f.js +0 -80
- package/fjs/ci/deno/module.f.d.ts +0 -10
- package/fjs/ci/deno/module.f.js +0 -28
- package/fjs/ci/deno/proof.f.d.ts +0 -5
- package/fjs/ci/deno/proof.f.js +0 -26
- package/fjs/ci/module.f.d.ts +0 -13
- package/fjs/ci/module.f.js +0 -58
- package/fjs/ci/nix/module.f.d.ts +0 -61
- package/fjs/ci/nix/module.f.js +0 -92
- package/fjs/ci/nix/proof.f.d.ts +0 -23
- package/fjs/ci/nix/proof.f.js +0 -109
- package/fjs/ci/node/module.f.d.ts +0 -28
- package/fjs/ci/node/module.f.js +0 -92
- package/fjs/ci/node/proof.f.js +0 -17
- package/fjs/ci/proof.f.d.ts +0 -18
- package/fjs/ci/proof.f.js +0 -182
- package/fjs/ci/rust/module.f.d.ts +0 -3
- package/fjs/ci/rust/module.f.js +0 -75
- package/fjs/cli/module.f.d.ts +0 -11
- package/fjs/cli/module.f.js +0 -34
- package/fjs/cli/proof.f.d.ts +0 -14
- package/fjs/cli/proof.f.js +0 -111
- package/fjs/common/monoid/module.f.d.ts +0 -126
- package/fjs/common/monoid/module.f.js +0 -88
- package/fjs/common/monoid/proof.f.d.ts +0 -9
- package/fjs/common/monoid/proof.f.js +0 -48
- package/fjs/crypto/hmac/module.f.d.ts +0 -29
- package/fjs/crypto/hmac/module.f.js +0 -56
- package/fjs/crypto/hmac/proof.f.js +0 -32
- package/fjs/crypto/pow/module.f.d.ts +0 -37
- package/fjs/crypto/pow/module.f.js +0 -72
- package/fjs/crypto/pow/proof.f.js +0 -111
- package/fjs/crypto/secp/module.f.d.ts +0 -85
- package/fjs/crypto/secp/module.f.js +0 -176
- package/fjs/crypto/secp/proof.f.d.ts +0 -8
- package/fjs/crypto/secp/proof.f.js +0 -124
- package/fjs/crypto/sha2/module.f.d.ts +0 -102
- package/fjs/crypto/sha2/module.f.js +0 -266
- package/fjs/crypto/sha2/proof.f.d.ts +0 -31
- package/fjs/crypto/sha2/proof.f.js +0 -139
- package/fjs/crypto/sign/module.f.d.ts +0 -33
- package/fjs/crypto/sign/module.f.js +0 -163
- package/fjs/crypto/sign/proof.f.d.ts +0 -11
- package/fjs/crypto/sign/proof.f.js +0 -562
- package/fjs/crypto/vdf/module.f.d.ts +0 -21
- package/fjs/crypto/vdf/module.f.js +0 -57
- package/fjs/crypto/vdf/proof.f.js +0 -94
- package/fjs/dev/module.f.d.ts +0 -57
- package/fjs/dev/module.f.js +0 -135
- package/fjs/dev/package_json/module.f.d.ts +0 -16
- package/fjs/dev/package_json/module.f.js +0 -24
- package/fjs/dev/package_json/proof.f.js +0 -28
- package/fjs/dev/proof.f.d.ts +0 -13
- package/fjs/dev/proof.f.js +0 -77
- package/fjs/dev/update/module.f.d.ts +0 -11
- package/fjs/dev/update/module.f.js +0 -20
- package/fjs/dev/update/proof.f.d.ts +0 -7
- package/fjs/dev/update/proof.f.js +0 -35
- package/fjs/djs/ast/module.f.d.ts +0 -62
- package/fjs/djs/ast/module.f.js +0 -61
- package/fjs/djs/ast/proof.f.js +0 -49
- package/fjs/djs/examples/input.f.js +0 -4
- package/fjs/djs/examples/m.f.js +0 -1
- package/fjs/djs/module.f.d.ts +0 -17
- package/fjs/djs/module.f.js +0 -22
- package/fjs/djs/parser/module.f.d.ts +0 -23
- package/fjs/djs/parser/module.f.js +0 -410
- package/fjs/djs/parser/proof.f.js +0 -556
- package/fjs/djs/proof.f.js +0 -50
- package/fjs/djs/serializer/module.f.d.ts +0 -17
- package/fjs/djs/serializer/module.f.js +0 -173
- package/fjs/djs/serializer/proof.f.js +0 -133
- package/fjs/djs/tokenizer/module.f.d.ts +0 -24
- package/fjs/djs/tokenizer/module.f.js +0 -472
- package/fjs/djs/tokenizer/proof.f.js +0 -1211
- package/fjs/djs/transpiler/module.f.d.ts +0 -41
- package/fjs/djs/transpiler/module.f.js +0 -88
- package/fjs/djs/transpiler/proof.f.js +0 -67
- package/fjs/effects/eff/module.f.d.ts +0 -72
- package/fjs/effects/eff/module.f.js +0 -46
- package/fjs/effects/eff/proof.f.d.ts +0 -11
- package/fjs/effects/eff/proof.f.js +0 -58
- package/fjs/effects/list/module.f.d.ts +0 -37
- package/fjs/effects/list/module.f.js +0 -17
- package/fjs/effects/memory/module.f.d.ts +0 -37
- package/fjs/effects/memory/module.f.js +0 -24
- package/fjs/effects/memory/proof.f.d.ts +0 -6
- package/fjs/effects/memory/proof.f.js +0 -50
- package/fjs/effects/mock/module.f.d.ts +0 -16
- package/fjs/effects/mock/module.f.js +0 -20
- package/fjs/effects/module.d.ts +0 -2
- package/fjs/effects/module.f.d.ts +0 -408
- package/fjs/effects/module.f.js +0 -312
- package/fjs/effects/module.js +0 -11
- package/fjs/effects/node/memory/module.d.ts +0 -20
- package/fjs/effects/node/memory/module.js +0 -44
- package/fjs/effects/node/memory/proof.js +0 -29
- package/fjs/effects/node/module.d.ts +0 -20
- package/fjs/effects/node/module.f.d.ts +0 -300
- package/fjs/effects/node/module.f.js +0 -171
- package/fjs/effects/node/module.js +0 -305
- package/fjs/effects/node/proof.f.d.ts +0 -69
- package/fjs/effects/node/proof.f.js +0 -409
- package/fjs/effects/node/virtual/module.f.d.ts +0 -49
- package/fjs/effects/node/virtual/module.f.js +0 -440
- package/fjs/effects/node/virtual/proof.f.d.ts +0 -33
- package/fjs/effects/node/virtual/proof.f.js +0 -186
- package/fjs/effects/proof.f.d.ts +0 -56
- package/fjs/effects/proof.f.js +0 -200
- package/fjs/emergent_testing/example.f.d.ts +0 -13
- package/fjs/emergent_testing/example.f.js +0 -31
- package/fjs/emergent_testing/module.f.d.ts +0 -140
- package/fjs/emergent_testing/module.f.js +0 -289
- package/fjs/emergent_testing/proof.f.d.ts +0 -67
- package/fjs/emergent_testing/proof.f.js +0 -416
- package/fjs/fsc/bnf.f.d.ts +0 -2
- package/fjs/fsc/bnf.f.js +0 -42
- package/fjs/fsc/json.f.d.ts +0 -7
- package/fjs/fsc/json.f.js +0 -64
- package/fjs/fsc/module.f.d.ts +0 -11
- package/fjs/fsc/module.f.js +0 -73
- package/fjs/fsc/proof.f.js +0 -104
- package/fjs/fsm/module.f.d.ts +0 -17
- package/fjs/fsm/module.f.js +0 -55
- package/fjs/fsm/proof.f.js +0 -126
- package/fjs/js/tokenizer/module.f.d.ts +0 -104
- package/fjs/js/tokenizer/module.f.js +0 -547
- package/fjs/js/tokenizer/proof.f.d.ts +0 -9
- package/fjs/js/tokenizer/proof.f.js +0 -986
- package/fjs/mcp/cas/module.f.d.ts +0 -27
- package/fjs/mcp/cas/module.f.js +0 -232
- package/fjs/mcp/evo/module.f.d.ts +0 -32
- package/fjs/mcp/evo/module.f.js +0 -99
- package/fjs/mcp/evo/proof.f.d.ts +0 -12
- package/fjs/mcp/evo/proof.f.js +0 -147
- package/fjs/mcp/module.f.d.ts +0 -56
- package/fjs/mcp/module.f.js +0 -69
- package/fjs/mcp/proof.f.d.ts +0 -45
- package/fjs/mcp/proof.f.js +0 -535
- package/fjs/media/html/module.f.d.ts +0 -52
- package/fjs/media/html/module.f.js +0 -117
- package/fjs/media/html/proof.f.js +0 -65
- package/fjs/media/json/module.f.d.ts +0 -64
- package/fjs/media/json/module.f.js +0 -109
- package/fjs/media/json/parser/module.f.d.ts +0 -21
- package/fjs/media/json/parser/module.f.js +0 -194
- package/fjs/media/json/parser/proof.f.d.ts +0 -5
- package/fjs/media/json/parser/proof.f.js +0 -314
- package/fjs/media/json/proof.f.js +0 -98
- package/fjs/media/json/schema/module.f.d.ts +0 -78
- package/fjs/media/json/schema/module.f.js +0 -96
- package/fjs/media/json/schema/proof.f.d.ts +0 -36
- package/fjs/media/json/schema/proof.f.js +0 -83
- package/fjs/media/json/serializer/module.f.d.ts +0 -28
- package/fjs/media/json/serializer/module.f.js +0 -73
- package/fjs/media/json/serializer/proof.f.js +0 -94
- package/fjs/media/json/tokenizer/module.f.d.ts +0 -15
- package/fjs/media/json/tokenizer/module.f.js +0 -63
- package/fjs/media/json/tokenizer/proof.f.d.ts +0 -5
- package/fjs/media/json/tokenizer/proof.f.js +0 -417
- package/fjs/media/module.f.d.ts +0 -119
- package/fjs/media/module.f.js +0 -88
- package/fjs/media/nix/module.f.d.ts +0 -30
- package/fjs/media/nix/module.f.js +0 -166
- package/fjs/media/nix/proof.f.js +0 -127
- package/fjs/media/proof.f.d.ts +0 -19
- package/fjs/media/proof.f.js +0 -127
- package/fjs/media/revision/module.f.d.ts +0 -94
- package/fjs/media/revision/module.f.js +0 -143
- package/fjs/media/revision/proof.f.js +0 -190
- package/fjs/media/type/module.f.d.ts +0 -135
- package/fjs/media/type/module.f.js +0 -231
- package/fjs/media/type/proof.f.js +0 -213
- package/fjs/module.f.d.ts +0 -2
- package/fjs/module.f.js +0 -50
- package/fjs/module.js +0 -4
- package/fjs/path/module.f.d.ts +0 -46
- package/fjs/path/module.f.js +0 -71
- package/fjs/path/proof.f.js +0 -119
- package/fjs/proof.f.js +0 -38
- package/fjs/protocol/json_rpc/module.f.d.ts +0 -114
- package/fjs/protocol/json_rpc/module.f.js +0 -89
- package/fjs/protocol/json_rpc/proof.f.js +0 -68
- package/fjs/protocol/mcp/module.f.d.ts +0 -239
- package/fjs/protocol/mcp/module.f.js +0 -272
- package/fjs/protocol/mcp/proof.f.d.ts +0 -34
- package/fjs/protocol/mcp/proof.f.js +0 -208
- package/fjs/protocol/mcp/stdio/module.f.d.ts +0 -47
- package/fjs/protocol/mcp/stdio/module.f.js +0 -78
- package/fjs/protocol/mcp/stdio/proof.f.d.ts +0 -13
- package/fjs/protocol/mcp/stdio/proof.f.js +0 -143
- package/fjs/sul/id/module.f.d.ts +0 -33
- package/fjs/sul/id/module.f.js +0 -93
- package/fjs/sul/id/proof.f.js +0 -61
- package/fjs/sul/level/hash/module.f.d.ts +0 -38
- package/fjs/sul/level/hash/module.f.js +0 -43
- package/fjs/sul/level/hash/proof.f.d.ts +0 -13
- package/fjs/sul/level/hash/proof.f.js +0 -112
- package/fjs/sul/level/literal/module.f.d.ts +0 -64
- package/fjs/sul/level/literal/module.f.js +0 -88
- package/fjs/sul/level/literal/proof.f.js +0 -714
- package/fjs/sul/module.f.d.ts +0 -23
- package/fjs/sul/module.f.js +0 -46
- package/fjs/sul/proof.f.d.ts +0 -9
- package/fjs/sul/proof.f.js +0 -47
- package/fjs/text/ascii/module.f.d.ts +0 -136
- package/fjs/text/ascii/module.f.js +0 -154
- package/fjs/text/ascii/proof.f.js +0 -14
- package/fjs/text/code_point/module.f.d.ts +0 -65
- package/fjs/text/code_point/module.f.js +0 -103
- package/fjs/text/code_point/proof.f.js +0 -72
- package/fjs/text/module.f.d.ts +0 -40
- package/fjs/text/module.f.js +0 -43
- package/fjs/text/proof.f.js +0 -44
- package/fjs/text/sgr/module.f.d.ts +0 -53
- package/fjs/text/sgr/module.f.js +0 -63
- package/fjs/text/sgr/proof.f.js +0 -33
- package/fjs/text/utf16/module.f.d.ts +0 -161
- package/fjs/text/utf16/module.f.js +0 -311
- package/fjs/text/utf16/proof.f.d.ts +0 -10
- package/fjs/text/utf16/proof.f.js +0 -144
- package/fjs/text/utf8/module.f.d.ts +0 -83
- package/fjs/text/utf8/module.f.js +0 -247
- package/fjs/text/utf8/proof.f.js +0 -217
- package/fjs/types/array/module.f.d.ts +0 -49
- package/fjs/types/array/module.f.js +0 -42
- package/fjs/types/array/proof.f.js +0 -92
- package/fjs/types/bigfloat/module.f.d.ts +0 -6
- package/fjs/types/bigfloat/module.f.js +0 -69
- package/fjs/types/bigfloat/proof.f.js +0 -217
- package/fjs/types/bigint/module.f.d.ts +0 -172
- package/fjs/types/bigint/module.f.js +0 -251
- package/fjs/types/bigint/proof.f.d.ts +0 -37
- package/fjs/types/bigint/proof.f.js +0 -400
- package/fjs/types/bit_vec/module.f.d.ts +0 -302
- package/fjs/types/bit_vec/module.f.js +0 -375
- package/fjs/types/bit_vec/proof.f.js +0 -465
- package/fjs/types/btree/find/module.f.d.ts +0 -25
- package/fjs/types/btree/find/module.f.js +0 -80
- package/fjs/types/btree/find/proof.f.d.ts +0 -3
- package/fjs/types/btree/find/proof.f.js +0 -108
- package/fjs/types/btree/module.f.d.ts +0 -9
- package/fjs/types/btree/module.f.js +0 -33
- package/fjs/types/btree/proof.f.d.ts +0 -13
- package/fjs/types/btree/proof.f.js +0 -64
- package/fjs/types/btree/remove/module.f.d.ts +0 -14
- package/fjs/types/btree/remove/module.f.js +0 -186
- package/fjs/types/btree/remove/proof.f.js +0 -484
- package/fjs/types/btree/set/module.f.d.ts +0 -8
- package/fjs/types/btree/set/module.f.js +0 -128
- package/fjs/types/btree/set/proof.f.js +0 -368
- package/fjs/types/btree/types/module.f.d.ts +0 -23
- package/fjs/types/btree/types/module.f.js +0 -9
- package/fjs/types/byte_set/module.f.d.ts +0 -16
- package/fjs/types/byte_set/module.f.js +0 -30
- package/fjs/types/byte_set/proof.f.d.ts +0 -11
- package/fjs/types/byte_set/proof.f.js +0 -79
- package/fjs/types/function/compare/module.f.d.ts +0 -49
- package/fjs/types/function/compare/module.f.js +0 -51
- package/fjs/types/function/compare/proof.f.js +0 -47
- package/fjs/types/function/module.f.d.ts +0 -28
- package/fjs/types/function/module.f.js +0 -19
- package/fjs/types/function/operator/module.f.d.ts +0 -48
- package/fjs/types/function/operator/module.f.js +0 -16
- package/fjs/types/function/operator/proof.f.js +0 -53
- package/fjs/types/function/proof.f.js +0 -10
- package/fjs/types/list/module.f.d.ts +0 -75
- package/fjs/types/list/module.f.js +0 -190
- package/fjs/types/list/proof.f.d.ts +0 -31
- package/fjs/types/list/proof.f.js +0 -330
- package/fjs/types/map/module.f.d.ts +0 -2
- package/fjs/types/map/module.f.js +0 -22
- package/fjs/types/map/proof.f.js +0 -22
- package/fjs/types/nibble_set/module.f.d.ts +0 -27
- package/fjs/types/nibble_set/module.f.js +0 -25
- package/fjs/types/nibble_set/proof.f.js +0 -60
- package/fjs/types/nominal/module.f.d.ts +0 -22
- package/fjs/types/nominal/module.f.js +0 -13
- package/fjs/types/nominal/proof.f.d.ts +0 -4
- package/fjs/types/nominal/proof.f.js +0 -48
- package/fjs/types/nullable/module.f.d.ts +0 -21
- package/fjs/types/nullable/module.f.js +0 -29
- package/fjs/types/nullable/proof.f.js +0 -29
- package/fjs/types/number/module.f.d.ts +0 -16
- package/fjs/types/number/module.f.js +0 -30
- package/fjs/types/number/proof.f.js +0 -124
- package/fjs/types/object/module.f.d.ts +0 -54
- package/fjs/types/object/module.f.js +0 -25
- package/fjs/types/object/proof.f.d.ts +0 -4
- package/fjs/types/object/proof.f.js +0 -14
- package/fjs/types/ordered_map/module.f.d.ts +0 -17
- package/fjs/types/ordered_map/module.f.js +0 -22
- package/fjs/types/ordered_map/proof.f.js +0 -73
- package/fjs/types/patricia_trie/module.f.d.ts +0 -25
- package/fjs/types/patricia_trie/module.f.js +0 -35
- package/fjs/types/patricia_trie/proof.f.d.ts +0 -13
- package/fjs/types/patricia_trie/proof.f.js +0 -121
- package/fjs/types/prime_field/module.f.d.ts +0 -62
- package/fjs/types/prime_field/module.f.js +0 -112
- package/fjs/types/prime_field/proof.f.js +0 -128
- package/fjs/types/range/module.f.d.ts +0 -8
- package/fjs/types/range/module.f.js +0 -2
- package/fjs/types/range/proof.f.js +0 -9
- package/fjs/types/range_map/module.f.d.ts +0 -92
- package/fjs/types/range_map/module.f.js +0 -82
- package/fjs/types/range_map/proof.f.d.ts +0 -6
- package/fjs/types/range_map/proof.f.js +0 -151
- package/fjs/types/range_set/module.f.d.ts +0 -5
- package/fjs/types/range_set/module.f.js +0 -16
- package/fjs/types/range_set/proof.f.d.ts +0 -1
- package/fjs/types/range_set/proof.f.js +0 -19
- package/fjs/types/result/module.d.ts +0 -3
- package/fjs/types/result/module.f.d.ts +0 -61
- package/fjs/types/result/module.f.js +0 -54
- package/fjs/types/result/module.js +0 -19
- package/fjs/types/result/proof.f.js +0 -31
- package/fjs/types/rtti/common/module.f.d.ts +0 -121
- package/fjs/types/rtti/common/module.f.js +0 -94
- package/fjs/types/rtti/common/proof.f.d.ts +0 -8
- package/fjs/types/rtti/common/proof.f.js +0 -51
- package/fjs/types/rtti/module.f.d.ts +0 -75
- package/fjs/types/rtti/module.f.js +0 -34
- package/fjs/types/rtti/parse/module.f.d.ts +0 -36
- package/fjs/types/rtti/parse/module.f.js +0 -114
- package/fjs/types/rtti/parse/proof.f.d.ts +0 -115
- package/fjs/types/rtti/parse/proof.f.js +0 -334
- package/fjs/types/rtti/proof.f.d.ts +0 -5
- package/fjs/types/rtti/proof.f.js +0 -16
- package/fjs/types/rtti/ts/module.f.d.ts +0 -118
- package/fjs/types/rtti/ts/module.f.js +0 -59
- package/fjs/types/rtti/ts/proof.f.js +0 -75
- package/fjs/types/rtti/validate/module.f.d.ts +0 -4
- package/fjs/types/rtti/validate/module.f.js +0 -74
- package/fjs/types/rtti/validate/proof.f.d.ts +0 -118
- package/fjs/types/rtti/validate/proof.f.js +0 -349
- package/fjs/types/sorted_list/module.f.d.ts +0 -26
- package/fjs/types/sorted_list/module.f.js +0 -51
- package/fjs/types/sorted_list/proof.f.d.ts +0 -4
- package/fjs/types/sorted_list/proof.f.js +0 -46
- package/fjs/types/sorted_set/module.f.d.ts +0 -33
- package/fjs/types/sorted_set/module.f.js +0 -5
- package/fjs/types/sorted_set/proof.f.d.ts +0 -6
- package/fjs/types/sorted_set/proof.f.js +0 -67
- package/fjs/types/string/module.f.d.ts +0 -24
- package/fjs/types/string/module.f.js +0 -35
- package/fjs/types/string/proof.f.js +0 -77
- package/fjs/types/string_set/module.f.d.ts +0 -30
- package/fjs/types/string_set/module.f.js +0 -37
- package/fjs/types/string_set/proof.f.js +0 -43
- package/fjs/types/ts/module.f.d.ts +0 -23
- package/fjs/types/ts/module.f.js +0 -27
- package/fjs/types/ts/proof.f.js +0 -86
- package/fjs/types/uint8array/module.f.d.ts +0 -13
- package/fjs/types/uint8array/module.f.js +0 -34
- package/fjs/types/uint8array/proof.f.d.ts +0 -17
- package/fjs/types/uint8array/proof.f.js +0 -64
- package/fjs/website/module.f.d.ts +0 -3
- package/fjs/website/module.f.js +0 -14
- package/fjs/website/proof.f.js +0 -13
- package/nanvm-lib/tests/proof.f.d.ts +0 -122
- package/nanvm-lib/tests/proof.f.js +0 -330
- package/todo/031-json.f.js +0 -241
- package/todo/proof.f.d.ts +0 -20
- package/todo/proof.f.js +0 -62
- /package/fjs/asn.1/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/asserts/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{base_n/proof.f.d.ts → basen/proof.f.d.mts} +0 -0
- /package/fjs/bnf/token_symbol/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/{todo/031-json.f.d.ts → fjs/ci/common/types.js} +0 -0
- /package/fjs/ci/node/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/crypto/hmac/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/crypto/pow/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/crypto/vdf/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/dev/package_json/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/ast/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/examples/{input.f.d.ts → input.f.d.mts} +0 -0
- /package/fjs/djs/examples/{m.f.d.ts → m.f.d.mts} +0 -0
- /package/fjs/djs/parser/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/tokenizer/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/transpiler/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/effects/node/memory/{proof.d.ts → proof.d.mts} +0 -0
- /package/fjs/fsc/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/fsm/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/html/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/json/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/json/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/nix/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/revision/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/type/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{module.d.ts → module.d.mts} +0 -0
- /package/fjs/path/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/protocol/json_rpc/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/sul/id/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/sul/level/literal/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/ascii/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/code_point/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/sgr/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/utf8/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/array/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/bigfloat/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/bit_vec/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/btree/remove/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/btree/set/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{basen/base128/proof.f.d.ts → types/function/compare/proof.f.d.mts} +0 -0
- /package/fjs/types/function/operator/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/function/{compare/proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/map/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/nibble_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/nullable/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/number/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/option/{module.f.d.ts → types.d.ts} +0 -0
- /package/fjs/types/option/{module.f.js → types.js} +0 -0
- /package/fjs/types/ordered_map/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/phantom/{module.f.d.ts → types.d.ts} +0 -0
- /package/fjs/types/phantom/{module.f.js → types.js} +0 -0
- /package/fjs/types/prime_field/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/{function/proof.f.d.ts → range/proof.f.d.mts} +0 -0
- /package/fjs/types/{range/proof.f.d.ts → range_set/proof.f.d.mts} +0 -0
- /package/fjs/types/result/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/rtti/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/string/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/string_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/website/{proof.f.d.ts → proof.f.d.mts} +0 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the JavaScript tokenizer.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import type { RangeMapArray } from '../../types/range_map/types.ts';
|
|
7
|
+
import type { List } from '../../types/list/types.ts';
|
|
8
|
+
import type { BigFloat } from '../../types/bigfloat/types.ts';
|
|
9
|
+
export type StringToken = {
|
|
10
|
+
readonly kind: 'string';
|
|
11
|
+
readonly value: string;
|
|
12
|
+
};
|
|
13
|
+
export type NumberToken = {
|
|
14
|
+
readonly kind: 'number';
|
|
15
|
+
readonly value: string;
|
|
16
|
+
readonly bf: BigFloat;
|
|
17
|
+
};
|
|
18
|
+
export type BigIntToken = {
|
|
19
|
+
readonly kind: 'bigint';
|
|
20
|
+
readonly value: bigint;
|
|
21
|
+
};
|
|
22
|
+
export type ErrorToken = {
|
|
23
|
+
readonly kind: 'error';
|
|
24
|
+
message: _ErrorMessage;
|
|
25
|
+
};
|
|
26
|
+
export type WhitespaceToken = {
|
|
27
|
+
readonly kind: 'ws';
|
|
28
|
+
};
|
|
29
|
+
export type NewLineToken = {
|
|
30
|
+
readonly kind: 'nl';
|
|
31
|
+
};
|
|
32
|
+
/** @internal */
|
|
33
|
+
export type _TrueToken = {
|
|
34
|
+
readonly kind: 'true';
|
|
35
|
+
};
|
|
36
|
+
/** @internal */
|
|
37
|
+
export type _FalseToken = {
|
|
38
|
+
readonly kind: 'false';
|
|
39
|
+
};
|
|
40
|
+
/** @internal */
|
|
41
|
+
export type _NullToken = {
|
|
42
|
+
readonly kind: 'null';
|
|
43
|
+
};
|
|
44
|
+
/** @internal */
|
|
45
|
+
export type _UndefinedToken = {
|
|
46
|
+
readonly kind: 'undefined';
|
|
47
|
+
};
|
|
48
|
+
/** @internal */
|
|
49
|
+
export type _KeywordToken = {
|
|
50
|
+
readonly kind: 'arguments' | 'await' | 'break' | 'case' | 'catch' | 'class' | 'const' | 'continue';
|
|
51
|
+
} | {
|
|
52
|
+
readonly kind: 'debugger' | 'default' | 'delete' | 'do' | 'else' | 'enum' | 'eval' | 'export';
|
|
53
|
+
} | {
|
|
54
|
+
readonly kind: 'extends' | 'finally' | 'for' | 'function' | 'if' | 'implements' | 'import' | 'in';
|
|
55
|
+
} | {
|
|
56
|
+
readonly kind: 'instanceof' | 'interface' | 'let' | 'new' | 'package' | 'private' | 'protected' | 'public';
|
|
57
|
+
} | {
|
|
58
|
+
readonly kind: 'return' | 'static' | 'super' | 'switch' | 'this' | 'throw' | 'try' | 'typeof';
|
|
59
|
+
} | {
|
|
60
|
+
readonly kind: 'var' | 'void' | 'while' | 'with' | 'yield';
|
|
61
|
+
};
|
|
62
|
+
export type IdToken = {
|
|
63
|
+
readonly kind: 'id';
|
|
64
|
+
readonly value: string;
|
|
65
|
+
};
|
|
66
|
+
/** @internal */
|
|
67
|
+
export type _OperatorToken = {
|
|
68
|
+
readonly kind: '{' | '}' | ':' | ',' | '[' | ']';
|
|
69
|
+
} | {
|
|
70
|
+
readonly kind: '.' | '=';
|
|
71
|
+
} | {
|
|
72
|
+
readonly kind: '(' | ')';
|
|
73
|
+
} | {
|
|
74
|
+
readonly kind: '==' | '!=' | '===' | '!==' | '>' | '>=' | '<' | '<=';
|
|
75
|
+
} | {
|
|
76
|
+
readonly kind: '+' | '-' | '*' | '/' | '%' | '++' | '--' | '**';
|
|
77
|
+
} | {
|
|
78
|
+
readonly kind: '+=' | '-=' | '*=' | '/=' | '%=' | '**=';
|
|
79
|
+
} | {
|
|
80
|
+
readonly kind: '&' | '|' | '^' | '~' | '<<' | '>>' | '>>>';
|
|
81
|
+
} | {
|
|
82
|
+
readonly kind: '&=' | '|=' | '^=' | '<<=' | '>>=' | '>>>=';
|
|
83
|
+
} | {
|
|
84
|
+
readonly kind: '&&' | '||' | '!' | '??';
|
|
85
|
+
} | {
|
|
86
|
+
readonly kind: '&&=' | '||=' | '??=';
|
|
87
|
+
} | {
|
|
88
|
+
readonly kind: '?' | '?.' | '=>';
|
|
89
|
+
};
|
|
90
|
+
export type CommentToken = {
|
|
91
|
+
readonly kind: '//' | '/*';
|
|
92
|
+
readonly value: string;
|
|
93
|
+
};
|
|
94
|
+
export type EofToken = {
|
|
95
|
+
readonly kind: 'eof';
|
|
96
|
+
};
|
|
97
|
+
export type JsToken = _KeywordToken | _TrueToken | _FalseToken | _NullToken | WhitespaceToken | NewLineToken | StringToken | NumberToken | ErrorToken | IdToken | BigIntToken | _UndefinedToken | _OperatorToken | CommentToken | EofToken;
|
|
98
|
+
export type TokenMetadata = {
|
|
99
|
+
readonly path: string;
|
|
100
|
+
readonly line: number;
|
|
101
|
+
readonly column: number;
|
|
102
|
+
};
|
|
103
|
+
export type JsTokenWithMetadata = {
|
|
104
|
+
readonly token: JsToken;
|
|
105
|
+
readonly metadata: TokenMetadata;
|
|
106
|
+
};
|
|
107
|
+
/** @internal */
|
|
108
|
+
export type _TokenizerStateWithMetadata = {
|
|
109
|
+
readonly state: _TokenizerState;
|
|
110
|
+
readonly metadata: TokenMetadata;
|
|
111
|
+
};
|
|
112
|
+
/** @internal */
|
|
113
|
+
export type _TokenizerState = _InitialState | _ParseIdState | _ParseStringState | _ParseEscapeCharState | _ParseUnicodeCharState | _ParseNumberState | _InvalidNumberState | _ParseOperatorState | _ParseWhitespaceState | _ParseNewLineState | _ParseCommentState | _EofState;
|
|
114
|
+
/** @internal */
|
|
115
|
+
export type _ErrorMessage = '" are missing' | 'unescaped character' | 'invalid hex value' | 'unexpected character' | 'invalid number' | 'invalid token' | '*\/ expected' | 'unterminated string literal' | 'unescaped control character in string' | 'eof';
|
|
116
|
+
/** @internal */
|
|
117
|
+
export type _InitialState = {
|
|
118
|
+
readonly kind: 'initial';
|
|
119
|
+
};
|
|
120
|
+
/** @internal */
|
|
121
|
+
export type _ParseIdState = {
|
|
122
|
+
readonly kind: 'id';
|
|
123
|
+
readonly value: string;
|
|
124
|
+
};
|
|
125
|
+
/** @internal */
|
|
126
|
+
export type _ParseWhitespaceState = {
|
|
127
|
+
readonly kind: 'ws';
|
|
128
|
+
};
|
|
129
|
+
/** @internal */
|
|
130
|
+
export type _ParseNewLineState = {
|
|
131
|
+
readonly kind: 'nl';
|
|
132
|
+
};
|
|
133
|
+
/** @internal */
|
|
134
|
+
export type _ParseStringState = {
|
|
135
|
+
readonly kind: 'string';
|
|
136
|
+
readonly value: string;
|
|
137
|
+
};
|
|
138
|
+
/** @internal */
|
|
139
|
+
export type _ParseEscapeCharState = {
|
|
140
|
+
readonly kind: 'escapeChar';
|
|
141
|
+
readonly value: string;
|
|
142
|
+
};
|
|
143
|
+
/** @internal */
|
|
144
|
+
export type _ParseOperatorState = {
|
|
145
|
+
readonly kind: 'op';
|
|
146
|
+
readonly value: string;
|
|
147
|
+
};
|
|
148
|
+
/** @internal */
|
|
149
|
+
export type _ParseCommentState = {
|
|
150
|
+
readonly kind: '//' | '/*' | '/**';
|
|
151
|
+
readonly value: string;
|
|
152
|
+
readonly newLine: boolean;
|
|
153
|
+
};
|
|
154
|
+
/** @internal */
|
|
155
|
+
export type _ParseUnicodeCharState = {
|
|
156
|
+
readonly kind: 'unicodeChar';
|
|
157
|
+
readonly value: string;
|
|
158
|
+
readonly unicode: number;
|
|
159
|
+
readonly hexIndex: number;
|
|
160
|
+
};
|
|
161
|
+
/** @internal */
|
|
162
|
+
export type _ParseNumberState = {
|
|
163
|
+
readonly kind: 'number';
|
|
164
|
+
readonly numberKind: '0' | 'int' | '.' | 'fractional' | 'e' | 'e+' | 'e-' | 'expDigits' | 'bigint';
|
|
165
|
+
readonly value: string;
|
|
166
|
+
readonly b: _ParseNumberBuffer;
|
|
167
|
+
};
|
|
168
|
+
/** @internal */
|
|
169
|
+
export type _ParseNumberBuffer = {
|
|
170
|
+
readonly s: -1n | 1n;
|
|
171
|
+
readonly m: bigint;
|
|
172
|
+
readonly f: number;
|
|
173
|
+
readonly es: -1 | 1;
|
|
174
|
+
readonly e: number;
|
|
175
|
+
};
|
|
176
|
+
/** @internal */
|
|
177
|
+
export type _InvalidNumberState = {
|
|
178
|
+
readonly kind: 'invalidNumber';
|
|
179
|
+
};
|
|
180
|
+
/** @internal */
|
|
181
|
+
export type _EofState = {
|
|
182
|
+
readonly kind: 'eof';
|
|
183
|
+
};
|
|
184
|
+
/** @internal */
|
|
185
|
+
export type _CharCodeOrEof = number | null;
|
|
186
|
+
/** @internal */
|
|
187
|
+
export type _ToToken = (input: number) => readonly [List<JsToken>, _TokenizerState];
|
|
188
|
+
/** @internal */
|
|
189
|
+
export type _CreateToToken<T> = (state: T) => _ToToken;
|
|
190
|
+
/** @internal */
|
|
191
|
+
export type _RangeFunc<T> = (def: _CreateToToken<T>) => _RangeMapToToken<T>;
|
|
192
|
+
/** @internal */
|
|
193
|
+
export type _RangeMapToToken<T> = RangeMapArray<_CreateToToken<T>>;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `cas_add` / `cas_get` / `cas_list` tool registry: maps `Cas<O>`
|
|
3
|
+
* operations onto MCP tools, so an agent that speaks MCP can store a blob and
|
|
4
|
+
* get back its hash, fetch a blob by hash, and enumerate what is stored —
|
|
5
|
+
* without shelling out to the `cas` CLI. The store itself
|
|
6
|
+
* (`fjs/cas/module.f.mjs`) stays transport-agnostic; this is an additional
|
|
7
|
+
* front end alongside the CLI `main`. This registry is one of the tool sets
|
|
8
|
+
* `fjs/mcp/module.f.mjs` composes into the FJS MCP server — see that module
|
|
9
|
+
* for the full tool table (including `fjs/mcp/evo`'s `evo_*` tools) and the
|
|
10
|
+
* server entry point.
|
|
11
|
+
*
|
|
12
|
+
* ## Tools
|
|
13
|
+
*
|
|
14
|
+
* | Tool | args | action | result |
|
|
15
|
+
* |----------------|--------------------------------|------------------|--------------------------------------|
|
|
16
|
+
* | `cas_add` | `{ content, type? }` | `c.write(...)` | hash (cBase32) |
|
|
17
|
+
* | `cas_get` | `{ hash, content?: boolean }` | `c.read(key)` | JSON `{length,mimeType,type[,uri][,text\|blob]}` |
|
|
18
|
+
* | `cas_list` | `{}` | `c.list()` | hashes, one per line |
|
|
19
|
+
*
|
|
20
|
+
* ## `cas_add` input encoding
|
|
21
|
+
*
|
|
22
|
+
* The optional `type` field controls how `content` is interpreted:
|
|
23
|
+
* - `'text'` (default, or omitted): `content` is a UTF-8 string stored as raw
|
|
24
|
+
* bytes. Most agent-generated content (scripts, JSON, prompts) can be stored
|
|
25
|
+
* without any encoding step.
|
|
26
|
+
* - `'base64'`: `content` is RFC 4648 base64, decoded to bytes before storage.
|
|
27
|
+
* Use this for pre-encoded binary payloads.
|
|
28
|
+
*
|
|
29
|
+
* Inline content (either encoding) is capped at 128 KiB (`maxLength`). There is
|
|
30
|
+
* no MCP route for larger content — the server never opens a local path named by
|
|
31
|
+
* the client (see the invariant in `fjs/mcp/README.md`); large files go
|
|
32
|
+
* through the `cas` CLI (`cas add <path>`) instead, run directly by the user.
|
|
33
|
+
*
|
|
34
|
+
* ## `cas_get` output
|
|
35
|
+
*
|
|
36
|
+
* Always returns a JSON object `{ length, mimeType, type[, uri][, text | blob] }`.
|
|
37
|
+
* These field names mirror the MCP resource-contents shape (`resources/read`
|
|
38
|
+
* results), so the tool view and the future resource view of a blob use the same
|
|
39
|
+
* vocabulary: `mimeType` (not `mime_type`), `uri` (not `url`) — the resource URI
|
|
40
|
+
* under which the same blob will be readable via `resources/read` — and `text` /
|
|
41
|
+
* `blob` (not a `type`-tagged `content`) for inline payloads. `type` is always
|
|
42
|
+
* present (`'text'` or `'base64'`) as the discriminator for which of `text` /
|
|
43
|
+
* `blob` a later `content: true` fetch would populate — MCP allows extra fields,
|
|
44
|
+
* so `type` and `length` simply stay alongside the required resource-contents
|
|
45
|
+
* fields. A single classifier — the `fjs/media/type` detector state machine (length ×
|
|
46
|
+
* magic-byte eliminator × UTF-8 DFA) — produces the same three-way verdict on
|
|
47
|
+
* both paths, so there is no second, divergent copy of the rules:
|
|
48
|
+
*
|
|
49
|
+
* 1. **Magic-byte hit** (PNG/JPEG/GIF/WebP/PDF/ZIP) → `type: 'base64'` with the
|
|
50
|
+
* detected `mimeType`.
|
|
51
|
+
* 2. **Whole-blob-valid UTF-8** → `type: 'text'`, `mimeType: 'text/plain'`.
|
|
52
|
+
* 3. **Fallback** → `type: 'base64'`, `mimeType: 'application/octet-stream'`.
|
|
53
|
+
*
|
|
54
|
+
* **Metadata-only (`content: false`, the default) is size-independent for
|
|
55
|
+
* non-text and oversized blobs.** It folds the read stream through
|
|
56
|
+
* `fjs/media/type` `detectStream` and never buffers the blob. Because a single
|
|
57
|
+
* `Vec` caps at `maxLength` bits (128 KiB), the old drain-into-one-`Vec`
|
|
58
|
+
* approach failed on any blob larger than one chunk even when only metadata
|
|
59
|
+
* was asked for; streaming detection returns correct
|
|
60
|
+
* `{ length, mimeType, type[, uri] }` regardless of size. A dialect (e.g.
|
|
61
|
+
* `vnd.fjs.revision`, see `fjs/media/module.f.mjs`) can only be recognized by
|
|
62
|
+
* parsing the whole blob as JSON, so when the streaming verdict is
|
|
63
|
+
* whole-blob-valid text within the same bounded inline cap as `content: true`
|
|
64
|
+
* (`maxLengthBytes`), one extra bounded read materializes the blob purely to
|
|
65
|
+
* refine `mimeType` through the dialect-aware detector; a larger or non-text
|
|
66
|
+
* blob is never a dialect match and is returned from the streaming verdict
|
|
67
|
+
* alone, unbuffered.
|
|
68
|
+
*
|
|
69
|
+
* **`content: true`** first derives `{ length, mimeType, type }` with the same
|
|
70
|
+
* size-independent `fjs/media/type` `detectStream` machine (to decide whether the
|
|
71
|
+
* blob even fits inline), then materializes the bytes (via `collectRead`, bounded
|
|
72
|
+
* by `maxLength`) and re-derives the verdict from the dialect-aware detector
|
|
73
|
+
* (`fjs/media/module.f.mjs` `detect`) — now that the whole blob is in hand, a
|
|
74
|
+
* dialect match is reflected in the result — before encoding the inline payload
|
|
75
|
+
* by `type` — a `fjs/text/utf8` `fromVec` string on `text` (for `type: 'text'`),
|
|
76
|
+
* base64 on `blob` (for `type: 'base64'`). A blob larger than `maxLength` (128
|
|
77
|
+
* KiB) cannot be buffered into one `Vec`, so it is rejected here with a
|
|
78
|
+
* descriptive *"too large"* error (carrying the byte size and `uri`) rather than
|
|
79
|
+
* being misreported as absent; it should be fetched via `uri` or inspected with
|
|
80
|
+
* metadata-only `cas_get`.
|
|
81
|
+
*
|
|
82
|
+
* ## Encoding split: hashes vs. content
|
|
83
|
+
*
|
|
84
|
+
* `Cas<O>` deals in `Vec` (bit vectors); MCP models only `textContent` today.
|
|
85
|
+
* **Hashes** travel as cBase32 (`fjs/basen/cbase32`) — the canonical CAS hash format,
|
|
86
|
+
* shared with the CLI and the on-disk store layout. **Content** encoding is
|
|
87
|
+
* determined at read time as described above.
|
|
88
|
+
*
|
|
89
|
+
* ## Error convention
|
|
90
|
+
*
|
|
91
|
+
* MCP draws a line the dispatcher already respects: *protocol* failures
|
|
92
|
+
* (unknown method, malformed JSON-RPC params) are JSON-RPC errors handled by
|
|
93
|
+
* `mcpStep`. *Tool* failures come back as a normal `tools/call` result with
|
|
94
|
+
* `isError: true` and a text explanation, so the model can read and react:
|
|
95
|
+
* - `type: 'base64'` with malformed content (base64 `decode` → `null`) → `isError`
|
|
96
|
+
* - malformed `hash` (`cBase32ToVec` → `null`) → `isError`
|
|
97
|
+
* - `cas_get` on an absent hash (`c.read` → `undefined`) → `isError`
|
|
98
|
+
* - `cas_get` with `content: true` on a blob larger than `maxLength` → `isError`
|
|
99
|
+
* (distinct "too large" message, not "no such hash")
|
|
100
|
+
* - unknown tool `name` → `isError`
|
|
101
|
+
*
|
|
102
|
+
* @module
|
|
103
|
+
*
|
|
104
|
+
* @import { Effect } from '../../effects/types.ts'
|
|
105
|
+
* @import { MemOp } from '../../effects/memory/types.ts'
|
|
106
|
+
* @import { Vec } from '../../types/bit_vec/types.ts'
|
|
107
|
+
* @import { Ok } from '../../types/result/types.ts'
|
|
108
|
+
* @import { ToolEntry, ToolsCallResult } from '../../protocol/mcp/types.ts'
|
|
109
|
+
* @import { FileCasOperation } from '../../cas/types.ts'
|
|
110
|
+
* @import { Cache } from '../../cas/evo/types.ts'
|
|
111
|
+
* @import { Key } from '../../effects/memory/types.ts'
|
|
112
|
+
* @import { Ts } from '../../types/rtti/ts/types.ts'
|
|
113
|
+
* @import { List } from '../../effects/list/types.ts'
|
|
114
|
+
* @import { IoResult } from '../../effects/node/types.ts'
|
|
115
|
+
*/
|
|
116
|
+
import type { MemOp } from '../../effects/memory/types.ts';
|
|
117
|
+
import type { ToolEntry } from '../../protocol/mcp/types.ts';
|
|
118
|
+
import type { FileCasOperation } from '../../cas/types.ts';
|
|
119
|
+
import type { Cache } from '../../cas/evo/types.ts';
|
|
120
|
+
import type { Key } from '../../effects/memory/types.ts';
|
|
121
|
+
/** Arguments for `cas_add`: content to store, with optional encoding type. */
|
|
122
|
+
export declare const casAddArgs: {
|
|
123
|
+
readonly content: import("../../types/rtti/types.ts")._Type0<"string">;
|
|
124
|
+
readonly type: import("../../types/rtti/types.ts").Or<["text", "base64", undefined]>;
|
|
125
|
+
};
|
|
126
|
+
/** Arguments for `cas_get`: the cBase32 hash to look up; optionally request inline content. */
|
|
127
|
+
export declare const casGetArgs: {
|
|
128
|
+
readonly hash: import("../../types/rtti/types.ts")._Type0<"string">;
|
|
129
|
+
readonly content: import("../../types/rtti/types.ts").Or<readonly [import("../../types/rtti/types.ts")._Type0<"boolean">, undefined]>;
|
|
130
|
+
};
|
|
131
|
+
/** Arguments for `cas_list`: none. */
|
|
132
|
+
export declare const casListArgs: {};
|
|
133
|
+
export type _Meta = {
|
|
134
|
+
readonly length: number;
|
|
135
|
+
readonly mimeType: string;
|
|
136
|
+
readonly type: 'text' | 'base64';
|
|
137
|
+
readonly uri: string;
|
|
138
|
+
};
|
|
139
|
+
/** @typedef {{
|
|
140
|
+
* readonly length: number
|
|
141
|
+
* readonly mimeType: string
|
|
142
|
+
* readonly type: 'text' | 'base64'
|
|
143
|
+
* readonly uri: string
|
|
144
|
+
* }} _Meta */
|
|
145
|
+
/**
|
|
146
|
+
* Registry of all CAS tools, bound to `home` and the Evo cache at
|
|
147
|
+
* `cacheKey`. `cas_add` is the only tool that writes, so it is the only one
|
|
148
|
+
* that needs `cacheKey`: a successfully stored blob is folded into the Evo
|
|
149
|
+
* cache via `syncRevision` when it happens to be a `vnd.fjs.revision` — a
|
|
150
|
+
* plain `cas_add` and `evo_add` are two ways to reach the same store, and
|
|
151
|
+
* this keeps `evo_list`/`evo_head` honest about either one without a
|
|
152
|
+
* rescan.
|
|
153
|
+
*
|
|
154
|
+
* @type {(home: string) => (cacheKey: Key<Cache>) => readonly ToolEntry<FileCasOperation | MemOp>[]}
|
|
155
|
+
*/
|
|
156
|
+
export declare const casToolRegistry: (home: string) => (cacheKey: Key<Cache>) => readonly ToolEntry<FileCasOperation | MemOp>[];
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `cas_add` / `cas_get` / `cas_list` tool registry: maps `Cas<O>`
|
|
3
|
+
* operations onto MCP tools, so an agent that speaks MCP can store a blob and
|
|
4
|
+
* get back its hash, fetch a blob by hash, and enumerate what is stored —
|
|
5
|
+
* without shelling out to the `cas` CLI. The store itself
|
|
6
|
+
* (`fjs/cas/module.f.mjs`) stays transport-agnostic; this is an additional
|
|
7
|
+
* front end alongside the CLI `main`. This registry is one of the tool sets
|
|
8
|
+
* `fjs/mcp/module.f.mjs` composes into the FJS MCP server — see that module
|
|
9
|
+
* for the full tool table (including `fjs/mcp/evo`'s `evo_*` tools) and the
|
|
10
|
+
* server entry point.
|
|
11
|
+
*
|
|
12
|
+
* ## Tools
|
|
13
|
+
*
|
|
14
|
+
* | Tool | args | action | result |
|
|
15
|
+
* |----------------|--------------------------------|------------------|--------------------------------------|
|
|
16
|
+
* | `cas_add` | `{ content, type? }` | `c.write(...)` | hash (cBase32) |
|
|
17
|
+
* | `cas_get` | `{ hash, content?: boolean }` | `c.read(key)` | JSON `{length,mimeType,type[,uri][,text\|blob]}` |
|
|
18
|
+
* | `cas_list` | `{}` | `c.list()` | hashes, one per line |
|
|
19
|
+
*
|
|
20
|
+
* ## `cas_add` input encoding
|
|
21
|
+
*
|
|
22
|
+
* The optional `type` field controls how `content` is interpreted:
|
|
23
|
+
* - `'text'` (default, or omitted): `content` is a UTF-8 string stored as raw
|
|
24
|
+
* bytes. Most agent-generated content (scripts, JSON, prompts) can be stored
|
|
25
|
+
* without any encoding step.
|
|
26
|
+
* - `'base64'`: `content` is RFC 4648 base64, decoded to bytes before storage.
|
|
27
|
+
* Use this for pre-encoded binary payloads.
|
|
28
|
+
*
|
|
29
|
+
* Inline content (either encoding) is capped at 128 KiB (`maxLength`). There is
|
|
30
|
+
* no MCP route for larger content — the server never opens a local path named by
|
|
31
|
+
* the client (see the invariant in `fjs/mcp/README.md`); large files go
|
|
32
|
+
* through the `cas` CLI (`cas add <path>`) instead, run directly by the user.
|
|
33
|
+
*
|
|
34
|
+
* ## `cas_get` output
|
|
35
|
+
*
|
|
36
|
+
* Always returns a JSON object `{ length, mimeType, type[, uri][, text | blob] }`.
|
|
37
|
+
* These field names mirror the MCP resource-contents shape (`resources/read`
|
|
38
|
+
* results), so the tool view and the future resource view of a blob use the same
|
|
39
|
+
* vocabulary: `mimeType` (not `mime_type`), `uri` (not `url`) — the resource URI
|
|
40
|
+
* under which the same blob will be readable via `resources/read` — and `text` /
|
|
41
|
+
* `blob` (not a `type`-tagged `content`) for inline payloads. `type` is always
|
|
42
|
+
* present (`'text'` or `'base64'`) as the discriminator for which of `text` /
|
|
43
|
+
* `blob` a later `content: true` fetch would populate — MCP allows extra fields,
|
|
44
|
+
* so `type` and `length` simply stay alongside the required resource-contents
|
|
45
|
+
* fields. A single classifier — the `fjs/media/type` detector state machine (length ×
|
|
46
|
+
* magic-byte eliminator × UTF-8 DFA) — produces the same three-way verdict on
|
|
47
|
+
* both paths, so there is no second, divergent copy of the rules:
|
|
48
|
+
*
|
|
49
|
+
* 1. **Magic-byte hit** (PNG/JPEG/GIF/WebP/PDF/ZIP) → `type: 'base64'` with the
|
|
50
|
+
* detected `mimeType`.
|
|
51
|
+
* 2. **Whole-blob-valid UTF-8** → `type: 'text'`, `mimeType: 'text/plain'`.
|
|
52
|
+
* 3. **Fallback** → `type: 'base64'`, `mimeType: 'application/octet-stream'`.
|
|
53
|
+
*
|
|
54
|
+
* **Metadata-only (`content: false`, the default) is size-independent for
|
|
55
|
+
* non-text and oversized blobs.** It folds the read stream through
|
|
56
|
+
* `fjs/media/type` `detectStream` and never buffers the blob. Because a single
|
|
57
|
+
* `Vec` caps at `maxLength` bits (128 KiB), the old drain-into-one-`Vec`
|
|
58
|
+
* approach failed on any blob larger than one chunk even when only metadata
|
|
59
|
+
* was asked for; streaming detection returns correct
|
|
60
|
+
* `{ length, mimeType, type[, uri] }` regardless of size. A dialect (e.g.
|
|
61
|
+
* `vnd.fjs.revision`, see `fjs/media/module.f.mjs`) can only be recognized by
|
|
62
|
+
* parsing the whole blob as JSON, so when the streaming verdict is
|
|
63
|
+
* whole-blob-valid text within the same bounded inline cap as `content: true`
|
|
64
|
+
* (`maxLengthBytes`), one extra bounded read materializes the blob purely to
|
|
65
|
+
* refine `mimeType` through the dialect-aware detector; a larger or non-text
|
|
66
|
+
* blob is never a dialect match and is returned from the streaming verdict
|
|
67
|
+
* alone, unbuffered.
|
|
68
|
+
*
|
|
69
|
+
* **`content: true`** first derives `{ length, mimeType, type }` with the same
|
|
70
|
+
* size-independent `fjs/media/type` `detectStream` machine (to decide whether the
|
|
71
|
+
* blob even fits inline), then materializes the bytes (via `collectRead`, bounded
|
|
72
|
+
* by `maxLength`) and re-derives the verdict from the dialect-aware detector
|
|
73
|
+
* (`fjs/media/module.f.mjs` `detect`) — now that the whole blob is in hand, a
|
|
74
|
+
* dialect match is reflected in the result — before encoding the inline payload
|
|
75
|
+
* by `type` — a `fjs/text/utf8` `fromVec` string on `text` (for `type: 'text'`),
|
|
76
|
+
* base64 on `blob` (for `type: 'base64'`). A blob larger than `maxLength` (128
|
|
77
|
+
* KiB) cannot be buffered into one `Vec`, so it is rejected here with a
|
|
78
|
+
* descriptive *"too large"* error (carrying the byte size and `uri`) rather than
|
|
79
|
+
* being misreported as absent; it should be fetched via `uri` or inspected with
|
|
80
|
+
* metadata-only `cas_get`.
|
|
81
|
+
*
|
|
82
|
+
* ## Encoding split: hashes vs. content
|
|
83
|
+
*
|
|
84
|
+
* `Cas<O>` deals in `Vec` (bit vectors); MCP models only `textContent` today.
|
|
85
|
+
* **Hashes** travel as cBase32 (`fjs/basen/cbase32`) — the canonical CAS hash format,
|
|
86
|
+
* shared with the CLI and the on-disk store layout. **Content** encoding is
|
|
87
|
+
* determined at read time as described above.
|
|
88
|
+
*
|
|
89
|
+
* ## Error convention
|
|
90
|
+
*
|
|
91
|
+
* MCP draws a line the dispatcher already respects: *protocol* failures
|
|
92
|
+
* (unknown method, malformed JSON-RPC params) are JSON-RPC errors handled by
|
|
93
|
+
* `mcpStep`. *Tool* failures come back as a normal `tools/call` result with
|
|
94
|
+
* `isError: true` and a text explanation, so the model can read and react:
|
|
95
|
+
* - `type: 'base64'` with malformed content (base64 `decode` → `null`) → `isError`
|
|
96
|
+
* - malformed `hash` (`cBase32ToVec` → `null`) → `isError`
|
|
97
|
+
* - `cas_get` on an absent hash (`c.read` → `undefined`) → `isError`
|
|
98
|
+
* - `cas_get` with `content: true` on a blob larger than `maxLength` → `isError`
|
|
99
|
+
* (distinct "too large" message, not "no such hash")
|
|
100
|
+
* - unknown tool `name` → `isError`
|
|
101
|
+
*
|
|
102
|
+
* @module
|
|
103
|
+
*
|
|
104
|
+
* @import { Effect } from '../../effects/types.ts'
|
|
105
|
+
* @import { MemOp } from '../../effects/memory/types.ts'
|
|
106
|
+
* @import { Vec } from '../../types/bit_vec/types.ts'
|
|
107
|
+
* @import { Ok } from '../../types/result/types.ts'
|
|
108
|
+
* @import { ToolEntry, ToolsCallResult } from '../../protocol/mcp/types.ts'
|
|
109
|
+
* @import { FileCasOperation } from '../../cas/types.ts'
|
|
110
|
+
* @import { Cache } from '../../cas/evo/types.ts'
|
|
111
|
+
* @import { Key } from '../../effects/memory/types.ts'
|
|
112
|
+
* @import { Ts } from '../../types/rtti/ts/types.ts'
|
|
113
|
+
* @import { List } from '../../effects/list/types.ts'
|
|
114
|
+
* @import { IoResult } from '../../effects/node/types.ts'
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
import { string, option, or, boolean } from '../../types/rtti/module.f.mjs'
|
|
118
|
+
import { stringify } from '../../media/json/module.f.mjs'
|
|
119
|
+
import { pure, step } from '../../effects/module.f.mjs'
|
|
120
|
+
import { cBase32ToVec, vecToCBase32 } from '../../basen/cbase32/module.f.mjs'
|
|
121
|
+
import { decode as base64Decode, encode as base64Encode } from '../../basen/base64/module.f.mjs'
|
|
122
|
+
import { tryUtf8 } from '../../text/module.f.mjs'
|
|
123
|
+
import { detectStream } from '../../media/type/module.f.mjs'
|
|
124
|
+
import { detect } from '../../media/module.f.mjs'
|
|
125
|
+
import { revisionDialect } from '../../media/revision/module.f.mjs'
|
|
126
|
+
import { maxLengthBytes } from '../../types/bit_vec/module.f.mjs'
|
|
127
|
+
import { ok } from '../../types/result/module.f.mjs'
|
|
128
|
+
import {
|
|
129
|
+
toolEntry, errorResult, okResult,
|
|
130
|
+
} from '../../protocol/mcp/module.f.mjs'
|
|
131
|
+
import { collectRead, fileCas } from '../../cas/module.f.mjs'
|
|
132
|
+
import { fromVec } from '../../text/utf8/module.f.mjs'
|
|
133
|
+
import { identity } from '../../types/function/module.f.mjs'
|
|
134
|
+
import { sha256 } from '../../crypto/sha2/module.f.mjs'
|
|
135
|
+
import { nonEmpty, empty as elEmpty } from '../../effects/list/module.f.mjs'
|
|
136
|
+
import { syncRevision } from '../../cas/evo/module.f.mjs'
|
|
137
|
+
|
|
138
|
+
// ── Argument schemas (declared once, used for both inputSchema and validate) ─────
|
|
139
|
+
|
|
140
|
+
/** Arguments for `cas_add`: content to store, with optional encoding type. */
|
|
141
|
+
export const casAddArgs = /** @type {const} */ ({
|
|
142
|
+
content: string,
|
|
143
|
+
type: or(/** @type {const} */ ('text'), /** @type {const} */ ('base64'), undefined)
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
/** Arguments for `cas_get`: the cBase32 hash to look up; optionally request inline content. */
|
|
147
|
+
export const casGetArgs = /** @type {const} */ ({
|
|
148
|
+
hash: string,
|
|
149
|
+
content: option(boolean)
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
/** Arguments for `cas_list`: none. */
|
|
153
|
+
export const casListArgs = /** @type {const} */ ({})
|
|
154
|
+
|
|
155
|
+
// ── Tool registry ──────────────────────────────────────────────────────────────
|
|
156
|
+
|
|
157
|
+
const toJson = stringify(identity)
|
|
158
|
+
|
|
159
|
+
/** The dialect-aware classifier, bound to the dialects this server recognizes. */
|
|
160
|
+
const detectDialect = detect([revisionDialect])
|
|
161
|
+
|
|
162
|
+
/** @typedef {{
|
|
163
|
+
* readonly length: number
|
|
164
|
+
* readonly mimeType: string
|
|
165
|
+
* readonly type: 'text' | 'base64'
|
|
166
|
+
* readonly uri: string
|
|
167
|
+
* }} _Meta */
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Registry of all CAS tools, bound to `home` and the Evo cache at
|
|
171
|
+
* `cacheKey`. `cas_add` is the only tool that writes, so it is the only one
|
|
172
|
+
* that needs `cacheKey`: a successfully stored blob is folded into the Evo
|
|
173
|
+
* cache via `syncRevision` when it happens to be a `vnd.fjs.revision` — a
|
|
174
|
+
* plain `cas_add` and `evo_add` are two ways to reach the same store, and
|
|
175
|
+
* this keeps `evo_list`/`evo_head` honest about either one without a
|
|
176
|
+
* rescan.
|
|
177
|
+
*
|
|
178
|
+
* @type {(home: string) => (cacheKey: Key<Cache>) => readonly ToolEntry<FileCasOperation | MemOp>[]}
|
|
179
|
+
*/
|
|
180
|
+
export const casToolRegistry = home => cacheKey => {
|
|
181
|
+
const c = fileCas(sha256)(home)
|
|
182
|
+
return [
|
|
183
|
+
toolEntry(
|
|
184
|
+
'cas_add',
|
|
185
|
+
'Store content and return its hash (cBase32). Pass type:"base64" for binary; omit or pass type:"text" for UTF-8 text (default). Inline content is capped at 128 KiB (131072 bytes) — larger content is rejected. For larger content, store the file with the `cas` CLI instead: run `npx functionalscript cas add <path>` yourself if you have shell access, or give the user that exact command to run — it prints the resulting hash on stdout.',
|
|
186
|
+
casAddArgs,
|
|
187
|
+
/** @type {(args: Ts<typeof casAddArgs>) => Effect<FileCasOperation | MemOp, ToolsCallResult>} */
|
|
188
|
+
(({ type, content }) => {
|
|
189
|
+
// type:'text' or 'base64' — resolve content to Vec, store via c.write()
|
|
190
|
+
/** @type {Vec | null} */
|
|
191
|
+
let x = type === 'base64'
|
|
192
|
+
? base64Decode(content)
|
|
193
|
+
: tryUtf8(content)
|
|
194
|
+
return x === null
|
|
195
|
+
? pure(errorResult('too large or malformed — for large content, run `npx functionalscript cas add <path>` (or have the user run it) instead'))
|
|
196
|
+
// The resolved content fits in one chunk; feed it as a single-item stream.
|
|
197
|
+
: step(
|
|
198
|
+
c.write(nonEmpty(ok(x), /** @type {List<never, Ok<Vec>>} */ (elEmpty()))),
|
|
199
|
+
/** @type {(writeResult: IoResult<Vec>) => Effect<MemOp, ToolsCallResult>} */
|
|
200
|
+
(writeResult => {
|
|
201
|
+
if (writeResult[0] === 'error') { return pure(errorResult('write')) }
|
|
202
|
+
const hash = writeResult[1]
|
|
203
|
+
return step(
|
|
204
|
+
syncRevision(cacheKey)(hash)(/** @type {Vec} */ (x)),
|
|
205
|
+
() => pure(okResult(vecToCBase32(hash)))
|
|
206
|
+
)
|
|
207
|
+
}),
|
|
208
|
+
)
|
|
209
|
+
}),
|
|
210
|
+
),
|
|
211
|
+
toolEntry(
|
|
212
|
+
'cas_get',
|
|
213
|
+
'Inspect a blob by hash. Always returns JSON {length,mimeType,type[,uri]} where type is "text" or "base64". Pass content:true to also include the inline payload as text (type:"text") or blob (type:"base64"), but content is capped at 128 KiB (131072 bytes) — a larger blob is rejected with an error. To download a blob, prefer the uri field returned in the result instead of requesting inline content.',
|
|
214
|
+
casGetArgs,
|
|
215
|
+
/** @type {(args: Ts<typeof casGetArgs>) => Effect<FileCasOperation, ToolsCallResult>} */
|
|
216
|
+
(r => {
|
|
217
|
+
const key = cBase32ToVec(r.hash)
|
|
218
|
+
if (key === null) {
|
|
219
|
+
return pure(errorResult(`invalid cBase32 hash: ${r.hash}`))
|
|
220
|
+
}
|
|
221
|
+
const uri = c.url(key)
|
|
222
|
+
return step(
|
|
223
|
+
detectStream(c.read(key)),
|
|
224
|
+
([tag, detected]) => {
|
|
225
|
+
if (tag === 'error') {
|
|
226
|
+
return pure(errorResult(`no such hash: ${r.hash}`))
|
|
227
|
+
}
|
|
228
|
+
const { length, mime_type: mimeType, type } = detected
|
|
229
|
+
/** @type {_Meta} */
|
|
230
|
+
const meta = { length: Number(length), mimeType, type, uri }
|
|
231
|
+
if (r.content !== true) {
|
|
232
|
+
// A dialect match can only be decided from the whole parsed blob;
|
|
233
|
+
// only attempt the extra bounded read when it stands a chance
|
|
234
|
+
// (whole-blob text within the same cap `content: true` allows).
|
|
235
|
+
if (type !== 'text' || length > maxLengthBytes) {
|
|
236
|
+
return pure(okResult(toJson(meta)))
|
|
237
|
+
}
|
|
238
|
+
return step(
|
|
239
|
+
collectRead(c.read(key)),
|
|
240
|
+
([collectTag, value]) => {
|
|
241
|
+
// Already known to fit from the streaming pass above, so an
|
|
242
|
+
// error here means the hash vanished between reads; fall back
|
|
243
|
+
// to the streaming verdict rather than fail the whole request.
|
|
244
|
+
if (collectTag === 'error') { return pure(okResult(toJson(meta))) }
|
|
245
|
+
const refined = detectDialect(value)
|
|
246
|
+
return pure(okResult(toJson({ ...meta, mimeType: refined.mime_type })))
|
|
247
|
+
}
|
|
248
|
+
)
|
|
249
|
+
}
|
|
250
|
+
// A single `Vec` caps at `maxLength` bits (`maxLengthBytes` bytes), so
|
|
251
|
+
// a larger blob cannot be buffered for inline transfer. Report the
|
|
252
|
+
// size and point at the size-independent alternatives instead of
|
|
253
|
+
// misreporting an existing blob as `no such hash`.
|
|
254
|
+
if (length > maxLengthBytes) {
|
|
255
|
+
return pure(errorResult(
|
|
256
|
+
`blob too large to fetch inline (${length} bytes, limit ${maxLengthBytes} bytes); use the uri field (${uri}) or omit content for metadata`))
|
|
257
|
+
}
|
|
258
|
+
return step(
|
|
259
|
+
collectRead(c.read(key)),
|
|
260
|
+
([collectTag, value]) => {
|
|
261
|
+
if (collectTag === 'error') {
|
|
262
|
+
return pure(errorResult(`no such hash: ${r.hash}`))
|
|
263
|
+
}
|
|
264
|
+
// Re-derive the verdict from the now-materialized blob so a
|
|
265
|
+
// dialect match — only decidable with the whole parsed JSON in
|
|
266
|
+
// hand — is reflected in the inline result too, not just the
|
|
267
|
+
// streaming guess.
|
|
268
|
+
const refined = detectDialect(value)
|
|
269
|
+
/** @type {_Meta} */
|
|
270
|
+
const refinedMeta = { length: Number(refined.length), mimeType: refined.mime_type, type: refined.type, uri }
|
|
271
|
+
if (refined.type === 'text') {
|
|
272
|
+
// `type: 'text'` means the detector validated `value` as UTF-8,
|
|
273
|
+
// so `fromVec` is non-null here; guard defensively regardless.
|
|
274
|
+
const str = fromVec(value)
|
|
275
|
+
return pure(str === null
|
|
276
|
+
? errorResult(`content is not byte-aligned: ${r.hash}`)
|
|
277
|
+
: okResult(toJson({ ...refinedMeta, text: str }))
|
|
278
|
+
)
|
|
279
|
+
}
|
|
280
|
+
const blob = base64Encode(value)
|
|
281
|
+
return pure(blob === null
|
|
282
|
+
? errorResult(`content is not byte-aligned: ${r.hash}`)
|
|
283
|
+
: okResult(toJson({ ...refinedMeta, blob }))
|
|
284
|
+
)
|
|
285
|
+
},
|
|
286
|
+
)
|
|
287
|
+
},
|
|
288
|
+
)
|
|
289
|
+
}),
|
|
290
|
+
),
|
|
291
|
+
toolEntry(
|
|
292
|
+
'cas_list',
|
|
293
|
+
'List all stored content hashes (cBase32), one per line.',
|
|
294
|
+
casListArgs,
|
|
295
|
+
/** @type {() => Effect<FileCasOperation, ToolsCallResult>} */
|
|
296
|
+
(() => step(
|
|
297
|
+
c.list(),
|
|
298
|
+
hashes => pure(okResult(hashes.map(vecToCBase32).join('\n')))
|
|
299
|
+
)),
|
|
300
|
+
),
|
|
301
|
+
]
|
|
302
|
+
}
|