functionalscript 0.43.1 → 0.45.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.d.mts +53 -0
- package/fjs/asn.1/proof.f.mjs +321 -0
- package/fjs/asn.1/types.d.ts +37 -0
- package/fjs/asserts/module.f.d.mts +51 -0
- package/fjs/asserts/module.f.mjs +69 -0
- package/fjs/asserts/proof.f.d.mts +14 -0
- package/fjs/asserts/proof.f.mjs +33 -0
- package/fjs/asserts/types.d.ts +11 -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 +4 -0
- package/fjs/basen/base128/proof.f.mjs +32 -0
- package/fjs/basen/base64/module.f.d.mts +14 -0
- package/fjs/basen/base64/module.f.mjs +75 -0
- package/fjs/basen/base64/proof.f.d.mts +19 -0
- package/fjs/basen/base64/proof.f.mjs +150 -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 +10 -0
- package/fjs/basen/cbase32/proof.f.mjs +79 -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/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 +159 -0
- package/fjs/bnf/data/types.d.ts +35 -0
- package/fjs/bnf/descent/module.f.d.mts +48 -0
- package/fjs/bnf/descent/module.f.mjs +289 -0
- package/fjs/bnf/descent/proof.f.d.mts +14 -0
- package/fjs/bnf/descent/proof.f.mjs +427 -0
- package/fjs/bnf/descent/types.d.ts +79 -0
- package/fjs/bnf/ll1/module.f.d.mts +67 -0
- package/fjs/bnf/ll1/module.f.mjs +341 -0
- package/fjs/bnf/ll1/proof.f.d.mts +18 -0
- package/fjs/bnf/ll1/proof.f.mjs +413 -0
- package/fjs/bnf/ll1/types.d.ts +65 -0
- package/fjs/bnf/module.f.d.mts +173 -0
- package/fjs/bnf/module.f.mjs +339 -0
- package/fjs/bnf/proof.f.d.mts +19 -0
- package/fjs/bnf/proof.f.mjs +165 -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 +36 -0
- package/fjs/bnf/token_symbol/module.f.mjs +63 -0
- package/fjs/bnf/token_symbol/proof.f.mjs +46 -0
- package/fjs/bnf/token_symbol/types.d.ts +27 -0
- package/fjs/bnf/types.d.ts +74 -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 +20 -0
- package/fjs/cas/cli/proof.f.mjs +120 -0
- package/fjs/cas/evo/module.f.d.mts +157 -0
- package/fjs/cas/evo/module.f.mjs +563 -0
- package/fjs/cas/evo/proof.f.d.mts +55 -0
- package/fjs/cas/evo/proof.f.mjs +752 -0
- package/fjs/cas/evo/types.d.ts +111 -0
- package/fjs/cas/module.f.d.mts +68 -0
- package/fjs/cas/module.f.mjs +350 -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/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 +88 -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 +30 -0
- package/fjs/ci/nix/proof.f.mjs +146 -0
- package/fjs/ci/nix/types.d.ts +16 -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 +22 -0
- package/fjs/ci/proof.f.mjs +220 -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/cli/module.f.d.mts +16 -0
- package/fjs/cli/module.f.mjs +51 -0
- package/fjs/cli/proof.f.d.mts +18 -0
- package/fjs/cli/proof.f.mjs +132 -0
- package/fjs/cli/types.d.ts +15 -0
- package/fjs/common/monoid/module.f.d.mts +145 -0
- package/fjs/common/monoid/module.f.mjs +267 -0
- package/fjs/common/monoid/proof.f.d.mts +21 -0
- package/fjs/common/monoid/proof.f.mjs +142 -0
- package/fjs/common/monoid/types.d.ts +73 -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/secp/module.f.d.mts +61 -0
- package/fjs/crypto/secp/module.f.mjs +204 -0
- package/fjs/crypto/secp/proof.f.d.mts +11 -0
- package/fjs/crypto/secp/proof.f.mjs +139 -0
- package/fjs/crypto/secp/types.d.ts +36 -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 +34 -0
- package/fjs/crypto/sha2/proof.f.mjs +146 -0
- package/fjs/crypto/sha2/types.d.ts +57 -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/vdf/module.f.d.mts +34 -0
- package/fjs/crypto/vdf/module.f.mjs +86 -0
- package/fjs/crypto/vdf/proof.f.mjs +106 -0
- package/fjs/crypto/vdf/types.d.ts +18 -0
- package/fjs/dev/module.f.d.mts +59 -0
- package/fjs/dev/module.f.mjs +171 -0
- package/fjs/dev/package_json/module.f.d.mts +39 -0
- package/fjs/dev/package_json/module.f.mjs +40 -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/update/module.f.d.mts +22 -0
- package/fjs/dev/update/module.f.mjs +37 -0
- package/fjs/dev/update/proof.f.d.mts +10 -0
- package/fjs/dev/update/proof.f.mjs +35 -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/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 +78 -0
- package/fjs/djs/parser/module.f.mjs +565 -0
- package/fjs/djs/parser/proof.f.d.mts +17 -0
- package/fjs/djs/parser/proof.f.mjs +555 -0
- package/fjs/djs/parser/types.d.ts +11 -0
- package/fjs/djs/proof.f.d.mts +13 -0
- package/fjs/djs/proof.f.mjs +55 -0
- package/fjs/djs/serializer/module.f.d.mts +30 -0
- package/fjs/djs/serializer/module.f.mjs +207 -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 +632 -0
- package/fjs/djs/tokenizer/proof.f.d.mts +17 -0
- package/fjs/djs/tokenizer/proof.f.mjs +992 -0
- package/fjs/djs/tokenizer/types.d.ts +20 -0
- package/fjs/djs/transpiler/module.f.d.mts +33 -0
- package/fjs/djs/transpiler/module.f.mjs +122 -0
- package/fjs/djs/transpiler/proof.f.mjs +76 -0
- package/fjs/djs/transpiler/types.d.ts +25 -0
- package/fjs/djs/types.d.ts +13 -0
- package/fjs/effects/eff/module.f.d.mts +20 -0
- package/fjs/effects/eff/module.f.mjs +70 -0
- package/fjs/effects/eff/proof.f.d.mts +15 -0
- package/fjs/effects/eff/proof.f.mjs +69 -0
- package/fjs/effects/eff/types.d.ts +71 -0
- package/fjs/effects/list/module.f.d.mts +32 -0
- package/fjs/effects/list/module.f.mjs +36 -0
- package/fjs/effects/list/types.d.ts +26 -0
- package/fjs/effects/memory/module.f.d.mts +34 -0
- package/fjs/effects/memory/module.f.mjs +45 -0
- package/fjs/effects/memory/proof.f.d.mts +16 -0
- package/fjs/effects/memory/proof.f.mjs +86 -0
- package/fjs/effects/memory/types.d.ts +18 -0
- package/fjs/effects/mock/module.f.d.mts +14 -0
- package/fjs/effects/mock/module.f.mjs +28 -0
- package/fjs/effects/mock/types.d.ts +15 -0
- package/fjs/effects/module.d.mts +15 -0
- package/fjs/effects/module.f.d.mts +352 -0
- package/fjs/effects/module.f.mjs +383 -0
- package/fjs/effects/module.mjs +26 -0
- package/fjs/effects/node/memory/module.d.mts +27 -0
- package/fjs/effects/node/memory/module.mjs +60 -0
- package/fjs/effects/node/memory/proof.d.mts +12 -0
- package/fjs/effects/node/memory/proof.mjs +44 -0
- package/fjs/effects/node/module.d.mts +59 -0
- package/fjs/effects/node/module.f.d.mts +177 -0
- package/fjs/effects/node/module.f.mjs +348 -0
- package/fjs/effects/node/module.mjs +381 -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/virtual/module.f.d.mts +34 -0
- package/fjs/effects/node/virtual/module.f.mjs +435 -0
- package/fjs/effects/node/virtual/proof.f.d.mts +38 -0
- package/fjs/effects/node/virtual/proof.f.mjs +238 -0
- package/fjs/effects/node/virtual/types.d.ts +39 -0
- package/fjs/effects/proof.f.d.mts +65 -0
- package/fjs/effects/proof.f.mjs +234 -0
- package/fjs/effects/types.d.ts +115 -0
- package/fjs/emergent_testing/all.test.d.mts +8 -0
- package/fjs/emergent_testing/all.test.mjs +14 -0
- 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 +155 -0
- package/fjs/emergent_testing/module.f.mjs +388 -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/fsc/bnf.f.d.mts +6 -0
- package/fjs/fsc/bnf.f.mjs +80 -0
- package/fjs/fsc/json.f.d.mts +16 -0
- package/fjs/fsc/json.f.mjs +127 -0
- package/fjs/fsc/module.f.d.mts +23 -0
- package/fjs/fsc/module.f.mjs +140 -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.d.mts +7 -0
- package/fjs/fsm/proof.f.mjs +149 -0
- package/fjs/js/tokenizer/module.f.d.mts +26 -0
- package/fjs/js/tokenizer/module.f.mjs +759 -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/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 +67 -0
- package/fjs/mcp/module.f.mjs +98 -0
- package/fjs/mcp/proof.f.d.mts +56 -0
- package/fjs/mcp/proof.f.mjs +718 -0
- package/fjs/media/html/module.f.d.mts +55 -0
- package/fjs/media/html/module.f.mjs +169 -0
- package/fjs/media/html/proof.f.d.mts +19 -0
- package/fjs/media/html/proof.f.mjs +80 -0
- package/fjs/media/html/types.d.ts +19 -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 +236 -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 +39 -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 +29 -0
- package/fjs/media/json/rtti/proof.f.mjs +86 -0
- package/fjs/media/json/schema/module.f.d.mts +113 -0
- package/fjs/media/json/schema/module.f.mjs +309 -0
- package/fjs/media/json/schema/proof.f.d.mts +81 -0
- package/fjs/media/json/schema/proof.f.mjs +305 -0
- package/fjs/media/json/serializer/module.f.d.mts +40 -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 +25 -0
- package/fjs/media/json/tokenizer/module.f.mjs +96 -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/types.d.ts +25 -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 +27 -0
- package/fjs/media/nix/module.f.mjs +263 -0
- package/fjs/media/nix/proof.f.d.mts +35 -0
- package/fjs/media/nix/proof.f.mjs +184 -0
- package/fjs/media/nix/types.d.ts +22 -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 +124 -0
- package/fjs/media/revision/module.f.mjs +163 -0
- package/fjs/media/revision/proof.f.d.mts +46 -0
- package/fjs/media/revision/proof.f.mjs +231 -0
- package/fjs/media/revision/types.d.ts +16 -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 +114 -0
- package/fjs/media/type/module.f.mjs +265 -0
- package/fjs/media/type/proof.f.d.mts +56 -0
- package/fjs/media/type/proof.f.mjs +325 -0
- package/fjs/media/type/types.d.ts +67 -0
- package/fjs/media/types.d.ts +26 -0
- package/fjs/module.d.mts +7 -0
- package/fjs/module.f.d.mts +11 -0
- package/fjs/module.f.mjs +62 -0
- package/fjs/module.mjs +12 -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/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 +63 -0
- package/fjs/path/module.f.mjs +98 -0
- package/fjs/path/proof.f.mjs +125 -0
- package/fjs/proof.f.d.mts +13 -0
- package/fjs/proof.f.mjs +51 -0
- package/fjs/protocol/json_rpc/module.f.d.mts +127 -0
- package/fjs/protocol/json_rpc/module.f.mjs +115 -0
- package/fjs/protocol/json_rpc/proof.f.d.mts +41 -0
- package/fjs/protocol/json_rpc/proof.f.mjs +105 -0
- package/fjs/protocol/json_rpc/types.d.ts +30 -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 +57 -0
- package/fjs/protocol/mcp/proof.f.mjs +335 -0
- package/fjs/protocol/mcp/stdio/module.f.d.mts +50 -0
- package/fjs/protocol/mcp/stdio/module.f.mjs +125 -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/stdio/types.d.ts +14 -0
- package/fjs/protocol/mcp/types.d.ts +59 -0
- package/fjs/sul/id/module.f.d.mts +42 -0
- package/fjs/sul/id/module.f.mjs +144 -0
- package/fjs/sul/id/proof.f.mjs +72 -0
- package/fjs/sul/id/types.d.ts +8 -0
- package/fjs/sul/level/hash/module.f.d.mts +40 -0
- package/fjs/sul/level/hash/module.f.mjs +62 -0
- package/fjs/sul/level/hash/proof.f.d.mts +19 -0
- package/fjs/sul/level/hash/proof.f.mjs +134 -0
- package/fjs/sul/level/hash/types.d.ts +20 -0
- package/fjs/sul/level/literal/module.f.d.mts +57 -0
- package/fjs/sul/level/literal/module.f.mjs +121 -0
- package/fjs/sul/level/literal/proof.f.d.mts +15 -0
- package/fjs/sul/level/literal/proof.f.mjs +791 -0
- package/fjs/sul/level/literal/types.d.ts +31 -0
- package/fjs/sul/module.f.d.mts +27 -0
- package/fjs/sul/module.f.mjs +70 -0
- package/fjs/sul/proof.f.d.mts +15 -0
- package/fjs/sul/proof.f.mjs +65 -0
- package/fjs/sul/types.d.ts +19 -0
- package/fjs/text/ascii/module.f.d.mts +162 -0
- package/fjs/text/ascii/module.f.mjs +272 -0
- package/fjs/text/ascii/proof.f.d.mts +16 -0
- package/fjs/text/ascii/proof.f.mjs +48 -0
- package/fjs/text/code_point/module.f.d.mts +92 -0
- package/fjs/text/code_point/module.f.mjs +155 -0
- package/fjs/text/code_point/proof.f.d.mts +9 -0
- package/fjs/text/code_point/proof.f.mjs +108 -0
- package/fjs/text/module.f.d.mts +41 -0
- package/fjs/text/module.f.mjs +62 -0
- package/fjs/text/proof.f.d.mts +13 -0
- package/fjs/text/proof.f.mjs +51 -0
- package/fjs/text/sgr/module.f.d.mts +61 -0
- package/fjs/text/sgr/module.f.mjs +100 -0
- package/fjs/text/sgr/proof.f.d.mts +4 -0
- package/fjs/text/sgr/proof.f.mjs +42 -0
- package/fjs/text/sgr/types.d.ts +12 -0
- package/fjs/text/types.d.ts +13 -0
- package/fjs/text/utf16/module.f.d.mts +151 -0
- package/fjs/text/utf16/module.f.mjs +348 -0
- package/fjs/text/utf16/proof.f.d.mts +13 -0
- package/fjs/text/utf16/proof.f.mjs +175 -0
- package/fjs/text/utf16/types.d.ts +19 -0
- package/fjs/text/utf8/module.f.d.mts +73 -0
- package/fjs/text/utf8/module.f.mjs +278 -0
- package/fjs/text/utf8/proof.f.mjs +217 -0
- package/fjs/text/utf8/types.d.ts +26 -0
- package/fjs/types/array/module.f.d.mts +69 -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/bigfloat/module.f.d.mts +34 -0
- package/fjs/types/bigfloat/module.f.mjs +125 -0
- package/fjs/types/bigfloat/proof.f.d.mts +6 -0
- package/fjs/types/bigfloat/proof.f.mjs +264 -0
- package/fjs/types/bigfloat/types.d.ts +6 -0
- package/fjs/types/bigint/benchmark.mjs +205 -0
- package/fjs/types/bigint/module.f.d.mts +180 -0
- package/fjs/types/bigint/module.f.mjs +290 -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/bit_vec/module.f.d.mts +195 -0
- package/fjs/types/bit_vec/module.f.mjs +475 -0
- package/fjs/types/bit_vec/proof.f.d.mts +71 -0
- package/fjs/types/bit_vec/proof.f.mjs +521 -0
- package/fjs/types/bit_vec/types.d.ts +51 -0
- package/fjs/types/btree/find/module.f.d.mts +19 -0
- package/fjs/types/btree/find/module.f.mjs +80 -0
- package/fjs/types/btree/find/proof.f.d.mts +8 -0
- package/fjs/types/btree/find/proof.f.mjs +123 -0
- package/fjs/types/btree/find/types.d.ts +22 -0
- package/fjs/types/btree/module.f.d.mts +13 -0
- package/fjs/types/btree/module.f.mjs +40 -0
- package/fjs/types/btree/proof.f.d.mts +18 -0
- package/fjs/types/btree/proof.f.mjs +87 -0
- package/fjs/types/btree/remove/module.f.d.mts +32 -0
- package/fjs/types/btree/remove/module.f.mjs +187 -0
- package/fjs/types/btree/remove/proof.f.d.mts +12 -0
- package/fjs/types/btree/remove/proof.f.mjs +475 -0
- package/fjs/types/btree/set/module.f.d.mts +14 -0
- package/fjs/types/btree/set/module.f.mjs +116 -0
- package/fjs/types/btree/set/proof.f.d.mts +4 -0
- package/fjs/types/btree/set/proof.f.mjs +430 -0
- package/fjs/types/btree/types/module.f.d.mts +20 -0
- package/fjs/types/btree/types/module.f.mjs +20 -0
- package/fjs/types/btree/types/types.d.ts +14 -0
- package/fjs/types/byte_set/module.f.d.mts +35 -0
- package/fjs/types/byte_set/module.f.mjs +68 -0
- package/fjs/types/byte_set/proof.f.d.mts +14 -0
- package/fjs/types/byte_set/proof.f.mjs +86 -0
- package/fjs/types/byte_set/types.d.ts +6 -0
- package/fjs/types/function/compare/module.f.d.mts +45 -0
- package/fjs/types/function/compare/module.f.mjs +72 -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/module.f.d.mts +33 -0
- package/fjs/types/function/module.f.mjs +39 -0
- package/fjs/types/function/operator/module.f.d.mts +38 -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/proof.f.mjs +16 -0
- package/fjs/types/function/types.d.ts +16 -0
- package/fjs/types/list/module.f.d.mts +95 -0
- package/fjs/types/list/module.f.mjs +311 -0
- package/fjs/types/list/proof.f.d.mts +35 -0
- package/fjs/types/list/proof.f.mjs +365 -0
- package/fjs/types/list/types.d.ts +36 -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 +31 -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/nominal/module.f.d.mts +10 -0
- package/fjs/types/nominal/module.f.mjs +17 -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/nullable/module.f.d.mts +44 -0
- package/fjs/types/nullable/module.f.mjs +55 -0
- package/fjs/types/nullable/proof.f.mjs +34 -0
- package/fjs/types/nullable/types.d.ts +6 -0
- package/fjs/types/number/module.f.d.mts +27 -0
- package/fjs/types/number/module.f.mjs +56 -0
- package/fjs/types/number/proof.f.mjs +204 -0
- package/fjs/types/object/module.f.d.mts +45 -0
- package/fjs/types/object/module.f.mjs +67 -0
- package/fjs/types/object/proof.f.d.mts +28 -0
- package/fjs/types/object/proof.f.mjs +29 -0
- package/fjs/types/object/structurally_same/module.f.d.mts +39 -0
- package/fjs/types/object/structurally_same/module.f.mjs +59 -0
- package/fjs/types/object/structurally_same/proof.f.d.mts +6 -0
- package/fjs/types/object/structurally_same/proof.f.mjs +73 -0
- package/fjs/types/object/types.d.ts +50 -0
- package/fjs/types/ordered_map/module.f.d.mts +26 -0
- package/fjs/types/ordered_map/module.f.mjs +55 -0
- package/fjs/types/ordered_map/proof.f.d.mts +8 -0
- package/fjs/types/ordered_map/proof.f.mjs +91 -0
- package/fjs/types/ordered_map/types.d.ts +8 -0
- package/fjs/types/patricia_trie/module.f.d.mts +20 -0
- package/fjs/types/patricia_trie/module.f.mjs +43 -0
- package/fjs/types/patricia_trie/proof.f.d.mts +17 -0
- package/fjs/types/patricia_trie/proof.f.mjs +151 -0
- package/fjs/types/patricia_trie/types.d.ts +34 -0
- package/fjs/types/prime_field/module.f.d.mts +44 -0
- package/fjs/types/prime_field/module.f.mjs +137 -0
- package/fjs/types/prime_field/proof.f.mjs +131 -0
- package/fjs/types/prime_field/types.d.ts +38 -0
- package/fjs/types/range/module.f.d.mts +12 -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_map/module.f.d.mts +78 -0
- package/fjs/types/range_map/module.f.mjs +127 -0
- package/fjs/types/range_map/proof.f.d.mts +11 -0
- package/fjs/types/range_map/proof.f.mjs +188 -0
- package/fjs/types/range_map/types.d.ts +56 -0
- package/fjs/types/range_set/module.f.d.mts +10 -0
- package/fjs/types/range_set/module.f.mjs +20 -0
- package/fjs/types/range_set/proof.f.d.mts +4 -0
- package/fjs/types/range_set/proof.f.mjs +29 -0
- package/fjs/types/result/module.d.mts +13 -0
- package/fjs/types/result/module.f.d.mts +89 -0
- package/fjs/types/result/module.f.mjs +97 -0
- package/fjs/types/result/module.mjs +30 -0
- package/fjs/types/result/proof.f.d.mts +17 -0
- package/fjs/types/result/proof.f.mjs +61 -0
- package/fjs/types/result/types.d.ts +17 -0
- package/fjs/types/rtti/common/module.f.d.mts +119 -0
- package/fjs/types/rtti/common/module.f.mjs +185 -0
- package/fjs/types/rtti/common/proof.f.d.mts +13 -0
- package/fjs/types/rtti/common/proof.f.mjs +67 -0
- package/fjs/types/rtti/common/types.d.ts +43 -0
- package/fjs/types/rtti/data/module.f.d.mts +120 -0
- package/fjs/types/rtti/data/module.f.mjs +1030 -0
- package/fjs/types/rtti/data/proof.f.d.mts +75 -0
- package/fjs/types/rtti/data/proof.f.mjs +566 -0
- package/fjs/types/rtti/data/types.d.ts +83 -0
- package/fjs/types/rtti/module.f.d.mts +83 -0
- package/fjs/types/rtti/module.f.mjs +112 -0
- package/fjs/types/rtti/parse/module.f.d.mts +47 -0
- package/fjs/types/rtti/parse/module.f.mjs +198 -0
- package/fjs/types/rtti/parse/proof.f.d.mts +122 -0
- package/fjs/types/rtti/parse/proof.f.mjs +343 -0
- package/fjs/types/rtti/parse/types.d.ts +12 -0
- package/fjs/types/rtti/proof.f.d.mts +10 -0
- package/fjs/types/rtti/proof.f.mjs +22 -0
- package/fjs/types/rtti/ts/module.f.d.mts +93 -0
- package/fjs/types/rtti/ts/module.f.mjs +296 -0
- package/fjs/types/rtti/ts/proof.f.d.mts +103 -0
- package/fjs/types/rtti/ts/proof.f.mjs +236 -0
- package/fjs/types/rtti/ts/types.d.ts +99 -0
- package/fjs/types/rtti/types.d.ts +83 -0
- package/fjs/types/rtti/validate/module.f.d.mts +41 -0
- package/fjs/types/rtti/validate/module.f.mjs +171 -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/sorted_list/module.f.d.mts +46 -0
- package/fjs/types/sorted_list/module.f.mjs +119 -0
- package/fjs/types/sorted_list/proof.f.d.mts +7 -0
- package/fjs/types/sorted_list/proof.f.mjs +54 -0
- package/fjs/types/sorted_list/types.d.ts +15 -0
- package/fjs/types/sorted_set/module.f.d.mts +54 -0
- package/fjs/types/sorted_set/module.f.mjs +58 -0
- package/fjs/types/sorted_set/proof.f.d.mts +9 -0
- package/fjs/types/sorted_set/proof.f.mjs +79 -0
- package/fjs/types/sorted_set/types.d.ts +6 -0
- package/fjs/types/string/module.f.d.mts +40 -0
- package/fjs/types/string/module.f.mjs +59 -0
- package/fjs/types/string/proof.f.mjs +76 -0
- package/fjs/types/string_set/module.f.d.mts +39 -0
- package/fjs/types/string_set/module.f.mjs +54 -0
- package/fjs/types/string_set/proof.f.mjs +46 -0
- package/fjs/types/string_set/types.d.ts +7 -0
- package/fjs/types/ts/module.f.d.mts +22 -0
- package/fjs/types/ts/module.f.mjs +51 -0
- package/fjs/types/ts/proof.f.d.mts +39 -0
- package/fjs/types/ts/proof.f.mjs +102 -0
- package/fjs/types/ts/types.d.ts +21 -0
- package/fjs/types/uint8array/module.f.d.mts +42 -0
- package/fjs/types/uint8array/module.f.mjs +58 -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 +11 -0
- package/fjs/website/module.f.mjs +25 -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.d.ts +0 -48
- 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.d.ts +0 -11
- 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.d.ts +0 -14
- package/fjs/djs/parser/proof.f.js +0 -556
- package/fjs/djs/proof.f.d.ts +0 -10
- 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.d.ts +0 -14
- 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.d.ts +0 -10
- 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/all.test.js +0 -5
- 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/emergent_testing/scenarios/all.d.ts +0 -1
- package/fjs/emergent_testing/scenarios/all.js +0 -1
- package/fjs/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -6
- package/fjs/emergent_testing/scenarios/async-subtests.fail.js +0 -9
- package/fjs/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -6
- package/fjs/emergent_testing/scenarios/async-subtests.pass.js +0 -9
- package/fjs/emergent_testing/scenarios/async.fail.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/async.fail.js +0 -6
- package/fjs/emergent_testing/scenarios/async.pass.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/async.pass.js +0 -5
- package/fjs/emergent_testing/scenarios/fail.fail.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/fail.fail.js +0 -3
- package/fjs/emergent_testing/scenarios/return-value.pass.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/return-value.pass.js +0 -4
- package/fjs/emergent_testing/scenarios/thenable.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/thenable.pass.js +0 -11
- package/fjs/emergent_testing/scenarios/thenable2.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/thenable2.pass.js +0 -3
- package/fjs/emergent_testing/scenarios/throw.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/throw.pass.js +0 -3
- 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.d.ts +0 -4
- 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.d.ts +0 -16
- 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.d.ts +0 -32
- 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.d.ts +0 -42
- 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.d.ts +0 -40
- package/fjs/media/type/proof.f.js +0 -213
- package/fjs/module.d.ts +0 -2
- 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.d.ts +0 -9
- 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.d.ts +0 -35
- 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.d.ts +0 -12
- 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.d.ts +0 -6
- 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.d.ts +0 -8
- 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.d.ts +0 -10
- 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.d.ts +0 -5
- 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.d.ts +0 -65
- 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.d.ts +0 -9
- 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.d.ts +0 -1
- 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.d.ts +0 -1
- 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/option/module.f.js +0 -6
- 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.d.ts +0 -5
- 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/phantom/module.f.js +0 -11
- 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.d.ts +0 -1
- 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.d.ts +0 -12
- 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.d.ts +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.d.ts +0 -38
- 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.d.ts +0 -1
- 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/{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/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/serializer/{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/fsc/{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/path/{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/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/{emergent_testing/all.test.d.ts → types/bigint/benchmark.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/{text/sgr/proof.f.d.ts → types/nullable/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/phantom/{module.f.d.ts → types.d.ts} +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/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/website/{proof.f.d.ts → proof.f.d.mts} +0 -0
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type MemOp } from '../../effects/memory/module.f.ts';
|
|
2
|
-
import { type ToolEntry } from '../../protocol/mcp/module.f.ts';
|
|
3
|
-
import { type FileCasOperation } from '../../cas/module.f.ts';
|
|
4
|
-
import { type Cache } from '../../cas/evo/module.f.ts';
|
|
5
|
-
import type { Key } from '../../effects/memory/module.f.ts';
|
|
6
|
-
/** Arguments for `cas_add`: content to store, with optional encoding type. */
|
|
7
|
-
export declare const casAddArgs: {
|
|
8
|
-
readonly content: import("../../types/rtti/module.f.ts").String;
|
|
9
|
-
readonly type: import("../../types/rtti/module.f.ts").Or<["text", "base64", undefined]>;
|
|
10
|
-
};
|
|
11
|
-
/** Arguments for `cas_get`: the cBase32 hash to look up; optionally request inline content. */
|
|
12
|
-
export declare const casGetArgs: {
|
|
13
|
-
readonly hash: import("../../types/rtti/module.f.ts").String;
|
|
14
|
-
readonly content: import("../../types/rtti/module.f.ts").Or<readonly [import("../../types/rtti/module.f.ts").Boolean, undefined]>;
|
|
15
|
-
};
|
|
16
|
-
/** Arguments for `cas_list`: none. */
|
|
17
|
-
export declare const casListArgs: {};
|
|
18
|
-
/**
|
|
19
|
-
* Registry of all CAS tools, bound to `home` and the Evo cache at
|
|
20
|
-
* `cacheKey`. `cas_add` is the only tool that writes, so it is the only one
|
|
21
|
-
* that needs `cacheKey`: a successfully stored blob is folded into the Evo
|
|
22
|
-
* cache via `syncRevision` when it happens to be a `vnd.fjs.revision` — a
|
|
23
|
-
* plain `cas_add` and `evo_add` are two ways to reach the same store, and
|
|
24
|
-
* this keeps `evo_list`/`evo_head` honest about either one without a
|
|
25
|
-
* rescan.
|
|
26
|
-
*/
|
|
27
|
-
export declare const casToolRegistry: (home: string) => (cacheKey: Key<Cache>) => readonly ToolEntry<FileCasOperation | MemOp>[];
|
package/fjs/mcp/cas/module.f.js
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
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.ts`) 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.ts` 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.ts`) 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.ts` `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 { string, option, or, boolean } from '../../types/rtti/module.f.js';
|
|
105
|
-
import { stringify } from '../../media/json/module.f.js';
|
|
106
|
-
import { pure, step } from '../../effects/module.f.js';
|
|
107
|
-
import {} from '../../effects/memory/module.f.js';
|
|
108
|
-
import { cBase32ToVec, vecToCBase32 } from '../../basen/cbase32/module.f.js';
|
|
109
|
-
import { decode as base64Decode, encode as base64Encode } from '../../basen/base64/module.f.js';
|
|
110
|
-
import { tryUtf8 } from '../../text/module.f.js';
|
|
111
|
-
import { detectStream } from '../../media/type/module.f.js';
|
|
112
|
-
import { detect } from '../../media/module.f.js';
|
|
113
|
-
import { revisionDialect } from '../../media/revision/module.f.js';
|
|
114
|
-
import { maxLengthBytes } from '../../types/bit_vec/module.f.js';
|
|
115
|
-
import { ok } from '../../types/result/module.f.js';
|
|
116
|
-
import { toolEntry, errorResult, okResult, } from '../../protocol/mcp/module.f.js';
|
|
117
|
-
import { collectRead, fileCas } from '../../cas/module.f.js';
|
|
118
|
-
import { fromVec } from '../../text/utf8/module.f.js';
|
|
119
|
-
import { identity } from '../../types/function/module.f.js';
|
|
120
|
-
import { sha256 } from '../../crypto/sha2/module.f.js';
|
|
121
|
-
import { nonEmpty, empty as elEmpty } from '../../effects/list/module.f.js';
|
|
122
|
-
import { syncRevision } from '../../cas/evo/module.f.js';
|
|
123
|
-
// ── Argument schemas (declared once, used for both inputSchema and validate) ─────
|
|
124
|
-
/** Arguments for `cas_add`: content to store, with optional encoding type. */
|
|
125
|
-
export const casAddArgs = {
|
|
126
|
-
content: string,
|
|
127
|
-
type: or('text', 'base64', undefined)
|
|
128
|
-
};
|
|
129
|
-
/** Arguments for `cas_get`: the cBase32 hash to look up; optionally request inline content. */
|
|
130
|
-
export const casGetArgs = {
|
|
131
|
-
hash: string,
|
|
132
|
-
content: option(boolean)
|
|
133
|
-
};
|
|
134
|
-
/** Arguments for `cas_list`: none. */
|
|
135
|
-
export const casListArgs = {};
|
|
136
|
-
// ── Tool registry ──────────────────────────────────────────────────────────────
|
|
137
|
-
const toJson = stringify(identity);
|
|
138
|
-
/** The dialect-aware classifier, bound to the dialects this server recognizes. */
|
|
139
|
-
const detectDialect = detect([revisionDialect]);
|
|
140
|
-
/**
|
|
141
|
-
* Registry of all CAS tools, bound to `home` and the Evo cache at
|
|
142
|
-
* `cacheKey`. `cas_add` is the only tool that writes, so it is the only one
|
|
143
|
-
* that needs `cacheKey`: a successfully stored blob is folded into the Evo
|
|
144
|
-
* cache via `syncRevision` when it happens to be a `vnd.fjs.revision` — a
|
|
145
|
-
* plain `cas_add` and `evo_add` are two ways to reach the same store, and
|
|
146
|
-
* this keeps `evo_list`/`evo_head` honest about either one without a
|
|
147
|
-
* rescan.
|
|
148
|
-
*/
|
|
149
|
-
export const casToolRegistry = (home) => (cacheKey) => {
|
|
150
|
-
const c = fileCas(sha256)(home);
|
|
151
|
-
return [
|
|
152
|
-
toolEntry('cas_add', '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.', casAddArgs, ({ type, content }) => {
|
|
153
|
-
// type:'text' or 'base64' — resolve content to Vec, store via c.write()
|
|
154
|
-
let x = type === 'base64'
|
|
155
|
-
? base64Decode(content)
|
|
156
|
-
: tryUtf8(content);
|
|
157
|
-
return x === null
|
|
158
|
-
? pure(errorResult('too large or malformed — for large content, run `npx functionalscript cas add <path>` (or have the user run it) instead'))
|
|
159
|
-
// The resolved content fits in one chunk; feed it as a single-item stream.
|
|
160
|
-
: step(c.write(nonEmpty(ok(x), elEmpty())), (writeResult) => {
|
|
161
|
-
if (writeResult[0] === 'error') {
|
|
162
|
-
return pure(errorResult('write'));
|
|
163
|
-
}
|
|
164
|
-
const hash = writeResult[1];
|
|
165
|
-
return step(syncRevision(cacheKey)(hash)(x), () => pure(okResult(vecToCBase32(hash))));
|
|
166
|
-
});
|
|
167
|
-
}),
|
|
168
|
-
toolEntry('cas_get', '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.', casGetArgs, r => {
|
|
169
|
-
const key = cBase32ToVec(r.hash);
|
|
170
|
-
if (key === null) {
|
|
171
|
-
return pure(errorResult(`invalid cBase32 hash: ${r.hash}`));
|
|
172
|
-
}
|
|
173
|
-
const uri = c.url(key);
|
|
174
|
-
return step(detectStream(c.read(key)), ([tag, detected]) => {
|
|
175
|
-
if (tag === 'error') {
|
|
176
|
-
return pure(errorResult(`no such hash: ${r.hash}`));
|
|
177
|
-
}
|
|
178
|
-
const { length, mime_type: mimeType, type } = detected;
|
|
179
|
-
const meta = { length: Number(length), mimeType, type, uri };
|
|
180
|
-
if (r.content !== true) {
|
|
181
|
-
// A dialect match can only be decided from the whole parsed blob;
|
|
182
|
-
// only attempt the extra bounded read when it stands a chance
|
|
183
|
-
// (whole-blob text within the same cap `content: true` allows).
|
|
184
|
-
if (type !== 'text' || length > maxLengthBytes) {
|
|
185
|
-
return pure(okResult(toJson(meta)));
|
|
186
|
-
}
|
|
187
|
-
return step(collectRead(c.read(key)), ([collectTag, value]) => {
|
|
188
|
-
// Already known to fit from the streaming pass above, so an
|
|
189
|
-
// error here means the hash vanished between reads; fall back
|
|
190
|
-
// to the streaming verdict rather than fail the whole request.
|
|
191
|
-
if (collectTag === 'error') {
|
|
192
|
-
return pure(okResult(toJson(meta)));
|
|
193
|
-
}
|
|
194
|
-
const refined = detectDialect(value);
|
|
195
|
-
return pure(okResult(toJson({ ...meta, mimeType: refined.mime_type })));
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
// A single `Vec` caps at `maxLength` bits (`maxLengthBytes` bytes), so
|
|
199
|
-
// a larger blob cannot be buffered for inline transfer. Report the
|
|
200
|
-
// size and point at the size-independent alternatives instead of
|
|
201
|
-
// misreporting an existing blob as `no such hash`.
|
|
202
|
-
if (length > maxLengthBytes) {
|
|
203
|
-
return pure(errorResult(`blob too large to fetch inline (${length} bytes, limit ${maxLengthBytes} bytes); use the uri field (${uri}) or omit content for metadata`));
|
|
204
|
-
}
|
|
205
|
-
return step(collectRead(c.read(key)), ([collectTag, value]) => {
|
|
206
|
-
if (collectTag === 'error') {
|
|
207
|
-
return pure(errorResult(`no such hash: ${r.hash}`));
|
|
208
|
-
}
|
|
209
|
-
// Re-derive the verdict from the now-materialized blob so a
|
|
210
|
-
// dialect match — only decidable with the whole parsed JSON in
|
|
211
|
-
// hand — is reflected in the inline result too, not just the
|
|
212
|
-
// streaming guess.
|
|
213
|
-
const refined = detectDialect(value);
|
|
214
|
-
const refinedMeta = { length: Number(refined.length), mimeType: refined.mime_type, type: refined.type, uri };
|
|
215
|
-
if (refined.type === 'text') {
|
|
216
|
-
// `type: 'text'` means the detector validated `value` as UTF-8,
|
|
217
|
-
// so `fromVec` is non-null here; guard defensively regardless.
|
|
218
|
-
const str = fromVec(value);
|
|
219
|
-
return pure(str === null
|
|
220
|
-
? errorResult(`content is not byte-aligned: ${r.hash}`)
|
|
221
|
-
: okResult(toJson({ ...refinedMeta, text: str })));
|
|
222
|
-
}
|
|
223
|
-
const blob = base64Encode(value);
|
|
224
|
-
return pure(blob === null
|
|
225
|
-
? errorResult(`content is not byte-aligned: ${r.hash}`)
|
|
226
|
-
: okResult(toJson({ ...refinedMeta, blob })));
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
}),
|
|
230
|
-
toolEntry('cas_list', 'List all stored content hashes (cBase32), one per line.', casListArgs, () => step(c.list(), hashes => pure(okResult(hashes.map(vecToCBase32).join('\n'))))),
|
|
231
|
-
];
|
|
232
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type Operation } from '../../effects/module.f.ts';
|
|
2
|
-
import { type MemOp } from '../../effects/memory/module.f.ts';
|
|
3
|
-
import { type ToolEntry } from '../../protocol/mcp/module.f.ts';
|
|
4
|
-
import { type Evo } from '../../cas/evo/module.f.ts';
|
|
5
|
-
/**
|
|
6
|
-
* Arguments for `evo_list`: an optional status filter, forwarded unchanged to
|
|
7
|
-
* `Evo.list` — omitted lists the active subjects, `true` the archived ones.
|
|
8
|
-
*/
|
|
9
|
-
export declare const evoListArgs: {
|
|
10
|
-
readonly archived: import("../../types/rtti/module.f.ts").Or<readonly [true, undefined]>;
|
|
11
|
-
};
|
|
12
|
-
/** Arguments for `evo_head`: the subject whose current heads are requested. */
|
|
13
|
-
export declare const evoHeadArgs: {
|
|
14
|
-
readonly subject: import("../../types/rtti/module.f.ts").String;
|
|
15
|
-
};
|
|
16
|
-
/** Arguments for `evo_revision`: the hash of the revision to read. */
|
|
17
|
-
export declare const evoRevisionArgs: {
|
|
18
|
-
readonly hash: import("../../types/rtti/module.f.ts").String;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Arguments for `evo_add`: a new revision, per `fjs/cas/evo`'s
|
|
22
|
-
* `RevisionData` — every field of it the caller supplies, i.e. all but
|
|
23
|
-
* `generation`, which the server computes.
|
|
24
|
-
*/
|
|
25
|
-
export declare const evoAddArgs: {
|
|
26
|
-
readonly parents: import("../../types/rtti/module.f.ts").Type1<"array", import("../../types/rtti/module.f.ts").String>;
|
|
27
|
-
readonly snapshot: import("../../types/rtti/module.f.ts").Or<readonly [import("../../types/rtti/module.f.ts").String, undefined]>;
|
|
28
|
-
readonly subject: import("../../types/rtti/module.f.ts").Or<readonly [import("../../types/rtti/module.f.ts").String, undefined]>;
|
|
29
|
-
readonly archived: import("../../types/rtti/module.f.ts").Or<readonly [true, undefined]>;
|
|
30
|
-
};
|
|
31
|
-
/** Registry of all Evo tools, bound to an `Evo<O>`. */
|
|
32
|
-
export declare const evoToolRegistry: <O extends Operation>(e: Evo<O>) => readonly ToolEntry<O | MemOp>[];
|
package/fjs/mcp/evo/module.f.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP tool definitions for the Evo API (`fjs/cas/evo/module.f.ts`): subjects,
|
|
3
|
-
* revision heads, and the typed read of a single revision over the
|
|
4
|
-
* content-addressable store, backed by the in-memory cache the core module
|
|
5
|
-
* maintains.
|
|
6
|
-
*
|
|
7
|
-
* ## Tools
|
|
8
|
-
*
|
|
9
|
-
* | Tool | args | action | result |
|
|
10
|
-
* |----------------|-----------------------------------------------|-------------------|--------------------------------------|
|
|
11
|
-
* | `evo_list` | `{ archived? }` | `e.list(...)` | subjects, as a JSON array of strings |
|
|
12
|
-
* | `evo_head` | `{ subject }` | `e.head(...)` | head hashes, one per line |
|
|
13
|
-
* | `evo_revision` | `{ hash }` | `e.revision(...)` | the revision, as JSON `RevisionData` |
|
|
14
|
-
* | `evo_add` | `{ parents, snapshot?, subject?, archived? }` | `e.add(...)` | hash (cBase32) |
|
|
15
|
-
*
|
|
16
|
-
* `evo_add` and `evo_revision` speak the same structure — `fjs/cas/evo`'s
|
|
17
|
-
* `RevisionData` — in opposite directions, so a revision read back can be
|
|
18
|
-
* added again as-is. `evo_add`'s advertised arguments stay as they are: the
|
|
19
|
-
* one field `evo_revision` returns that `evo_add` does not accept is
|
|
20
|
-
* `generation`, which the server computes, and rtti's struct validation
|
|
21
|
-
* ignores properties the schema does not name, so a whole `evo_revision`
|
|
22
|
-
* result can be passed straight back to `evo_add`.
|
|
23
|
-
*
|
|
24
|
-
* ## Result size
|
|
25
|
-
*
|
|
26
|
-
* `evo_list` and `evo_revision` answer with JSON carried as MCP *text*
|
|
27
|
-
* content, so the JSON-RPC serializer escapes it a second time on the way
|
|
28
|
-
* out and a modest result can encode to a much longer line (a subject of
|
|
29
|
-
* quote characters is the worst case). A response whose encoded line exceeds
|
|
30
|
-
* the transport cap is not lost: `fjs/protocol/mcp/stdio` retries with a small
|
|
31
|
-
* `-32603` body carrying the request's `id`, so every request still gets a
|
|
32
|
-
* response and the process never crashes. That is the transport's contract
|
|
33
|
-
* for every tool — `cas_get` has proofs for the same double-escaping path —
|
|
34
|
-
* and no tool here can pre-empt it: whether the encoded response fits is
|
|
35
|
-
* known only by encoding it, which is the transport's job, and guessing from
|
|
36
|
-
* an unencoded size is exactly the size estimate that must never be made.
|
|
37
|
-
*
|
|
38
|
-
* These tools are not served by their own process: `fjs/mcp` (the same
|
|
39
|
-
* server as `cas_add`/`cas_get`/`cas_list`) builds one `Evo<O>` from its own
|
|
40
|
-
* `Cas<O>` and cache slot, concatenates `evoToolRegistry` onto its own
|
|
41
|
-
* registry, and serves everything from that single process — one `~/.cas/`
|
|
42
|
-
* store, one Evo cache, one server.
|
|
43
|
-
*
|
|
44
|
-
* @module
|
|
45
|
-
*/
|
|
46
|
-
import { string, option, array } from '../../types/rtti/module.f.js';
|
|
47
|
-
import { pure, step } from '../../effects/module.f.js';
|
|
48
|
-
import {} from '../../effects/memory/module.f.js';
|
|
49
|
-
import { toolEntry, errorResult, okResult, } from '../../protocol/mcp/module.f.js';
|
|
50
|
-
import { stringify } from '../../media/json/module.f.js';
|
|
51
|
-
import { identity } from '../../types/function/module.f.js';
|
|
52
|
-
import {} from '../../cas/evo/module.f.js';
|
|
53
|
-
// ── Argument schemas (declared once, used for both inputSchema and validate) ─────
|
|
54
|
-
/**
|
|
55
|
-
* Arguments for `evo_list`: an optional status filter, forwarded unchanged to
|
|
56
|
-
* `Evo.list` — omitted lists the active subjects, `true` the archived ones.
|
|
57
|
-
*/
|
|
58
|
-
export const evoListArgs = {
|
|
59
|
-
archived: option(true),
|
|
60
|
-
};
|
|
61
|
-
/** Arguments for `evo_head`: the subject whose current heads are requested. */
|
|
62
|
-
export const evoHeadArgs = {
|
|
63
|
-
subject: string,
|
|
64
|
-
};
|
|
65
|
-
/** Arguments for `evo_revision`: the hash of the revision to read. */
|
|
66
|
-
export const evoRevisionArgs = {
|
|
67
|
-
hash: string,
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Arguments for `evo_add`: a new revision, per `fjs/cas/evo`'s
|
|
71
|
-
* `RevisionData` — every field of it the caller supplies, i.e. all but
|
|
72
|
-
* `generation`, which the server computes.
|
|
73
|
-
*/
|
|
74
|
-
export const evoAddArgs = {
|
|
75
|
-
parents: array(string),
|
|
76
|
-
snapshot: option(string),
|
|
77
|
-
subject: option(string),
|
|
78
|
-
archived: option(true),
|
|
79
|
-
};
|
|
80
|
-
// ── Tool registry ────────────────────────────────────────────────────────────────
|
|
81
|
-
/** Canonical JSON encoder for the `evo_list` and `evo_revision` results. */
|
|
82
|
-
const toJson = stringify(identity);
|
|
83
|
-
/** Registry of all Evo tools, bound to an `Evo<O>`. */
|
|
84
|
-
export const evoToolRegistry = (e) => [
|
|
85
|
-
toolEntry('evo_list', 'List subjects, as a JSON array of strings. By default only the active ones: a subject is active while at least one of its current heads is not archived. Pass `archived: true` to list the archived subjects instead — those with at least one current head, all of them archived. A subject with no current heads is in neither list.', evoListArgs,
|
|
86
|
-
// Subjects are arbitrary caller-supplied strings (unlike hashes, not
|
|
87
|
-
// constrained to a newline-free alphabet), so a `join('\n')` line
|
|
88
|
-
// format could not represent an empty subject or one containing a
|
|
89
|
-
// newline without ambiguity — JSON encoding can.
|
|
90
|
-
({ archived }) => step(e.list(archived), subjects => pure(okResult(toJson(subjects))))),
|
|
91
|
-
toolEntry('evo_head', 'List the current head hashes (cBase32) of a subject, one per line. Empty when the subject is unknown.', evoHeadArgs, ({ subject }) => step(e.head(subject), heads => pure(okResult(heads.join('\n'))))),
|
|
92
|
-
toolEntry('evo_revision', 'Read one revision by hash, as JSON: `{ subject, parents, snapshot, generation, archived? }`. `parents[0]` is the mainline parent and every further entry is a merged-in branch; `parents` and `snapshot` come back in their canonical cBase32 spelling, so they compare directly against `evo_head` output. Errors when the hash is not cBase32, is not present in the store, could not be read, or does not hold a `vnd.fjs.revision` blob — use `cas_get` for raw bytes of non-revision content.', evoRevisionArgs,
|
|
93
|
-
// The revision goes out as JSON in a text content item, like
|
|
94
|
-
// `evo_list`'s. An encoded response that outgrows the transport cap is
|
|
95
|
-
// the transport's `-32603`, not a tool-level error — see "Result size"
|
|
96
|
-
// in the module doc.
|
|
97
|
-
({ hash }) => step(e.revision(hash), result => pure(result[0] === 'error' ? errorResult(result[1]) : okResult(toJson(result[1]))))),
|
|
98
|
-
toolEntry('evo_add', 'Add a new revision (a `vnd.fjs.revision` blob) and return its hash (cBase32). `subject` is required unless there is exactly one parent, from which it is inherited. `snapshot`, when omitted, is resolved from the parents (zero parents → `subject`, one parent → the parent\'s snapshot; a merge requires an explicit `snapshot`) and written explicitly. `generation` is computed by the server.', evoAddArgs, (input) => step(e.add(input), result => pure(result[0] === 'error' ? errorResult(result[1]) : okResult(result[1])))),
|
|
99
|
-
];
|
package/fjs/mcp/evo/proof.f.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare const proof: {
|
|
2
|
-
toolNamesMatchTheDesign: () => void;
|
|
3
|
-
evoListReflectsTheCache: () => void;
|
|
4
|
-
evoListEncodesArbitrarySubjectsAsJson: () => void;
|
|
5
|
-
evoListForwardsTheArchivedFilter: () => void;
|
|
6
|
-
evoHeadReflectsTheCache: () => void;
|
|
7
|
-
evoHeadMissingSubjectIsInvalidArguments: () => void;
|
|
8
|
-
evoRevisionReturnsRevisionJson: () => void;
|
|
9
|
-
evoRevisionDomainErrorIsError: () => void;
|
|
10
|
-
evoAddSuccessReturnsHash: () => void;
|
|
11
|
-
evoAddDomainErrorIsError: () => void;
|
|
12
|
-
};
|
package/fjs/mcp/evo/proof.f.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
2
|
-
import { fileCas } from '../../cas/module.f.js';
|
|
3
|
-
import { sha256 } from '../../crypto/sha2/module.f.js';
|
|
4
|
-
import { emptyState, virtual } from '../../effects/node/virtual/module.f.js';
|
|
5
|
-
import { vec8 } from '../../types/bit_vec/module.f.js';
|
|
6
|
-
import { vecToCBase32 } from '../../basen/cbase32/module.f.js';
|
|
7
|
-
import { initEvo, evo } from '../../cas/evo/module.f.js';
|
|
8
|
-
import { evoToolRegistry } from './module.f.js';
|
|
9
|
-
import { parse as parseJson } from '../../media/json/module.f.js';
|
|
10
|
-
import { array, string as rttiString } from '../../types/rtti/module.f.js';
|
|
11
|
-
import { parse as rttiParse } from '../../types/rtti/parse/module.f.js';
|
|
12
|
-
import { unwrap } from '../../types/result/module.f.js';
|
|
13
|
-
const home = '/home/user';
|
|
14
|
-
const parseSubjects = rttiParse(array(rttiString));
|
|
15
|
-
const findEntry = (registry, name) => {
|
|
16
|
-
const entry = registry.find(e => e.name === name);
|
|
17
|
-
assert(entry !== undefined, ['missing tool entry', name]);
|
|
18
|
-
return entry;
|
|
19
|
-
};
|
|
20
|
-
const textOf = (result) => {
|
|
21
|
-
const [item] = result.content;
|
|
22
|
-
assert(item.type === 'text', ['expected a text content item', item]);
|
|
23
|
-
return item.text;
|
|
24
|
-
};
|
|
25
|
-
export const proof = {
|
|
26
|
-
toolNamesMatchTheDesign: () => {
|
|
27
|
-
const e = {
|
|
28
|
-
list: () => { throw 'unused'; },
|
|
29
|
-
head: () => { throw 'unused'; },
|
|
30
|
-
add: () => { throw 'unused'; },
|
|
31
|
-
revision: () => { throw 'unused'; },
|
|
32
|
-
};
|
|
33
|
-
assertEq(evoToolRegistry(e).map(entry => entry.name).join(','), 'evo_list,evo_head,evo_revision,evo_add');
|
|
34
|
-
},
|
|
35
|
-
evoListReflectsTheCache: () => {
|
|
36
|
-
const c = fileCas(sha256)(home);
|
|
37
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
38
|
-
const e = evo(c)(cacheKey);
|
|
39
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_list');
|
|
40
|
-
const [, result] = virtual(state0)(entry.handle({}));
|
|
41
|
-
assert(!result.isError);
|
|
42
|
-
assertEq(textOf(result), '[]');
|
|
43
|
-
},
|
|
44
|
-
// Regression: subjects are arbitrary strings, not constrained to a
|
|
45
|
-
// newline-free alphabet like hashes, so evo_list must not join them with
|
|
46
|
-
// '\n' — a subject containing a newline, or an empty subject, would be
|
|
47
|
-
// indistinguishable from multiple/no subjects in that format. JSON
|
|
48
|
-
// encoding preserves both exactly.
|
|
49
|
-
evoListEncodesArbitrarySubjectsAsJson: () => {
|
|
50
|
-
const c = fileCas(sha256)(home);
|
|
51
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
52
|
-
const e = evo(c)(cacheKey);
|
|
53
|
-
const [state1, addA] = virtual(state0)(e.add({ parents: [], subject: 'line one\nline two', snapshot: vecToCBase32(vec8(0x2an)) }));
|
|
54
|
-
assert(addA[0] === 'ok', ['expected add ok', addA]);
|
|
55
|
-
const [state2, addB] = virtual(state1)(e.add({ parents: [], subject: '', snapshot: vecToCBase32(vec8(0x2bn)) }));
|
|
56
|
-
assert(addB[0] === 'ok', ['expected add ok', addB]);
|
|
57
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_list');
|
|
58
|
-
const [, result] = virtual(state2)(entry.handle({}));
|
|
59
|
-
assert(!result.isError);
|
|
60
|
-
const subjects = unwrap(parseSubjects(unwrap(parseJson(textOf(result)))));
|
|
61
|
-
assertEq(subjects.length, 2);
|
|
62
|
-
assert(subjects.includes('line one\nline two'), ['unexpected subjects', subjects]);
|
|
63
|
-
assert(subjects.includes(''), ['unexpected subjects', subjects]);
|
|
64
|
-
},
|
|
65
|
-
// The `archived` argument is a pass-through to `Evo.list`'s status filter:
|
|
66
|
-
// omitted lists the active subjects, `true` the archived ones.
|
|
67
|
-
evoListForwardsTheArchivedFilter: () => {
|
|
68
|
-
const c = fileCas(sha256)(home);
|
|
69
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
70
|
-
const e = evo(c)(cacheKey);
|
|
71
|
-
const [state1, add] = virtual(state0)(e.add({ parents: [], subject: 'gone', snapshot: vecToCBase32(vec8(0x2cn)), archived: true }));
|
|
72
|
-
assert(add[0] === 'ok', ['expected add ok', add]);
|
|
73
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_list');
|
|
74
|
-
const [state2, active] = virtual(state1)(entry.handle({}));
|
|
75
|
-
assert(!active.isError);
|
|
76
|
-
assertEq(textOf(active), '[]');
|
|
77
|
-
const [, archived] = virtual(state2)(entry.handle({ archived: true }));
|
|
78
|
-
assert(!archived.isError);
|
|
79
|
-
assertEq(textOf(archived), '["gone"]');
|
|
80
|
-
},
|
|
81
|
-
evoHeadReflectsTheCache: () => {
|
|
82
|
-
const c = fileCas(sha256)(home);
|
|
83
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
84
|
-
const e = evo(c)(cacheKey);
|
|
85
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_head');
|
|
86
|
-
const [, result] = virtual(state0)(entry.handle({ subject: 'nope' }));
|
|
87
|
-
assert(!result.isError);
|
|
88
|
-
assertEq(textOf(result), '');
|
|
89
|
-
},
|
|
90
|
-
evoHeadMissingSubjectIsInvalidArguments: () => {
|
|
91
|
-
const c = fileCas(sha256)(home);
|
|
92
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
93
|
-
const e = evo(c)(cacheKey);
|
|
94
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_head');
|
|
95
|
-
const [, result] = virtual(state0)(entry.handle({}));
|
|
96
|
-
assertEq(result.isError, true);
|
|
97
|
-
},
|
|
98
|
-
// Covers evo_revision's success branch: the stored revision comes back as
|
|
99
|
-
// the JSON of `RevisionData` — `dialect` dropped, `generation` and the
|
|
100
|
-
// resolved `snapshot` included.
|
|
101
|
-
evoRevisionReturnsRevisionJson: () => {
|
|
102
|
-
const c = fileCas(sha256)(home);
|
|
103
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
104
|
-
const e = evo(c)(cacheKey);
|
|
105
|
-
const subject = vecToCBase32(vec8(0x3n));
|
|
106
|
-
const [state1, added] = virtual(state0)(e.add({ parents: [], subject }));
|
|
107
|
-
assert(added[0] === 'ok', ['expected add ok', added]);
|
|
108
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_revision');
|
|
109
|
-
const [, result] = virtual(state1)(entry.handle({ hash: added[1] }));
|
|
110
|
-
assert(!result.isError);
|
|
111
|
-
assertEq(textOf(result), `{"subject":"${subject}","parents":[],"snapshot":"${subject}","generation":0}`);
|
|
112
|
-
},
|
|
113
|
-
// Covers evo_revision's error branch: a domain-level failure (a hash the
|
|
114
|
-
// store has nothing under) is surfaced as isError with the message.
|
|
115
|
-
evoRevisionDomainErrorIsError: () => {
|
|
116
|
-
const c = fileCas(sha256)(home);
|
|
117
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
118
|
-
const e = evo(c)(cacheKey);
|
|
119
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_revision');
|
|
120
|
-
const [, result] = virtual(state0)(entry.handle({ hash: vecToCBase32(vec8(0x4n)) }));
|
|
121
|
-
assertEq(result.isError, true);
|
|
122
|
-
assert(textOf(result).includes('revision not found'));
|
|
123
|
-
},
|
|
124
|
-
// Covers evo_add's success branch: a valid revision is stored and its
|
|
125
|
-
// hash comes back as plain, non-error text.
|
|
126
|
-
evoAddSuccessReturnsHash: () => {
|
|
127
|
-
const c = fileCas(sha256)(home);
|
|
128
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
129
|
-
const e = evo(c)(cacheKey);
|
|
130
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_add');
|
|
131
|
-
const args = { parents: [], subject: 'doc', snapshot: vecToCBase32(vec8(0x1n)) };
|
|
132
|
-
const [, result] = virtual(state0)(entry.handle(args));
|
|
133
|
-
assert(!result.isError);
|
|
134
|
-
assert(textOf(result).length > 0);
|
|
135
|
-
},
|
|
136
|
-
// Covers evo_add's error branch: a domain-level failure (Evo.add's
|
|
137
|
-
// Result) is surfaced as isError with the failure message as text.
|
|
138
|
-
evoAddDomainErrorIsError: () => {
|
|
139
|
-
const c = fileCas(sha256)(home);
|
|
140
|
-
const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
|
|
141
|
-
const e = evo(c)(cacheKey);
|
|
142
|
-
const entry = findEntry(evoToolRegistry(e), 'evo_add');
|
|
143
|
-
const [, result] = virtual(state0)(entry.handle({ parents: [] }));
|
|
144
|
-
assertEq(result.isError, true);
|
|
145
|
-
assert(textOf(result).includes('subject is required'));
|
|
146
|
-
},
|
|
147
|
-
};
|
package/fjs/mcp/module.f.d.ts
DELETED
|
@@ -1,56 +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 { type Effect } from '../effects/module.f.ts';
|
|
30
|
-
import { type MemOp } from '../effects/memory/module.f.ts';
|
|
31
|
-
import { type Read, type Write } from '../effects/node/module.f.ts';
|
|
32
|
-
import { type McpConfig, type McpHandlers } from '../protocol/mcp/module.f.ts';
|
|
33
|
-
import { type FileCasOperation } from '../cas/module.f.ts';
|
|
34
|
-
import { type Cache } from '../cas/evo/module.f.ts';
|
|
35
|
-
import type { Key } from '../effects/memory/module.f.ts';
|
|
36
|
-
/**
|
|
37
|
-
* MCP handlers for `FileCas` (`fjs/mcp/cas`) plus the Evo API (`fjs/mcp/evo`)
|
|
38
|
-
* layered on it, bound to `home` and an already-built Evo cache slot (see
|
|
39
|
-
* `initEvo`).
|
|
40
|
-
*/
|
|
41
|
-
export declare const casMcpHandlers: (home: string) => (cacheKey: Key<Cache>) => McpHandlers<FileCasOperation | MemOp>;
|
|
42
|
-
/**
|
|
43
|
-
* Static MCP configuration for the CAS server: advertises the `tools`
|
|
44
|
-
* capability, identifies the server, and pins the protocol version.
|
|
45
|
-
*/
|
|
46
|
-
export declare const casConfig: McpConfig;
|
|
47
|
-
/**
|
|
48
|
-
* Runs the combined CAS + Evo MCP server over stdio: scans `~/.cas/` once to
|
|
49
|
-
* build the Evo subject/head cache (`initEvo`), allocates the session-state
|
|
50
|
-
* slot, builds the `mcpStep` for the merged tool registry, and drives the
|
|
51
|
-
* read → parse → dispatch → write loop until stdin EOF.
|
|
52
|
-
*/
|
|
53
|
-
export declare const casMcpServer: (home: string) => Effect<Read | Write | MemOp | FileCasOperation, void>;
|
|
54
|
-
export declare const proof: {
|
|
55
|
-
casMcpServer: () => void;
|
|
56
|
-
};
|