@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,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _shared/ai-egress.ts — how the OS recognises a request as the session's own
|
|
3
|
+
* inference, wherever in the sandbox it was made.
|
|
4
|
+
*
|
|
5
|
+
* The problem this solves
|
|
6
|
+
* ──────────────────────
|
|
7
|
+
* Nimbus serves an OpenAI-compatible endpoint on session loopback
|
|
8
|
+
* (session/ai.ts) and advertises it as OPENAI_BASE_URL. Tools that follow that
|
|
9
|
+
* convention find it with no configuration. Plenty of tools do not: they hold a
|
|
10
|
+
* baked-in vendor base URL and only read the *key* from the environment, so the
|
|
11
|
+
* gateway is invisible to them and the seeded key is worse than useless — it
|
|
12
|
+
* tells them a provider is configured when the endpoint they will call is not
|
|
13
|
+
* reachable.
|
|
14
|
+
*
|
|
15
|
+
* Which vendor the OS names therefore matters as much as the mediation itself.
|
|
16
|
+
* A tool that reads a vendor key also holds that vendor's model catalogue, and
|
|
17
|
+
* this session runs Cloudflare Workers AI: every model it can serve is a
|
|
18
|
+
* `@cf/…` id. So the key is seeded as CLOUDFLARE_API_KEY, the interface for the
|
|
19
|
+
* account the session actually has. The tool then picks a model that exists
|
|
20
|
+
* here and addresses Cloudflare's host, and mediation makes that request land
|
|
21
|
+
* on the session's own gateway. Naming a vendor whose catalogue the session
|
|
22
|
+
* cannot serve would deliver the request and then fail on the model id, which
|
|
23
|
+
* is not a working capability.
|
|
24
|
+
*
|
|
25
|
+
* The mediation
|
|
26
|
+
* ─────────────
|
|
27
|
+
* The seeded key is a session capability token, and any request leaving the
|
|
28
|
+
* sandbox that presents it is inference this session owns. Those requests are
|
|
29
|
+
* served by the session's own gateway rather than sent to the network; the
|
|
30
|
+
* supervisor substitutes the real Cloudflare credential at the boundary, so the
|
|
31
|
+
* token is all the sandbox ever holds. The tool is not configured, adapted or
|
|
32
|
+
* special-cased anywhere — it makes the request it always makes, and the OS
|
|
33
|
+
* answers it. Same shape as a transparent proxy or /etc/resolv.conf.
|
|
34
|
+
*
|
|
35
|
+
* Why match on the credential and not on the destination
|
|
36
|
+
* ─────────────────────────────────────────────────────
|
|
37
|
+
* A list of AI vendor hostnames would need maintaining forever and would still
|
|
38
|
+
* hijack traffic that is not ours — a user's own OpenAI key, sent to OpenAI,
|
|
39
|
+
* would be captured by a host match. Matching the token instead makes the
|
|
40
|
+
* fallback correct by construction: a request carrying anything other than this
|
|
41
|
+
* session's token is not ours, is not touched, and reaches the real provider.
|
|
42
|
+
*
|
|
43
|
+
* The mediators live where egress happens — the facet's patched global fetch
|
|
44
|
+
* (runtime/node-shims.ts) and the shell's curl (substrate/lifo/commands/net) —
|
|
45
|
+
* and both decide with `requestCarriesSessionAiToken` over these constants, so
|
|
46
|
+
* the policy has one definition.
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Env var holding the session's AI capability token.
|
|
50
|
+
*
|
|
51
|
+
* Carried under its own name as well as CLOUDFLARE_API_KEY because
|
|
52
|
+
* CLOUDFLARE_API_KEY is the user's to overwrite: someone who exports a real
|
|
53
|
+
* Cloudflare token must still reach their own account. Mediation compares
|
|
54
|
+
* against THIS variable, never against whatever the vendor variable holds.
|
|
55
|
+
*/
|
|
56
|
+
export declare const NIMBUS_AI_TOKEN_ENV = "NIMBUS_AI_TOKEN";
|
|
57
|
+
/**
|
|
58
|
+
* Headers an API credential is carried in, lowercased: `Authorization: Bearer`
|
|
59
|
+
* for OpenAI-shaped clients, `x-api-key` for Anthropic-shaped ones.
|
|
60
|
+
*/
|
|
61
|
+
export declare const NIMBUS_AI_CREDENTIAL_HEADERS: readonly ["authorization", "x-api-key"];
|
|
62
|
+
/**
|
|
63
|
+
* Mint a session's token. Shaped like an OpenAI secret key because tools
|
|
64
|
+
* validate that shape before they will even attempt a request, and unguessable
|
|
65
|
+
* so that a string which merely *mentions* Nimbus can never be mistaken for it.
|
|
66
|
+
*/
|
|
67
|
+
export declare function mintSessionAiToken(): string;
|
|
68
|
+
/**
|
|
69
|
+
* True when `headers` present `token`. False for an empty token, so a session
|
|
70
|
+
* that never seeded one mediates nothing.
|
|
71
|
+
*/
|
|
72
|
+
export declare function requestCarriesSessionAiToken(headers: Headers, token: string): boolean;
|
|
73
|
+
//# sourceMappingURL=ai-egress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-egress.d.ts","sourceRoot":"","sources":["../../src/_shared/ai-egress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,yCAA0C,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAQD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOrF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _shared/ai-egress.ts — how the OS recognises a request as the session's own
|
|
3
|
+
* inference, wherever in the sandbox it was made.
|
|
4
|
+
*
|
|
5
|
+
* The problem this solves
|
|
6
|
+
* ──────────────────────
|
|
7
|
+
* Nimbus serves an OpenAI-compatible endpoint on session loopback
|
|
8
|
+
* (session/ai.ts) and advertises it as OPENAI_BASE_URL. Tools that follow that
|
|
9
|
+
* convention find it with no configuration. Plenty of tools do not: they hold a
|
|
10
|
+
* baked-in vendor base URL and only read the *key* from the environment, so the
|
|
11
|
+
* gateway is invisible to them and the seeded key is worse than useless — it
|
|
12
|
+
* tells them a provider is configured when the endpoint they will call is not
|
|
13
|
+
* reachable.
|
|
14
|
+
*
|
|
15
|
+
* Which vendor the OS names therefore matters as much as the mediation itself.
|
|
16
|
+
* A tool that reads a vendor key also holds that vendor's model catalogue, and
|
|
17
|
+
* this session runs Cloudflare Workers AI: every model it can serve is a
|
|
18
|
+
* `@cf/…` id. So the key is seeded as CLOUDFLARE_API_KEY, the interface for the
|
|
19
|
+
* account the session actually has. The tool then picks a model that exists
|
|
20
|
+
* here and addresses Cloudflare's host, and mediation makes that request land
|
|
21
|
+
* on the session's own gateway. Naming a vendor whose catalogue the session
|
|
22
|
+
* cannot serve would deliver the request and then fail on the model id, which
|
|
23
|
+
* is not a working capability.
|
|
24
|
+
*
|
|
25
|
+
* The mediation
|
|
26
|
+
* ─────────────
|
|
27
|
+
* The seeded key is a session capability token, and any request leaving the
|
|
28
|
+
* sandbox that presents it is inference this session owns. Those requests are
|
|
29
|
+
* served by the session's own gateway rather than sent to the network; the
|
|
30
|
+
* supervisor substitutes the real Cloudflare credential at the boundary, so the
|
|
31
|
+
* token is all the sandbox ever holds. The tool is not configured, adapted or
|
|
32
|
+
* special-cased anywhere — it makes the request it always makes, and the OS
|
|
33
|
+
* answers it. Same shape as a transparent proxy or /etc/resolv.conf.
|
|
34
|
+
*
|
|
35
|
+
* Why match on the credential and not on the destination
|
|
36
|
+
* ─────────────────────────────────────────────────────
|
|
37
|
+
* A list of AI vendor hostnames would need maintaining forever and would still
|
|
38
|
+
* hijack traffic that is not ours — a user's own OpenAI key, sent to OpenAI,
|
|
39
|
+
* would be captured by a host match. Matching the token instead makes the
|
|
40
|
+
* fallback correct by construction: a request carrying anything other than this
|
|
41
|
+
* session's token is not ours, is not touched, and reaches the real provider.
|
|
42
|
+
*
|
|
43
|
+
* The mediators live where egress happens — the facet's patched global fetch
|
|
44
|
+
* (runtime/node-shims.ts) and the shell's curl (substrate/lifo/commands/net) —
|
|
45
|
+
* and both decide with `requestCarriesSessionAiToken` over these constants, so
|
|
46
|
+
* the policy has one definition.
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Env var holding the session's AI capability token.
|
|
50
|
+
*
|
|
51
|
+
* Carried under its own name as well as CLOUDFLARE_API_KEY because
|
|
52
|
+
* CLOUDFLARE_API_KEY is the user's to overwrite: someone who exports a real
|
|
53
|
+
* Cloudflare token must still reach their own account. Mediation compares
|
|
54
|
+
* against THIS variable, never against whatever the vendor variable holds.
|
|
55
|
+
*/
|
|
56
|
+
export const NIMBUS_AI_TOKEN_ENV = 'NIMBUS_AI_TOKEN';
|
|
57
|
+
/**
|
|
58
|
+
* Headers an API credential is carried in, lowercased: `Authorization: Bearer`
|
|
59
|
+
* for OpenAI-shaped clients, `x-api-key` for Anthropic-shaped ones.
|
|
60
|
+
*/
|
|
61
|
+
export const NIMBUS_AI_CREDENTIAL_HEADERS = ['authorization', 'x-api-key'];
|
|
62
|
+
/**
|
|
63
|
+
* Mint a session's token. Shaped like an OpenAI secret key because tools
|
|
64
|
+
* validate that shape before they will even attempt a request, and unguessable
|
|
65
|
+
* so that a string which merely *mentions* Nimbus can never be mistaken for it.
|
|
66
|
+
*/
|
|
67
|
+
export function mintSessionAiToken() {
|
|
68
|
+
return `sk-nimbus-${crypto.randomUUID().replace(/-/g, '')}`;
|
|
69
|
+
}
|
|
70
|
+
/** The credential a request presents, with any `Bearer ` prefix removed. */
|
|
71
|
+
function presentedCredential(value) {
|
|
72
|
+
const trimmed = value.trim();
|
|
73
|
+
return /^bearer\s+/i.test(trimmed) ? trimmed.replace(/^bearer\s+/i, '') : trimmed;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* True when `headers` present `token`. False for an empty token, so a session
|
|
77
|
+
* that never seeded one mediates nothing.
|
|
78
|
+
*/
|
|
79
|
+
export function requestCarriesSessionAiToken(headers, token) {
|
|
80
|
+
if (!token)
|
|
81
|
+
return false;
|
|
82
|
+
for (const name of NIMBUS_AI_CREDENTIAL_HEADERS) {
|
|
83
|
+
const raw = headers.get(name);
|
|
84
|
+
if (raw && presentedCredential(raw) === token)
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _shared/byte-stream.ts — bounded byte streaming between the VFS and a
|
|
3
|
+
* command's output.
|
|
4
|
+
*
|
|
5
|
+
* Every coreutil that copies file content (`cat`, `head -c`, `dd`) needs the
|
|
6
|
+
* same three properties, and getting any of them wrong produces silently
|
|
7
|
+
* wrong bytes:
|
|
8
|
+
*
|
|
9
|
+
* 1. Bounded memory. Content moves one chunk at a time, so a 25 MB file
|
|
10
|
+
* never becomes a 25 MB buffer — which matters because facet↔supervisor
|
|
11
|
+
* RPC payloads are capped (MAX_RPC_SAFE_PAYLOAD_BYTES).
|
|
12
|
+
* 2. A real write offset. The sink advances; it does not restate the file.
|
|
13
|
+
* 3. Chunk boundaries that do not corrupt text. A UTF-8 sequence split
|
|
14
|
+
* across two chunks must decode as one character, not two replacements,
|
|
15
|
+
* so text sinks get a streaming decoder rather than per-chunk decodes.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* A command's output destination.
|
|
19
|
+
*
|
|
20
|
+
* `writeBytes` is present on sinks that store bytes verbatim (files). Sinks
|
|
21
|
+
* that are inherently textual — the terminal, shell pipes — omit it and
|
|
22
|
+
* receive decoded text instead. This is a real capability difference, not a
|
|
23
|
+
* fallback: a terminal has no way to hold a byte that is not text.
|
|
24
|
+
*/
|
|
25
|
+
export interface ByteSink {
|
|
26
|
+
write(text: string): void;
|
|
27
|
+
writeBytes?(bytes: Uint8Array): void;
|
|
28
|
+
}
|
|
29
|
+
/** Reads at most `length` bytes at `offset`; an empty result means EOF. */
|
|
30
|
+
export type RangeReader = (offset: number, length: number) => Uint8Array;
|
|
31
|
+
/** Bytes moved per read. Comfortably under any RPC payload ceiling. */
|
|
32
|
+
export declare const STREAM_CHUNK_BYTES: number;
|
|
33
|
+
/**
|
|
34
|
+
* Feeds bytes to a {@link ByteSink}, decoding across chunk boundaries when the
|
|
35
|
+
* sink is textual. Callers must `end()` so a trailing partial UTF-8 sequence
|
|
36
|
+
* is flushed.
|
|
37
|
+
*/
|
|
38
|
+
export declare class SinkWriter {
|
|
39
|
+
private readonly sink;
|
|
40
|
+
private readonly decoder;
|
|
41
|
+
private written;
|
|
42
|
+
constructor(sink: ByteSink);
|
|
43
|
+
get bytesWritten(): number;
|
|
44
|
+
write(bytes: Uint8Array): void;
|
|
45
|
+
end(): void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Copies bytes from `read` into `sink` in {@link STREAM_CHUNK_BYTES} chunks.
|
|
49
|
+
*
|
|
50
|
+
* Stops at `length` bytes when given one, otherwise at the first short read
|
|
51
|
+
* (EOF). Returns the number of bytes copied. Does not call `sink.end()` —
|
|
52
|
+
* callers that write more than one range share a single writer.
|
|
53
|
+
*/
|
|
54
|
+
export declare function streamRange(read: RangeReader, writer: SinkWriter, options?: {
|
|
55
|
+
offset?: number;
|
|
56
|
+
length?: number;
|
|
57
|
+
signal?: AbortSignal;
|
|
58
|
+
}): number;
|
|
59
|
+
//# sourceMappingURL=byte-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"byte-stream.d.ts","sourceRoot":"","sources":["../../src/_shared/byte-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACtC;AAED,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;AAEzE,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,OAAO,CAAK;gBAES,IAAI,EAAE,QAAQ;IAI3C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAO9B,GAAG,IAAI,IAAI;CAKZ;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACvE,MAAM,CAkBR"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _shared/byte-stream.ts — bounded byte streaming between the VFS and a
|
|
3
|
+
* command's output.
|
|
4
|
+
*
|
|
5
|
+
* Every coreutil that copies file content (`cat`, `head -c`, `dd`) needs the
|
|
6
|
+
* same three properties, and getting any of them wrong produces silently
|
|
7
|
+
* wrong bytes:
|
|
8
|
+
*
|
|
9
|
+
* 1. Bounded memory. Content moves one chunk at a time, so a 25 MB file
|
|
10
|
+
* never becomes a 25 MB buffer — which matters because facet↔supervisor
|
|
11
|
+
* RPC payloads are capped (MAX_RPC_SAFE_PAYLOAD_BYTES).
|
|
12
|
+
* 2. A real write offset. The sink advances; it does not restate the file.
|
|
13
|
+
* 3. Chunk boundaries that do not corrupt text. A UTF-8 sequence split
|
|
14
|
+
* across two chunks must decode as one character, not two replacements,
|
|
15
|
+
* so text sinks get a streaming decoder rather than per-chunk decodes.
|
|
16
|
+
*/
|
|
17
|
+
/** Bytes moved per read. Comfortably under any RPC payload ceiling. */
|
|
18
|
+
export const STREAM_CHUNK_BYTES = 64 * 1024;
|
|
19
|
+
/**
|
|
20
|
+
* Feeds bytes to a {@link ByteSink}, decoding across chunk boundaries when the
|
|
21
|
+
* sink is textual. Callers must `end()` so a trailing partial UTF-8 sequence
|
|
22
|
+
* is flushed.
|
|
23
|
+
*/
|
|
24
|
+
export class SinkWriter {
|
|
25
|
+
sink;
|
|
26
|
+
decoder;
|
|
27
|
+
written = 0;
|
|
28
|
+
constructor(sink) {
|
|
29
|
+
this.sink = sink;
|
|
30
|
+
this.decoder = sink.writeBytes ? null : new TextDecoder('utf-8');
|
|
31
|
+
}
|
|
32
|
+
get bytesWritten() {
|
|
33
|
+
return this.written;
|
|
34
|
+
}
|
|
35
|
+
write(bytes) {
|
|
36
|
+
if (bytes.length === 0)
|
|
37
|
+
return;
|
|
38
|
+
this.written += bytes.length;
|
|
39
|
+
if (this.decoder)
|
|
40
|
+
this.sink.write(this.decoder.decode(bytes, { stream: true }));
|
|
41
|
+
else
|
|
42
|
+
this.sink.writeBytes(bytes);
|
|
43
|
+
}
|
|
44
|
+
end() {
|
|
45
|
+
if (!this.decoder)
|
|
46
|
+
return;
|
|
47
|
+
const tail = this.decoder.decode();
|
|
48
|
+
if (tail)
|
|
49
|
+
this.sink.write(tail);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Copies bytes from `read` into `sink` in {@link STREAM_CHUNK_BYTES} chunks.
|
|
54
|
+
*
|
|
55
|
+
* Stops at `length` bytes when given one, otherwise at the first short read
|
|
56
|
+
* (EOF). Returns the number of bytes copied. Does not call `sink.end()` —
|
|
57
|
+
* callers that write more than one range share a single writer.
|
|
58
|
+
*/
|
|
59
|
+
export function streamRange(read, writer, options = {}) {
|
|
60
|
+
const { offset = 0, length, signal } = options;
|
|
61
|
+
let position = offset;
|
|
62
|
+
let copied = 0;
|
|
63
|
+
while (length === undefined || copied < length) {
|
|
64
|
+
if (signal?.aborted)
|
|
65
|
+
break;
|
|
66
|
+
const want = length === undefined
|
|
67
|
+
? STREAM_CHUNK_BYTES
|
|
68
|
+
: Math.min(STREAM_CHUNK_BYTES, length - copied);
|
|
69
|
+
const chunk = read(position, want);
|
|
70
|
+
if (chunk.length === 0)
|
|
71
|
+
break;
|
|
72
|
+
writer.write(chunk);
|
|
73
|
+
position += chunk.length;
|
|
74
|
+
copied += chunk.length;
|
|
75
|
+
}
|
|
76
|
+
return copied;
|
|
77
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _shared/bytes.ts — Singleton TextEncoder / TextDecoder.
|
|
3
|
+
*
|
|
4
|
+
* TextEncoder and TextDecoder for UTF-8 are stateless per the WHATWG
|
|
5
|
+
* Encoding spec, so a module-scope singleton is safe and saves the
|
|
6
|
+
* repeated allocation (which shows up in flame graphs of hot paths
|
|
7
|
+
* like sqlite-vfs writeFile and the WebSocket terminal frame decoder).
|
|
8
|
+
*
|
|
9
|
+
* Use these everywhere instead of `new TextEncoder()` / `new TextDecoder()`
|
|
10
|
+
* in the supervisor isolate. Facet-isolate code-strings (e.g. inside
|
|
11
|
+
* generateGitNetworkFacetCode) cannot import this module and must keep
|
|
12
|
+
* their inline allocations — those copies are justified.
|
|
13
|
+
*/
|
|
14
|
+
/** Shared UTF-8 encoder. Stateless; safe to share across all callers. */
|
|
15
|
+
export declare const enc: TextEncoder;
|
|
16
|
+
/** Shared UTF-8 decoder. Stateless; safe to share across all callers. */
|
|
17
|
+
export declare const dec: TextDecoder;
|
|
18
|
+
//# sourceMappingURL=bytes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/_shared/bytes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,yEAAyE;AACzE,eAAO,MAAM,GAAG,aAAoB,CAAC;AAErC,yEAAyE;AACzE,eAAO,MAAM,GAAG,aAAoB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _shared/bytes.ts — Singleton TextEncoder / TextDecoder.
|
|
3
|
+
*
|
|
4
|
+
* TextEncoder and TextDecoder for UTF-8 are stateless per the WHATWG
|
|
5
|
+
* Encoding spec, so a module-scope singleton is safe and saves the
|
|
6
|
+
* repeated allocation (which shows up in flame graphs of hot paths
|
|
7
|
+
* like sqlite-vfs writeFile and the WebSocket terminal frame decoder).
|
|
8
|
+
*
|
|
9
|
+
* Use these everywhere instead of `new TextEncoder()` / `new TextDecoder()`
|
|
10
|
+
* in the supervisor isolate. Facet-isolate code-strings (e.g. inside
|
|
11
|
+
* generateGitNetworkFacetCode) cannot import this module and must keep
|
|
12
|
+
* their inline allocations — those copies are justified.
|
|
13
|
+
*/
|
|
14
|
+
/** Shared UTF-8 encoder. Stateless; safe to share across all callers. */
|
|
15
|
+
export const enc = new TextEncoder();
|
|
16
|
+
/** Shared UTF-8 decoder. Stateless; safe to share across all callers. */
|
|
17
|
+
export const dec = new TextDecoder();
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cache-stats.ts — Per-tier hit/miss/bytes counters for the npm cache stack.
|
|
3
|
+
*
|
|
4
|
+
* Purpose
|
|
5
|
+
* ───────
|
|
6
|
+
* The supervisor (and its facets) make cache lookups at four tiers:
|
|
7
|
+
*
|
|
8
|
+
* L1 — per-DO SQLite (NpmCache) ~1 ms / file
|
|
9
|
+
* L2 — caches.default (per-colo) ~50-500 µs hit
|
|
10
|
+
* L3 — R2 (cross-tenant global) ~30-100 ms regional
|
|
11
|
+
* L4 — registry.npmjs.org origin ~100-300 ms cross-region
|
|
12
|
+
*
|
|
13
|
+
* Pre-cache metrics support: hit/miss counters lived in
|
|
14
|
+
* src/observability/diag-counters.ts but only tracked the RPC-call
|
|
15
|
+
* boundary, not per-tier. Those flat counters have since been removed.
|
|
16
|
+
*
|
|
17
|
+
* This module adds per-tier × per-kind counters. SAME singleton-per-
|
|
18
|
+
* isolate pattern as diag-counters.ts so any supervisor code path can
|
|
19
|
+
* write to it and `/api/_diag/cache` reads it back.
|
|
20
|
+
*
|
|
21
|
+
* Why a separate module instead of extending diag-counters.ts:
|
|
22
|
+
* - Avoids touching diag-counters.ts (other waves may extend that
|
|
23
|
+
* file's R2 race counters; keeping these orthogonal makes rebases
|
|
24
|
+
* trivial).
|
|
25
|
+
* - The new shape (Tier × Kind grid) is structurally different from
|
|
26
|
+
* diag-counters' flat r2.* shape. Mixing them in one type would
|
|
27
|
+
* create awkward conditional types.
|
|
28
|
+
* - The new counters are exposed at /api/_diag/cache; diag-counters
|
|
29
|
+
* is exposed at /api/_diag/memory. Separate endpoints, separate
|
|
30
|
+
* modules.
|
|
31
|
+
*
|
|
32
|
+
* Lives in src/_shared/ so anyone (supervisor + future facet code) can
|
|
33
|
+
* import it without crossing the npm/, runtime/, facets/ boundaries
|
|
34
|
+
* that have wave-owners.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Tier in the cache stack. Each tier is checked in order from L1 (warmest,
|
|
38
|
+
* fastest) down to L4 (coldest, slowest origin). Cache writes typically
|
|
39
|
+
* "fill" lower numbers from higher numbers — an L4 fetch may writeback
|
|
40
|
+
* to L3 and L2, an L3 hit may writeback to L2, etc.
|
|
41
|
+
*/
|
|
42
|
+
export type CacheTier = 'L1' | 'L2' | 'L3' | 'L4';
|
|
43
|
+
/**
|
|
44
|
+
* Kind of content cached. Each kind has its own size profile and eviction
|
|
45
|
+
* policy:
|
|
46
|
+
*
|
|
47
|
+
* tarball — gzipped tar bytes, immutable forever, 30 MiB cap on L3
|
|
48
|
+
* packument — registry metadata JSON, TTL-bounded (60 min post-P6),
|
|
49
|
+
* unbounded size in practice (~10 KB - 1 MB typical)
|
|
50
|
+
* asset — non-package binaries cached cross-tenant (esbuild.wasm,
|
|
51
|
+
* rolldown.wasm, etc.). Immutable forever, low churn.
|
|
52
|
+
*/
|
|
53
|
+
export type CacheKind = 'tarball' | 'packument' | 'asset';
|
|
54
|
+
/**
|
|
55
|
+
* Per-(tier, kind) cell. A hit happened when we asked the tier "do you
|
|
56
|
+
* have <key>?" and it said yes (and returned bytes). A miss happened when
|
|
57
|
+
* we asked and it said no.
|
|
58
|
+
*
|
|
59
|
+
* `bytes` accumulates the size of HIT payloads only — misses have no
|
|
60
|
+
* bytes by definition. This means:
|
|
61
|
+
*
|
|
62
|
+
* bytes / hits = average hit payload size
|
|
63
|
+
*
|
|
64
|
+
* which is the metric operators care about for capacity planning.
|
|
65
|
+
*/
|
|
66
|
+
export interface CacheCell {
|
|
67
|
+
hits: number;
|
|
68
|
+
misses: number;
|
|
69
|
+
/** Cumulative bytes returned on hits. Does NOT include miss "size" (0). */
|
|
70
|
+
bytes: number;
|
|
71
|
+
}
|
|
72
|
+
export interface CacheStatsSnapshot {
|
|
73
|
+
/** Tier × Kind grid. Each cell tracks hits, misses, bytes-on-hit. */
|
|
74
|
+
byTier: Record<CacheTier, Record<CacheKind, CacheCell>>;
|
|
75
|
+
/**
|
|
76
|
+
* Wall-clock ms at module load (when this isolate first received a
|
|
77
|
+
* request that imported this module). Stable across requests within
|
|
78
|
+
* the same isolate; resets on DO reboot (itself a useful signal).
|
|
79
|
+
*/
|
|
80
|
+
startedAt: number;
|
|
81
|
+
/**
|
|
82
|
+
* Wall-clock ms at the most recent `reset()` call. Equals startedAt
|
|
83
|
+
* if reset() has never been called.
|
|
84
|
+
*/
|
|
85
|
+
lastResetAt: number;
|
|
86
|
+
/**
|
|
87
|
+
* Derived hit-rate per (tier, kind), 0..1. Computed as
|
|
88
|
+
* hits / (hits + misses). NaN-safe: returns 0 when (hits + misses)
|
|
89
|
+
* is 0 so JSON serialisation stays clean. Mirrors the byTier shape
|
|
90
|
+
* exactly so consumers can ZIP the two structures with the same key
|
|
91
|
+
* paths.
|
|
92
|
+
*/
|
|
93
|
+
hitRate: Record<CacheTier, Record<CacheKind, number>>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Record a cache HIT at the given tier for the given kind.
|
|
97
|
+
*
|
|
98
|
+
* `bytes` is the size of the payload returned by the hit, in bytes.
|
|
99
|
+
* For packuments this is the JSON text length; for tarballs it's the
|
|
100
|
+
* gzipped tar byte length; for assets it's the asset bytes. The caller
|
|
101
|
+
* already has the size (post-fetch); passing it here is cheap.
|
|
102
|
+
*
|
|
103
|
+
* Pass 0 if the hit returned an empty payload (shouldn't happen in
|
|
104
|
+
* practice but the API tolerates it).
|
|
105
|
+
*/
|
|
106
|
+
export declare function recordHit(tier: CacheTier, kind: CacheKind, bytes: number): void;
|
|
107
|
+
/**
|
|
108
|
+
* Record a cache MISS at the given tier for the given kind.
|
|
109
|
+
*
|
|
110
|
+
* Misses don't carry payload bytes. A miss at tier N typically means
|
|
111
|
+
* the caller will fall through to tier N+1; that downstream call will
|
|
112
|
+
* record its OWN hit or miss. So a single fetch flow naturally records
|
|
113
|
+
* a chain of misses ending in one hit at the tier that served the data.
|
|
114
|
+
*
|
|
115
|
+
* Example: cold fetch of `react@18.3.1` tarball records:
|
|
116
|
+
*
|
|
117
|
+
* recordMiss('L1', 'tarball');
|
|
118
|
+
* recordMiss('L2', 'tarball');
|
|
119
|
+
* recordMiss('L3', 'tarball');
|
|
120
|
+
* recordHit('L4', 'tarball', 12345); // bytes from registry response
|
|
121
|
+
*
|
|
122
|
+
* After the writeback path runs, the same key from a subsequent fetch
|
|
123
|
+
* would record:
|
|
124
|
+
*
|
|
125
|
+
* recordMiss('L1', 'tarball');
|
|
126
|
+
* recordHit('L2', 'tarball', 12345);
|
|
127
|
+
*/
|
|
128
|
+
export declare function recordMiss(tier: CacheTier, kind: CacheKind): void;
|
|
129
|
+
/**
|
|
130
|
+
* Return a snapshot of current counters + derived hit-rates.
|
|
131
|
+
*
|
|
132
|
+
* The returned object is a fresh copy — caller-side mutations don't
|
|
133
|
+
* affect the singleton. Mirrors readDiagCounters() in diag-counters.ts.
|
|
134
|
+
*/
|
|
135
|
+
export declare function snapshot(): CacheStatsSnapshot;
|
|
136
|
+
/**
|
|
137
|
+
* Zero all counters. Sets lastResetAt to now. Used by the
|
|
138
|
+
* `/api/_diag/cache/reset` endpoint to start a fresh measurement window.
|
|
139
|
+
*
|
|
140
|
+
* Does NOT clear startedAt — that remains the original module-load time
|
|
141
|
+
* so operators can tell "this isolate has been up for X but counters
|
|
142
|
+
* were reset at Y" (the gap is intentional vs an isolate reboot).
|
|
143
|
+
*/
|
|
144
|
+
export declare function reset(): void;
|
|
145
|
+
//# sourceMappingURL=cache-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-stats.d.ts","sourceRoot":"","sources":["../../src/_shared/cache-stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACxD;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAyCD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAGjE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,kBAAkB,CAqB7C;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAS5B"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cache-stats.ts — Per-tier hit/miss/bytes counters for the npm cache stack.
|
|
3
|
+
*
|
|
4
|
+
* Purpose
|
|
5
|
+
* ───────
|
|
6
|
+
* The supervisor (and its facets) make cache lookups at four tiers:
|
|
7
|
+
*
|
|
8
|
+
* L1 — per-DO SQLite (NpmCache) ~1 ms / file
|
|
9
|
+
* L2 — caches.default (per-colo) ~50-500 µs hit
|
|
10
|
+
* L3 — R2 (cross-tenant global) ~30-100 ms regional
|
|
11
|
+
* L4 — registry.npmjs.org origin ~100-300 ms cross-region
|
|
12
|
+
*
|
|
13
|
+
* Pre-cache metrics support: hit/miss counters lived in
|
|
14
|
+
* src/observability/diag-counters.ts but only tracked the RPC-call
|
|
15
|
+
* boundary, not per-tier. Those flat counters have since been removed.
|
|
16
|
+
*
|
|
17
|
+
* This module adds per-tier × per-kind counters. SAME singleton-per-
|
|
18
|
+
* isolate pattern as diag-counters.ts so any supervisor code path can
|
|
19
|
+
* write to it and `/api/_diag/cache` reads it back.
|
|
20
|
+
*
|
|
21
|
+
* Why a separate module instead of extending diag-counters.ts:
|
|
22
|
+
* - Avoids touching diag-counters.ts (other waves may extend that
|
|
23
|
+
* file's R2 race counters; keeping these orthogonal makes rebases
|
|
24
|
+
* trivial).
|
|
25
|
+
* - The new shape (Tier × Kind grid) is structurally different from
|
|
26
|
+
* diag-counters' flat r2.* shape. Mixing them in one type would
|
|
27
|
+
* create awkward conditional types.
|
|
28
|
+
* - The new counters are exposed at /api/_diag/cache; diag-counters
|
|
29
|
+
* is exposed at /api/_diag/memory. Separate endpoints, separate
|
|
30
|
+
* modules.
|
|
31
|
+
*
|
|
32
|
+
* Lives in src/_shared/ so anyone (supervisor + future facet code) can
|
|
33
|
+
* import it without crossing the npm/, runtime/, facets/ boundaries
|
|
34
|
+
* that have wave-owners.
|
|
35
|
+
*/
|
|
36
|
+
const TIERS = ['L1', 'L2', 'L3', 'L4'];
|
|
37
|
+
const KINDS = ['tarball', 'packument', 'asset'];
|
|
38
|
+
function makeEmptyGrid() {
|
|
39
|
+
const grid = {};
|
|
40
|
+
for (const tier of TIERS) {
|
|
41
|
+
grid[tier] = {};
|
|
42
|
+
for (const kind of KINDS) {
|
|
43
|
+
grid[tier][kind] = { hits: 0, misses: 0, bytes: 0 };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return grid;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Module-scoped singleton. Lives for the lifetime of the isolate.
|
|
50
|
+
*
|
|
51
|
+
* Workerd may evict the isolate at any time (memory pressure, idle
|
|
52
|
+
* shutdown, code update); when that happens, counters reset to zero
|
|
53
|
+
* on the next request — itself diagnostic signal: counters all-zero
|
|
54
|
+
* immediately after a request means we just woke up from cold.
|
|
55
|
+
*
|
|
56
|
+
* startedAt lazy-init: workerd returns 0 for `Date.now()` at
|
|
57
|
+
* module-evaluation time because IO is gated until the first request.
|
|
58
|
+
* Initialize lazily on the first hit/miss/snapshot so the timestamp
|
|
59
|
+
* reflects actual module-first-touched-by-request time, not the
|
|
60
|
+
* sentinel 0 value.
|
|
61
|
+
*/
|
|
62
|
+
const _grid = makeEmptyGrid();
|
|
63
|
+
let _startedAt = 0;
|
|
64
|
+
let _lastResetAt = 0;
|
|
65
|
+
function _ensureStartedAt() {
|
|
66
|
+
if (_startedAt === 0) {
|
|
67
|
+
const now = Date.now();
|
|
68
|
+
_startedAt = now;
|
|
69
|
+
_lastResetAt = now;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Record a cache HIT at the given tier for the given kind.
|
|
74
|
+
*
|
|
75
|
+
* `bytes` is the size of the payload returned by the hit, in bytes.
|
|
76
|
+
* For packuments this is the JSON text length; for tarballs it's the
|
|
77
|
+
* gzipped tar byte length; for assets it's the asset bytes. The caller
|
|
78
|
+
* already has the size (post-fetch); passing it here is cheap.
|
|
79
|
+
*
|
|
80
|
+
* Pass 0 if the hit returned an empty payload (shouldn't happen in
|
|
81
|
+
* practice but the API tolerates it).
|
|
82
|
+
*/
|
|
83
|
+
export function recordHit(tier, kind, bytes) {
|
|
84
|
+
_ensureStartedAt();
|
|
85
|
+
const cell = _grid[tier][kind];
|
|
86
|
+
cell.hits++;
|
|
87
|
+
// Negative bytes is meaningless; coerce to 0. We trust the caller for
|
|
88
|
+
// accuracy but defend against accidental -1 sentinels.
|
|
89
|
+
cell.bytes += bytes > 0 ? bytes : 0;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Record a cache MISS at the given tier for the given kind.
|
|
93
|
+
*
|
|
94
|
+
* Misses don't carry payload bytes. A miss at tier N typically means
|
|
95
|
+
* the caller will fall through to tier N+1; that downstream call will
|
|
96
|
+
* record its OWN hit or miss. So a single fetch flow naturally records
|
|
97
|
+
* a chain of misses ending in one hit at the tier that served the data.
|
|
98
|
+
*
|
|
99
|
+
* Example: cold fetch of `react@18.3.1` tarball records:
|
|
100
|
+
*
|
|
101
|
+
* recordMiss('L1', 'tarball');
|
|
102
|
+
* recordMiss('L2', 'tarball');
|
|
103
|
+
* recordMiss('L3', 'tarball');
|
|
104
|
+
* recordHit('L4', 'tarball', 12345); // bytes from registry response
|
|
105
|
+
*
|
|
106
|
+
* After the writeback path runs, the same key from a subsequent fetch
|
|
107
|
+
* would record:
|
|
108
|
+
*
|
|
109
|
+
* recordMiss('L1', 'tarball');
|
|
110
|
+
* recordHit('L2', 'tarball', 12345);
|
|
111
|
+
*/
|
|
112
|
+
export function recordMiss(tier, kind) {
|
|
113
|
+
_ensureStartedAt();
|
|
114
|
+
_grid[tier][kind].misses++;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Return a snapshot of current counters + derived hit-rates.
|
|
118
|
+
*
|
|
119
|
+
* The returned object is a fresh copy — caller-side mutations don't
|
|
120
|
+
* affect the singleton. Mirrors readDiagCounters() in diag-counters.ts.
|
|
121
|
+
*/
|
|
122
|
+
export function snapshot() {
|
|
123
|
+
_ensureStartedAt();
|
|
124
|
+
// Deep copy so caller mutations don't leak back into the singleton.
|
|
125
|
+
const byTier = {};
|
|
126
|
+
const hitRate = {};
|
|
127
|
+
for (const tier of TIERS) {
|
|
128
|
+
byTier[tier] = {};
|
|
129
|
+
hitRate[tier] = {};
|
|
130
|
+
for (const kind of KINDS) {
|
|
131
|
+
const c = _grid[tier][kind];
|
|
132
|
+
byTier[tier][kind] = { hits: c.hits, misses: c.misses, bytes: c.bytes };
|
|
133
|
+
const lookups = c.hits + c.misses;
|
|
134
|
+
hitRate[tier][kind] = lookups === 0 ? 0 : c.hits / lookups;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
byTier,
|
|
139
|
+
startedAt: _startedAt,
|
|
140
|
+
lastResetAt: _lastResetAt,
|
|
141
|
+
hitRate,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Zero all counters. Sets lastResetAt to now. Used by the
|
|
146
|
+
* `/api/_diag/cache/reset` endpoint to start a fresh measurement window.
|
|
147
|
+
*
|
|
148
|
+
* Does NOT clear startedAt — that remains the original module-load time
|
|
149
|
+
* so operators can tell "this isolate has been up for X but counters
|
|
150
|
+
* were reset at Y" (the gap is intentional vs an isolate reboot).
|
|
151
|
+
*/
|
|
152
|
+
export function reset() {
|
|
153
|
+
for (const tier of TIERS) {
|
|
154
|
+
for (const kind of KINDS) {
|
|
155
|
+
_grid[tier][kind].hits = 0;
|
|
156
|
+
_grid[tier][kind].misses = 0;
|
|
157
|
+
_grid[tier][kind].bytes = 0;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
_lastResetAt = Date.now();
|
|
161
|
+
}
|