mcp: add project-aware verification and refresh data

ober

e4d03cd6664bceb3b6ba49493071d101747fdf6e

diff --git a/Makefile b/Makefile
index 87b4549..538fe0c 100644
--- a/Makefile
+++ b/Makefile
@@ -94,6 +94,7 @@ help:
 	@echo ""
 	@echo "LSP server (jerboa-lsp + jlsp binary):"
 	@echo "  lsp              Compile-check the LSP server (lsp/main.ss)"
+	@echo "  api-signatures   Regenerate data/api-signatures.sexp from source"
 	@echo "  lsp-gen          Regenerate completion tables from data/api-signatures.sexp"
 	@echo "  lsp-run          Run the LSP server from source over stdio"
 	@echo "  lsp-test         Run LSP unit + e2e tests"
@@ -626,15 +627,20 @@ jmcp-portable: jmcp jmcp-macos-amd64 jmcp-linux-amd64 jmcp-linux-arm64 jmcp-free
 # LSP clients already expect), with all boot files + program embedded.
 LSP_ENTRY     = lsp/main.ss
 LSP_GEN       = lsp/gen-completion-tables.ss
+API_SIG_GEN   = tools/gen-api-signatures.ss
 LSP_UNIT_TEST = lsp/test/unit-test.ss
 LSP_E2E_TEST  = lsp/test/e2e-test.py
 LSP_BIN       = $(HOME)/.local/bin/jerboa-lsp
 # Cross builds compile lsp/ + std/ against the host libdirs; boot files come
 # from jerboa's own cross prefixes (.chez-cross-<m>).
 LSP_XC_LIBDIRS = $(JERBOA_HOME):$(JERBOA_HOME)/lib:$(JERBOA_HOME)/.chez-cross-ta6le/lib:$(JERBOA_HOME)/.chez-cross-ta6fb/lib
-.PHONY: lsp lsp-gen lsp-run lsp-test lsp-test-unit lsp-test-e2e \
+.PHONY: api-signatures lsp lsp-gen lsp-run lsp-test lsp-test-unit lsp-test-e2e \
         jlsp jlsp-install jlsp-linux-amd64 jlsp-freebsd-amd64 jlsp-portable
 
+# Regenerate the MCP/LSP API map from current library-form source files.
+api-signatures: chez
+	@JERBOA_HOME=$(JERBOA_HOME) $(SCHEME) --script $(API_SIG_GEN)
+
 # Regenerate the completion tables from the live API map (data/api-signatures.sexp).
 lsp-gen: chez
 	@JERBOA_HOME=$(JERBOA_HOME) $(SCHEME) --script $(LSP_GEN)
diff --git a/data/api-signatures.sexp b/data/api-signatures.sexp
index 2fc6f19..177c647 100644
--- a/data/api-signatures.sexp
+++ b/data/api-signatures.sexp
@@ -1,4 +1,4 @@
-(("errors") ("generated" . "2026-04-22")
+(("errors") ("generated" . "2026-05-27")
   ("modules"
    ("(jerboa build musl)"
      ("exports" "build-musl-binary" "make-musl-cross-target"
@@ -7,7 +7,7 @@
        "musl-cross-available?" "musl-crt-objects" "musl-gcc-path"
        "musl-libkernel-path" "musl-link-command" "musl-sysroot"
        "validate-musl-setup")
-     ("file" . "lib/jerboa/build/musl.sls")
+     ("file" . "lib/jerboa/build/musl.ss")
      ("tier" . "core"))
    ("(jerboa build)"
      ("exports" "build-binary" "build-boot-file" "build-project"
@@ -20,19 +20,19 @@
       "target-linux-aarch64" "target-linux-x64"
       "target-macos-aarch64" "target-macos-x64" "trace-imports"
       "tree-shake-imports" "wpo-compile")
-     ("file" . "lib/jerboa/build.sls")
+     ("file" . "lib/jerboa/build.ss")
      ("tier" . "core"))
    ("(jerboa cache)"
      ("exports" "cache-clear!" "cache-directory" "cache-key" "cache-lookup"
        "cache-stats" "cache-store!" "with-compilation-cache")
-     ("file" . "lib/jerboa/cache.sls")
+     ("file" . "lib/jerboa/cache.ss")
      ("tier" . "core"))
    ("(jerboa cloj)"
      ("exports"
        "activate-cloj-reader!"
        "fn-literal"
        "reader-cloj-mode")
-     ("file" . "lib/jerboa/cloj.sls")
+     ("file" . "lib/jerboa/cloj.ss")
      ("tier" . "core"))
    ("(jerboa clojure)"
      ("exports" "*method-tables*" "*struct-types*" "->" "->>"
@@ -209,8 +209,8 @@
       "with-meta" "with-output-to-string" "with-resource"
       "write-csv" "write-csv-file" "write-file-string"
       "write-json" "zip" "zipmap" "~")
-     ("file" . "lib/jerboa/clojure.sls")
-     ("tier" . "compat"))
+     ("file" . "lib/jerboa/clojure.ss")
+     ("tier" . "core"))
    ("(jerboa core)"
      ("exports" "*method-tables*" "*struct-types*" "1+" "1-" "any"
       "arithmetic-shift" "bind-method!" "bytes->string"
@@ -277,7 +277,7 @@
       "pointer-size-for-target" "target-arch-aarch64?"
       "target-arch-riscv64?" "target-arch-x86-64?"
       "target-os-linux?" "target-os-macos?" "target-os-windows?")
-     ("file" . "lib/jerboa/cross.sls")
+     ("file" . "lib/jerboa/cross.ss")
      ("tier" . "core"))
    ("(jerboa embed)"
      ("exports" "make-sandbox" "make-sandbox-config" "sandbox-call"
@@ -286,7 +286,7 @@
        "sandbox-error?" "sandbox-eval" "sandbox-eval-string"
        "sandbox-import!" "sandbox-ref" "sandbox-reset!" "sandbox?"
        "with-sandbox")
-     ("file" . "lib/jerboa/embed.sls")
+     ("file" . "lib/jerboa/embed.ss")
      ("tier" . "core"))
    ("(jerboa ffi)"
      ("exports" "begin-ffi" "c-declare" "c-lambda"
@@ -301,7 +301,7 @@
        "reloader-on-reload!" "reloader-reload!" "reloader-unwatch!"
        "reloader-watch!" "reloader-watched" "reloader?"
        "with-reloader")
-     ("file" . "lib/jerboa/hot.sls")
+     ("file" . "lib/jerboa/hot.ss")
      ("tier" . "core"))
    ("(jerboa lock)"
      ("exports" "lock-entry-deps" "lock-entry-hash" "lock-entry-name"
@@ -311,7 +311,7 @@
        "lockfile-read" "lockfile-remove!" "lockfile-write"
        "lockfile?" "make-lock-entry" "make-lockfile"
        "sexp->lockfile")
-     ("file" . "lib/jerboa/lock.sls")
+     ("file" . "lib/jerboa/lock.ss")
      ("tier" . "core"))
    ("(jerboa pkg)"
      ("exports" "constraint-satisfied?" "dep-name"
@@ -322,7 +322,7 @@
       "package-description" "package-name" "package-version"
       "package?" "resolve-deps" "version->list" "version-compare"
       "version<?" "version=?" "version>=?")
-     ("file" . "lib/jerboa/pkg.sls")
+     ("file" . "lib/jerboa/pkg.ss")
      ("tier" . "core"))
    ("(jerboa prelude clean)"
      ("exports" "*method-tables*" "*struct-types*"
@@ -355,7 +355,7 @@
       "struct-field-set!" "struct-predicate" "struct-type-info"
       "take" "try" "unique" "until" "while" "write-file-string"
       "write-json" "zip" "~")
-     ("file" . "lib/jerboa/prelude/clean.sls")
+     ("file" . "lib/jerboa/prelude/clean.ss")
      ("tier" . "core"))
    ("(jerboa prelude safe)"
      ("exports" "&jerboa" "&sandbox-error" "*default-timeout*"
@@ -416,28 +416,30 @@
       "while" "with-input-from-string" "with-output-to-string"
       "with-resource" "with-resource1" "with-task-scope"
       "with-timeout" "write-file-string" "write-json" "zip" "~")
-     ("file" . "lib/jerboa/prelude/safe.sls")
+     ("file" . "lib/jerboa/prelude/safe.ss")
      ("tier" . "core"))
    ("(jerboa prelude)"
      ("exports" "*method-tables*" "*struct-types*" "->" "->>"
-      "->>?" "->?" "1+" "1-" ":" "<...>" "<>" "ContractViolation"
-      "Error" "acons" "add-watch!" "aget" "agetq" "agetv" "aif"
-      "alist" "alist->hash-table" "alist->plist*" "alist?"
-      "alists->csv" "and-then" "any" "append-map" "append1" "arem"
-      "arem!" "aremq" "aremq!" "aremv" "aremv!" "as->" "aset"
-      "aset!" "asetq" "asetq!" "asetv" "asetv!" "assert!"
-      "assoc-in" "assoc-in!" "atom" "atom-deref" "atom-reset!"
-      "atom-swap!" "atom-update!" "atom?" "awhen" "begin-ffi"
-      "bind-method!" "butlast" "c-declare" "c-lambda"
-      "call-method" "call-with-list-builder" "capture" "catch"
-      "chain" "chain-and" "comp" "compare-and-set!" "complement"
-      "compose" "compose1" "cond->" "cond->>" "conjoin"
-      "constantly" "cpu-count" "csv->alists" "csv-port->rows"
-      "curry" "curryn" "cut" "cute" "date->string"
-      "datetime->alist" "datetime->epoch" "datetime->iso8601"
-      "datetime->julian" "datetime->string" "datetime-add"
-      "datetime-clamp" "datetime-day" "datetime-diff"
-      "datetime-floor-day" "datetime-floor-hour"
+      "->>?" "->?" "1+" "1-" ":" ":-" ":?" ":~" "<...>" "<>"
+      "ContractViolation" "Error" "acons" "add-watch!" "aget"
+      "agetq" "agetv" "aif" "alist" "alist->hash-table"
+      "alist->plist*" "alist?" "alists->csv" "and-then" "any"
+      "append-map" "append1" "arem" "arem!" "aremq" "aremq!"
+      "aremv" "aremv!" "as->" "aset" "aset!" "asetq" "asetq!"
+      "asetv" "asetv!" "assert!" "assoc-in" "assoc-in!" "atom"
+      "atom-deref" "atom-reset!" "atom-swap!" "atom-update!"
+      "atom?" "awhen" "begin-ffi" "bind-method!" "butlast"
+      "c-declare" "c-lambda" "call-method"
+      "call-with-list-builder" "capture" "catch" "chain"
+      "chain-and" "comp" "compare-and-set!" "complement" "compose"
+      "compose1" "cond->" "cond->>" "conjoin" "constantly"
+      "contract-violation-message" "contract-violation-who"
+      "contract-violation?" "cpu-count" "csv->alists"
+      "csv-port->rows" "curry" "curryn" "cut" "cute"
+      "date->string" "datetime->alist" "datetime->epoch"
+      "datetime->iso8601" "datetime->julian" "datetime->string"
+      "datetime-add" "datetime-clamp" "datetime-day"
+      "datetime-diff" "datetime-floor-day" "datetime-floor-hour"
       "datetime-floor-month" "datetime-hour" "datetime-max"
       "datetime-min" "datetime-minute" "datetime-month"
       "datetime-nanosecond" "datetime-now" "datetime-offset"
@@ -471,9 +473,10 @@
       "identity" "if-let" "in-bytes" "in-chars" "in-hash-keys"
       "in-hash-pairs" "in-hash-values" "in-indexed" "in-lines"
       "in-list" "in-naturals" "in-port" "in-producer" "in-range"
-      "in-string" "in-vector" "interleave" "interpose" "iota"
-      "iterate-n" "json-object->string" "julian->datetime" "juxt"
-      "keep" "keyword->string" "keyword?" "last-pair" "leap-year?"
+      "in-range-inclusive?" "in-range?" "in-string" "in-vector"
+      "interleave" "interpose" "iota" "iterate-n"
+      "json-object->string" "julian->datetime" "juxt" "keep"
+      "keyword->string" "keyword?" "last-pair" "leap-year?"
       "length<=?" "length<=n?" "length<?" "length<n?" "length=?"
       "length=n?" "length>=?" "length>=n?" "length>?" "length>n?"
       "let-alist" "let-hash" "list->hash-table" "list-of?"
@@ -492,38 +495,51 @@
       "pp-to-string" "ppd" "ppd-to-string" "pprint" "prem" "prem!"
       "premq" "premq!" "premv" "premv!" "printf" "processor-count"
       "pset" "pset!" "psetq" "psetq!" "psetv" "psetv!" "push!"
-      "random-integer" "rassoc" "re" "re-find-all" "re-fold"
-      "re-groups" "re-match-end" "re-match-full" "re-match-group"
-      "re-match-groups" "re-match-named" "re-match-start"
-      "re-match?" "re-replace" "re-replace-all" "re-search"
-      "re-split" "re?" "read-all-as-lines" "read-all-as-string"
-      "read-csv" "read-csv-file" "read-file-lines"
-      "read-file-string" "read-json" "read-line" "reductions"
-      "regex-match" "regex-replace" "regex-replace-all"
-      "regex-search" "register-struct-type!" "remove-watch!"
-      "reset!" "result->option" "result->values" "result?"
+      "raise-contract-violation" "random-integer" "rassoc" "re"
+      "re-find-all" "re-fold" "re-groups" "re-match-end"
+      "re-match-full" "re-match-group" "re-match-groups"
+      "re-match-named" "re-match-start" "re-match?" "re-replace"
+      "re-replace-all" "re-search" "re-split" "re?"
+      "read-all-as-lines" "read-all-as-string" "read-csv"
+      "read-csv-file" "read-file-lines" "read-file-string"
+      "read-json" "read-line" "reductions" "regex-match"
+      "regex-replace" "regex-replace-all" "regex-search"
+      "register-struct-type!" "remove-watch!" "reset!"
+      "result->option" "result->values" "result?"
       "results-partition" "rows->csv-string" "rx"
       "sequence-results" "shared-cas!" "shared-ref" "shared-set!"
-      "shared-swap!" "shared-update!" "shared?" "slice" "snoc"
-      "some" "some->" "some->>" "some-fn" "sort" "sort!" "split"
-      "split-at" "split-with" "stable-sort" "stable-sort!" "str"
-      "string->json-object" "string->keyword" "string-contains"
-      "string-empty?" "string-find" "string-find-all"
-      "string-index" "string-join" "string-map" "string-match?"
-      "string-prefix?" "string-split" "string-suffix?"
-      "string-trim" "strip-meta" "struct-field-ref"
-      "struct-field-set!" "struct-predicate" "struct-type-info"
-      "swap!" "take" "take-last" "take-until" "take-while"
-      "time->string" "try" "try-result" "try-result*" "unique"
-      "until" "unwind-protect" "unwrap" "unwrap-err" "unwrap-or"
-      "unwrap-or-else" "update-in" "update-in!" "using"
-      "vary-meta" "vderef" "volatile!" "volatile?" "vreset!"
-      "vswap!" "when-let" "when/list" "while" "with-catch"
-      "with-id" "with-input-from-string" "with-list-builder"
-      "with-lock" "with-meta" "with-output-to-string"
-      "with-resource" "write-csv" "write-csv-file"
-      "write-file-string" "write-json" "zip" "~")
-     ("file" . "lib/jerboa/prelude.sls")
+      "shared-swap!" "shared-update!" "shared?" "sleep-ms" "slice"
+      "snoc" "some" "some->" "some->>" "some-fn" "sort" "sort!"
+      "split" "split-at" "split-with" "stable-sort" "stable-sort!"
+      "str" "string->json-object" "string->keyword"
+      "string-contains" "string-empty?" "string-find"
+      "string-find-all" "string-index" "string-join" "string-map"
+      "string-match?" "string-prefix?" "string-split"
+      "string-suffix?" "string-trim" "strip-meta"
+      "struct-field-ref" "struct-field-set!" "struct-predicate"
+      "struct-type-info" "swap!" "take" "take-last" "take-until"
+      "take-while" "time->string" "try" "try-result" "try-result*"
+      "unique" "until" "unwind-protect" "unwrap" "unwrap-err"
+      "unwrap-or" "unwrap-or-else" "update-in" "update-in!"
+      "using" "vary-meta" "vderef" "volatile!" "volatile?"
+      "vreset!" "vswap!" "when-let" "when/list" "while"
+      "with-catch" "with-id" "with-input-from-string"
+      "with-list-builder" "with-lock" "with-meta"
+      "with-output-to-string" "with-resource" "write-csv"
+      "write-csv-file" "write-file-string" "write-json" "zip" "~")
+     ("file" . "lib/jerboa/prelude.ss")
+     ("tier" . "core"))
+   ("(jerboa pure audit)"
+     ("exports" "discover-jerboa-projects" "pure-finding-category"
+       "pure-finding-evidence" "pure-finding-file"
+       "pure-finding-line" "pure-finding-project"
+       "pure-finding-recommendation" "pure-finding-severity"
+       "pure-finding?" "pure-report->markdown"
+       "pure-report->summary-line" "pure-report-blocking-findings"
+       "pure-report-clean?" "pure-report-files"
+       "pure-report-findings" "pure-report-root"
+       "pure-report-summary" "scan-project" "scan-projects")
+     ("file" . "lib/jerboa/pure/audit.ss")
      ("tier" . "core"))
    ("(jerboa reader)"
      ("exports" "*max-block-comment-depth*" "*max-list-length*"
@@ -542,7 +558,7 @@
      ("exports" "*package-dir*" "*registry-file*" "installed-packages"
        "package-install!" "package-installed?" "package-uninstall!"
        "package-update!" "registry-lookup" "registry-search")
-     ("file" . "lib/jerboa/registry.sls")
+     ("file" . "lib/jerboa/registry.ss")
      ("tier" . "core"))
    ("(jerboa runtime)"
      ("exports" "*method-tables*" "*struct-types*" "1+" "1-"
@@ -562,6 +578,13 @@
       "with-exception-handler" "~")
      ("file" . "lib/jerboa/runtime.sls")
      ("tier" . "core"))
+   ("(jerboa rust codegen)"
+     ("exports" "safe-rust-expression->string" "safe-rust-expression?"
+       "safe-rust-form->string" "safe-rust-form?"
+       "safe-rust-program->string" "safe-rust-type?"
+       "write-safe-rust-program")
+     ("file" . "lib/jerboa/rust/codegen.ss")
+     ("tier" . "core"))
    ("(jerboa translator)"
      ("exports" "default-transforms" "make-translator"
       "translate-brackets" "translate-define-values"
@@ -576,10 +599,116 @@
       "translate-using")
      ("file" . "lib/jerboa/translator.sls")
      ("tier" . "core"))
+   ("(jerboa typed checker)"
+     ("exports" "check-and-elaborate-typed-module"
+      "check-and-elaborate-typed-modules" "check-typed-module"
+      "check-typed-modules" "elaborate-typed-def-ir"
+      "elaborated-def-body-ir" "elaborated-def-decl"
+      "elaborated-def-name" "elaborated-def?"
+      "make-elaborated-def" "make-typed-check-error"
+      "typecheck-typed-library-form" "typed-check-error->string"
+      "typed-check-error-detail" "typed-check-error-hint"
+      "typed-check-error-kind" "typed-check-error-message"
+      "typed-check-error-source" "typed-check-error?"
+      "typed-module-valid?")
+     ("file" . "lib/jerboa/typed/checker.ss")
+     ("tier" . "core"))
+   ("(jerboa typed core)"
+     ("exports" "make-typed-ir-begin" "make-typed-ir-binding"
+      "make-typed-ir-bytes-build" "make-typed-ir-call"
+      "make-typed-ir-for-fold" "make-typed-ir-if"
+      "make-typed-ir-let" "make-typed-ir-lit"
+      "make-typed-ir-match" "make-typed-ir-match-clause"
+      "make-typed-ir-var" "typed-ir-begin-exprs"
+      "typed-ir-begin-source" "typed-ir-begin-type"
+      "typed-ir-begin?" "typed-ir-binding-expr"
+      "typed-ir-binding-name" "typed-ir-binding?"
+      "typed-ir-bytes-build-body" "typed-ir-bytes-build-size"
+      "typed-ir-bytes-build-source" "typed-ir-bytes-build-type"
+      "typed-ir-bytes-build-var-name" "typed-ir-bytes-build?"
+      "typed-ir-call-args" "typed-ir-call-info"
+      "typed-ir-call-kind" "typed-ir-call-kinds"
+      "typed-ir-call-operator" "typed-ir-call-source"
+      "typed-ir-call-type" "typed-ir-call?"
+      "typed-ir-for-fold-acc-init" "typed-ir-for-fold-acc-name"
+      "typed-ir-for-fold-body" "typed-ir-for-fold-range-end"
+      "typed-ir-for-fold-range-start" "typed-ir-for-fold-source"
+      "typed-ir-for-fold-type" "typed-ir-for-fold-var-name"
+      "typed-ir-for-fold?" "typed-ir-if-else" "typed-ir-if-source"
+      "typed-ir-if-test" "typed-ir-if-then" "typed-ir-if-type"
+      "typed-ir-if?" "typed-ir-let-bindings" "typed-ir-let-body"
+      "typed-ir-let-source" "typed-ir-let-type" "typed-ir-let?"
+      "typed-ir-lit-source" "typed-ir-lit-type"
+      "typed-ir-lit-value" "typed-ir-lit?"
+      "typed-ir-match-clause-bindings"
+      "typed-ir-match-clause-body" "typed-ir-match-clause-case"
+      "typed-ir-match-clause-field-types" "typed-ir-match-clause?"
+      "typed-ir-match-clauses" "typed-ir-match-default"
+      "typed-ir-match-scrutinee" "typed-ir-match-scrutinee-type"
+      "typed-ir-match-source" "typed-ir-match-type"
+      "typed-ir-match?" "typed-ir-node-source"
+      "typed-ir-node-type" "typed-ir-node?" "typed-ir-var-name"
+      "typed-ir-var-source" "typed-ir-var-type" "typed-ir-var?")
+     ("file" . "lib/jerboa/typed/core.ss")
+     ("tier" . "core"))
+   ("(jerboa typed parser)"
+     ("exports" "expr->list" "expr-cadddr" "expr-caddr"
+      "expr-cadr" "expr-car" "expr-cdddr" "expr-cdr" "expr-length"
+      "expr-list?" "expr-map" "expr-pair?" "expr-source"
+      "expr-symbol?" "expr-value" "make-typed-def"
+      "make-typed-field" "make-typed-module" "make-typed-param"
+      "make-typed-record" "make-typed-resource"
+      "make-typed-type-decl" "make-typed-variant"
+      "make-typed-variant-case" "parse-typed-declaration"
+      "parse-typed-library" "parse-typed-type"
+      "strip-source-annotations" "typed-def-body"
+      "typed-def-effects" "typed-def-name" "typed-def-params"
+      "typed-def-return-type" "typed-def-source" "typed-def?"
+      "typed-field-mutable?" "typed-field-name"
+      "typed-field-source" "typed-field-type" "typed-field?"
+      "typed-library-form?" "typed-module-declarations"
+      "typed-module-exports" "typed-module-imports"
+      "typed-module-name" "typed-module-source" "typed-module?"
+      "typed-param-name" "typed-param-source" "typed-param-type"
+      "typed-param?" "typed-record-fields" "typed-record-name"
+      "typed-record-source" "typed-record?" "typed-resource-close"
+      "typed-resource-name" "typed-resource-source"
+      "typed-resource?" "typed-type-decl-name"
+      "typed-type-decl-source" "typed-type-decl?"
+      "typed-variant-case-fields" "typed-variant-case-name"
+      "typed-variant-case-source" "typed-variant-case?"
+      "typed-variant-cases" "typed-variant-name"
+      "typed-variant-source" "typed-variant?")
+     ("file" . "lib/jerboa/typed/parser.ss")
+     ("tier" . "core"))
+   ("(jerboa typed rust)"
+     ("exports" "abi-safe-def?" "abi-safe-type?" "abi-wrapper-name"
+       "rust-symbol-name" "typed-library-form->rust-string"
+       "typed-library-forms->rust-crate-files"
+       "typed-library-forms->rust-crate-string"
+       "typed-module->rust-string"
+       "typed-modules->rust-crate-files"
+       "typed-modules->rust-crate-string")
+     ("file" . "lib/jerboa/typed/rust.ss")
+     ("tier" . "core"))
+   ("(jerboa typed wrapper)"
+     ("exports" "abi-chez-type"
+       "typed-library-form->jerboa-wrapper-library-string"
+       "typed-library-form->jerboa-wrapper-string"
+       "typed-library-forms->jerboa-wrapper-files"
+       "typed-library-forms->jerboa-wrapper-library-files"
+       "typed-module->jerboa-wrapper-library-string"
+       "typed-module->jerboa-wrapper-string"
+       "typed-module-wrapper-file-name"
+       "typed-module-wrapper-library-file-path"
+       "typed-modules->jerboa-wrapper-files"
+       "typed-modules->jerboa-wrapper-library-files")
+     ("file" . "lib/jerboa/typed/wrapper.ss")
+     ("tier" . "core"))
    ("(jerboa wasm closure)"
      ("exports" "free-variables" "lambda-lift" "lambda-params")
-     ("file" . "lib/jerboa/wasm/closure.sls")
-     ("tier" . "unstable"))
+     ("file" . "lib/jerboa/wasm/closure.ss")
+     ("tier" . "core"))
    ("(jerboa wasm codegen)"
      ("exports" "compile-expr" "compile-program"
       "context-add-func!" "context-add-local!"
@@ -605,8 +734,8 @@
       "wasm-module-start" "wasm-module-tables" "wasm-module-tags"
       "wasm-module-types" "wasm-module?" "wasm-type-params"
       "wasm-type-results")
-     ("file" . "lib/jerboa/wasm/codegen.sls")
-     ("tier" . "unstable"))
+     ("file" . "lib/jerboa/wasm/codegen.ss")
+     ("tier" . "core"))
    ("(jerboa wasm format)"
      ("exports" "bytevector-builder-append-bv!"
       "bytevector-builder-append-u8!" "bytevector-builder-build"
@@ -756,16 +885,16 @@
       "wasm-type-nullref" "wasm-type-rec" "wasm-type-structref"
       "wasm-type-sub" "wasm-type-sub-final" "wasm-type-void"
       "wasm-version")
-     ("file" . "lib/jerboa/wasm/format.sls")
-     ("tier" . "unstable"))
+     ("file" . "lib/jerboa/wasm/format.ss")
+     ("tier" . "core"))
    ("(jerboa wasm gc)"
      ("exports"
        "gc-all-forms"
        "gc-allocator-forms"
        "gc-memory-grow-forms"
        "gc-root-stack-forms")
-     ("file" . "lib/jerboa/wasm/gc.sls")
-     ("tier" . "unstable"))
+     ("file" . "lib/jerboa/wasm/gc.ss")
+     ("tier" . "core"))
    ("(jerboa wasm runtime)"
      ("exports" "make-wasm-array" "make-wasm-i31"
       "make-wasm-runtime" "make-wasm-store" "make-wasm-struct"
@@ -787,8 +916,8 @@
       "wasm-struct-type-idx" "wasm-struct?" "wasm-tag-type-idx"
       "wasm-tag?" "wasm-trap-message" "wasm-trap?"
       "wasm-validate-module")
-     ("file" . "lib/jerboa/wasm/runtime.sls")
-     ("tier" . "unstable"))
+     ("file" . "lib/jerboa/wasm/runtime.ss")
+     ("tier" . "core"))
    ("(jerboa wasm scheme-runtime)"
      ("exports" "runtime-all-forms" "runtime-arithmetic-forms"
        "runtime-bytevector-forms" "runtime-closure-forms"
@@ -797,8 +926,8 @@
        "runtime-equality-forms" "runtime-io-forms"
        "runtime-list-forms" "runtime-result-forms"
        "runtime-string-forms" "runtime-vector-forms")
-     ("file" . "lib/jerboa/wasm/scheme-runtime.sls")
-     ("tier" . "unstable"))
+     ("file" . "lib/jerboa/wasm/scheme-runtime.ss")
+     ("tier" . "core"))
    ("(jerboa wasm values)"
      ("exports" "BYTEVECTOR-HEADER-PAYLOAD"
       "CLOSURE-HEADER-PAYLOAD" "FIXNUM-MASK" "FIXNUM-MAX"
@@ -819,7 +948,287 @@
       "value-accessor-forms" "value-constructor-forms"
       "value-global-forms" "value-memory-forms"
       "value-predicate-forms" "value-tag-forms")
-     ("file" . "lib/jerboa/wasm/values.sls")
+     ("file" . "lib/jerboa/wasm/values.ss")
+     ("tier" . "core"))
+   ("(lsp analysis background-diagnostics)"
+     ("exports"
+       "request-diagnostics!"
+       "start-background-diagnostics!"
+       "stop-background-diagnostics!")
+     ("file" . "lsp/analysis/background-diagnostics.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis cache)"
+     ("exports" "cache-clear!" "cache-file-changed?" "cache-init!"
+       "cache-load-symbols" "cache-save-symbols!"
+       "cache-update-mtime!")
+     ("file" . "lsp/analysis/cache.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis completion-data)"
+     ("exports"
+       "builtin-completions"
+       "completion-candidates"
+       "jerboa-keywords")
+     ("file" . "lsp/analysis/completion-data.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis completion-tables)"
+     ("exports"
+       "builtin-completions"
+       "common-modules"
+       "jerboa-keywords")
+     ("file" . "lsp/analysis/completion-tables.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis document)"
+     ("exports" "document-line-at" "document-line-count"
+       "document-lines" "file-path->uri" "uri->file-path")
+     ("file" . "lsp/analysis/document.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis index)"
+     ("exports"
+       "find-jerboa-files"
+       "find-symbol-in-workspace"
+       "index-file!"
+       "index-workspace!")
+     ("file" . "lsp/analysis/index.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis module)"
+     ("exports" "extract-imports" "find-jerboa-home"
+       "parse-import-spec" "resolve-import-to-path"
+       "resolve-module-path")
+     ("file" . "lsp/analysis/module.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis parser)"
+     ("exports" "located-form-column" "located-form-end-column"
+       "located-form-end-line" "located-form-line"
+       "located-form-value" "located-form?" "parse-source"
+       "parse-source-safe")
+     ("file" . "lsp/analysis/parser.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis project-config)"
+     ("exports"
+       "load-project-config"
+       "project-config-exclude-patterns"
+       "project-config-get"
+       "project-config-library-dirs")
+     ("file" . "lsp/analysis/project-config.ss")
+     ("tier" . "unstable"))
+   ("(lsp analysis symbols)"
+     ("exports" "definition-kind->symbol-kind" "extract-symbols"
+       "sym-info-children" "sym-info-column" "sym-info-detail"
+       "sym-info-kind" "sym-info-line" "sym-info-name" "sym-info?")
+     ("file" . "lsp/analysis/symbols.ss")
+     ("tier" . "unstable"))
+   ("(lsp capabilities)"
+     ("exports" "server-capabilities")
+     ("file" . "lsp/capabilities.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers apply-edit)"
+     ("exports"
+       "handle-apply-edit-response"
+       "make-apply-edit-request"
+       "pending-edit-callbacks")
+     ("file" . "lsp/handlers/apply-edit.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers call-hierarchy)"
+     ("exports"
+       "handle-incoming-calls"
+       "handle-outgoing-calls"
+       "handle-prepare-call-hierarchy")
+     ("file" . "lsp/handlers/call-hierarchy.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers code-action)"
+     ("exports" "handle-code-action")
+     ("file" . "lsp/handlers/code-action.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers code-lens)"
+     ("exports" "handle-code-lens" "handle-code-lens-resolve")
+     ("file" . "lsp/handlers/code-lens.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers completion)"
+     ("exports" "handle-completion")
+     ("file" . "lsp/handlers/completion.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers configuration)"
+     ("exports" "handle-did-change-configuration")
+     ("file" . "lsp/handlers/configuration.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers definition)"
+     ("exports" "handle-definition")
+     ("file" . "lsp/handlers/definition.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers diagnostics)"
+     ("exports" "handle-diagnostic" "publish-diagnostics!")
+     ("file" . "lsp/handlers/diagnostics.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers execute-command)"
+     ("exports" "handle-execute-command" "supported-commands")
+     ("file" . "lsp/handlers/execute-command.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers folding)"
+     ("exports" "handle-folding-range")
+     ("file" . "lsp/handlers/folding.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers formatting)"
+     ("exports" "handle-formatting")
+     ("file" . "lsp/handlers/formatting.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers highlight)"
+     ("exports" "handle-highlight")
+     ("file" . "lsp/handlers/highlight.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers hover)"
+     ("exports" "handle-hover")
+     ("file" . "lsp/handlers/hover.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers implementation)"
+     ("exports" "handle-implementation")
+     ("file" . "lsp/handlers/implementation.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers inlay-hints)"
+     ("exports" "handle-inlay-hint")
+     ("file" . "lsp/handlers/inlay-hints.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers lifecycle)"
+     ("exports"
+       "handle-initialize"
+       "handle-initialized"
+       "handle-shutdown")
+     ("file" . "lsp/handlers/lifecycle.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers links)"
+     ("exports" "handle-document-link")
+     ("file" . "lsp/handlers/links.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers on-type-formatting)"
+     ("exports" "handle-on-type-formatting")
+     ("file" . "lsp/handlers/on-type-formatting.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers references)"
+     ("exports" "handle-references")
+     ("file" . "lsp/handlers/references.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers rename)"
+     ("exports" "handle-prepare-rename" "handle-rename")
+     ("file" . "lsp/handlers/rename.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers selection)"
+     ("exports" "handle-selection-range")
+     ("file" . "lsp/handlers/selection.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers semantic-tokens)"
+     ("exports"
+       "handle-semantic-tokens-full"
+       "semantic-tokens-legend")
+     ("file" . "lsp/handlers/semantic-tokens.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers signature)"
+     ("exports" "handle-signature-help")
+     ("file" . "lsp/handlers/signature.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers symbols)"
+     ("exports"
+       "handle-document-symbol"
+       "handle-workspace-symbol")
+     ("file" . "lsp/handlers/symbols.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers sync)"
+     ("exports"
+       "handle-did-change"
+       "handle-did-close"
+       "handle-did-open"
+       "handle-did-save")
+     ("file" . "lsp/handlers/sync.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers type-definition)"
+     ("exports" "handle-type-definition")
+     ("file" . "lsp/handlers/type-definition.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers type-hierarchy)"
+     ("exports"
+       "handle-prepare-type-hierarchy"
+       "handle-type-hierarchy-subtypes"
+       "handle-type-hierarchy-supertypes")
+     ("file" . "lsp/handlers/type-hierarchy.ss")
+     ("tier" . "unstable"))
+   ("(lsp handlers will-rename)"
+     ("exports" "handle-will-rename-files")
+     ("file" . "lsp/handlers/will-rename.ss")
+     ("tier" . "unstable"))
+   ("(lsp jsonrpc)"
+     ("exports" "INTERNAL-ERROR" "INVALID-PARAMS" "INVALID-REQUEST"
+       "METHOD-NOT-FOUND" "PARSE-ERROR" "REQUEST-CANCELLED"
+       "SERVER-NOT-INITIALIZED" "json-get" "json-obj"
+       "make-jsonrpc-error" "make-jsonrpc-notification"
+       "make-jsonrpc-response" "parse-jsonrpc-message")
+     ("file" . "lsp/jsonrpc.ss")
+     ("tier" . "unstable"))
+   ("(lsp server)"
+     ("exports" "register-all-handlers!" "register-notification-handler!"
+       "register-request-handler!" "send-notification!"
+       "start-server")
+     ("file" . "lsp/server.ss")
+     ("tier" . "unstable"))
+   ("(lsp state)"
+     ("exports" "make-server-state" "server-state-config"
+      "server-state-documents" "server-state-initialized?"
+      "server-state-initialized?-set!" "server-state-module-cache"
+      "server-state-send-notification"
+      "server-state-send-notification-set!"
+      "server-state-shutdown?" "server-state-shutdown?-set!"
+      "server-state-symbol-index" "server-state-workspace-root"
+      "server-state-workspace-root-set!" "server-state?"
+      "state-all-document-uris" "state-get-config"
+      "state-get-document" "state-get-module-exports"
+      "state-get-symbols" "state-remove-document!"
+      "state-set-document!" "state-set-module-exports!"
+      "state-set-symbols!")
+     ("file" . "lsp/state.ss")
+     ("tier" . "unstable"))
+   ("(lsp transport)"
+     ("exports" "read-lsp-message" "write-lsp-message")
+     ("file" . "lsp/transport.ss")
+     ("tier" . "unstable"))
+   ("(lsp types)"
+     ("exports" "CK-CLASS" "CK-COLOR" "CK-CONSTANT"
+      "CK-CONSTRUCTOR" "CK-ENUM" "CK-ENUMMEMBER" "CK-EVENT"
+      "CK-FIELD" "CK-FILE" "CK-FOLDER" "CK-FUNCTION"
+      "CK-INTERFACE" "CK-KEYWORD" "CK-METHOD" "CK-MODULE"
+      "CK-OPERATOR" "CK-PROPERTY" "CK-REFERENCE" "CK-SNIPPET"
+      "CK-STRUCT" "CK-TEXT" "CK-TYPEPARAMETER" "CK-UNIT"
+      "CK-VALUE" "CK-VARIABLE" "DIAG-ERROR" "DIAG-HINT"
+      "DIAG-INFO" "DIAG-WARNING" "SK-ARRAY" "SK-BOOLEAN"
+      "SK-CLASS" "SK-CONSTANT" "SK-CONSTRUCTOR" "SK-ENUM"
+      "SK-ENUMMEMBER" "SK-EVENT" "SK-FIELD" "SK-FILE"
+      "SK-FUNCTION" "SK-INTERFACE" "SK-KEY" "SK-METHOD"
+      "SK-MODULE" "SK-NAMESPACE" "SK-NULL" "SK-NUMBER" "SK-OBJECT"
+      "SK-OPERATOR" "SK-PACKAGE" "SK-PROPERTY" "SK-STRING"
+      "SK-STRUCT" "SK-TYPEPARAMETER" "SK-VARIABLE"
+      "completion-item->json" "diagnostic->json" "location->json"
+      "make-completion-item" "make-lsp-diagnostic"
+      "make-lsp-location" "make-lsp-position" "make-lsp-range"
+      "make-text-edit" "position->json" "range->json"
+      "text-edit->json")
+     ("file" . "lsp/types.ss")
+     ("tier" . "unstable"))
+   ("(lsp util log)"
+     ("exports" "*log-level*" "log-level-set!" "lsp-debug"
+       "lsp-error" "lsp-info" "lsp-log" "lsp-warn")
+     ("file" . "lsp/util/log.ss")
+     ("tier" . "unstable"))
+   ("(lsp util position)"
+     ("exports" "extract-word-at" "extract-word-before"
+       "identifier-char?" "line-col->offset" "offset->line-col")
+     ("file" . "lsp/util/position.ss")
+     ("tier" . "unstable"))
+   ("(lsp util string)"
+     ("exports" "string-contains" "string-contains-ci" "string-join"
+       "string-prefix?" "string-replace-all" "string-replace-pairs"
+       "string-split" "string-split-lines" "string-suffix?"
+       "string-trim" "string-trim-right")
+     ("file" . "lsp/util/string.ss")
+     ("tier" . "unstable"))
+   ("(lsp validation)"
+     ("exports" "*validation-enabled*" "validate-response")
+     ("file" . "lsp/validation.ss")
      ("tier" . "unstable"))
    ("(std actor bounded)"
      ("exports" "&mailbox-full" "bounded-send" "default-mailbox-config"
@@ -828,7 +1237,7 @@
        "mailbox-full-condition?" "mailbox-full?" "mailbox-size"
        "make-mailbox-config" "make-mailbox-full"
        "spawn-bounded-actor" "spawn-bounded-actor/linked")
-     ("file" . "lib/std/actor/bounded.sls")
+     ("file" . "lib/std/actor/bounded.ss")
      ("tier" . "stable"))
    ("(std actor checkpoint)"
      ("exports" "checkpoint-actor-mailbox" "checkpoint-age"
@@ -839,7 +1248,7 @@
        "delete-old-checkpoints" "deserialize-value"
        "list-checkpoints" "make-checkpoint-manager"
        "restore-actor-mailbox" "restore-value" "serialize-value")
-     ("file" . "lib/std/actor/checkpoint.sls")
+     ("file" . "lib/std/actor/checkpoint.ss")
      ("tier" . "stable"))
    ("(std actor cluster)"
      ("exports" "cluster-join!" "cluster-leave!"
@@ -852,7 +1261,7 @@
       "remote-whereis" "start-node!" "stop-node!"
       "strategy/least-loaded" "strategy/local-first"
       "strategy/round-robin" "whereis/any")
-     ("file" . "lib/std/actor/cluster.sls")
+     ("file" . "lib/std/actor/cluster.ss")
      ("tier" . "stable"))
    ("(std actor cluster-security)"
      ("exports" "authenticated-message-hmac"
@@ -877,7 +1286,7 @@
       "node-tls-config-verify-peer?" "node-tls-config?"
       "replay-window-check!" "replay-window?"
       "verify-delegation-token" "verify-message-auth")
-     ("file" . "lib/std/actor/cluster-security.sls")
+     ("file" . "lib/std/actor/cluster-security.ss")
      ("tier" . "stable"))
    ("(std actor core)"
      ("exports" "actor-alive?" "actor-id" "actor-kill!"
@@ -888,7 +1297,7 @@
       "make-remote-actor-ref" "self" "send" "set-actor-scheduler!"
       "set-dead-letter-handler!" "set-remote-send-handler!"
       "spawn-actor" "spawn-actor/linked")
-     ("file" . "lib/std/actor/core.sls")
+     ("file" . "lib/std/actor/core.ss")
      ("tier" . "stable"))
    ("(std actor crdt)"
      ("exports" "gcounter-increment!" "gcounter-merge!"
@@ -906,13 +1315,13 @@
       "pncounter?" "vclock->alist" "vclock-concurrent?"
       "vclock-get" "vclock-happens-before?" "vclock-increment!"
       "vclock-merge!" "vclock?")
-     ("file" . "lib/std/actor/crdt.sls")
+     ("file" . "lib/std/actor/crdt.ss")
      ("tier" . "stable"))
    ("(std actor deque)"
      ("exports" "deque-empty?" "deque-pop-bottom!" "deque-push-bottom!"
        "deque-size" "deque-steal-top!" "make-work-deque"
        "work-deque?")
-     ("file" . "lib/std/actor/deque.sls")
+     ("file" . "lib/std/actor/deque.ss")
      ("tier" . "stable"))
    ("(std actor distributed)"
      ("exports" "*cluster-name*" "*default-send-timeout*"
@@ -926,36 +1335,36 @@
       "process-group-join!" "process-group-leave!"
       "process-group-members" "remote-ref-id" "remote-ref-node"
       "remote-ref?" "serialize-message")
-     ("file" . "lib/std/actor/distributed.sls")
+     ("file" . "lib/std/actor/distributed.ss")
      ("tier" . "stable"))
    ("(std actor engine)"
      ("exports" "default-fuel" "engine-pool-stop!" "engine-pool-submit!"
        "engine-pool-worker-count" "engine-pool?" "make-engine-pool"
        "spawn-engine-actor")
-     ("file" . "lib/std/actor/engine.sls")
+     ("file" . "lib/std/actor/engine.ss")
      ("tier" . "stable"))
    ("(std actor mpsc)"
      ("exports" "make-mpsc-queue" "mpsc-close!" "mpsc-closed?"
        "mpsc-dequeue!" "mpsc-empty?" "mpsc-enqueue!" "mpsc-length"
        "mpsc-queue?" "mpsc-try-dequeue!")
-     ("file" . "lib/std/actor/mpsc.sls")
+     ("file" . "lib/std/actor/mpsc.ss")
      ("tier" . "stable"))
    ("(std actor protocol)"
      ("exports" "ask" "ask-sync" "defprotocol" "make-reply-channel" "reply"
        "reply-channel-get" "reply-channel-put!" "reply-channel?"
        "reply-to" "tell" "with-ask-context")
-     ("file" . "lib/std/actor/protocol.sls")
+     ("file" . "lib/std/actor/protocol.ss")
      ("tier" . "stable"))
    ("(std actor registry)"
      ("exports" "register!" "registered-names" "registry-actor"
        "start-registry!" "unregister!" "whereis")
-     ("file" . "lib/std/actor/registry.sls")
+     ("file" . "lib/std/actor/registry.ss")
      ("tier" . "stable"))
    ("(std actor scheduler)"
      ("exports" "cpu-count" "current-scheduler" "default-scheduler"
        "make-scheduler" "scheduler-start!" "scheduler-stop!"
        "scheduler-submit!" "scheduler-worker-count" "scheduler?")
-     ("file" . "lib/std/actor/scheduler.sls")
+     ("file" . "lib/std/actor/scheduler.ss")
      ("tier" . "stable"))
    ("(std actor supervisor)"
      ("exports" "child-spec-id" "child-spec-restart" "child-spec-shutdown"
@@ -964,14 +1373,14 @@
        "supervisor-count-children" "supervisor-delete-child!"
        "supervisor-restart-child!" "supervisor-start-child!"
        "supervisor-terminate-child!" "supervisor-which-children")
-     ("file" . "lib/std/actor/supervisor.sls")
+     ("file" . "lib/std/actor/supervisor.ss")
      ("tier" . "stable"))
    ("(std actor transport)"
      ("exports" "bytes->message" "current-node-id" "drop-connection!"
        "make-remote-actor-ref" "message->bytes" "start-node!"
        "start-node-server!" "transport-remote-send!"
        "transport-shutdown!")
-     ("file" . "lib/std/actor/transport.sls")
+     ("file" . "lib/std/actor/transport.ss")
      ("tier" . "stable"))
    ("(std actor)"
      ("exports" "actor-alive?" "actor-id" "actor-kill!"
@@ -994,24 +1403,34 @@
       "supervisor-restart-child!" "supervisor-start-child!"
       "supervisor-terminate-child!" "supervisor-which-children"
       "tell" "unregister!" "whereis" "with-ask-context")
-     ("file" . "lib/std/actor.sls")
+     ("file" . "lib/std/actor.ss")
      ("tier" . "stable"))
    ("(std agent)"
-     ("exports" "agent" "agent-error" "agent-value" "agent?" "await"
-       "clear-agent-errors" "restart-agent" "send" "send-off"
+     ("exports" "agent" "agent-error" "agent-error-handler"
+       "agent-error-mode" "agent-value" "agent?" "await"
+       "await-for" "clear-agent-errors" "restart-agent" "send"
+       "send-off" "set-error-handler!" "set-error-mode!"
        "shutdown-agent!")
-     ("file" . "lib/std/agent.sls")
+     ("file" . "lib/std/agent.ss")
      ("tier" . "stable"))
    ("(std amb)"
      ("exports" "amb" "amb-assert" "amb-collect" "amb-fail"
        "amb-find")
-     ("file" . "lib/std/amb.sls")
+     ("file" . "lib/std/amb.ss")
      ("tier" . "stable"))
    ("(std app)"
      ("exports" "app-arguments" "app-init-proc" "app-main-proc" "app-name"
        "app-run!" "app?" "current-app-name" "define-application"
        "make-app")
-     ("file" . "lib/std/app.sls")
+     ("file" . "lib/std/app.ss")
+     ("tier" . "stable"))
+   ("(std archive tar)"
+     ("exports"
+       "tar-block-size"
+       "tar-entries"
+       "tar-find"
+       "tar-walk")
+     ("file" . "lib/std/archive/tar.ss")
      ("tier" . "stable"))
    ("(std arena)"
      ("exports" "arena-alloc" "arena-alloc-bytes" "arena-alloc-string"
@@ -1019,7 +1438,7 @@
        "arena-intern!" "arena-intern-lookup" "arena-remaining"
        "arena-reset!" "arena-rollback!" "arena-stats" "arena-used"
        "arena?" "make-arena" "make-arena-interner" "with-arena")
-     ("file" . "lib/std/arena.sls")
+     ("file" . "lib/std/arena.ss")
      ("tier" . "stable"))
    ("(std assert)"
      ("exports"
@@ -1027,7 +1446,7 @@
        "assert-equal!"
        "assert-exception"
        "assert-pred")
-     ("file" . "lib/std/assert.sls")
+     ("file" . "lib/std/assert.ss")
      ("tier" . "stable"))
    ("(std async)"
      ("exports" "Async" "Async::descriptor" "async-channel-get"
@@ -1035,7 +1454,19 @@
        "async-promise-resolved?" "async-promise-value"
        "async-promise?" "async-sleep" "async-task" "async-task?"
        "make-async-promise" "run-async" "run-async/workers")
-     ("file" . "lib/std/async.sls")
+     ("file" . "lib/std/async.ss")
+     ("tier" . "stable"))
+   ("(std atomics)"
+     ("exports" "atomic-add!" "atomic-cas!" "atomic-counter?"
+      "atomic-dec!" "atomic-flag-clear!" "atomic-flag-read"
+      "atomic-flag-set!" "atomic-flag-test-and-set!"
+      "atomic-flag?" "atomic-inc!" "atomic-read" "atomic-reset!"
+      "atomic-sub!" "make-atomic-counter" "make-atomic-flag"
+      "make-per-worker-counters" "per-worker-counters-add!"
+      "per-worker-counters-length" "per-worker-counters-ref"
+      "per-worker-counters-reset!" "per-worker-counters-sum"
+      "per-worker-counters?")
+     ("file" . "lib/std/atomics.ss")
      ("tier" . "stable"))
    ("(std binary)"
      ("exports" "*byte-order*" "binary-pack" "binary-read"
@@ -1048,12 +1479,12 @@
       "bv-u32-set!" "bv-u64-ref" "bv-u64-set!" "bv-u8-ref"
       "bv-u8-set!" "define-binary-struct" "f32" "f64" "s16" "s32"
       "s64" "s8" "u16" "u32" "u64" "u8" "with-byte-order")
-     ("file" . "lib/std/binary.sls")
+     ("file" . "lib/std/binary.ss")
      ("tier" . "stable"))
    ("(std borrow)"
      ("exports" "borrow" "borrow-count" "borrow-mut" "consume" "make-owned"
        "owned-consumed?" "owned-ref" "owned-set!" "owned?")
-     ("file" . "lib/std/borrow.sls")
+     ("file" . "lib/std/borrow.ss")
      ("tier" . "stable"))
    ("(std build cross)"
      ("exports" "build-matrix-results" "compile-for-target"
@@ -1068,7 +1499,7 @@
       "platform/riscv64-linux" "platform/x86_64-linux"
       "platform/x86_64-macos" "platform=?" "run-build-matrix"
       "string->platform" "target-platform?")
-     ("file" . "lib/std/build/cross.sls")
+     ("file" . "lib/std/build/cross.ss")
      ("tier" . "stable"))
    ("(std build reproducible)"
      ("exports" "artifact-store-get" "artifact-store-has?"
@@ -1087,7 +1518,7 @@
       "provenance-read" "provenance-source-hash"
       "provenance-write" "provenance?" "sexp->provenance"
       "verify-build" "verify-provenance")
-     ("file" . "lib/std/build/reproducible.sls")
+     ("file" . "lib/std/build/reproducible.ss")
      ("tier" . "stable"))
    ("(std build sbom)"