@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,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* oom-discriminator.ts — singleton ring buffer for OOM / failure
|
|
3
|
+
* forensics + last-known-RPC-frame + last-known-facet-id +
|
|
4
|
+
* session-recovery-event ring, plus snapshot/rehydrate hooks for DO
|
|
5
|
+
* storage persistence.
|
|
6
|
+
*
|
|
7
|
+
* W5 (Lever 5 / J.1.1) — original module. Pairs with oom-classify.ts.
|
|
8
|
+
* C'.2 — added the recovery_event ring.
|
|
9
|
+
*
|
|
10
|
+
* Why singleton-per-isolate
|
|
11
|
+
* ─────────────────────────
|
|
12
|
+
* Same pattern as src/observability/diag-counters.ts. The supervisor bundle
|
|
13
|
+
* is the consumer; all writers (sqlite-vfs, facet-pool, facet-manager,
|
|
14
|
+
* supervisor-rpc, npm-installer, nimbus-session) live in the same
|
|
15
|
+
* isolate. Module scope provides one process-local diagnostic without
|
|
16
|
+
* threading a handle through each writer.
|
|
17
|
+
*
|
|
18
|
+
* Two distinct rings
|
|
19
|
+
* ──────────────────
|
|
20
|
+
* - failures: things that failed (the original W5 ring).
|
|
21
|
+
* - recoveryEvents: lifecycle transitions of the session. Cold isolate
|
|
22
|
+
* boot → 'cold' → 'hydrated' → 'active' → 'drained'.
|
|
23
|
+
*
|
|
24
|
+
* Bounded-size guarantees
|
|
25
|
+
* ───────────────────────
|
|
26
|
+
* - failures ring: 50 entries (RING_SIZE).
|
|
27
|
+
* - recoveryEvents ring: 50 entries (RECOVERY_RING_SIZE).
|
|
28
|
+
* - per-message cap: 200 chars (truncated at insert).
|
|
29
|
+
* - per-RPC-frame: single slot, one object.
|
|
30
|
+
* - per-facet-id: single slot, one object.
|
|
31
|
+
*
|
|
32
|
+
* Snapshot size stays bounded even with both rings full.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
import { isOomCause, type OomCause } from './oom-classify.js';
|
|
36
|
+
|
|
37
|
+
const RING_SIZE = 50;
|
|
38
|
+
const RECOVERY_RING_SIZE = 50;
|
|
39
|
+
const MESSAGE_CAP = 200;
|
|
40
|
+
|
|
41
|
+
export interface RpcFrame {
|
|
42
|
+
method: string;
|
|
43
|
+
payloadBytes: number;
|
|
44
|
+
atMs: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface FacetId {
|
|
48
|
+
codeId: string;
|
|
49
|
+
slotIndex: number;
|
|
50
|
+
atMs: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface DiagFailure {
|
|
54
|
+
/** ms epoch */
|
|
55
|
+
at: number;
|
|
56
|
+
/** Lifecycle stage (e.g. 'install', 'resolve', 'rpc', 'facet', 'ws'). */
|
|
57
|
+
phase: string;
|
|
58
|
+
/** Discriminated cause. See oom-classify.ts. */
|
|
59
|
+
cause: OomCause;
|
|
60
|
+
/** Best-effort RSS estimate in bytes (peak observed). */
|
|
61
|
+
rssEstimateBytes: number;
|
|
62
|
+
/** process.memoryUsage().heapUsed if available; 0 in DO contexts. */
|
|
63
|
+
heapUsedBytes: number;
|
|
64
|
+
/** SqliteVFS LRU hot bytes at time of failure. */
|
|
65
|
+
lruBytes: number;
|
|
66
|
+
/** Sum of in-flight RPC payload bytes (best-effort). */
|
|
67
|
+
inFlightBytes: number;
|
|
68
|
+
/** Snapshot of the most recent RPC frame, if any. */
|
|
69
|
+
lastRpcFrame: RpcFrame | null;
|
|
70
|
+
/** Snapshot of the most recent facet dispatch, if any. */
|
|
71
|
+
lastFacetId: FacetId | null;
|
|
72
|
+
/** Optional facet exit code (when failure represents a facet termination). */
|
|
73
|
+
exitCode?: number;
|
|
74
|
+
/** Optional facet pid. */
|
|
75
|
+
pid?: number;
|
|
76
|
+
/** Free-form message; truncated to MESSAGE_CAP characters. */
|
|
77
|
+
message?: string;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Session lifecycle states for the C'.2 recovery_event ring.
|
|
82
|
+
*
|
|
83
|
+
* This module records state-machine transitions; it does not enforce them.
|
|
84
|
+
*
|
|
85
|
+
* State semantics:
|
|
86
|
+
* - 'cold' : fresh DO instance, no in-memory session state yet.
|
|
87
|
+
* - 'hydrated' : Phase R completed — SQL state read into in-memory cache.
|
|
88
|
+
* - 'active' : Phase B+W+O completed — kernel/shell/terminal wired.
|
|
89
|
+
* - 'drained' : webSocketError/Close fired; in-memory caches nulled,
|
|
90
|
+
* SQL state freshly persisted; awaiting next reconnect.
|
|
91
|
+
*
|
|
92
|
+
* Trigger labels: human-readable event that caused the transition.
|
|
93
|
+
* Examples: 'first-fetch', 'ws-upgrade', 'ws-close', 'ws-error',
|
|
94
|
+
* 'isolate-evicted', 'manual-test'.
|
|
95
|
+
*/
|
|
96
|
+
/** Session state union.
|
|
97
|
+
*
|
|
98
|
+
* The original four are the high-level lifecycle markers:
|
|
99
|
+
* cold — never inited
|
|
100
|
+
* hydrated — re-init complete (warm path; Phase O skipped)
|
|
101
|
+
* active — live shell processing input
|
|
102
|
+
* drained — webSocketError/Close fired; SQL freshly persisted
|
|
103
|
+
*
|
|
104
|
+
* The four [B'.4] additions are the fine-grained phases of
|
|
105
|
+
* initSession itself, recorded as the function progresses:
|
|
106
|
+
* rehydrate — Phase R: loading state from DO SQLite
|
|
107
|
+
* build — Phase B: constructing Kernel/Shell/registry
|
|
108
|
+
* wire — Phase W: attaching terminal, replaying scrollback
|
|
109
|
+
* online — Phase O: cold-start MOTD + starter hint (cold only;
|
|
110
|
+
* on warm re-init this phase is skipped and the
|
|
111
|
+
* initSession ends with 'hydrated' instead)
|
|
112
|
+
*
|
|
113
|
+
* The phase transitions are SUPPLEMENTAL to the high-level markers,
|
|
114
|
+
* not a replacement. Probes that look for the legacy `'hydrated'`
|
|
115
|
+
* marker continue to work; probes that want fine-grained debugging
|
|
116
|
+
* can grep for the phase states.
|
|
117
|
+
*/
|
|
118
|
+
export type SessionState =
|
|
119
|
+
| 'cold' | 'hydrated' | 'active' | 'drained'
|
|
120
|
+
| 'rehydrate' | 'build' | 'wire' | 'online';
|
|
121
|
+
|
|
122
|
+
export interface DiagRecoveryEvent {
|
|
123
|
+
/** ms epoch */
|
|
124
|
+
at: number;
|
|
125
|
+
/** Source state. */
|
|
126
|
+
fromState: SessionState;
|
|
127
|
+
/** Destination state. */
|
|
128
|
+
toState: SessionState;
|
|
129
|
+
/** Human-readable trigger ('ws-close', 'isolate-evicted', etc.). */
|
|
130
|
+
trigger: string;
|
|
131
|
+
/** _w9IsolateGen at the time of the event. Lets a probe detect the
|
|
132
|
+
* difference between an in-isolate transition and a cross-isolate one
|
|
133
|
+
* (the latter implies workerd recycled the DO). */
|
|
134
|
+
isolateGen: number;
|
|
135
|
+
/** True when the transition could not preserve state that should
|
|
136
|
+
* have survived (e.g. SQL persist threw or a snapshot was missing). */
|
|
137
|
+
dataLoss: boolean;
|
|
138
|
+
/** Number of SQL keys/rows rehydrated on a hydrated transition.
|
|
139
|
+
* Zero when the transition is one that doesn't read SQL. */
|
|
140
|
+
snapshotKeysRehydrated: number;
|
|
141
|
+
/** Optional free-form notes (200 char cap). */
|
|
142
|
+
notes?: string;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
interface RingState {
|
|
146
|
+
failures: DiagFailure[];
|
|
147
|
+
recoveryEvents: DiagRecoveryEvent[];
|
|
148
|
+
lastRpcFrame: RpcFrame | null;
|
|
149
|
+
lastFacetId: FacetId | null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const state: RingState = {
|
|
153
|
+
failures: [],
|
|
154
|
+
recoveryEvents: [],
|
|
155
|
+
lastRpcFrame: null,
|
|
156
|
+
lastFacetId: null,
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
function getState(): RingState {
|
|
160
|
+
return state;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/** Append a failure to the ring. Newest first. Capped at RING_SIZE. */
|
|
164
|
+
export function recordFailure(f: DiagFailure): void {
|
|
165
|
+
const s = getState();
|
|
166
|
+
// Defensive copy + message cap.
|
|
167
|
+
const entry: DiagFailure = {
|
|
168
|
+
at: Number(f.at) || Date.now(),
|
|
169
|
+
phase: String(f.phase ?? 'unknown'),
|
|
170
|
+
cause: f.cause,
|
|
171
|
+
rssEstimateBytes: Number(f.rssEstimateBytes) || 0,
|
|
172
|
+
heapUsedBytes: Number(f.heapUsedBytes) || 0,
|
|
173
|
+
lruBytes: Number(f.lruBytes) || 0,
|
|
174
|
+
inFlightBytes: Number(f.inFlightBytes) || 0,
|
|
175
|
+
lastRpcFrame: f.lastRpcFrame ?? s.lastRpcFrame,
|
|
176
|
+
lastFacetId: f.lastFacetId ?? s.lastFacetId,
|
|
177
|
+
};
|
|
178
|
+
if (typeof f.exitCode === 'number') entry.exitCode = f.exitCode;
|
|
179
|
+
if (typeof f.pid === 'number') entry.pid = f.pid;
|
|
180
|
+
if (f.message) {
|
|
181
|
+
const m = String(f.message);
|
|
182
|
+
entry.message = m.length > MESSAGE_CAP ? m.slice(0, MESSAGE_CAP) : m;
|
|
183
|
+
}
|
|
184
|
+
s.failures.unshift(entry);
|
|
185
|
+
if (s.failures.length > RING_SIZE) s.failures.length = RING_SIZE;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** Read a snapshot of the ring. Newest first. Caller-side mutations
|
|
189
|
+
* do not affect the singleton. */
|
|
190
|
+
export function getFailures(): DiagFailure[] {
|
|
191
|
+
return getState().failures.slice(0);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/** Record the current RPC frame (called at every RPC entry). Bounded
|
|
195
|
+
* to a single slot — the LATEST frame wins. */
|
|
196
|
+
export function setLastRpcFrame(method: string, payloadBytes: number): void {
|
|
197
|
+
const s = getState();
|
|
198
|
+
s.lastRpcFrame = {
|
|
199
|
+
method: String(method),
|
|
200
|
+
payloadBytes: Number(payloadBytes) || 0,
|
|
201
|
+
atMs: Date.now(),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export function getLastRpcFrame(): RpcFrame | null {
|
|
206
|
+
return getState().lastRpcFrame;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/** Record the most recent facet dispatch. */
|
|
210
|
+
export function setLastFacetId(codeId: string, slotIndex: number): void {
|
|
211
|
+
const s = getState();
|
|
212
|
+
s.lastFacetId = {
|
|
213
|
+
codeId: String(codeId),
|
|
214
|
+
slotIndex: Number(slotIndex) || 0,
|
|
215
|
+
atMs: Date.now(),
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export function getLastFacetId(): FacetId | null {
|
|
220
|
+
return getState().lastFacetId;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// ── C'.2 recovery_event ring ────────────────────────────────────────────
|
|
224
|
+
//
|
|
225
|
+
// The ring is bounded at RECOVERY_RING_SIZE; the diag endpoint reads via
|
|
226
|
+
// getRecoveryEvents() (newest first).
|
|
227
|
+
|
|
228
|
+
/** Append a recovery event to the ring. Newest first. Capped at
|
|
229
|
+
* RECOVERY_RING_SIZE. */
|
|
230
|
+
export function recordRecoveryEvent(e: DiagRecoveryEvent): void {
|
|
231
|
+
const s = getState();
|
|
232
|
+
// Defensive copy + notes cap. We intentionally do NOT validate the
|
|
233
|
+
// state-machine direction here (e.g. that 'drained' only follows
|
|
234
|
+
// 'active') — the state machine lives elsewhere; this ring is a
|
|
235
|
+
// recorder, not an enforcer. If a probe sees an impossible
|
|
236
|
+
// transition, that's a real bug in the state machine and the
|
|
237
|
+
// probe must fail.
|
|
238
|
+
const entry: DiagRecoveryEvent = {
|
|
239
|
+
at: Number(e.at) || Date.now(),
|
|
240
|
+
fromState: e.fromState,
|
|
241
|
+
toState: e.toState,
|
|
242
|
+
trigger: String(e.trigger ?? 'unknown'),
|
|
243
|
+
isolateGen: Number(e.isolateGen) || 0,
|
|
244
|
+
dataLoss: !!e.dataLoss,
|
|
245
|
+
snapshotKeysRehydrated: Number(e.snapshotKeysRehydrated) || 0,
|
|
246
|
+
};
|
|
247
|
+
if (e.notes) {
|
|
248
|
+
const n = String(e.notes);
|
|
249
|
+
entry.notes = n.length > MESSAGE_CAP ? n.slice(0, MESSAGE_CAP) : n;
|
|
250
|
+
}
|
|
251
|
+
s.recoveryEvents.unshift(entry);
|
|
252
|
+
if (s.recoveryEvents.length > RECOVERY_RING_SIZE) {
|
|
253
|
+
s.recoveryEvents.length = RECOVERY_RING_SIZE;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/** Read a snapshot of the recovery ring. Newest first. */
|
|
258
|
+
export function getRecoveryEvents(): DiagRecoveryEvent[] {
|
|
259
|
+
return getState().recoveryEvents.slice(0);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/** Reset the recovery ring. Tests + manual operator use only. */
|
|
263
|
+
export function resetRecoveryEvents(): void {
|
|
264
|
+
getState().recoveryEvents.length = 0;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Build a JSON-serializable snapshot suitable for ctx.storage.put.
|
|
269
|
+
* Bounded ≤ 40 KB even with both rings full of MESSAGE_CAP-truncated
|
|
270
|
+
* messages. Schema version embedded so a future shape change can
|
|
271
|
+
* cleanly reject old snapshots.
|
|
272
|
+
*
|
|
273
|
+
* Schema version 2 includes both failure and recovery-event rings.
|
|
274
|
+
*/
|
|
275
|
+
export interface DiagSnapshot {
|
|
276
|
+
/** Schema version. Bump when shape changes. */
|
|
277
|
+
v: 2;
|
|
278
|
+
failures: DiagFailure[];
|
|
279
|
+
recoveryEvents: DiagRecoveryEvent[];
|
|
280
|
+
lastRpcFrame: RpcFrame | null;
|
|
281
|
+
lastFacetId: FacetId | null;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export function snapshotForStorage(): DiagSnapshot {
|
|
285
|
+
const s = getState();
|
|
286
|
+
return {
|
|
287
|
+
v: 2,
|
|
288
|
+
failures: s.failures.slice(0),
|
|
289
|
+
recoveryEvents: s.recoveryEvents.slice(0),
|
|
290
|
+
lastRpcFrame: s.lastRpcFrame,
|
|
291
|
+
lastFacetId: s.lastFacetId,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Restore from a snapshot. Garbage / null / wrong-shape input is
|
|
297
|
+
* silently ignored. Does NOT throw — constructor-time rehydration must
|
|
298
|
+
* never block DO startup.
|
|
299
|
+
*
|
|
300
|
+
* Only the current v2 schema is accepted.
|
|
301
|
+
*/
|
|
302
|
+
export function rehydrateFromStorage(blob: unknown): void {
|
|
303
|
+
if (!isRecord(blob) || blob.v !== 2) return;
|
|
304
|
+
const b = blob;
|
|
305
|
+
if (!Array.isArray(b.failures)) return;
|
|
306
|
+
|
|
307
|
+
const s = getState();
|
|
308
|
+
s.failures.length = 0;
|
|
309
|
+
for (const f of b.failures) {
|
|
310
|
+
const entry = parseFailure(f);
|
|
311
|
+
if (!entry) continue;
|
|
312
|
+
s.failures.push(entry);
|
|
313
|
+
if (s.failures.length >= RING_SIZE) break;
|
|
314
|
+
}
|
|
315
|
+
s.recoveryEvents.length = 0;
|
|
316
|
+
if (Array.isArray(b.recoveryEvents)) {
|
|
317
|
+
for (const e of b.recoveryEvents) {
|
|
318
|
+
const entry = parseRecoveryEvent(e);
|
|
319
|
+
if (!entry) continue;
|
|
320
|
+
s.recoveryEvents.push(entry);
|
|
321
|
+
if (s.recoveryEvents.length >= RECOVERY_RING_SIZE) break;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
const lastRpcFrame = parseRpcFrame(b.lastRpcFrame);
|
|
325
|
+
if (lastRpcFrame) s.lastRpcFrame = lastRpcFrame;
|
|
326
|
+
const lastFacetId = parseFacetId(b.lastFacetId);
|
|
327
|
+
if (lastFacetId) s.lastFacetId = lastFacetId;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
331
|
+
return typeof value === 'object' && value !== null;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function parseRpcFrame(value: unknown): RpcFrame | null {
|
|
335
|
+
if (!isRecord(value)
|
|
336
|
+
|| typeof value.method !== 'string'
|
|
337
|
+
|| typeof value.payloadBytes !== 'number'
|
|
338
|
+
|| typeof value.atMs !== 'number') return null;
|
|
339
|
+
return { method: value.method, payloadBytes: value.payloadBytes, atMs: value.atMs };
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function parseFacetId(value: unknown): FacetId | null {
|
|
343
|
+
if (!isRecord(value)
|
|
344
|
+
|| typeof value.codeId !== 'string'
|
|
345
|
+
|| typeof value.slotIndex !== 'number'
|
|
346
|
+
|| typeof value.atMs !== 'number') return null;
|
|
347
|
+
return { codeId: value.codeId, slotIndex: value.slotIndex, atMs: value.atMs };
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
function parseFailure(value: unknown): DiagFailure | null {
|
|
351
|
+
if (!isRecord(value)
|
|
352
|
+
|| typeof value.at !== 'number'
|
|
353
|
+
|| typeof value.phase !== 'string'
|
|
354
|
+
|| !isOomCause(value.cause)
|
|
355
|
+
|| typeof value.rssEstimateBytes !== 'number'
|
|
356
|
+
|| typeof value.heapUsedBytes !== 'number'
|
|
357
|
+
|| typeof value.lruBytes !== 'number'
|
|
358
|
+
|| typeof value.inFlightBytes !== 'number') return null;
|
|
359
|
+
const entry: DiagFailure = {
|
|
360
|
+
at: value.at,
|
|
361
|
+
phase: value.phase,
|
|
362
|
+
cause: value.cause,
|
|
363
|
+
rssEstimateBytes: value.rssEstimateBytes,
|
|
364
|
+
heapUsedBytes: value.heapUsedBytes,
|
|
365
|
+
lruBytes: value.lruBytes,
|
|
366
|
+
inFlightBytes: value.inFlightBytes,
|
|
367
|
+
lastRpcFrame: parseRpcFrame(value.lastRpcFrame),
|
|
368
|
+
lastFacetId: parseFacetId(value.lastFacetId),
|
|
369
|
+
};
|
|
370
|
+
if (typeof value.exitCode === 'number') entry.exitCode = value.exitCode;
|
|
371
|
+
if (typeof value.pid === 'number') entry.pid = value.pid;
|
|
372
|
+
if (typeof value.message === 'string') entry.message = value.message.slice(0, MESSAGE_CAP);
|
|
373
|
+
return entry;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
const SESSION_STATES: readonly SessionState[] = [
|
|
377
|
+
'cold', 'hydrated', 'active', 'drained',
|
|
378
|
+
'rehydrate', 'build', 'wire', 'online',
|
|
379
|
+
];
|
|
380
|
+
|
|
381
|
+
function isSessionState(value: unknown): value is SessionState {
|
|
382
|
+
return SESSION_STATES.some((state) => state === value);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
function parseRecoveryEvent(value: unknown): DiagRecoveryEvent | null {
|
|
386
|
+
if (!isRecord(value)
|
|
387
|
+
|| typeof value.at !== 'number'
|
|
388
|
+
|| !isSessionState(value.fromState)
|
|
389
|
+
|| !isSessionState(value.toState)
|
|
390
|
+
|| typeof value.trigger !== 'string'
|
|
391
|
+
|| typeof value.isolateGen !== 'number'
|
|
392
|
+
|| typeof value.dataLoss !== 'boolean'
|
|
393
|
+
|| typeof value.snapshotKeysRehydrated !== 'number') return null;
|
|
394
|
+
const entry: DiagRecoveryEvent = {
|
|
395
|
+
at: value.at,
|
|
396
|
+
fromState: value.fromState,
|
|
397
|
+
toState: value.toState,
|
|
398
|
+
trigger: value.trigger,
|
|
399
|
+
isolateGen: value.isolateGen,
|
|
400
|
+
dataLoss: value.dataLoss,
|
|
401
|
+
snapshotKeysRehydrated: value.snapshotKeysRehydrated,
|
|
402
|
+
};
|
|
403
|
+
if (typeof value.notes === 'string') entry.notes = value.notes.slice(0, MESSAGE_CAP);
|
|
404
|
+
return entry;
|
|
405
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtime/assets-loader.ts — Lazy fetch of large static blobs from the
|
|
3
|
+
* ASSETS binding.
|
|
4
|
+
*
|
|
5
|
+
* Background: the Worker bundle ships ~9.8 MB of generated TypeScript
|
|
6
|
+
* blobs (cirrus-npm-cjs, cirrus-plugin-react, real-vite-bundle, ...).
|
|
7
|
+
* Inlining them at module-load doubles cold-start parse time and
|
|
8
|
+
* inflates deploy uploads. The ASSETS binding lets us serve them as
|
|
9
|
+
* static files (cached at the edge), fetched on first use, kept in a
|
|
10
|
+
* per-isolate cache for subsequent calls.
|
|
11
|
+
*
|
|
12
|
+
* Same pattern as `esbuild-wasm-bytes.ts` (proven in production —
|
|
13
|
+
* see esbuild-wasm-bundle.generated.ts header for history). We
|
|
14
|
+
* generalize it here so future asset promotions are one-line.
|
|
15
|
+
*
|
|
16
|
+
* @example a bundle script writes the big string to
|
|
17
|
+
* `public/_assets/cirrus-plugin-react.bundle.js` and emits a thin
|
|
18
|
+
* `.generated.ts` that re-exports {@link loadAssetText} bound to that
|
|
19
|
+
* path:
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* // src/cirrus-plugin-react.generated.ts (post-promotion)
|
|
23
|
+
* import { loadAssetText } from './runtime/assets-loader.js';
|
|
24
|
+
* export const CIRRUS_PLUGIN_REACT_VERSION = "4.3.4";
|
|
25
|
+
* export const CIRRUS_PLUGIN_REACT_BUNDLE_PATH = '/_assets/cirrus-plugin-react.bundle.js';
|
|
26
|
+
* export async function getCirrusPluginReactBundle(env: { ASSETS: Fetcher }): Promise<string> {
|
|
27
|
+
* return loadAssetText(env.ASSETS, CIRRUS_PLUGIN_REACT_BUNDLE_PATH);
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* Cache discipline: keyed by `${path}` (no env or origin in the key)
|
|
32
|
+
* because ASSETS is content-addressed at the deploy level — a redeploy
|
|
33
|
+
* generates new asset bundles and the new isolate sees no stale cache.
|
|
34
|
+
* Within a single isolate's lifetime, the same path always returns the
|
|
35
|
+
* same content.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
import { disposeRpcResource } from '../_shared/rpc-dispose.js';
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Per-isolate cache. Keys are asset paths (e.g. `/_assets/foo.js`).
|
|
42
|
+
* Values are settled promises so concurrent callers share the same
|
|
43
|
+
* fetch.
|
|
44
|
+
*/
|
|
45
|
+
const __assetTextCache = new Map<string, Promise<string>>();
|
|
46
|
+
const __assetBytesCache = new Map<string, Promise<Uint8Array>>();
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Asset fetch error. Thrown when ASSETS binding is missing or returns
|
|
50
|
+
* a non-200.
|
|
51
|
+
*/
|
|
52
|
+
export class NimbusAssetLoadError extends Error {
|
|
53
|
+
readonly code: 'E_ASSETS_BINDING_MISSING' | 'E_ASSET_NOT_FOUND' | 'E_ASSET_FETCH_FAILED';
|
|
54
|
+
readonly status?: number;
|
|
55
|
+
readonly path: string;
|
|
56
|
+
constructor(
|
|
57
|
+
message: string,
|
|
58
|
+
code: NimbusAssetLoadError['code'],
|
|
59
|
+
path: string,
|
|
60
|
+
status?: number,
|
|
61
|
+
) {
|
|
62
|
+
super(message);
|
|
63
|
+
this.name = 'NimbusAssetLoadError';
|
|
64
|
+
this.code = code;
|
|
65
|
+
this.path = path;
|
|
66
|
+
this.status = status;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Minimal fetcher shape so callers don't need to import a Cloudflare type. */
|
|
71
|
+
export interface AssetsFetcher {
|
|
72
|
+
fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Load an asset's bytes by path. Subsequent calls in the same isolate
|
|
77
|
+
* return from cache.
|
|
78
|
+
*
|
|
79
|
+
* @param assets `env.ASSETS` binding.
|
|
80
|
+
* @param path Asset path (e.g. `/_assets/foo.bin`). Leading `/`
|
|
81
|
+
* required.
|
|
82
|
+
* @throws {NimbusAssetLoadError} on binding missing or non-2xx.
|
|
83
|
+
*/
|
|
84
|
+
export function loadAssetBytes(
|
|
85
|
+
assets: AssetsFetcher | undefined,
|
|
86
|
+
path: string,
|
|
87
|
+
): Promise<Uint8Array> {
|
|
88
|
+
if (!assets || typeof assets.fetch !== 'function') {
|
|
89
|
+
return Promise.reject(
|
|
90
|
+
new NimbusAssetLoadError(
|
|
91
|
+
`ASSETS binding missing — cannot load ${path}. Did you forget the assets.binding=ASSETS in wrangler.jsonc?`,
|
|
92
|
+
'E_ASSETS_BINDING_MISSING',
|
|
93
|
+
path,
|
|
94
|
+
),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
const cached = __assetBytesCache.get(path);
|
|
98
|
+
if (cached) return cached;
|
|
99
|
+
const promise = (async () => {
|
|
100
|
+
// ASSETS.fetch requires an absolute URL, but the origin is ignored
|
|
101
|
+
// — it just routes by pathname. Use a stable sentinel origin.
|
|
102
|
+
const url = `https://assets.invalid${path}`;
|
|
103
|
+
const r = await assets.fetch(url);
|
|
104
|
+
try {
|
|
105
|
+
if (r.status === 404) {
|
|
106
|
+
throw new NimbusAssetLoadError(
|
|
107
|
+
`Asset not found: ${path}`,
|
|
108
|
+
'E_ASSET_NOT_FOUND',
|
|
109
|
+
path,
|
|
110
|
+
404,
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
if (!r.ok) {
|
|
114
|
+
throw new NimbusAssetLoadError(
|
|
115
|
+
`Asset fetch failed: ${path} → ${r.status}`,
|
|
116
|
+
'E_ASSET_FETCH_FAILED',
|
|
117
|
+
path,
|
|
118
|
+
r.status,
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
const buf = await r.arrayBuffer();
|
|
122
|
+
return new Uint8Array(buf);
|
|
123
|
+
} finally {
|
|
124
|
+
disposeRpcResource(r);
|
|
125
|
+
}
|
|
126
|
+
})();
|
|
127
|
+
__assetBytesCache.set(path, promise);
|
|
128
|
+
// Evict on failure so subsequent calls retry.
|
|
129
|
+
promise.catch(() => __assetBytesCache.delete(path));
|
|
130
|
+
return promise;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Load an asset as a UTF-8 string. Same caching discipline as
|
|
135
|
+
* {@link loadAssetBytes}.
|
|
136
|
+
*/
|
|
137
|
+
export function loadAssetText(
|
|
138
|
+
assets: AssetsFetcher | undefined,
|
|
139
|
+
path: string,
|
|
140
|
+
): Promise<string> {
|
|
141
|
+
if (!assets || typeof assets.fetch !== 'function') {
|
|
142
|
+
return Promise.reject(
|
|
143
|
+
new NimbusAssetLoadError(
|
|
144
|
+
`ASSETS binding missing — cannot load ${path}. Did you forget the assets.binding=ASSETS in wrangler.jsonc?`,
|
|
145
|
+
'E_ASSETS_BINDING_MISSING',
|
|
146
|
+
path,
|
|
147
|
+
),
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
const cached = __assetTextCache.get(path);
|
|
151
|
+
if (cached) return cached;
|
|
152
|
+
const promise = (async () => {
|
|
153
|
+
const url = `https://assets.invalid${path}`;
|
|
154
|
+
const r = await assets.fetch(url);
|
|
155
|
+
try {
|
|
156
|
+
if (r.status === 404) {
|
|
157
|
+
throw new NimbusAssetLoadError(
|
|
158
|
+
`Asset not found: ${path}`,
|
|
159
|
+
'E_ASSET_NOT_FOUND',
|
|
160
|
+
path,
|
|
161
|
+
404,
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
if (!r.ok) {
|
|
165
|
+
throw new NimbusAssetLoadError(
|
|
166
|
+
`Asset fetch failed: ${path} → ${r.status}`,
|
|
167
|
+
'E_ASSET_FETCH_FAILED',
|
|
168
|
+
path,
|
|
169
|
+
r.status,
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
return await r.text();
|
|
173
|
+
} finally {
|
|
174
|
+
disposeRpcResource(r);
|
|
175
|
+
}
|
|
176
|
+
})();
|
|
177
|
+
__assetTextCache.set(path, promise);
|
|
178
|
+
promise.catch(() => __assetTextCache.delete(path));
|
|
179
|
+
return promise;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Test-only: drop the per-isolate cache. Real isolates never call this;
|
|
184
|
+
* the cache exists for the isolate's lifetime.
|
|
185
|
+
*/
|
|
186
|
+
export function _resetAssetsCacheForTests(): void {
|
|
187
|
+
__assetTextCache.clear();
|
|
188
|
+
__assetBytesCache.clear();
|
|
189
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* barrel-detect.ts — heuristic for "barrel" packages whose source tree
|
|
3
|
+
* is too large for esbuild's facet to bundle without OOM.
|
|
4
|
+
*
|
|
5
|
+
* Barrel packages ship one .js per icon/component (e.g. lucide-react
|
|
6
|
+
* with 1500 icons → 4000+ files). esbuild's bundler ingests the whole
|
|
7
|
+
* tree into a single ESM module, which routinely OOMs the 128 MiB
|
|
8
|
+
* facet isolate during JS heap allocation.
|
|
9
|
+
*
|
|
10
|
+
* Both the install-time pre-bundle path (npm-installer.prebundleUsedModules)
|
|
11
|
+
* and the on-demand path (vite-dev-server.serveModule) use this to
|
|
12
|
+
* route the package through `barrel-synthesizer.ts`: scan the user's
|
|
13
|
+
* source for static named imports, generate a tiny synthetic entry
|
|
14
|
+
* (`export { Home, FileText } from 'pkg'`), and bundle THAT through
|
|
15
|
+
* the standard facet path. esbuild's tree-shaking + the package's
|
|
16
|
+
* sideEffects:false produces a small per-app bundle without ever
|
|
17
|
+
* reaching for a third-party CDN (100% edge contract).
|
|
18
|
+
*
|
|
19
|
+
* Threshold rationale (1500 files):
|
|
20
|
+
* lucide-react@0.460: 4069 files (synthesizes)
|
|
21
|
+
* framer-motion@11.11: ~250 files (bundles whole)
|
|
22
|
+
* react-router-dom@6.26: ~80 files (bundles whole)
|
|
23
|
+
* react-dom@18.3: ~150 files (bundles whole)
|
|
24
|
+
*
|
|
25
|
+
* The cap (5000) prevents pathological deep walks; we only need to
|
|
26
|
+
* know "clearly a barrel" vs. not.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
import type { CredentialedVfs } from '../vfs/sqlite-vfs.js';
|
|
30
|
+
|
|
31
|
+
/** A package with more than this many files is treated as a barrel. */
|
|
32
|
+
export const BARREL_PKG_FILE_THRESHOLD = 1500;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Recursively count files under `pkgDir`, excluding nested node_modules
|
|
36
|
+
* (those are walked separately by the slice walker as transitive deps).
|
|
37
|
+
*
|
|
38
|
+
* Stops counting once we exceed `cap` to avoid pathological walks. Cost:
|
|
39
|
+
* VFS readdir is sync + in-memory inode lookup. For lucide-react
|
|
40
|
+
* (4069 files), measured at <2 ms in dev.
|
|
41
|
+
*/
|
|
42
|
+
export function countPackageFiles(vfs: CredentialedVfs, pkgDir: string, cap = 5000): number {
|
|
43
|
+
if (!vfs.exists(pkgDir) || !vfs.isDirectory(pkgDir)) return 0;
|
|
44
|
+
let count = 0;
|
|
45
|
+
const stack = [pkgDir];
|
|
46
|
+
while (stack.length > 0 && count <= cap) {
|
|
47
|
+
const dir = stack.pop()!;
|
|
48
|
+
let entries: { name: string; type: string }[];
|
|
49
|
+
try { entries = vfs.readdir(dir); } catch { continue; }
|
|
50
|
+
for (const e of entries) {
|
|
51
|
+
if (e.name === 'node_modules') continue;
|
|
52
|
+
const child = dir + '/' + e.name;
|
|
53
|
+
if (e.type === 'directory') stack.push(child);
|
|
54
|
+
else count++;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return count;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Convenience: derive top-level package name from a bare specifier
|
|
62
|
+
* (e.g. "lucide-react/icons/Cloud" → "lucide-react", "@radix-ui/react"
|
|
63
|
+
* → "@radix-ui/react"). Used by callers building the pkgDir path.
|
|
64
|
+
*/
|
|
65
|
+
export function packageNameFromSpecifier(specifier: string): string {
|
|
66
|
+
return specifier.startsWith('@')
|
|
67
|
+
? specifier.split('/').slice(0, 2).join('/')
|
|
68
|
+
: specifier.split('/')[0];
|
|
69
|
+
}
|