@nimbus-sh/core 0.1.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/dist/_shared/ai-egress.d.ts +73 -0
- package/dist/_shared/ai-egress.d.ts.map +1 -0
- package/dist/_shared/ai-egress.js +88 -0
- package/dist/_shared/byte-stream.d.ts +59 -0
- package/dist/_shared/byte-stream.d.ts.map +1 -0
- package/dist/_shared/byte-stream.js +77 -0
- package/dist/_shared/bytes.d.ts +18 -0
- package/dist/_shared/bytes.d.ts.map +1 -0
- package/dist/_shared/bytes.js +17 -0
- package/dist/_shared/cache-stats.d.ts +145 -0
- package/dist/_shared/cache-stats.d.ts.map +1 -0
- package/dist/_shared/cache-stats.js +161 -0
- package/dist/_shared/crypto.d.ts +17 -0
- package/dist/_shared/crypto.d.ts.map +1 -0
- package/dist/_shared/crypto.js +131 -0
- package/dist/_shared/esbuild-facet-shim.d.ts +21 -0
- package/dist/_shared/esbuild-facet-shim.d.ts.map +1 -0
- package/dist/_shared/esbuild-facet-shim.js +22 -0
- package/dist/_shared/exports-resolver.d.ts +74 -0
- package/dist/_shared/exports-resolver.d.ts.map +1 -0
- package/dist/_shared/exports-resolver.js +284 -0
- package/dist/_shared/facet-vfs-cursor.d.ts +48 -0
- package/dist/_shared/facet-vfs-cursor.d.ts.map +1 -0
- package/dist/_shared/facet-vfs-cursor.js +51 -0
- package/dist/_shared/install-phase.d.ts +47 -0
- package/dist/_shared/install-phase.d.ts.map +1 -0
- package/dist/_shared/install-phase.js +1 -0
- package/dist/_shared/lru-map.d.ts +25 -0
- package/dist/_shared/lru-map.d.ts.map +1 -0
- package/dist/_shared/lru-map.js +57 -0
- package/dist/_shared/real-node-imports.d.ts +43 -0
- package/dist/_shared/real-node-imports.d.ts.map +1 -0
- package/dist/_shared/real-node-imports.js +52 -0
- package/dist/_shared/retry.d.ts +92 -0
- package/dist/_shared/retry.d.ts.map +1 -0
- package/dist/_shared/retry.js +155 -0
- package/dist/_shared/rpc-dispose.d.ts +4 -0
- package/dist/_shared/rpc-dispose.d.ts.map +1 -0
- package/dist/_shared/rpc-dispose.js +30 -0
- package/dist/_shared/terminal.d.ts +2 -0
- package/dist/_shared/terminal.d.ts.map +1 -0
- package/dist/_shared/terminal.js +3 -0
- package/dist/_shared/typescript-specifiers.d.ts +58 -0
- package/dist/_shared/typescript-specifiers.d.ts.map +1 -0
- package/dist/_shared/typescript-specifiers.js +84 -0
- package/dist/_shared/untrusted-request.d.ts +34 -0
- package/dist/_shared/untrusted-request.d.ts.map +1 -0
- package/dist/_shared/untrusted-request.js +74 -0
- package/dist/_shared/vfs-write-ledger.d.ts +3 -0
- package/dist/_shared/vfs-write-ledger.d.ts.map +1 -0
- package/dist/_shared/vfs-write-ledger.js +439 -0
- package/dist/_shared/w7-frame.d.ts +79 -0
- package/dist/_shared/w7-frame.d.ts.map +1 -0
- package/dist/_shared/w7-frame.js +839 -0
- package/dist/_shared/weighted-credit-pool.d.ts +61 -0
- package/dist/_shared/weighted-credit-pool.d.ts.map +1 -0
- package/dist/_shared/weighted-credit-pool.js +196 -0
- package/dist/constants.d.ts +64 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +264 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/observability/diag-counters.d.ts +236 -0
- package/dist/observability/diag-counters.d.ts.map +1 -0
- package/dist/observability/diag-counters.js +195 -0
- package/dist/observability/heap-estimate.d.ts +225 -0
- package/dist/observability/heap-estimate.d.ts.map +1 -0
- package/dist/observability/heap-estimate.js +185 -0
- package/dist/observability/heavy-alloc-coord.d.ts +93 -0
- package/dist/observability/heavy-alloc-coord.d.ts.map +1 -0
- package/dist/observability/heavy-alloc-coord.js +181 -0
- package/dist/observability/oom-classify.d.ts +138 -0
- package/dist/observability/oom-classify.d.ts.map +1 -0
- package/dist/observability/oom-classify.js +261 -0
- package/dist/observability/oom-discriminator.d.ts +176 -0
- package/dist/observability/oom-discriminator.d.ts.map +1 -0
- package/dist/observability/oom-discriminator.js +272 -0
- package/dist/runtime/assets-loader.d.ts +71 -0
- package/dist/runtime/assets-loader.d.ts.map +1 -0
- package/dist/runtime/assets-loader.js +139 -0
- package/dist/runtime/barrel-detect.d.ts +46 -0
- package/dist/runtime/barrel-detect.d.ts.map +1 -0
- package/dist/runtime/barrel-detect.js +73 -0
- package/dist/runtime/bash/preamble.d.ts +2 -0
- package/dist/runtime/bash/preamble.d.ts.map +1 -0
- package/dist/runtime/bash/preamble.js +1849 -0
- package/dist/runtime/bash/types.d.ts +433 -0
- package/dist/runtime/bash/types.d.ts.map +1 -0
- package/dist/runtime/bash/types.js +1 -0
- package/dist/runtime/bundle-profile.d.ts +14 -0
- package/dist/runtime/bundle-profile.d.ts.map +1 -0
- package/dist/runtime/bundle-profile.js +20 -0
- package/dist/runtime/cirrus-vite-config-rewriter.d.ts +2 -0
- package/dist/runtime/cirrus-vite-config-rewriter.d.ts.map +1 -0
- package/dist/runtime/cirrus-vite-config-rewriter.js +28 -0
- package/dist/runtime/cli-flags.d.ts +2 -0
- package/dist/runtime/cli-flags.d.ts.map +1 -0
- package/dist/runtime/cli-flags.js +11 -0
- package/dist/runtime/comment-strip.d.ts +37 -0
- package/dist/runtime/comment-strip.d.ts.map +1 -0
- package/dist/runtime/comment-strip.js +74 -0
- package/dist/runtime/cpython-preamble.d.ts +32 -0
- package/dist/runtime/cpython-preamble.d.ts.map +1 -0
- package/dist/runtime/cpython-preamble.js +296 -0
- package/dist/runtime/esbuild-service.d.ts +242 -0
- package/dist/runtime/esbuild-service.d.ts.map +1 -0
- package/dist/runtime/esbuild-service.js +1452 -0
- package/dist/runtime/framework-detect.d.ts +70 -0
- package/dist/runtime/framework-detect.d.ts.map +1 -0
- package/dist/runtime/framework-detect.js +177 -0
- package/dist/runtime/import-meta-transform.d.ts +3 -0
- package/dist/runtime/import-meta-transform.d.ts.map +1 -0
- package/dist/runtime/import-meta-transform.js +15 -0
- package/dist/runtime/javascript-ast.d.ts +13 -0
- package/dist/runtime/javascript-ast.d.ts.map +1 -0
- package/dist/runtime/javascript-ast.js +57 -0
- package/dist/runtime/long-running-handle.d.ts +119 -0
- package/dist/runtime/long-running-handle.d.ts.map +1 -0
- package/dist/runtime/long-running-handle.js +169 -0
- package/dist/runtime/module-source-rewriter.d.ts +11 -0
- package/dist/runtime/module-source-rewriter.d.ts.map +1 -0
- package/dist/runtime/module-source-rewriter.js +61 -0
- package/dist/runtime/opentui-wasm-backend.d.ts +160 -0
- package/dist/runtime/opentui-wasm-backend.d.ts.map +1 -0
- package/dist/runtime/opentui-wasm-backend.js +416 -0
- package/dist/runtime/os-contracts.d.ts +436 -0
- package/dist/runtime/os-contracts.d.ts.map +1 -0
- package/dist/runtime/os-contracts.js +101 -0
- package/dist/runtime/port-registry.d.ts +100 -0
- package/dist/runtime/port-registry.d.ts.map +1 -0
- package/dist/runtime/port-registry.js +265 -0
- package/dist/runtime/process-input-routing.d.ts +33 -0
- package/dist/runtime/process-input-routing.d.ts.map +1 -0
- package/dist/runtime/process-input-routing.js +59 -0
- package/dist/runtime/process-input.d.ts +39 -0
- package/dist/runtime/process-input.d.ts.map +1 -0
- package/dist/runtime/process-input.js +117 -0
- package/dist/runtime/process-io-protocol.d.ts +90 -0
- package/dist/runtime/process-io-protocol.d.ts.map +1 -0
- package/dist/runtime/process-io-protocol.js +81 -0
- package/dist/runtime/process-logs.d.ts +352 -0
- package/dist/runtime/process-logs.d.ts.map +1 -0
- package/dist/runtime/process-logs.js +750 -0
- package/dist/runtime/process-table.d.ts +101 -0
- package/dist/runtime/process-table.d.ts.map +1 -0
- package/dist/runtime/process-table.js +175 -0
- package/dist/runtime/project-detect.d.ts +21 -0
- package/dist/runtime/project-detect.d.ts.map +1 -0
- package/dist/runtime/project-detect.js +46 -0
- package/dist/runtime/python-server-adapter.d.ts +33 -0
- package/dist/runtime/python-server-adapter.d.ts.map +1 -0
- package/dist/runtime/python-server-adapter.js +132 -0
- package/dist/runtime/require-resolver.d.ts +44 -0
- package/dist/runtime/require-resolver.d.ts.map +1 -0
- package/dist/runtime/require-resolver.js +698 -0
- package/dist/runtime/router-basename.d.ts +36 -0
- package/dist/runtime/router-basename.d.ts.map +1 -0
- package/dist/runtime/router-basename.js +310 -0
- package/dist/runtime/ruby-green-threads.d.ts +136 -0
- package/dist/runtime/ruby-green-threads.d.ts.map +1 -0
- package/dist/runtime/ruby-green-threads.js +904 -0
- package/dist/runtime/ruby-socket-shim.d.ts +2 -0
- package/dist/runtime/ruby-socket-shim.d.ts.map +1 -0
- package/dist/runtime/ruby-socket-shim.js +548 -0
- package/dist/runtime/session-process-supervisor.d.ts +156 -0
- package/dist/runtime/session-process-supervisor.d.ts.map +1 -0
- package/dist/runtime/session-process-supervisor.js +238 -0
- package/dist/runtime/sqlite-runtime-fs-bridge.d.ts +70 -0
- package/dist/runtime/sqlite-runtime-fs-bridge.d.ts.map +1 -0
- package/dist/runtime/sqlite-runtime-fs-bridge.js +425 -0
- package/dist/runtime/streams.d.ts +13 -0
- package/dist/runtime/streams.d.ts.map +1 -0
- package/dist/runtime/streams.js +546 -0
- package/dist/runtime/undici-shim.d.ts +62 -0
- package/dist/runtime/undici-shim.d.ts.map +1 -0
- package/dist/runtime/undici-shim.js +516 -0
- package/dist/runtime/vfs-manifest.d.ts +63 -0
- package/dist/runtime/vfs-manifest.d.ts.map +1 -0
- package/dist/runtime/vfs-manifest.js +141 -0
- package/dist/runtime/vfs-snapshot.d.ts +75 -0
- package/dist/runtime/vfs-snapshot.d.ts.map +1 -0
- package/dist/runtime/vfs-snapshot.js +220 -0
- package/dist/runtime/virtual-socket-kernel.d.ts +252 -0
- package/dist/runtime/virtual-socket-kernel.d.ts.map +1 -0
- package/dist/runtime/virtual-socket-kernel.js +1143 -0
- package/dist/runtime/vite-config-parser.d.ts +13 -0
- package/dist/runtime/vite-config-parser.d.ts.map +1 -0
- package/dist/runtime/vite-config-parser.js +258 -0
- package/dist/runtime/wasi/types.d.ts +347 -0
- package/dist/runtime/wasi/types.d.ts.map +1 -0
- package/dist/runtime/wasi/types.js +1 -0
- package/dist/runtime/wasi-instance.d.ts +215 -0
- package/dist/runtime/wasi-instance.d.ts.map +1 -0
- package/dist/runtime/wasi-instance.generated.d.ts +14 -0
- package/dist/runtime/wasi-instance.generated.d.ts.map +1 -0
- package/dist/runtime/wasi-instance.generated.js +13 -0
- package/dist/runtime/wasi-instance.js +179 -0
- package/dist/runtime/wasi-threads.d.ts +169 -0
- package/dist/runtime/wasi-threads.d.ts.map +1 -0
- package/dist/runtime/wasi-threads.js +669 -0
- package/dist/runtime/wasm-memory.d.ts +84 -0
- package/dist/runtime/wasm-memory.d.ts.map +1 -0
- package/dist/runtime/wasm-memory.js +235 -0
- package/dist/shell/elevation-commands.d.ts +5 -0
- package/dist/shell/elevation-commands.d.ts.map +1 -0
- package/dist/shell/elevation-commands.js +109 -0
- package/dist/shell/exec-dispatch.d.ts +57 -0
- package/dist/shell/exec-dispatch.d.ts.map +1 -0
- package/dist/shell/exec-dispatch.js +181 -0
- package/dist/shell/features.d.ts +154 -0
- package/dist/shell/features.d.ts.map +1 -0
- package/dist/shell/features.js +792 -0
- package/dist/shell/shell-entrypoints.d.ts +55 -0
- package/dist/shell/shell-entrypoints.d.ts.map +1 -0
- package/dist/shell/shell-entrypoints.js +230 -0
- package/dist/shell/shell-invocation.d.ts +36 -0
- package/dist/shell/shell-invocation.d.ts.map +1 -0
- package/dist/shell/shell-invocation.js +148 -0
- package/dist/shell/unix-accounts.d.ts +27 -0
- package/dist/shell/unix-accounts.d.ts.map +1 -0
- package/dist/shell/unix-accounts.js +105 -0
- package/dist/shell/unix-commands.d.ts +15 -0
- package/dist/shell/unix-commands.d.ts.map +1 -0
- package/dist/shell/unix-commands.js +4702 -0
- package/dist/substrate/lifo/commands/archive/gunzip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/gunzip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/gunzip.js +58 -0
- package/dist/substrate/lifo/commands/archive/gzip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/gzip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/gzip.js +73 -0
- package/dist/substrate/lifo/commands/archive/tar.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/tar.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/tar.js +158 -0
- package/dist/substrate/lifo/commands/archive/unzip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/unzip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/unzip.js +114 -0
- package/dist/substrate/lifo/commands/archive/zip.d.ts +4 -0
- package/dist/substrate/lifo/commands/archive/zip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/archive/zip.js +58 -0
- package/dist/substrate/lifo/commands/fs/basename.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/basename.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/basename.js +12 -0
- package/dist/substrate/lifo/commands/fs/cat.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/cat.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/cat.js +52 -0
- package/dist/substrate/lifo/commands/fs/chmod.d.ts +25 -0
- package/dist/substrate/lifo/commands/fs/chmod.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/chmod.js +97 -0
- package/dist/substrate/lifo/commands/fs/chown.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/chown.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/chown.js +41 -0
- package/dist/substrate/lifo/commands/fs/cp.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/cp.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/cp.js +29 -0
- package/dist/substrate/lifo/commands/fs/df.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/df.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/df.js +52 -0
- package/dist/substrate/lifo/commands/fs/dirname.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/dirname.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/dirname.js +12 -0
- package/dist/substrate/lifo/commands/fs/du.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/du.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/du.js +104 -0
- package/dist/substrate/lifo/commands/fs/file.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/file.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/file.js +84 -0
- package/dist/substrate/lifo/commands/fs/find.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/find.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/find.js +72 -0
- package/dist/substrate/lifo/commands/fs/ln.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/ln.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/ln.js +15 -0
- package/dist/substrate/lifo/commands/fs/ls.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/ls.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/ls.js +146 -0
- package/dist/substrate/lifo/commands/fs/mkdir.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/mkdir.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/mkdir.js +31 -0
- package/dist/substrate/lifo/commands/fs/mktemp.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/mktemp.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/mktemp.js +48 -0
- package/dist/substrate/lifo/commands/fs/mv.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/mv.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/mv.js +113 -0
- package/dist/substrate/lifo/commands/fs/realpath.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/realpath.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/realpath.js +27 -0
- package/dist/substrate/lifo/commands/fs/rm.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/rm.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/rm.js +48 -0
- package/dist/substrate/lifo/commands/fs/rmdir.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/rmdir.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/rmdir.js +44 -0
- package/dist/substrate/lifo/commands/fs/stat.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/stat.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/stat.js +35 -0
- package/dist/substrate/lifo/commands/fs/touch.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/touch.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/touch.js +26 -0
- package/dist/substrate/lifo/commands/fs/tree.d.ts +4 -0
- package/dist/substrate/lifo/commands/fs/tree.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/fs/tree.js +69 -0
- package/dist/substrate/lifo/commands/index.d.ts +3 -0
- package/dist/substrate/lifo/commands/index.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/index.js +1 -0
- package/dist/substrate/lifo/commands/io/dd.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/dd.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/dd.js +256 -0
- package/dist/substrate/lifo/commands/io/printf.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/printf.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/printf.js +82 -0
- package/dist/substrate/lifo/commands/io/tee.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/tee.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/tee.js +31 -0
- package/dist/substrate/lifo/commands/io/xargs.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/xargs.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/xargs.js +44 -0
- package/dist/substrate/lifo/commands/io/yes.d.ts +4 -0
- package/dist/substrate/lifo/commands/io/yes.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/io/yes.js +10 -0
- package/dist/substrate/lifo/commands/net/curl.d.ts +6 -0
- package/dist/substrate/lifo/commands/net/curl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/curl.js +617 -0
- package/dist/substrate/lifo/commands/net/dig.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/dig.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/dig.js +77 -0
- package/dist/substrate/lifo/commands/net/forward.d.ts +14 -0
- package/dist/substrate/lifo/commands/net/forward.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/forward.js +80 -0
- package/dist/substrate/lifo/commands/net/host.d.ts +14 -0
- package/dist/substrate/lifo/commands/net/host.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/host.js +160 -0
- package/dist/substrate/lifo/commands/net/ifconfig.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/ifconfig.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ifconfig.js +120 -0
- package/dist/substrate/lifo/commands/net/ip.d.ts +14 -0
- package/dist/substrate/lifo/commands/net/ip.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ip.js +508 -0
- package/dist/substrate/lifo/commands/net/netstat.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/netstat.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/netstat.js +94 -0
- package/dist/substrate/lifo/commands/net/ping.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/ping.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ping.js +64 -0
- package/dist/substrate/lifo/commands/net/ports.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/ports.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/ports.js +36 -0
- package/dist/substrate/lifo/commands/net/route.d.ts +8 -0
- package/dist/substrate/lifo/commands/net/route.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/route.js +128 -0
- package/dist/substrate/lifo/commands/net/tunnel-v2.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/tunnel-v2.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/tunnel-v2.js +141 -0
- package/dist/substrate/lifo/commands/net/tunnel.d.ts +6 -0
- package/dist/substrate/lifo/commands/net/tunnel.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/tunnel.js +232 -0
- package/dist/substrate/lifo/commands/net/wget.d.ts +4 -0
- package/dist/substrate/lifo/commands/net/wget.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/net/wget.js +78 -0
- package/dist/substrate/lifo/commands/registry.d.ts +15 -0
- package/dist/substrate/lifo/commands/registry.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/registry.js +120 -0
- package/dist/substrate/lifo/commands/signal.d.ts +12 -0
- package/dist/substrate/lifo/commands/signal.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/signal.js +47 -0
- package/dist/substrate/lifo/commands/system/bc.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/bc.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/bc.js +243 -0
- package/dist/substrate/lifo/commands/system/cal.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/cal.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/cal.js +81 -0
- package/dist/substrate/lifo/commands/system/date.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/date.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/date.js +79 -0
- package/dist/substrate/lifo/commands/system/env.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/env.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/env.js +7 -0
- package/dist/substrate/lifo/commands/system/fastfetch.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/fastfetch.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/fastfetch.js +385 -0
- package/dist/substrate/lifo/commands/system/free.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/free.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/free.js +36 -0
- package/dist/substrate/lifo/commands/system/help.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/help.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/help.js +46 -0
- package/dist/substrate/lifo/commands/system/hostname.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/hostname.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/hostname.js +6 -0
- package/dist/substrate/lifo/commands/system/kill.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/kill.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/kill.js +76 -0
- package/dist/substrate/lifo/commands/system/lifo.d.ts +41 -0
- package/dist/substrate/lifo/commands/system/lifo.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/lifo.js +446 -0
- package/dist/substrate/lifo/commands/system/logout.d.ts +5 -0
- package/dist/substrate/lifo/commands/system/logout.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/logout.js +15 -0
- package/dist/substrate/lifo/commands/system/man.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/man.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/man.js +144 -0
- package/dist/substrate/lifo/commands/system/node.d.ts +6 -0
- package/dist/substrate/lifo/commands/system/node.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/node.js +1241 -0
- package/dist/substrate/lifo/commands/system/npm.d.ts +26 -0
- package/dist/substrate/lifo/commands/system/npm.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/npm.js +934 -0
- package/dist/substrate/lifo/commands/system/pkg.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/pkg.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/pkg.js +97 -0
- package/dist/substrate/lifo/commands/system/ps.d.ts +5 -0
- package/dist/substrate/lifo/commands/system/ps.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/ps.js +35 -0
- package/dist/substrate/lifo/commands/system/registry-schemas.d.ts +44 -0
- package/dist/substrate/lifo/commands/system/registry-schemas.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/registry-schemas.js +28 -0
- package/dist/substrate/lifo/commands/system/sha256sum.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/sha256sum.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/sha256sum.js +86 -0
- package/dist/substrate/lifo/commands/system/sl.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/sl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/sl.js +204 -0
- package/dist/substrate/lifo/commands/system/sleep.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/sleep.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/sleep.js +27 -0
- package/dist/substrate/lifo/commands/system/stty.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/stty.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/stty.js +61 -0
- package/dist/substrate/lifo/commands/system/systemctl.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/systemctl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/systemctl.js +164 -0
- package/dist/substrate/lifo/commands/system/top.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/top.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/top.js +38 -0
- package/dist/substrate/lifo/commands/system/uname.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/uname.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/uname.js +55 -0
- package/dist/substrate/lifo/commands/system/uptime.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/uptime.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/uptime.js +16 -0
- package/dist/substrate/lifo/commands/system/watch.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/watch.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/watch.js +53 -0
- package/dist/substrate/lifo/commands/system/which.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/which.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/which.js +45 -0
- package/dist/substrate/lifo/commands/system/whoami.d.ts +4 -0
- package/dist/substrate/lifo/commands/system/whoami.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/system/whoami.js +6 -0
- package/dist/substrate/lifo/commands/text/awk.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/awk.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/awk.js +200 -0
- package/dist/substrate/lifo/commands/text/base64.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/base64.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/base64.js +102 -0
- package/dist/substrate/lifo/commands/text/cut.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/cut.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/cut.js +91 -0
- package/dist/substrate/lifo/commands/text/diff.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/diff.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/diff.js +292 -0
- package/dist/substrate/lifo/commands/text/grep.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/grep.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/grep.js +189 -0
- package/dist/substrate/lifo/commands/text/head.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/head.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/head.js +111 -0
- package/dist/substrate/lifo/commands/text/less.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/less.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/less.js +335 -0
- package/dist/substrate/lifo/commands/text/nano.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/nano.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/nano.js +510 -0
- package/dist/substrate/lifo/commands/text/nl.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/nl.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/nl.js +64 -0
- package/dist/substrate/lifo/commands/text/rev.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/rev.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/rev.js +41 -0
- package/dist/substrate/lifo/commands/text/sed.d.ts +21 -0
- package/dist/substrate/lifo/commands/text/sed.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/sed.js +248 -0
- package/dist/substrate/lifo/commands/text/seq.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/seq.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/seq.js +69 -0
- package/dist/substrate/lifo/commands/text/sort.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/sort.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/sort.js +90 -0
- package/dist/substrate/lifo/commands/text/strings.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/strings.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/strings.js +69 -0
- package/dist/substrate/lifo/commands/text/tac.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/tac.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/tac.js +32 -0
- package/dist/substrate/lifo/commands/text/tail.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/tail.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/tail.js +64 -0
- package/dist/substrate/lifo/commands/text/tr.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/tr.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/tr.js +180 -0
- package/dist/substrate/lifo/commands/text/uniq.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/uniq.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/uniq.js +82 -0
- package/dist/substrate/lifo/commands/text/wc.d.ts +4 -0
- package/dist/substrate/lifo/commands/text/wc.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/text/wc.js +107 -0
- package/dist/substrate/lifo/commands/types.d.ts +49 -0
- package/dist/substrate/lifo/commands/types.d.ts.map +1 -0
- package/dist/substrate/lifo/commands/types.js +1 -0
- package/dist/substrate/lifo/index.d.ts +67 -0
- package/dist/substrate/lifo/index.d.ts.map +1 -0
- package/dist/substrate/lifo/index.js +66 -0
- package/dist/substrate/lifo/kernel/ServiceManager.d.ts +51 -0
- package/dist/substrate/lifo/kernel/ServiceManager.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/ServiceManager.js +302 -0
- package/dist/substrate/lifo/kernel/index.d.ts +40 -0
- package/dist/substrate/lifo/kernel/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/index.js +170 -0
- package/dist/substrate/lifo/kernel/network/Bridge.d.ts +110 -0
- package/dist/substrate/lifo/kernel/network/Bridge.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/Bridge.js +278 -0
- package/dist/substrate/lifo/kernel/network/DNSResolver.d.ts +50 -0
- package/dist/substrate/lifo/kernel/network/DNSResolver.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/DNSResolver.js +135 -0
- package/dist/substrate/lifo/kernel/network/NetworkInterface.d.ts +83 -0
- package/dist/substrate/lifo/kernel/network/NetworkInterface.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/NetworkInterface.js +183 -0
- package/dist/substrate/lifo/kernel/network/NetworkNamespace.d.ts +98 -0
- package/dist/substrate/lifo/kernel/network/NetworkNamespace.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/NetworkNamespace.js +149 -0
- package/dist/substrate/lifo/kernel/network/NetworkStack.d.ts +178 -0
- package/dist/substrate/lifo/kernel/network/NetworkStack.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/NetworkStack.js +460 -0
- package/dist/substrate/lifo/kernel/network/PortBridge.d.ts +44 -0
- package/dist/substrate/lifo/kernel/network/PortBridge.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/PortBridge.js +158 -0
- package/dist/substrate/lifo/kernel/network/RoutingTable.d.ts +55 -0
- package/dist/substrate/lifo/kernel/network/RoutingTable.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/RoutingTable.js +167 -0
- package/dist/substrate/lifo/kernel/network/Socket.d.ts +65 -0
- package/dist/substrate/lifo/kernel/network/Socket.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/Socket.js +201 -0
- package/dist/substrate/lifo/kernel/network/index.d.ts +11 -0
- package/dist/substrate/lifo/kernel/network/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/index.js +9 -0
- package/dist/substrate/lifo/kernel/network/tunnel/BaseTunnel.d.ts +55 -0
- package/dist/substrate/lifo/kernel/network/tunnel/BaseTunnel.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/tunnel/BaseTunnel.js +88 -0
- package/dist/substrate/lifo/kernel/network/tunnel/VETHPair.d.ts +71 -0
- package/dist/substrate/lifo/kernel/network/tunnel/VETHPair.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/tunnel/VETHPair.js +191 -0
- package/dist/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.d.ts +89 -0
- package/dist/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.js +324 -0
- package/dist/substrate/lifo/kernel/network/types.d.ts +159 -0
- package/dist/substrate/lifo/kernel/network/types.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/network/types.js +5 -0
- package/dist/substrate/lifo/kernel/persistence/PersistenceManager.d.ts +12 -0
- package/dist/substrate/lifo/kernel/persistence/PersistenceManager.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/PersistenceManager.js +47 -0
- package/dist/substrate/lifo/kernel/persistence/backends.d.ts +15 -0
- package/dist/substrate/lifo/kernel/persistence/backends.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/backends.js +18 -0
- package/dist/substrate/lifo/kernel/persistence/index.d.ts +6 -0
- package/dist/substrate/lifo/kernel/persistence/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/index.js +3 -0
- package/dist/substrate/lifo/kernel/persistence/serializer.d.ts +21 -0
- package/dist/substrate/lifo/kernel/persistence/serializer.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/persistence/serializer.js +99 -0
- package/dist/substrate/lifo/kernel/samples.d.ts +3 -0
- package/dist/substrate/lifo/kernel/samples.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/samples.js +930 -0
- package/dist/substrate/lifo/kernel/storage/BlobStore.d.ts +22 -0
- package/dist/substrate/lifo/kernel/storage/BlobStore.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/storage/BlobStore.js +84 -0
- package/dist/substrate/lifo/kernel/storage/ContentStore.d.ts +54 -0
- package/dist/substrate/lifo/kernel/storage/ContentStore.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/storage/ContentStore.js +120 -0
- package/dist/substrate/lifo/kernel/storage/index.d.ts +6 -0
- package/dist/substrate/lifo/kernel/storage/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/storage/index.js +3 -0
- package/dist/substrate/lifo/kernel/unit-parser.d.ts +22 -0
- package/dist/substrate/lifo/kernel/unit-parser.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/unit-parser.js +80 -0
- package/dist/substrate/lifo/kernel/vfs/VFS.d.ts +99 -0
- package/dist/substrate/lifo/kernel/vfs/VFS.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/VFS.js +679 -0
- package/dist/substrate/lifo/kernel/vfs/index.d.ts +8 -0
- package/dist/substrate/lifo/kernel/vfs/index.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/index.js +5 -0
- package/dist/substrate/lifo/kernel/vfs/providers/DevProvider.d.ts +21 -0
- package/dist/substrate/lifo/kernel/vfs/providers/DevProvider.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/providers/DevProvider.js +137 -0
- package/dist/substrate/lifo/kernel/vfs/providers/NativeFsProvider.d.ts +63 -0
- package/dist/substrate/lifo/kernel/vfs/providers/NativeFsProvider.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/providers/NativeFsProvider.js +175 -0
- package/dist/substrate/lifo/kernel/vfs/providers/ProcProvider.d.ts +14 -0
- package/dist/substrate/lifo/kernel/vfs/providers/ProcProvider.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/providers/ProcProvider.js +126 -0
- package/dist/substrate/lifo/kernel/vfs/types.d.ts +117 -0
- package/dist/substrate/lifo/kernel/vfs/types.d.ts.map +1 -0
- package/dist/substrate/lifo/kernel/vfs/types.js +42 -0
- package/dist/substrate/lifo/node-compat/buffer.d.ts +44 -0
- package/dist/substrate/lifo/node-compat/buffer.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/buffer.js +331 -0
- package/dist/substrate/lifo/node-compat/child_process.d.ts +10 -0
- package/dist/substrate/lifo/node-compat/child_process.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/child_process.js +42 -0
- package/dist/substrate/lifo/node-compat/console.d.ts +21 -0
- package/dist/substrate/lifo/node-compat/console.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/console.js +68 -0
- package/dist/substrate/lifo/node-compat/crypto.d.ts +24 -0
- package/dist/substrate/lifo/node-compat/crypto.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/crypto.js +216 -0
- package/dist/substrate/lifo/node-compat/dns.d.ts +117 -0
- package/dist/substrate/lifo/node-compat/dns.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/dns.js +144 -0
- package/dist/substrate/lifo/node-compat/esbuild.d.ts +10 -0
- package/dist/substrate/lifo/node-compat/esbuild.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/esbuild.js +70 -0
- package/dist/substrate/lifo/node-compat/events.d.ts +19 -0
- package/dist/substrate/lifo/node-compat/events.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/events.js +83 -0
- package/dist/substrate/lifo/node-compat/fs.d.ts +195 -0
- package/dist/substrate/lifo/node-compat/fs.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/fs.js +624 -0
- package/dist/substrate/lifo/node-compat/http.d.ts +133 -0
- package/dist/substrate/lifo/node-compat/http.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/http.js +452 -0
- package/dist/substrate/lifo/node-compat/index.d.ts +20 -0
- package/dist/substrate/lifo/node-compat/index.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/index.js +291 -0
- package/dist/substrate/lifo/node-compat/module.d.ts +55 -0
- package/dist/substrate/lifo/node-compat/module.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/module.js +124 -0
- package/dist/substrate/lifo/node-compat/os.d.ts +39 -0
- package/dist/substrate/lifo/node-compat/os.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/os.js +45 -0
- package/dist/substrate/lifo/node-compat/path.d.ts +86 -0
- package/dist/substrate/lifo/node-compat/path.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/path.js +49 -0
- package/dist/substrate/lifo/node-compat/process.d.ts +127 -0
- package/dist/substrate/lifo/node-compat/process.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/process.js +173 -0
- package/dist/substrate/lifo/node-compat/readline.d.ts +85 -0
- package/dist/substrate/lifo/node-compat/readline.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/readline.js +205 -0
- package/dist/substrate/lifo/node-compat/rimraf.d.ts +30 -0
- package/dist/substrate/lifo/node-compat/rimraf.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/rimraf.js +63 -0
- package/dist/substrate/lifo/node-compat/stream.d.ts +36 -0
- package/dist/substrate/lifo/node-compat/stream.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/stream.js +90 -0
- package/dist/substrate/lifo/node-compat/string_decoder.d.ts +11 -0
- package/dist/substrate/lifo/node-compat/string_decoder.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/string_decoder.js +23 -0
- package/dist/substrate/lifo/node-compat/timers.d.ts +16 -0
- package/dist/substrate/lifo/node-compat/timers.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/timers.js +18 -0
- package/dist/substrate/lifo/node-compat/tty.d.ts +32 -0
- package/dist/substrate/lifo/node-compat/tty.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/tty.js +76 -0
- package/dist/substrate/lifo/node-compat/url.d.ts +37 -0
- package/dist/substrate/lifo/node-compat/url.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/url.js +65 -0
- package/dist/substrate/lifo/node-compat/util.d.ts +42 -0
- package/dist/substrate/lifo/node-compat/util.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/util.js +132 -0
- package/dist/substrate/lifo/node-compat/zlib.d.ts +66 -0
- package/dist/substrate/lifo/node-compat/zlib.d.ts.map +1 -0
- package/dist/substrate/lifo/node-compat/zlib.js +80 -0
- package/dist/substrate/lifo/pkg/PackageManager.d.ts +19 -0
- package/dist/substrate/lifo/pkg/PackageManager.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/PackageManager.js +97 -0
- package/dist/substrate/lifo/pkg/lifo-dev.d.ts +38 -0
- package/dist/substrate/lifo/pkg/lifo-dev.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/lifo-dev.js +98 -0
- package/dist/substrate/lifo/pkg/lifo-runtime.d.ts +44 -0
- package/dist/substrate/lifo/pkg/lifo-runtime.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/lifo-runtime.js +372 -0
- package/dist/substrate/lifo/pkg/loader.d.ts +4 -0
- package/dist/substrate/lifo/pkg/loader.d.ts.map +1 -0
- package/dist/substrate/lifo/pkg/loader.js +24 -0
- package/dist/substrate/lifo/sandbox/HeadlessTerminal.d.ts +18 -0
- package/dist/substrate/lifo/sandbox/HeadlessTerminal.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/HeadlessTerminal.js +28 -0
- package/dist/substrate/lifo/sandbox/Sandbox.d.ts +59 -0
- package/dist/substrate/lifo/sandbox/Sandbox.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/Sandbox.js +234 -0
- package/dist/substrate/lifo/sandbox/SandboxCommands.d.ts +18 -0
- package/dist/substrate/lifo/sandbox/SandboxCommands.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/SandboxCommands.js +64 -0
- package/dist/substrate/lifo/sandbox/SandboxFs.d.ts +43 -0
- package/dist/substrate/lifo/sandbox/SandboxFs.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/SandboxFs.js +136 -0
- package/dist/substrate/lifo/sandbox/index.d.ts +3 -0
- package/dist/substrate/lifo/sandbox/index.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/index.js +1 -0
- package/dist/substrate/lifo/sandbox/types.d.ts +116 -0
- package/dist/substrate/lifo/sandbox/types.d.ts.map +1 -0
- package/dist/substrate/lifo/sandbox/types.js +1 -0
- package/dist/substrate/lifo/shell/ProcessRegistry.d.ts +142 -0
- package/dist/substrate/lifo/shell/ProcessRegistry.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/ProcessRegistry.js +256 -0
- package/dist/substrate/lifo/shell/Shell.d.ts +170 -0
- package/dist/substrate/lifo/shell/Shell.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/Shell.js +1863 -0
- package/dist/substrate/lifo/shell/completer.d.ts +19 -0
- package/dist/substrate/lifo/shell/completer.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/completer.js +164 -0
- package/dist/substrate/lifo/shell/default-shell.d.ts +9 -0
- package/dist/substrate/lifo/shell/default-shell.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/default-shell.js +53 -0
- package/dist/substrate/lifo/shell/expander.d.ts +48 -0
- package/dist/substrate/lifo/shell/expander.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/expander.js +1204 -0
- package/dist/substrate/lifo/shell/history.d.ts +22 -0
- package/dist/substrate/lifo/shell/history.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/history.js +121 -0
- package/dist/substrate/lifo/shell/interpreter.d.ts +257 -0
- package/dist/substrate/lifo/shell/interpreter.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/interpreter.js +1490 -0
- package/dist/substrate/lifo/shell/jobs.d.ts +21 -0
- package/dist/substrate/lifo/shell/jobs.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/jobs.js +48 -0
- package/dist/substrate/lifo/shell/lexer.d.ts +13 -0
- package/dist/substrate/lifo/shell/lexer.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/lexer.js +614 -0
- package/dist/substrate/lifo/shell/parser.d.ts +7 -0
- package/dist/substrate/lifo/shell/parser.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/parser.js +573 -0
- package/dist/substrate/lifo/shell/pipe.d.ts +15 -0
- package/dist/substrate/lifo/shell/pipe.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/pipe.js +86 -0
- package/dist/substrate/lifo/shell/signals.d.ts +11 -0
- package/dist/substrate/lifo/shell/signals.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/signals.js +57 -0
- package/dist/substrate/lifo/shell/terminal-stdin.d.ts +28 -0
- package/dist/substrate/lifo/shell/terminal-stdin.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/terminal-stdin.js +100 -0
- package/dist/substrate/lifo/shell/test-builtin.d.ts +16 -0
- package/dist/substrate/lifo/shell/test-builtin.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/test-builtin.js +237 -0
- package/dist/substrate/lifo/shell/types.d.ts +140 -0
- package/dist/substrate/lifo/shell/types.d.ts.map +1 -0
- package/dist/substrate/lifo/shell/types.js +25 -0
- package/dist/substrate/lifo/terminal/ITerminal.d.ts +10 -0
- package/dist/substrate/lifo/terminal/ITerminal.d.ts.map +1 -0
- package/dist/substrate/lifo/terminal/ITerminal.js +1 -0
- package/dist/substrate/lifo/utils/archive.d.ts +28 -0
- package/dist/substrate/lifo/utils/archive.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/archive.js +323 -0
- package/dist/substrate/lifo/utils/args.d.ts +18 -0
- package/dist/substrate/lifo/utils/args.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/args.js +73 -0
- package/dist/substrate/lifo/utils/colors.d.ts +27 -0
- package/dist/substrate/lifo/utils/colors.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/colors.js +26 -0
- package/dist/substrate/lifo/utils/encoding.d.ts +4 -0
- package/dist/substrate/lifo/utils/encoding.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/encoding.js +18 -0
- package/dist/substrate/lifo/utils/glob.d.ts +12 -0
- package/dist/substrate/lifo/utils/glob.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/glob.js +150 -0
- package/dist/substrate/lifo/utils/mime.d.ts +4 -0
- package/dist/substrate/lifo/utils/mime.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/mime.js +107 -0
- package/dist/substrate/lifo/utils/path.d.ts +12 -0
- package/dist/substrate/lifo/utils/path.d.ts.map +1 -0
- package/dist/substrate/lifo/utils/path.js +82 -0
- package/dist/vfs/events.d.ts +51 -0
- package/dist/vfs/events.d.ts.map +1 -0
- package/dist/vfs/events.js +127 -0
- package/dist/vfs/path.d.ts +46 -0
- package/dist/vfs/path.d.ts.map +1 -0
- package/dist/vfs/path.js +69 -0
- package/dist/vfs/seed-project.d.ts +62 -0
- package/dist/vfs/seed-project.d.ts.map +1 -0
- package/dist/vfs/seed-project.js +1054 -0
- package/dist/vfs/sqlite-vfs.d.ts +821 -0
- package/dist/vfs/sqlite-vfs.d.ts.map +1 -0
- package/dist/vfs/sqlite-vfs.js +4135 -0
- package/dist/vfs/symlink-registry.d.ts +60 -0
- package/dist/vfs/symlink-registry.d.ts.map +1 -0
- package/dist/vfs/symlink-registry.js +162 -0
- package/dist/workspace/nimbus-workspace.d.ts +94 -0
- package/dist/workspace/nimbus-workspace.d.ts.map +1 -0
- package/dist/workspace/nimbus-workspace.js +167 -0
- package/package.json +69 -0
- package/src/_shared/ai-egress.ts +91 -0
- package/src/_shared/byte-stream.ts +97 -0
- package/src/_shared/bytes.ts +19 -0
- package/src/_shared/cache-stats.ts +231 -0
- package/src/_shared/crypto.ts +184 -0
- package/src/_shared/esbuild-facet-shim.ts +22 -0
- package/src/_shared/exports-resolver.ts +308 -0
- package/src/_shared/facet-vfs-cursor.ts +58 -0
- package/src/_shared/install-phase.ts +56 -0
- package/src/_shared/lru-map.ts +59 -0
- package/src/_shared/real-node-imports.ts +53 -0
- package/src/_shared/retry.ts +202 -0
- package/src/_shared/rpc-dispose.ts +31 -0
- package/src/_shared/terminal.ts +3 -0
- package/src/_shared/typescript-specifiers.ts +86 -0
- package/src/_shared/untrusted-request.ts +75 -0
- package/src/_shared/vfs-write-ledger.ts +440 -0
- package/src/_shared/w7-frame.ts +1012 -0
- package/src/_shared/weighted-credit-pool.ts +244 -0
- package/src/constants.ts +285 -0
- package/src/index.ts +22 -0
- package/src/observability/diag-counters.ts +343 -0
- package/src/observability/heap-estimate.ts +331 -0
- package/src/observability/heavy-alloc-coord.ts +241 -0
- package/src/observability/oom-classify.ts +253 -0
- package/src/observability/oom-discriminator.ts +405 -0
- package/src/runtime/assets-loader.ts +189 -0
- package/src/runtime/barrel-detect.ts +69 -0
- package/src/runtime/bash/preamble.ts +1519 -0
- package/src/runtime/bash/types.ts +497 -0
- package/src/runtime/bundle-profile.ts +32 -0
- package/src/runtime/cirrus-vite-config-rewriter.ts +28 -0
- package/src/runtime/cli-flags.ts +11 -0
- package/src/runtime/comment-strip.ts +73 -0
- package/src/runtime/cpython-preamble.ts +298 -0
- package/src/runtime/esbuild-service.ts +1470 -0
- package/src/runtime/framework-detect.ts +245 -0
- package/src/runtime/import-meta-transform.ts +16 -0
- package/src/runtime/javascript-ast.ts +66 -0
- package/src/runtime/long-running-handle.ts +185 -0
- package/src/runtime/module-source-rewriter.ts +95 -0
- package/src/runtime/opentui-wasm-backend.ts +608 -0
- package/src/runtime/os-contracts.ts +529 -0
- package/src/runtime/port-registry.ts +298 -0
- package/src/runtime/process-input-routing.ts +92 -0
- package/src/runtime/process-input.ts +148 -0
- package/src/runtime/process-io-protocol.ts +97 -0
- package/src/runtime/process-logs.ts +882 -0
- package/src/runtime/process-table.ts +225 -0
- package/src/runtime/project-detect.ts +42 -0
- package/src/runtime/python-server-adapter.ts +133 -0
- package/src/runtime/require-resolver.ts +760 -0
- package/src/runtime/router-basename.ts +279 -0
- package/src/runtime/ruby-green-threads.ts +904 -0
- package/src/runtime/ruby-socket-shim.ts +548 -0
- package/src/runtime/session-process-supervisor.ts +323 -0
- package/src/runtime/sqlite-runtime-fs-bridge.ts +468 -0
- package/src/runtime/streams.ts +547 -0
- package/src/runtime/undici-shim.ts +517 -0
- package/src/runtime/vfs-manifest.ts +170 -0
- package/src/runtime/vfs-snapshot.ts +273 -0
- package/src/runtime/virtual-socket-kernel.ts +1370 -0
- package/src/runtime/vite-config-parser.ts +273 -0
- package/src/runtime/wasi/types.ts +448 -0
- package/src/runtime/wasi-instance.generated.ts +14 -0
- package/src/runtime/wasi-instance.ts +259 -0
- package/src/runtime/wasi-threads.ts +682 -0
- package/src/runtime/wasm-memory.ts +261 -0
- package/src/shell/elevation-commands.ts +117 -0
- package/src/shell/exec-dispatch.ts +201 -0
- package/src/shell/features.ts +870 -0
- package/src/shell/shell-entrypoints.ts +323 -0
- package/src/shell/shell-invocation.ts +181 -0
- package/src/shell/unix-accounts.ts +128 -0
- package/src/shell/unix-commands.ts +4335 -0
- package/src/substrate/lifo/UPSTREAM.md +14 -0
- package/src/substrate/lifo/commands/archive/gunzip.ts +63 -0
- package/src/substrate/lifo/commands/archive/gzip.ts +76 -0
- package/src/substrate/lifo/commands/archive/tar.ts +157 -0
- package/src/substrate/lifo/commands/archive/unzip.ts +112 -0
- package/src/substrate/lifo/commands/archive/zip.ts +70 -0
- package/src/substrate/lifo/commands/fs/basename.ts +16 -0
- package/src/substrate/lifo/commands/fs/cat.ts +54 -0
- package/src/substrate/lifo/commands/fs/chmod.ts +110 -0
- package/src/substrate/lifo/commands/fs/chown.ts +45 -0
- package/src/substrate/lifo/commands/fs/cp.ts +33 -0
- package/src/substrate/lifo/commands/fs/df.ts +56 -0
- package/src/substrate/lifo/commands/fs/dirname.ts +16 -0
- package/src/substrate/lifo/commands/fs/du.ts +100 -0
- package/src/substrate/lifo/commands/fs/file.ts +90 -0
- package/src/substrate/lifo/commands/fs/find.ts +76 -0
- package/src/substrate/lifo/commands/fs/ln.ts +19 -0
- package/src/substrate/lifo/commands/fs/ls.ts +164 -0
- package/src/substrate/lifo/commands/fs/mkdir.ts +37 -0
- package/src/substrate/lifo/commands/fs/mktemp.ts +56 -0
- package/src/substrate/lifo/commands/fs/mv.ts +111 -0
- package/src/substrate/lifo/commands/fs/realpath.ts +31 -0
- package/src/substrate/lifo/commands/fs/rm.ts +53 -0
- package/src/substrate/lifo/commands/fs/rmdir.ts +50 -0
- package/src/substrate/lifo/commands/fs/stat.ts +39 -0
- package/src/substrate/lifo/commands/fs/touch.ts +30 -0
- package/src/substrate/lifo/commands/fs/tree.ts +76 -0
- package/src/substrate/lifo/commands/index.ts +2 -0
- package/src/substrate/lifo/commands/io/dd.ts +289 -0
- package/src/substrate/lifo/commands/io/printf.ts +78 -0
- package/src/substrate/lifo/commands/io/tee.ts +37 -0
- package/src/substrate/lifo/commands/io/xargs.ts +49 -0
- package/src/substrate/lifo/commands/io/yes.ts +15 -0
- package/src/substrate/lifo/commands/net/curl.ts +739 -0
- package/src/substrate/lifo/commands/net/dig.ts +99 -0
- package/src/substrate/lifo/commands/net/forward.ts +90 -0
- package/src/substrate/lifo/commands/net/host.ts +182 -0
- package/src/substrate/lifo/commands/net/ifconfig.ts +139 -0
- package/src/substrate/lifo/commands/net/ip.ts +633 -0
- package/src/substrate/lifo/commands/net/netstat.ts +106 -0
- package/src/substrate/lifo/commands/net/ping.ts +74 -0
- package/src/substrate/lifo/commands/net/ports.ts +45 -0
- package/src/substrate/lifo/commands/net/route.ts +153 -0
- package/src/substrate/lifo/commands/net/tunnel-v2.ts +183 -0
- package/src/substrate/lifo/commands/net/tunnel.ts +272 -0
- package/src/substrate/lifo/commands/net/wget.ts +88 -0
- package/src/substrate/lifo/commands/registry.ts +141 -0
- package/src/substrate/lifo/commands/signal.ts +65 -0
- package/src/substrate/lifo/commands/system/bc.ts +265 -0
- package/src/substrate/lifo/commands/system/cal.ts +90 -0
- package/src/substrate/lifo/commands/system/date.ts +59 -0
- package/src/substrate/lifo/commands/system/env.ts +10 -0
- package/src/substrate/lifo/commands/system/fastfetch.ts +428 -0
- package/src/substrate/lifo/commands/system/free.ts +38 -0
- package/src/substrate/lifo/commands/system/help.ts +53 -0
- package/src/substrate/lifo/commands/system/hostname.ts +9 -0
- package/src/substrate/lifo/commands/system/kill.ts +89 -0
- package/src/substrate/lifo/commands/system/lifo.ts +525 -0
- package/src/substrate/lifo/commands/system/logout.ts +17 -0
- package/src/substrate/lifo/commands/system/man.ts +167 -0
- package/src/substrate/lifo/commands/system/node.ts +1305 -0
- package/src/substrate/lifo/commands/system/npm.ts +1078 -0
- package/src/substrate/lifo/commands/system/pkg.ts +111 -0
- package/src/substrate/lifo/commands/system/ps.ts +46 -0
- package/src/substrate/lifo/commands/system/registry-schemas.ts +33 -0
- package/src/substrate/lifo/commands/system/sha256sum.ts +89 -0
- package/src/substrate/lifo/commands/system/sl.ts +249 -0
- package/src/substrate/lifo/commands/system/sleep.ts +36 -0
- package/src/substrate/lifo/commands/system/stty.ts +69 -0
- package/src/substrate/lifo/commands/system/systemctl.ts +184 -0
- package/src/substrate/lifo/commands/system/top.ts +53 -0
- package/src/substrate/lifo/commands/system/uname.ts +59 -0
- package/src/substrate/lifo/commands/system/uptime.ts +19 -0
- package/src/substrate/lifo/commands/system/watch.ts +67 -0
- package/src/substrate/lifo/commands/system/which.ts +51 -0
- package/src/substrate/lifo/commands/system/whoami.ts +9 -0
- package/src/substrate/lifo/commands/text/awk.ts +210 -0
- package/src/substrate/lifo/commands/text/base64.ts +102 -0
- package/src/substrate/lifo/commands/text/cut.ts +92 -0
- package/src/substrate/lifo/commands/text/diff.ts +314 -0
- package/src/substrate/lifo/commands/text/grep.ts +170 -0
- package/src/substrate/lifo/commands/text/head.ts +95 -0
- package/src/substrate/lifo/commands/text/less.ts +335 -0
- package/src/substrate/lifo/commands/text/nano.ts +513 -0
- package/src/substrate/lifo/commands/text/nl.ts +74 -0
- package/src/substrate/lifo/commands/text/rev.ts +46 -0
- package/src/substrate/lifo/commands/text/sed.ts +297 -0
- package/src/substrate/lifo/commands/text/seq.ts +76 -0
- package/src/substrate/lifo/commands/text/sort.ts +88 -0
- package/src/substrate/lifo/commands/text/strings.ts +73 -0
- package/src/substrate/lifo/commands/text/tac.ts +37 -0
- package/src/substrate/lifo/commands/text/tail.ts +63 -0
- package/src/substrate/lifo/commands/text/tr.ts +192 -0
- package/src/substrate/lifo/commands/text/uniq.ts +77 -0
- package/src/substrate/lifo/commands/text/wc.ts +104 -0
- package/src/substrate/lifo/commands/types.ts +58 -0
- package/src/substrate/lifo/index.ts +173 -0
- package/src/substrate/lifo/kernel/ServiceManager.ts +371 -0
- package/src/substrate/lifo/kernel/index.ts +209 -0
- package/src/substrate/lifo/kernel/network/Bridge.ts +336 -0
- package/src/substrate/lifo/kernel/network/DNSResolver.ts +158 -0
- package/src/substrate/lifo/kernel/network/NetworkInterface.ts +235 -0
- package/src/substrate/lifo/kernel/network/NetworkNamespace.ts +182 -0
- package/src/substrate/lifo/kernel/network/NetworkStack.ts +590 -0
- package/src/substrate/lifo/kernel/network/PortBridge.ts +182 -0
- package/src/substrate/lifo/kernel/network/RoutingTable.ts +209 -0
- package/src/substrate/lifo/kernel/network/Socket.ts +245 -0
- package/src/substrate/lifo/kernel/network/index.ts +29 -0
- package/src/substrate/lifo/kernel/network/tunnel/BaseTunnel.ts +124 -0
- package/src/substrate/lifo/kernel/network/tunnel/VETHPair.ts +227 -0
- package/src/substrate/lifo/kernel/network/tunnel/WebSocketTunnel.ts +387 -0
- package/src/substrate/lifo/kernel/network/types.ts +178 -0
- package/src/substrate/lifo/kernel/persistence/PersistenceManager.ts +50 -0
- package/src/substrate/lifo/kernel/persistence/backends.ts +36 -0
- package/src/substrate/lifo/kernel/persistence/index.ts +5 -0
- package/src/substrate/lifo/kernel/persistence/serializer.ts +127 -0
- package/src/substrate/lifo/kernel/samples.ts +966 -0
- package/src/substrate/lifo/kernel/storage/BlobStore.ts +114 -0
- package/src/substrate/lifo/kernel/storage/ContentStore.ts +150 -0
- package/src/substrate/lifo/kernel/storage/index.ts +5 -0
- package/src/substrate/lifo/kernel/unit-parser.ts +95 -0
- package/src/substrate/lifo/kernel/vfs/VFS.ts +768 -0
- package/src/substrate/lifo/kernel/vfs/index.ts +9 -0
- package/src/substrate/lifo/kernel/vfs/providers/DevProvider.ts +172 -0
- package/src/substrate/lifo/kernel/vfs/providers/NativeFsProvider.ts +198 -0
- package/src/substrate/lifo/kernel/vfs/providers/ProcProvider.ts +144 -0
- package/src/substrate/lifo/kernel/vfs/types.ts +145 -0
- package/src/substrate/lifo/node-compat/buffer.ts +357 -0
- package/src/substrate/lifo/node-compat/child_process.ts +52 -0
- package/src/substrate/lifo/node-compat/console.ts +70 -0
- package/src/substrate/lifo/node-compat/crypto.ts +186 -0
- package/src/substrate/lifo/node-compat/dns.ts +214 -0
- package/src/substrate/lifo/node-compat/esbuild.ts +85 -0
- package/src/substrate/lifo/node-compat/events.ts +94 -0
- package/src/substrate/lifo/node-compat/fs.ts +762 -0
- package/src/substrate/lifo/node-compat/http.ts +561 -0
- package/src/substrate/lifo/node-compat/index.ts +300 -0
- package/src/substrate/lifo/node-compat/module.ts +148 -0
- package/src/substrate/lifo/node-compat/os.ts +44 -0
- package/src/substrate/lifo/node-compat/path.ts +74 -0
- package/src/substrate/lifo/node-compat/process.ts +178 -0
- package/src/substrate/lifo/node-compat/readline.ts +244 -0
- package/src/substrate/lifo/node-compat/rimraf.ts +80 -0
- package/src/substrate/lifo/node-compat/stream.ts +98 -0
- package/src/substrate/lifo/node-compat/string_decoder.ts +26 -0
- package/src/substrate/lifo/node-compat/timers.ts +21 -0
- package/src/substrate/lifo/node-compat/tty.ts +83 -0
- package/src/substrate/lifo/node-compat/url.ts +76 -0
- package/src/substrate/lifo/node-compat/util.ts +133 -0
- package/src/substrate/lifo/node-compat/zlib.ts +94 -0
- package/src/substrate/lifo/pkg/PackageManager.ts +105 -0
- package/src/substrate/lifo/pkg/lifo-dev.ts +130 -0
- package/src/substrate/lifo/pkg/lifo-runtime.ts +473 -0
- package/src/substrate/lifo/pkg/loader.ts +33 -0
- package/src/substrate/lifo/platform-globals.d.ts +41 -0
- package/src/substrate/lifo/sandbox/HeadlessTerminal.ts +38 -0
- package/src/substrate/lifo/sandbox/Sandbox.ts +279 -0
- package/src/substrate/lifo/sandbox/SandboxCommands.ts +74 -0
- package/src/substrate/lifo/sandbox/SandboxFs.ts +160 -0
- package/src/substrate/lifo/sandbox/index.ts +8 -0
- package/src/substrate/lifo/sandbox/types.ts +117 -0
- package/src/substrate/lifo/shell/ProcessRegistry.ts +379 -0
- package/src/substrate/lifo/shell/Shell.ts +2048 -0
- package/src/substrate/lifo/shell/completer.ts +212 -0
- package/src/substrate/lifo/shell/default-shell.ts +63 -0
- package/src/substrate/lifo/shell/expander.ts +1349 -0
- package/src/substrate/lifo/shell/history.ts +138 -0
- package/src/substrate/lifo/shell/interpreter.ts +1754 -0
- package/src/substrate/lifo/shell/jobs.ts +64 -0
- package/src/substrate/lifo/shell/lexer.ts +698 -0
- package/src/substrate/lifo/shell/parser.ts +711 -0
- package/src/substrate/lifo/shell/pipe.ts +92 -0
- package/src/substrate/lifo/shell/signals.ts +70 -0
- package/src/substrate/lifo/shell/terminal-stdin.ts +109 -0
- package/src/substrate/lifo/shell/test-builtin.ts +316 -0
- package/src/substrate/lifo/shell/types.ts +166 -0
- package/src/substrate/lifo/terminal/ITerminal.ts +9 -0
- package/src/substrate/lifo/utils/archive.ts +389 -0
- package/src/substrate/lifo/utils/args.ts +89 -0
- package/src/substrate/lifo/utils/colors.ts +29 -0
- package/src/substrate/lifo/utils/encoding.ts +21 -0
- package/src/substrate/lifo/utils/glob.ts +172 -0
- package/src/substrate/lifo/utils/mime.ts +114 -0
- package/src/substrate/lifo/utils/path.ts +83 -0
- package/src/types/assets.d.ts +4 -0
- package/src/vfs/events.ts +134 -0
- package/src/vfs/path.ts +71 -0
- package/src/vfs/seed-project.ts +1094 -0
- package/src/vfs/sqlite-vfs.ts +5035 -0
- package/src/vfs/symlink-registry.ts +172 -0
- package/src/workspace/nimbus-workspace.ts +213 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* typescript-specifiers.ts — the one definition of how a module specifier
|
|
3
|
+
* reaches a TypeScript source, shared by the install-time prefetch resolver
|
|
4
|
+
* and the `require()` inside a running facet.
|
|
5
|
+
*
|
|
6
|
+
* TypeScript's `"moduleResolution": "NodeNext"` requires authors to write the
|
|
7
|
+
* OUTPUT extension in a specifier that names a TypeScript source:
|
|
8
|
+
*
|
|
9
|
+
* // packages/cli/bin/cli.ts
|
|
10
|
+
* import '../src/program.js'; // means ../src/program.ts
|
|
11
|
+
*
|
|
12
|
+
* That is not one project's quirk, it is what every modern TS project on
|
|
13
|
+
* NodeNext looks like. Real bun resolves it; node does not.
|
|
14
|
+
*
|
|
15
|
+
* SCOPE — this resolver serves node as well, so the rule is deliberately a
|
|
16
|
+
* FALLBACK rather than a reordering: these candidates are probed only after
|
|
17
|
+
* every candidate node itself would try has missed, and they only ever name a
|
|
18
|
+
* TypeScript source. The inputs whose resolution changes are therefore exactly
|
|
19
|
+
* the inputs that resolve to nothing today, where node's own answer is
|
|
20
|
+
* "Cannot find module". No module graph that resolves now resolves
|
|
21
|
+
* differently, so nothing about node's semantics moves — while the TypeScript
|
|
22
|
+
* projects Nimbus already transforms and runs become resolvable.
|
|
23
|
+
*
|
|
24
|
+
* The one bun behaviour deliberately NOT adopted is its probe ORDER. Bun tries
|
|
25
|
+
* `.tsx, .ts, .jsx, .js`, so for `./m` with both `m.ts` and `m.js` present bun
|
|
26
|
+
* answers `m.ts` and node answers `m.js`. Preferring the TypeScript file there
|
|
27
|
+
* would change a specifier that already resolves, which is the one thing this
|
|
28
|
+
* scoping promises not to do.
|
|
29
|
+
*
|
|
30
|
+
* Mapping measured against bun 1.3.1, not recalled:
|
|
31
|
+
* ./m.js → m.ts, m.tsx (and m.js itself still wins when it exists)
|
|
32
|
+
* ./m.mjs → m.mts
|
|
33
|
+
* ./m.cjs → nothing; bun does not map it to m.cts
|
|
34
|
+
* ./m → m.ts, m.tsx
|
|
35
|
+
*
|
|
36
|
+
* `getTypescriptSpecifiersJS()` emits the same mapping for the facet shim.
|
|
37
|
+
* The two bodies are checked against each other mechanically —
|
|
38
|
+
* tests/unit/typescript-specifier-resolution.mjs evaluates the emitted one and
|
|
39
|
+
* compares it to this one over the whole table — because a "keep in sync"
|
|
40
|
+
* comment has never once caught a drift.
|
|
41
|
+
*/
|
|
42
|
+
/** Files that are already a TypeScript source, or can never name one. */
|
|
43
|
+
const NON_MAPPING_EXTENSION = /\.(ts|tsx|mts|cts|json|node|cjs)$/;
|
|
44
|
+
/**
|
|
45
|
+
* TypeScript sources a specifier may name once every path node itself would
|
|
46
|
+
* take has missed. Empty when the specifier cannot name one.
|
|
47
|
+
*/
|
|
48
|
+
export function typescriptFallbackCandidates(base) {
|
|
49
|
+
if (NON_MAPPING_EXTENSION.test(base))
|
|
50
|
+
return [];
|
|
51
|
+
if (base.endsWith('.mjs'))
|
|
52
|
+
return [base.slice(0, -4) + '.mts'];
|
|
53
|
+
if (base.endsWith('.js')) {
|
|
54
|
+
const stem = base.slice(0, -3);
|
|
55
|
+
return [stem + '.ts', stem + '.tsx'];
|
|
56
|
+
}
|
|
57
|
+
return [base + '.ts', base + '.tsx'];
|
|
58
|
+
}
|
|
59
|
+
/** Directory entry points, probed after node's `index.{js,cjs,mjs,json}`. */
|
|
60
|
+
export const TYPESCRIPT_INDEX_CANDIDATES = ['/index.ts', '/index.tsx'];
|
|
61
|
+
/**
|
|
62
|
+
* The same mapping as raw JS, for embedding in the facet shim.
|
|
63
|
+
*
|
|
64
|
+
* The regex and the index list are interpolated from the definitions above so
|
|
65
|
+
* only the four-branch body is written twice, and the equivalence of the two
|
|
66
|
+
* bodies is asserted over the whole table by the unit test rather than
|
|
67
|
+
* asserted by a comment.
|
|
68
|
+
*/
|
|
69
|
+
export function getTypescriptSpecifiersJS() {
|
|
70
|
+
return `
|
|
71
|
+
// ── typescript-specifiers (mirrors src/_shared/typescript-specifiers.ts) ──
|
|
72
|
+
const __NON_MAPPING_EXTENSION = ${NON_MAPPING_EXTENSION.toString()};
|
|
73
|
+
const __TYPESCRIPT_INDEX_CANDIDATES = ${JSON.stringify([...TYPESCRIPT_INDEX_CANDIDATES])};
|
|
74
|
+
function __typescriptFallbackCandidates(base) {
|
|
75
|
+
if (__NON_MAPPING_EXTENSION.test(base)) return [];
|
|
76
|
+
if (base.endsWith(".mjs")) return [base.slice(0, -4) + ".mts"];
|
|
77
|
+
if (base.endsWith(".js")) {
|
|
78
|
+
const stem = base.slice(0, -3);
|
|
79
|
+
return [stem + ".ts", stem + ".tsx"];
|
|
80
|
+
}
|
|
81
|
+
return [base + ".ts", base + ".tsx"];
|
|
82
|
+
}
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The trust boundary between Nimbus and code running inside a session.
|
|
3
|
+
*
|
|
4
|
+
* Everything a session serves — port previews (both the `<port>--<sid>` host
|
|
5
|
+
* form and the `/s/<sid>/port/<n>/` path form), the Vite preview, the wrangler
|
|
6
|
+
* worker preview — is UNTRUSTED: it is whatever the user (or an agent acting
|
|
7
|
+
* for them) installed and ran. Nimbus's own credentials must never cross into
|
|
8
|
+
* it, so requests are sanitized here, once, by every caller that hands a
|
|
9
|
+
* Request to user code.
|
|
10
|
+
*
|
|
11
|
+
* Platform cookies are matched by NAMESPACE, not by an enumerated list. An
|
|
12
|
+
* explicit list is drift-prone in the way that matters most: it silently fails
|
|
13
|
+
* open. It also cannot work across layers — `NIMBUS_TOKEN_COOKIE` lives in
|
|
14
|
+
* this package, `nimbus_agent_oauth` in the session layer, and embedder
|
|
15
|
+
* cookies like `__Host-nimbus_demo_auth` in the app, which this package must
|
|
16
|
+
* not import. A namespace rule covers all three and any cookie added later.
|
|
17
|
+
*/
|
|
18
|
+
/** True if `name` is a Nimbus/embedder platform cookie (never for user code). */
|
|
19
|
+
export declare function isPlatformCookie(name: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Strip Nimbus credentials and internal routing headers from `headers`,
|
|
22
|
+
* in place. Cookies the user's own app set are preserved — only the platform
|
|
23
|
+
* namespace is removed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function sanitizeUntrustedHeaders(headers: Headers): void;
|
|
26
|
+
/**
|
|
27
|
+
* Clone `request` with credentials stripped, for callers that hand a whole
|
|
28
|
+
* Request to user code. Returns the original when there is nothing to remove,
|
|
29
|
+
* so the common case allocates nothing. WebSocket upgrades are passed through
|
|
30
|
+
* untouched: reconstructing them drops the `webSocket` handshake, and the
|
|
31
|
+
* upgrade itself is already authenticated upstream.
|
|
32
|
+
*/
|
|
33
|
+
export declare function sanitizeUntrustedRequest(request: Request): Request;
|
|
34
|
+
//# sourceMappingURL=untrusted-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"untrusted-request.d.ts","sourceRoot":"","sources":["../../src/_shared/untrusted-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqB/D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAalE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The trust boundary between Nimbus and code running inside a session.
|
|
3
|
+
*
|
|
4
|
+
* Everything a session serves — port previews (both the `<port>--<sid>` host
|
|
5
|
+
* form and the `/s/<sid>/port/<n>/` path form), the Vite preview, the wrangler
|
|
6
|
+
* worker preview — is UNTRUSTED: it is whatever the user (or an agent acting
|
|
7
|
+
* for them) installed and ran. Nimbus's own credentials must never cross into
|
|
8
|
+
* it, so requests are sanitized here, once, by every caller that hands a
|
|
9
|
+
* Request to user code.
|
|
10
|
+
*
|
|
11
|
+
* Platform cookies are matched by NAMESPACE, not by an enumerated list. An
|
|
12
|
+
* explicit list is drift-prone in the way that matters most: it silently fails
|
|
13
|
+
* open. It also cannot work across layers — `NIMBUS_TOKEN_COOKIE` lives in
|
|
14
|
+
* this package, `nimbus_agent_oauth` in the session layer, and embedder
|
|
15
|
+
* cookies like `__Host-nimbus_demo_auth` in the app, which this package must
|
|
16
|
+
* not import. A namespace rule covers all three and any cookie added later.
|
|
17
|
+
*/
|
|
18
|
+
/** Cookie-name prefixes reserved for Nimbus and its embedders. */
|
|
19
|
+
const PLATFORM_COOKIE_PREFIXES = ['nimbus_', '__Host-nimbus', '__Secure-nimbus'];
|
|
20
|
+
/** True if `name` is a Nimbus/embedder platform cookie (never for user code). */
|
|
21
|
+
export function isPlatformCookie(name) {
|
|
22
|
+
return PLATFORM_COOKIE_PREFIXES.some((prefix) => name.startsWith(prefix));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Strip Nimbus credentials and internal routing headers from `headers`,
|
|
26
|
+
* in place. Cookies the user's own app set are preserved — only the platform
|
|
27
|
+
* namespace is removed.
|
|
28
|
+
*/
|
|
29
|
+
export function sanitizeUntrustedHeaders(headers) {
|
|
30
|
+
for (const name of [...headers.keys()]) {
|
|
31
|
+
if (name.toLowerCase().startsWith('x-nimbus-'))
|
|
32
|
+
headers.delete(name);
|
|
33
|
+
}
|
|
34
|
+
// Both carry credentials and neither is meaningful to a sandboxed server.
|
|
35
|
+
headers.delete('Authorization');
|
|
36
|
+
headers.delete('Proxy-Authorization');
|
|
37
|
+
const cookie = headers.get('Cookie');
|
|
38
|
+
if (!cookie)
|
|
39
|
+
return;
|
|
40
|
+
const remaining = cookie
|
|
41
|
+
.split(';')
|
|
42
|
+
.map((entry) => entry.trim())
|
|
43
|
+
.filter((entry) => {
|
|
44
|
+
if (!entry)
|
|
45
|
+
return false;
|
|
46
|
+
const separator = entry.indexOf('=');
|
|
47
|
+
const name = separator === -1 ? entry : entry.slice(0, separator).trim();
|
|
48
|
+
return !isPlatformCookie(name);
|
|
49
|
+
});
|
|
50
|
+
if (remaining.length > 0)
|
|
51
|
+
headers.set('Cookie', remaining.join('; '));
|
|
52
|
+
else
|
|
53
|
+
headers.delete('Cookie');
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Clone `request` with credentials stripped, for callers that hand a whole
|
|
57
|
+
* Request to user code. Returns the original when there is nothing to remove,
|
|
58
|
+
* so the common case allocates nothing. WebSocket upgrades are passed through
|
|
59
|
+
* untouched: reconstructing them drops the `webSocket` handshake, and the
|
|
60
|
+
* upgrade itself is already authenticated upstream.
|
|
61
|
+
*/
|
|
62
|
+
export function sanitizeUntrustedRequest(request) {
|
|
63
|
+
if (request.headers.get('Upgrade')?.toLowerCase() === 'websocket')
|
|
64
|
+
return request;
|
|
65
|
+
const headers = new Headers(request.headers);
|
|
66
|
+
sanitizeUntrustedHeaders(headers);
|
|
67
|
+
const hasBody = request.method !== 'GET' && request.method !== 'HEAD';
|
|
68
|
+
return new Request(request.url, {
|
|
69
|
+
method: request.method,
|
|
70
|
+
headers,
|
|
71
|
+
...(hasBody ? { body: request.body, duplex: 'half' } : {}),
|
|
72
|
+
redirect: request.redirect,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vfs-write-ledger.d.ts","sourceRoot":"","sources":["../../src/_shared/vfs-write-ledger.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,QAqZpC,CAAC;AAET,eAAO,MAAM,uBAAuB,QAgC5B,CAAC"}
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
export const VFS_WRITE_MUTATION_QUEUE_SOURCE = `
|
|
2
|
+
const __vfsMutationTails = new Map();
|
|
3
|
+
const __nimbusPendingVfsMutations = new Set();
|
|
4
|
+
let __nimbusPendingVfsMutationFailure;
|
|
5
|
+
let __nimbusHasPendingVfsMutationFailure = false;
|
|
6
|
+
const __vfsWriteClaims = new Map();
|
|
7
|
+
const __nimbusVfsAppendRangeResult = {};
|
|
8
|
+
// Operation sequences reset when this generated module is evaluated again.
|
|
9
|
+
// The nonce namespaces those retries without pretending a new application
|
|
10
|
+
// request is the same logical append. Minted lazily: this source is spliced
|
|
11
|
+
// into the opencode runner's module scope, where workerd forbids global-scope
|
|
12
|
+
// RNG; the first append always runs in handler context.
|
|
13
|
+
let __nimbusVfsModuleIncarnationNonce;
|
|
14
|
+
function __nimbusVfsModuleIncarnation() {
|
|
15
|
+
return (__nimbusVfsModuleIncarnationNonce ??= crypto.randomUUID());
|
|
16
|
+
}
|
|
17
|
+
let __nimbusVfsAppendOperationSequence = 0;
|
|
18
|
+
|
|
19
|
+
function __nimbusVfsPathKey(path) {
|
|
20
|
+
return String(path).replace(/^\\/+/, "");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* A supervisor round trip the ledger issues on its own account.
|
|
25
|
+
*
|
|
26
|
+
* A facet's event loop exits when no handle is live, and an in-flight
|
|
27
|
+
* supervisor RPC is one of the handles it counts — but the debounced
|
|
28
|
+
* write-back runs from a raw timer, outside any call the program is awaiting,
|
|
29
|
+
* so nothing else was counting it. Measured: a template copy parked a cell,
|
|
30
|
+
* the debounce fired 10ms later and issued the write, the explicit flush
|
|
31
|
+
* behind it joined that same in-flight promise rather than starting its own,
|
|
32
|
+
* and the loop saw zero handles and ended the program with two files copied
|
|
33
|
+
* out of twenty-eight — silently, exit 0. fs.promises.cp is how
|
|
34
|
+
* create-cloudflare copies its template.
|
|
35
|
+
*
|
|
36
|
+
* The counter is the shims' __nimbusPendingOps, reached through globalThis
|
|
37
|
+
* rather than by calling their RPC helper: this source is spliced ahead of
|
|
38
|
+
* them and into embeddings that are not the one-shot entrypoint, and an
|
|
39
|
+
* absent counter must not be an error.
|
|
40
|
+
*/
|
|
41
|
+
async function __nimbusVfsRpc(promise) {
|
|
42
|
+
if (typeof globalThis.__nimbusPendingOps !== "number") globalThis.__nimbusPendingOps = 0;
|
|
43
|
+
globalThis.__nimbusPendingOps++;
|
|
44
|
+
try { return await promise; }
|
|
45
|
+
finally { globalThis.__nimbusPendingOps--; }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Errno values that are the filesystem ANSWERING the syscall: the path is not
|
|
50
|
+
* there, it is a directory, the descriptor is closed. The operation did not
|
|
51
|
+
* apply, no bytes were in flight, and nothing the program believes is saved
|
|
52
|
+
* has been lost. Node hands these to the caller and lets it decide — which is
|
|
53
|
+
* why \`fs.truncate(missing).catch(() => {})\` is ordinary, correct code.
|
|
54
|
+
*
|
|
55
|
+
* Everything else — EIO, a dropped RPC, a quota, an authority that died, an
|
|
56
|
+
* error carrying no errno at all — is not an answer. It means the outcome of
|
|
57
|
+
* a write is UNKNOWN, and that is a durability event no matter what the
|
|
58
|
+
* program caught. Unrecognised is treated as durability-class on purpose: the
|
|
59
|
+
* safe direction is to surface.
|
|
60
|
+
*/
|
|
61
|
+
const __NIMBUS_SYSCALL_VERDICT_CODES = new Set([
|
|
62
|
+
"ENOENT", "EEXIST", "EISDIR", "ENOTDIR", "ENOTEMPTY",
|
|
63
|
+
"EBADF", "EINVAL", "EPERM", "EACCES", "ELOOP", "ENAMETOOLONG",
|
|
64
|
+
]);
|
|
65
|
+
|
|
66
|
+
function __nimbusIsDurabilityFailure(error) {
|
|
67
|
+
const code = error && typeof error === "object" ? error.code : undefined;
|
|
68
|
+
return typeof code !== "string" || !__NIMBUS_SYSCALL_VERDICT_CODES.has(code);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Order a mutation behind the others queued for the same path.
|
|
73
|
+
*
|
|
74
|
+
* A rejection is ALSO reported to the drain when it is durability-class. That
|
|
75
|
+
* second channel is not redundancy: the tail handler below marks \`result\`
|
|
76
|
+
* handled, which suppresses the platform's own \`unhandledrejection\` signal,
|
|
77
|
+
* so retention is the only thing that can reach a durability boundary. Losing
|
|
78
|
+
* it is how a handler whose write failed still answers 200 — silent wrong
|
|
79
|
+
* data, which is what this ledger exists to prevent.
|
|
80
|
+
*
|
|
81
|
+
* What must NOT be retained is a plain syscall verdict. The queue used to
|
|
82
|
+
* retain those too, so an error the program had already caught was delivered
|
|
83
|
+
* a second time at teardown and killed the process: \`opencode --help\`
|
|
84
|
+
* rendered its whole help surface and then exited 1 on the
|
|
85
|
+
* \`fs.truncate(logfile).catch(() => {})\` in its logger init.
|
|
86
|
+
*
|
|
87
|
+
* The seam is the ERROR, not the call site. The same source line —
|
|
88
|
+
* \`fs.promises.truncate(p).catch(() => {})\` — must exit 0 when the file was
|
|
89
|
+
* simply absent, and must fail the response when the authority could not say
|
|
90
|
+
* whether the write landed. No per-call-site flag can express that, because
|
|
91
|
+
* both cases arrive through the same call site.
|
|
92
|
+
*/
|
|
93
|
+
function __nimbusQueueVfsMutation(path, mutation, retainFailure = true) {
|
|
94
|
+
const key = __nimbusVfsPathKey(path);
|
|
95
|
+
const previous = __vfsMutationTails.get(key) || Promise.resolve();
|
|
96
|
+
const result = previous.then(mutation);
|
|
97
|
+
__nimbusPendingVfsMutations.add(result);
|
|
98
|
+
// A failed mutation rejects its own caller but must not poison later writes
|
|
99
|
+
// for the same path or become an unhandled queue-cleanup rejection.
|
|
100
|
+
let tail;
|
|
101
|
+
const clearTail = () => {
|
|
102
|
+
__nimbusPendingVfsMutations.delete(result);
|
|
103
|
+
if (__vfsMutationTails.get(key) === tail) {
|
|
104
|
+
__vfsMutationTails.delete(key);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
tail = result.then(clearTail, (error) => {
|
|
108
|
+
if (retainFailure
|
|
109
|
+
&& __nimbusIsDurabilityFailure(error)
|
|
110
|
+
&& !__nimbusHasPendingVfsMutationFailure) {
|
|
111
|
+
__nimbusHasPendingVfsMutationFailure = true;
|
|
112
|
+
__nimbusPendingVfsMutationFailure = error;
|
|
113
|
+
}
|
|
114
|
+
clearTail();
|
|
115
|
+
});
|
|
116
|
+
__vfsMutationTails.set(key, tail);
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async function __nimbusDrainVfsMutations() {
|
|
121
|
+
while (__nimbusPendingVfsMutations.size > 0) {
|
|
122
|
+
await Promise.allSettled([...__nimbusPendingVfsMutations]);
|
|
123
|
+
}
|
|
124
|
+
if (__nimbusHasPendingVfsMutationFailure) {
|
|
125
|
+
const failure = __nimbusPendingVfsMutationFailure;
|
|
126
|
+
__nimbusHasPendingVfsMutationFailure = false;
|
|
127
|
+
__nimbusPendingVfsMutationFailure = undefined;
|
|
128
|
+
throw failure;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function __nimbusCapturePendingVfsAppend(path) {
|
|
133
|
+
const key = __nimbusVfsPathKey(path);
|
|
134
|
+
const append = __vfsAppendWrites[key];
|
|
135
|
+
return append && append.generation === __vfsWriteGenerations[key]
|
|
136
|
+
? append
|
|
137
|
+
: null;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function __nimbusConcatVfsBytes(left, right) {
|
|
141
|
+
const bytes = new Uint8Array(left.byteLength + right.byteLength);
|
|
142
|
+
bytes.set(left, 0);
|
|
143
|
+
bytes.set(right, left.byteLength);
|
|
144
|
+
return bytes;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function __nimbusRecordVfsAppend(path, delta, fragment, previous) {
|
|
148
|
+
const key = __nimbusVfsPathKey(path);
|
|
149
|
+
const chain = previous ? previous.chain : { pending: [] };
|
|
150
|
+
let operation;
|
|
151
|
+
if (previous &&
|
|
152
|
+
!previous.claimed &&
|
|
153
|
+
!chain.pending.includes(previous.operation)) {
|
|
154
|
+
operation = previous.operation;
|
|
155
|
+
operation.bytes = __nimbusConcatVfsBytes(operation.bytes, delta);
|
|
156
|
+
} else {
|
|
157
|
+
operation = {
|
|
158
|
+
id: String(++__nimbusVfsAppendOperationSequence),
|
|
159
|
+
bytes: delta.slice(),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
__vfsAppendWrites[key] = {
|
|
163
|
+
generation: __vfsWriteGenerations[key],
|
|
164
|
+
fragment,
|
|
165
|
+
chain,
|
|
166
|
+
operation,
|
|
167
|
+
claimed: false,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function __nimbusCaptureVfsWrite(path) {
|
|
172
|
+
const key = __nimbusVfsPathKey(path);
|
|
173
|
+
if (!Object.prototype.hasOwnProperty.call(__vfsWrites, key)) return null;
|
|
174
|
+
return {
|
|
175
|
+
key,
|
|
176
|
+
content: __vfsWrites[key],
|
|
177
|
+
generation: __vfsWriteGenerations[key],
|
|
178
|
+
append: __nimbusCapturePendingVfsAppend(key),
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function __nimbusVfsAppendOperations(snapshot) {
|
|
183
|
+
const operations = snapshot.append.chain.pending.slice();
|
|
184
|
+
if (!operations.includes(snapshot.append.operation)) {
|
|
185
|
+
operations.push(snapshot.append.operation);
|
|
186
|
+
}
|
|
187
|
+
return operations;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function __nimbusBeginVfsAppendOperation(snapshot, operation) {
|
|
191
|
+
if (!snapshot.append.chain.pending.includes(operation)) {
|
|
192
|
+
snapshot.append.chain.pending.push(operation);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function __nimbusCommitVfsAppendOperation(snapshot, operation) {
|
|
197
|
+
const index = snapshot.append.chain.pending.indexOf(operation);
|
|
198
|
+
if (index !== -1) snapshot.append.chain.pending.splice(index, 1);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function __nimbusUnsupportedVfsAppend(path) {
|
|
202
|
+
const error = new Error(
|
|
203
|
+
"ENOSYS: preserving a nonresident append requires fsAppend and fsAppendAck: " + path,
|
|
204
|
+
);
|
|
205
|
+
error.code = "ENOSYS";
|
|
206
|
+
return error;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
function __nimbusRunVfsWriteMutation(snapshot, mutation, retainFailure) {
|
|
210
|
+
return __nimbusQueueVfsMutation(snapshot.key, async () => {
|
|
211
|
+
const value = await mutation(snapshot.content, snapshot);
|
|
212
|
+
if (__vfsWriteGenerations[snapshot.key] === snapshot.generation) {
|
|
213
|
+
if (snapshot.append &&
|
|
214
|
+
value === __nimbusVfsAppendRangeResult &&
|
|
215
|
+
typeof __vfsBundle !== "undefined" &&
|
|
216
|
+
__vfsBundle) {
|
|
217
|
+
delete __vfsBundle[snapshot.key];
|
|
218
|
+
}
|
|
219
|
+
delete __vfsWrites[snapshot.key];
|
|
220
|
+
__nimbusStampFlushedCell(snapshot, value);
|
|
221
|
+
}
|
|
222
|
+
return value;
|
|
223
|
+
}, retainFailure);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Record the authority revision a just-flushed cell is known-good at.
|
|
228
|
+
*
|
|
229
|
+
* The barrier reports back every path mutated since the facet's cursor,
|
|
230
|
+
* which includes the facet's OWN writes — the invalidation log has no way
|
|
231
|
+
* to know who caused an entry. Without a stamp the facet drops the cells it
|
|
232
|
+
* authored the instant it flushes them, and a resumption then refetches
|
|
233
|
+
* bytes it is already holding: a self-inflicted cold cache on exactly the
|
|
234
|
+
* files a scaffolder or a build just wrote.
|
|
235
|
+
*
|
|
236
|
+
* A "skip paths I wrote" rule would be unsound — a peer may write the same
|
|
237
|
+
* path after us, and that invalidation is real. The revision separates
|
|
238
|
+
* them: a report AT our revision is our own write coming back, a report
|
|
239
|
+
* ABOVE it is somebody else's and still evicts.
|
|
240
|
+
*
|
|
241
|
+
* Guarded on cell identity rather than on the flush alone. A read that
|
|
242
|
+
* raced the flush may have refilled the cell from an older revision, and
|
|
243
|
+
* stamping that with our newer one would pin a stale byte — the one
|
|
244
|
+
* outcome this whole protocol exists to prevent.
|
|
245
|
+
*
|
|
246
|
+
* Only the written path is stamped, never its parent — deliberately, and it
|
|
247
|
+
* is why a batch of writes still costs ONE invalidation rather than none.
|
|
248
|
+
* Every mutation reports its parent directory too, so stamping the parent
|
|
249
|
+
* here looks like the obvious way to reach zero. It is not: the same
|
|
250
|
+
* revision on the directory would also vouch for a peer's earlier change to
|
|
251
|
+
* the DIRECTORY ITSELF — a chmod at a revision this facet never acquired —
|
|
252
|
+
* and that stale mode would then survive the barrier. The write knows what
|
|
253
|
+
* it did to the file and nothing about the directory. Do not "finish" this
|
|
254
|
+
* by stamping the parent.
|
|
255
|
+
*/
|
|
256
|
+
function __nimbusStampFlushedCell(snapshot, revision) {
|
|
257
|
+
if (typeof revision !== "number") return;
|
|
258
|
+
if (typeof __vfsBundle === "undefined" || !__vfsBundle) return;
|
|
259
|
+
if (__vfsBundle[snapshot.key] !== snapshot.content) return;
|
|
260
|
+
__vfsBundleRevisions[snapshot.key] = revision;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
function __nimbusFlushVfsWrite(path, mutation, retainFailure = true) {
|
|
264
|
+
const snapshot = __nimbusCaptureVfsWrite(path);
|
|
265
|
+
if (!snapshot) return Promise.resolve(undefined);
|
|
266
|
+
const existing = __vfsWriteClaims.get(snapshot.key);
|
|
267
|
+
if (existing && existing.generation === snapshot.generation) {
|
|
268
|
+
return existing.promise;
|
|
269
|
+
}
|
|
270
|
+
if (snapshot.append) snapshot.append.claimed = true;
|
|
271
|
+
const result = __nimbusRunVfsWriteMutation(snapshot, mutation, retainFailure);
|
|
272
|
+
const claim = { generation: snapshot.generation, promise: result };
|
|
273
|
+
__vfsWriteClaims.set(snapshot.key, claim);
|
|
274
|
+
const release = () => {
|
|
275
|
+
if (__vfsWriteClaims.get(snapshot.key) === claim) {
|
|
276
|
+
__vfsWriteClaims.delete(snapshot.key);
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
result.then(release, () => {
|
|
280
|
+
release();
|
|
281
|
+
if (snapshot.append &&
|
|
282
|
+
__vfsAppendWrites[snapshot.key] === snapshot.append) {
|
|
283
|
+
snapshot.append.claimed = false;
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
return result;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
async function __nimbusPersistVfsWrite(supervisor, path, content, snapshot) {
|
|
290
|
+
if (snapshot.append) {
|
|
291
|
+
if (typeof supervisor.fsAppend !== "function" ||
|
|
292
|
+
typeof supervisor.fsAppendAck !== "function") {
|
|
293
|
+
throw __nimbusUnsupportedVfsAppend(path);
|
|
294
|
+
}
|
|
295
|
+
for (const operation of __nimbusVfsAppendOperations(snapshot)) {
|
|
296
|
+
__nimbusBeginVfsAppendOperation(snapshot, operation);
|
|
297
|
+
await __nimbusVfsRpc(supervisor.fsAppend(
|
|
298
|
+
path,
|
|
299
|
+
__nimbusVfsModuleIncarnation(),
|
|
300
|
+
operation.id,
|
|
301
|
+
operation.bytes,
|
|
302
|
+
));
|
|
303
|
+
__nimbusCommitVfsAppendOperation(snapshot, operation);
|
|
304
|
+
try {
|
|
305
|
+
await __nimbusVfsRpc(supervisor.fsAppendAck(__nimbusVfsModuleIncarnation(), operation.id));
|
|
306
|
+
} catch {
|
|
307
|
+
// The client has already relinquished retry ownership after the
|
|
308
|
+
// append success. A lost acknowledgement may retain a receipt, but
|
|
309
|
+
// must never turn a committed append into a failed/retried write.
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return __nimbusVfsAppendRangeResult;
|
|
313
|
+
}
|
|
314
|
+
// The revision this write produced. It is what lets the ACQUIRE barrier
|
|
315
|
+
// tell this facet's own mutation apart from a peer's.
|
|
316
|
+
return __nimbusVfsRpc(supervisor.writeFile(path, content));
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Write back everything parked, keeping any failure for the exit drain.
|
|
321
|
+
*
|
|
322
|
+
* The write-back sites that are not the exit drain — the debounce below and
|
|
323
|
+
* the RELEASE barrier ahead of egress — have no caller who could act on a
|
|
324
|
+
* failure: there is no user frame to throw into, and rejecting the fetch that
|
|
325
|
+
* happened to trigger the flush would blame the wrong operation. Retaining
|
|
326
|
+
* the failure in the channel \`__nimbusDrainVfsMutations\` already drains means
|
|
327
|
+
* the exit path still reports it, so a lost write is loud exactly once and
|
|
328
|
+
* never silent.
|
|
329
|
+
*/
|
|
330
|
+
async function __nimbusFlushVfsWriteBack(supervisor) {
|
|
331
|
+
if (!supervisor) return;
|
|
332
|
+
try {
|
|
333
|
+
await __nimbusDrainVfsWrites(supervisor);
|
|
334
|
+
} catch (error) {
|
|
335
|
+
if (!__nimbusHasPendingVfsMutationFailure) {
|
|
336
|
+
__nimbusHasPendingVfsMutationFailure = true;
|
|
337
|
+
__nimbusPendingVfsMutationFailure = error;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* A synchronous write can only park bytes in \`__vfsWrites\`: a sync syscall
|
|
344
|
+
* has no channel to the authority. Something else therefore has to carry
|
|
345
|
+
* them across, and the only thing that did was the drain at process exit —
|
|
346
|
+
* so a resident server that writes synchronously never wrote back at all,
|
|
347
|
+
* and a peer reading the same path got the pre-write bytes for the whole
|
|
348
|
+
* life of the process. Measured, not theorised: \`writeFileSync\` then 50 ms
|
|
349
|
+
* left the authority at null with zero write RPCs issued.
|
|
350
|
+
*
|
|
351
|
+
* Flushing on every write is not the repair — 500 sync writes would become
|
|
352
|
+
* 500 round trips, and an npm install writes thousands. Debounce instead:
|
|
353
|
+
* parking a cell schedules one write-back, and every write that lands before
|
|
354
|
+
* it fires joins that same batch. Steady state costs no more round trips
|
|
355
|
+
* than the exit drain already paid; what changes is when they happen.
|
|
356
|
+
*
|
|
357
|
+
* The timer is the raw platform one, captured before the shims wrap
|
|
358
|
+
* \`setTimeout\` with the VFS resumption barrier: a write-back is the shim's
|
|
359
|
+
* own infrastructure, not a user resumption, and must not pay an ACQUIRE to
|
|
360
|
+
* deliver an ACQUIRE.
|
|
361
|
+
*/
|
|
362
|
+
const __NIMBUS_VFS_WRITE_BACK_DELAY_MS = 10;
|
|
363
|
+
const __nimbusRawTimer = globalThis.setTimeout;
|
|
364
|
+
let __nimbusVfsWriteBackTimer = null;
|
|
365
|
+
function __nimbusScheduleVfsWriteBack() {
|
|
366
|
+
if (__nimbusVfsWriteBackTimer !== null) return;
|
|
367
|
+
if (typeof __nimbusRawTimer !== 'function') return;
|
|
368
|
+
__nimbusVfsWriteBackTimer = __nimbusRawTimer(() => {
|
|
369
|
+
__nimbusVfsWriteBackTimer = null;
|
|
370
|
+
const supervisor = typeof __supervisor !== 'undefined' ? __supervisor : null;
|
|
371
|
+
if (!supervisor) return;
|
|
372
|
+
// Not registered in __nimbusPendingVfsMutations: each write it starts
|
|
373
|
+
// registers itself there through __nimbusQueueVfsMutation, so the exit
|
|
374
|
+
// drain already awaits the work. Registering the orchestration too would
|
|
375
|
+
// add an entry nothing ever removes, and that set is drained by a
|
|
376
|
+
// while-loop on its size.
|
|
377
|
+
void __nimbusFlushVfsWriteBack(supervisor);
|
|
378
|
+
}, __NIMBUS_VFS_WRITE_BACK_DELAY_MS);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
async function __nimbusDrainVfsWrites(supervisor) {
|
|
382
|
+
const paths = Object.keys(__vfsWrites);
|
|
383
|
+
const outcomes = await Promise.allSettled([
|
|
384
|
+
...paths.map(async (path) => {
|
|
385
|
+
const persist = () => __nimbusFlushVfsWrite(
|
|
386
|
+
path,
|
|
387
|
+
(content, snapshot) =>
|
|
388
|
+
__nimbusPersistVfsWrite(supervisor, path, content, snapshot),
|
|
389
|
+
false,
|
|
390
|
+
);
|
|
391
|
+
try {
|
|
392
|
+
await persist();
|
|
393
|
+
} catch (error) {
|
|
394
|
+
// The authority may have committed before the RPC response was lost.
|
|
395
|
+
// One retry is safe: full writes are idempotent, while appends retain
|
|
396
|
+
// the same module/operation identity and are deduplicated by authority.
|
|
397
|
+
if (error && typeof error.code === "string") throw error;
|
|
398
|
+
await persist();
|
|
399
|
+
}
|
|
400
|
+
}),
|
|
401
|
+
__nimbusDrainVfsMutations(),
|
|
402
|
+
]);
|
|
403
|
+
const failure = outcomes.find((outcome) => outcome.status === "rejected");
|
|
404
|
+
if (failure) throw failure.reason;
|
|
405
|
+
}
|
|
406
|
+
`.trim();
|
|
407
|
+
export const VFS_WRITE_LEDGER_SOURCE = `
|
|
408
|
+
const __vfsWriteGenerations = Object.create(null);
|
|
409
|
+
// Per-path: the authority revision the resident cell in __vfsBundle is
|
|
410
|
+
// known-good at. Only a flush of this facet's own bytes sets one, and the
|
|
411
|
+
// ACQUIRE barrier is the only reader. An unstamped cell is simply evicted,
|
|
412
|
+
// so a mutation path that forgets to stamp costs a refetch and never a
|
|
413
|
+
// stale byte.
|
|
414
|
+
const __vfsBundleRevisions = Object.create(null);
|
|
415
|
+
const __vfsAppendWrites = Object.create(null);
|
|
416
|
+
const __vfsWrites = new Proxy(Object.create(null), {
|
|
417
|
+
set(target, path, value) {
|
|
418
|
+
target[path] = value;
|
|
419
|
+
delete __vfsAppendWrites[path];
|
|
420
|
+
__vfsWriteGenerations[path] = (__vfsWriteGenerations[path] || 0) + 1;
|
|
421
|
+
// Parking a cell is the only signal a synchronous write leaves. It is
|
|
422
|
+
// therefore the one place a write-back can be scheduled from, and it
|
|
423
|
+
// covers every sync mutation — writeFileSync, appendFileSync, the fd
|
|
424
|
+
// writes, rename — with no per-call-site duplication.
|
|
425
|
+
__nimbusScheduleVfsWriteBack();
|
|
426
|
+
return true;
|
|
427
|
+
},
|
|
428
|
+
deleteProperty(target, path) {
|
|
429
|
+
delete __vfsAppendWrites[path];
|
|
430
|
+
if (Object.prototype.hasOwnProperty.call(target, path)) {
|
|
431
|
+
delete target[path];
|
|
432
|
+
__vfsWriteGenerations[path] = (__vfsWriteGenerations[path] || 0) + 1;
|
|
433
|
+
}
|
|
434
|
+
return true;
|
|
435
|
+
},
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
${VFS_WRITE_MUTATION_QUEUE_SOURCE}
|
|
439
|
+
`.trim();
|