@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,608 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* opentui-wasm-backend.ts — the Nimbus WebAssembly FFI backend for @opentui/core.
|
|
3
|
+
*
|
|
4
|
+
* OpenTUI's `platform/ffi.ts` selects an FFI backend exposing exactly five
|
|
5
|
+
* members — `{ dlopen, ptr, suffix, toArrayBuffer }` plus
|
|
6
|
+
* `Library.createCallback` — and `zig.ts` drives the entire 279-symbol render
|
|
7
|
+
* surface through them. This module IS that backend, implemented over a single
|
|
8
|
+
* `WebAssembly.Instance` of the staged wasm32-wasi reactor artifact
|
|
9
|
+
* (`public/_assets/opentui/<version>/opentui.wasm`, Stage A) running under the
|
|
10
|
+
* real Nimbus WASI host (`wasi-instance.ts`).
|
|
11
|
+
*
|
|
12
|
+
* The whole copy-shim surface (~105 symbols: UTF-8 strings, packed structs,
|
|
13
|
+
* RGBA `Uint16Array`s, out-buffers/out-structs) is handled by ONE generic arena
|
|
14
|
+
* protocol, not per-symbol code: a `ptr`-typed argument accepts a numeric
|
|
15
|
+
* offset/handle (passed through), `null` (→ 0), or an `ArrayBufferView`/
|
|
16
|
+
* `ArrayBuffer` (copied into a scratch arena via the module's `nimbus_alloc`,
|
|
17
|
+
* passed as a u32 offset, copied back if the view is writable, then freed).
|
|
18
|
+
*
|
|
19
|
+
* `toArrayBuffer` returns a detach-safe SNAPSHOT copy of a linear-memory range
|
|
20
|
+
* (every zig.ts caller reads-then-decodes synchronously). The five live
|
|
21
|
+
* cell-array views that must track Zig's writes use `liveView()` instead, always
|
|
22
|
+
* re-derived from the CURRENT `memory.buffer` so a `memory.grow` (which detaches
|
|
23
|
+
* the old `ArrayBuffer`) can never strand them — mirroring upstream's post-resize
|
|
24
|
+
* re-fetch discipline (buffer.ts `ensureRawBufferViews`).
|
|
25
|
+
*
|
|
26
|
+
* A `ptr(view)` result is transient scratch for the immediately-following symbol
|
|
27
|
+
* call — exactly like a native FFI pointer into JS memory, which is only valid
|
|
28
|
+
* for the duration of the call it is passed to. Each `dlopen`'d symbol call
|
|
29
|
+
* frees the `ptr()` allocations made before it, so a 60fps `rgbaPtr(color)`
|
|
30
|
+
* render loop does not leak linear memory.
|
|
31
|
+
*
|
|
32
|
+
* The opencode facet backend embeds this implementation into the patched
|
|
33
|
+
* @opentui/core bundle.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
// ── FFI type tags (the @opentui/core `FFIType` surface zig.ts emits) ─────────
|
|
37
|
+
//
|
|
38
|
+
// zig.ts passes `{ args: FFIType[]; returns: FFIType }` per symbol. These are
|
|
39
|
+
// the only tags that appear across the 279-symbol table (verified against the
|
|
40
|
+
// FFI symbol notes): the marshaling class of each tag is fixed here.
|
|
41
|
+
export const OPENTUI_FFI_TYPES = [
|
|
42
|
+
'void',
|
|
43
|
+
'bool',
|
|
44
|
+
'u8',
|
|
45
|
+
'u16',
|
|
46
|
+
'u32',
|
|
47
|
+
'u64',
|
|
48
|
+
'i8',
|
|
49
|
+
'i16',
|
|
50
|
+
'i32',
|
|
51
|
+
'i64',
|
|
52
|
+
'f32',
|
|
53
|
+
'f64',
|
|
54
|
+
'usize',
|
|
55
|
+
'ptr',
|
|
56
|
+
'pointer',
|
|
57
|
+
'cstring',
|
|
58
|
+
] as const;
|
|
59
|
+
|
|
60
|
+
export type OpenTUIFfiType = (typeof OPENTUI_FFI_TYPES)[number];
|
|
61
|
+
|
|
62
|
+
const FFI_TYPE_SET: ReadonlySet<string> = new Set(OPENTUI_FFI_TYPES);
|
|
63
|
+
|
|
64
|
+
/** A single symbol's signature, exactly the shape zig.ts builds. */
|
|
65
|
+
export interface OpenTUIFfiFunction {
|
|
66
|
+
readonly args?: readonly OpenTUIFfiType[];
|
|
67
|
+
readonly returns?: OpenTUIFfiType;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export type OpenTUIFfiSymbols = Readonly<Record<string, OpenTUIFfiFunction>>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A pointer/handle at the FFI boundary. On wasm32 every pointer is a u32 byte
|
|
74
|
+
* offset into linear memory; we keep `bigint` in the union only because a
|
|
75
|
+
* `usize`/`u64` return can surface as BigInt and callers feed such values back
|
|
76
|
+
* as `ptr` args (zig.ts does `typeof x === 'bigint' ? Number(x) : x`).
|
|
77
|
+
*/
|
|
78
|
+
export type OpenTUIPointer = number | bigint;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* What a `ptr`-typed argument may be: a numeric offset/handle, a BigInt
|
|
82
|
+
* (64-bit handle), a copy-in/out view, a raw ArrayBuffer, or null.
|
|
83
|
+
*/
|
|
84
|
+
export type OpenTUIPointerArg =
|
|
85
|
+
| number
|
|
86
|
+
| bigint
|
|
87
|
+
| ArrayBufferView
|
|
88
|
+
| ArrayBuffer
|
|
89
|
+
| null
|
|
90
|
+
| undefined;
|
|
91
|
+
|
|
92
|
+
/** The callable surface zig.ts invokes as `lib.symbols.<name>(...)`. */
|
|
93
|
+
export type OpenTUISymbolFn = (...args: unknown[]) => unknown;
|
|
94
|
+
|
|
95
|
+
/** Result of `createCallback` — the `.ptr` token is what zig.ts hands to Zig. */
|
|
96
|
+
export interface OpenTUIFfiCallbackInstance {
|
|
97
|
+
readonly ptr: OpenTUIPointer | null;
|
|
98
|
+
readonly threadsafe: boolean;
|
|
99
|
+
close(): void;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** The `Library` shape zig.ts spreads and reads `.symbols` / `.createCallback` from. */
|
|
103
|
+
export interface OpenTUIFfiLibrary {
|
|
104
|
+
readonly symbols: Record<string, OpenTUISymbolFn>;
|
|
105
|
+
createCallback(
|
|
106
|
+
callback: (...args: unknown[]) => unknown,
|
|
107
|
+
definition: OpenTUIFfiFunction,
|
|
108
|
+
): OpenTUIFfiCallbackInstance;
|
|
109
|
+
close(): void;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ── WASI host seam (reuse wasi-instance.ts; never fork a second WASI impl) ────
|
|
113
|
+
//
|
|
114
|
+
// The backend owns wasm instantiation + the import object but does NOT embed a
|
|
115
|
+
// WASI implementation. It is handed the two helpers the `wasi-instance.ts`
|
|
116
|
+
// preamble exports — `makeImports` (the import table + stdout/stderr/clock/env
|
|
117
|
+
// seams) and `initFS` (the in-memory VFS). In the facet (Stage D) these are the
|
|
118
|
+
// preamble globals `__wasiMakeImports` / `__wasiInitFS`; in tests they come from
|
|
119
|
+
// evaluating `WASI_INSTANCE_PREAMBLE_SRC`. Same source of truth either way.
|
|
120
|
+
|
|
121
|
+
export interface WasiMakeImportsResult {
|
|
122
|
+
readonly wasiImport: WebAssembly.ModuleImports;
|
|
123
|
+
getStdout(): string;
|
|
124
|
+
getStderr(): string;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface WasiHost {
|
|
128
|
+
/** `__wasiMakeImports` — builds the `wasi_snapshot_preview1` import table. */
|
|
129
|
+
makeImports(opts: {
|
|
130
|
+
argv?: string[];
|
|
131
|
+
env?: Record<string, string>;
|
|
132
|
+
getMemory: () => WebAssembly.Memory | null;
|
|
133
|
+
/**
|
|
134
|
+
* `'none'` keeps the parkable imports unwrapped. Required here: every
|
|
135
|
+
* entry into this instance is synchronous — `_initialize()` at
|
|
136
|
+
* construction, and each FFI symbol call per frame — so the instance can
|
|
137
|
+
* never be under a `WebAssembly.promising` suspender, and a `Suspending`
|
|
138
|
+
* import traps such a call even when it returns a plain value.
|
|
139
|
+
*/
|
|
140
|
+
parking?: 'jspi' | 'none';
|
|
141
|
+
stdoutWrite?: (s: string) => void;
|
|
142
|
+
stderrWrite?: (s: string) => void;
|
|
143
|
+
}): WasiMakeImportsResult;
|
|
144
|
+
/** `__wasiInitFS` — installs the per-instance virtual filesystem. */
|
|
145
|
+
initFS(opts: {
|
|
146
|
+
root: string;
|
|
147
|
+
preopens: Array<{ wasiPath: string; vfsPath: string }>;
|
|
148
|
+
files: Record<string, string>;
|
|
149
|
+
dirs: string[];
|
|
150
|
+
modes: Record<string, number>;
|
|
151
|
+
}): void;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export interface OpenTUIWasmBackendOptions {
|
|
155
|
+
/** The compiled artifact (Stage A: the staged wasm32-wasi reactor). */
|
|
156
|
+
readonly module: WebAssembly.Module;
|
|
157
|
+
/** The Nimbus WASI host helpers (reuse, don't fork). */
|
|
158
|
+
readonly wasi: WasiHost;
|
|
159
|
+
/** argv[0] for the reactor; defaults to `'opentui'`. */
|
|
160
|
+
readonly argv?: string[];
|
|
161
|
+
/** Environment the Zig core reads (e.g. `TERM`, color caps). */
|
|
162
|
+
readonly env?: Record<string, string>;
|
|
163
|
+
/**
|
|
164
|
+
* stdout sink — Stage D points this at the facet's process.stdout. When
|
|
165
|
+
* unset, output is buffered and readable via `getStdout()`.
|
|
166
|
+
*/
|
|
167
|
+
readonly stdoutWrite?: (s: string) => void;
|
|
168
|
+
readonly stderrWrite?: (s: string) => void;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// ── The wasm exports the backend relies on directly ──────────────────────────
|
|
172
|
+
//
|
|
173
|
+
// All FFI symbols are reached generically by name; only these few are called by
|
|
174
|
+
// the backend machinery itself (instantiation + the arena allocator).
|
|
175
|
+
interface OpenTUIWasmExports extends WebAssembly.Exports {
|
|
176
|
+
readonly memory: WebAssembly.Memory;
|
|
177
|
+
_initialize(): void;
|
|
178
|
+
nimbus_alloc(size: number): number;
|
|
179
|
+
nimbus_free(ptr: number, size: number): void;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/** A registered callback: the JS fn the imports dispatch to + its handle. */
|
|
183
|
+
interface OpenTUICallbackEntry {
|
|
184
|
+
readonly fn: (...args: unknown[]) => unknown;
|
|
185
|
+
readonly instance: OpenTUIFfiCallbackInstance;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export const ARENA_ALIGN = 16;
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* The Nimbus OpenTUI wasm FFI backend. Constructed from a compiled module + the
|
|
192
|
+
* WASI host; instantiates once and exposes the @opentui/core backend surface.
|
|
193
|
+
*/
|
|
194
|
+
export class OpenTUIWasmBackend {
|
|
195
|
+
/** `suffix` is exported for API-shape parity; OpenTUI never resolves a path from it. */
|
|
196
|
+
readonly suffix = 'wasm';
|
|
197
|
+
|
|
198
|
+
readonly #instance: WebAssembly.Instance;
|
|
199
|
+
readonly #exports: OpenTUIWasmExports;
|
|
200
|
+
readonly #wasiResult: WasiMakeImportsResult;
|
|
201
|
+
readonly #encoder = new TextEncoder();
|
|
202
|
+
readonly #decoder = new TextDecoder();
|
|
203
|
+
|
|
204
|
+
/** Live callback registry: token → registered instance, dispatched by `opentui` imports. */
|
|
205
|
+
readonly #callbacks = new Map<number, OpenTUICallbackEntry>();
|
|
206
|
+
#nextToken = 1; // tokens must be non-zero (0 === null fn pointer)
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Transient `ptr()` allocations awaiting release by the next symbol call.
|
|
210
|
+
* A `ptr(view)` pointer is only valid for the call it is passed to (native FFI
|
|
211
|
+
* semantics), so each `dlopen`'d symbol call frees what was allocated before
|
|
212
|
+
* it. Without this a per-frame `rgbaPtr(color)` would leak linear memory.
|
|
213
|
+
*
|
|
214
|
+
* `view` is the source ArrayBufferView when the caller passed a writable one:
|
|
215
|
+
* native FFI `ptr(view)` yields a live pointer into the view's storage, so
|
|
216
|
+
* after the symbol call the view must reflect anything Zig wrote into it. Many
|
|
217
|
+
* FFIRenderLib wrappers materialize OUT-buffers this way — `getCursorState`,
|
|
218
|
+
* `getTerminalCapabilities`, `getRenderStats`, the span-feed's
|
|
219
|
+
* `streamDrainSpans(ptr(outBuffer))`, every `editBufferGet*`/`editorViewGet*` —
|
|
220
|
+
* so the claimed-scratch release copies these back before freeing.
|
|
221
|
+
*/
|
|
222
|
+
readonly #pendingPtrScratch: Array<{
|
|
223
|
+
offset: number;
|
|
224
|
+
size: number;
|
|
225
|
+
view: ArrayBufferView | null;
|
|
226
|
+
}> = [];
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Cached `Uint8Array` over `memory.buffer`, invalidated whenever a grow may
|
|
230
|
+
* have detached it. `#u8()` always returns a view backed by the live buffer.
|
|
231
|
+
*/
|
|
232
|
+
#cachedU8: Uint8Array | null = null;
|
|
233
|
+
#cachedBuffer: ArrayBuffer | null = null;
|
|
234
|
+
|
|
235
|
+
private constructor(opts: OpenTUIWasmBackendOptions) {
|
|
236
|
+
opts.wasi.initFS({
|
|
237
|
+
root: 'opentui-wasi-root',
|
|
238
|
+
preopens: [{ wasiPath: '/', vfsPath: 'opentui-wasi-root' }],
|
|
239
|
+
files: {},
|
|
240
|
+
dirs: [],
|
|
241
|
+
modes: { 'opentui-wasi-root': 0o7 },
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// getMemory is late-bound: the WASI host re-reads `.buffer` on every call,
|
|
245
|
+
// so a grow is transparent to it. We resolve the export after instantiation.
|
|
246
|
+
let memory: WebAssembly.Memory | null = null;
|
|
247
|
+
this.#wasiResult = opts.wasi.makeImports({
|
|
248
|
+
argv: opts.argv ?? ['opentui'],
|
|
249
|
+
env: opts.env ?? {},
|
|
250
|
+
getMemory: () => memory,
|
|
251
|
+
parking: 'none',
|
|
252
|
+
stdoutWrite: opts.stdoutWrite,
|
|
253
|
+
stderrWrite: opts.stderrWrite,
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
this.#instance = new WebAssembly.Instance(opts.module, {
|
|
257
|
+
wasi_snapshot_preview1: this.#wasiResult.wasiImport,
|
|
258
|
+
opentui: this.#opentuiImports(),
|
|
259
|
+
});
|
|
260
|
+
this.#exports = this.#instance.exports as OpenTUIWasmExports;
|
|
261
|
+
memory = this.#exports.memory;
|
|
262
|
+
this.#exports._initialize();
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
static create(opts: OpenTUIWasmBackendOptions): OpenTUIWasmBackend {
|
|
266
|
+
return new OpenTUIWasmBackend(opts);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/** Buffered stdout if no `stdoutWrite` sink was provided. */
|
|
270
|
+
getStdout(): string {
|
|
271
|
+
return this.#wasiResult.getStdout();
|
|
272
|
+
}
|
|
273
|
+
getStderr(): string {
|
|
274
|
+
return this.#wasiResult.getStderr();
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/** The live `WebAssembly.Memory` (Stage C/D may need it for diagnostics). */
|
|
278
|
+
get memory(): WebAssembly.Memory {
|
|
279
|
+
return this.#exports.memory;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// ── memory-grow-safe linear-memory access ──────────────────────────────────
|
|
283
|
+
// Every view is re-derived from the CURRENT `memory.buffer`. `memory.grow`
|
|
284
|
+
// allocates a fresh backing ArrayBuffer and detaches the old one, so a cached
|
|
285
|
+
// view would throw on use; we compare buffer identity and rebuild on change.
|
|
286
|
+
#u8(): Uint8Array {
|
|
287
|
+
const buffer = this.#exports.memory.buffer;
|
|
288
|
+
if (this.#cachedBuffer !== buffer || this.#cachedU8 === null) {
|
|
289
|
+
this.#cachedU8 = new Uint8Array(buffer);
|
|
290
|
+
this.#cachedBuffer = buffer;
|
|
291
|
+
}
|
|
292
|
+
return this.#cachedU8;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// ── The `opentui` import module: token → fn dispatch ────────────────────────
|
|
296
|
+
//
|
|
297
|
+
// Zig stores the host-minted token as an opaque "fn pointer" and calls back
|
|
298
|
+
// through these three externs with `(token, ...)`. We look the token up and
|
|
299
|
+
// invoke the registered JS callback, decoding pointer/length pairs against
|
|
300
|
+
// live memory. Each decode happens after Zig has written, so it reads the
|
|
301
|
+
// current buffer (grow-safe by construction).
|
|
302
|
+
#opentuiImports(): WebAssembly.ModuleImports {
|
|
303
|
+
const dispatch = (token: number): ((...a: unknown[]) => unknown) | undefined =>
|
|
304
|
+
this.#callbacks.get(token >>> 0)?.fn;
|
|
305
|
+
return {
|
|
306
|
+
logCallback: (token: number, level: number, msgPtr: number, msgLen: number): void => {
|
|
307
|
+
dispatch(token)?.(level, msgPtr >>> 0, msgLen >>> 0);
|
|
308
|
+
},
|
|
309
|
+
eventSinkCallback: (
|
|
310
|
+
token: number,
|
|
311
|
+
namePtr: number,
|
|
312
|
+
nameLen: number,
|
|
313
|
+
dataPtr: number,
|
|
314
|
+
dataLen: number,
|
|
315
|
+
): void => {
|
|
316
|
+
dispatch(token)?.(namePtr >>> 0, nameLen >>> 0, dataPtr >>> 0, dataLen >>> 0);
|
|
317
|
+
},
|
|
318
|
+
streamCallback: (
|
|
319
|
+
token: number,
|
|
320
|
+
streamPtr: number,
|
|
321
|
+
eventId: number,
|
|
322
|
+
arg0: number,
|
|
323
|
+
arg1: bigint,
|
|
324
|
+
): void => {
|
|
325
|
+
dispatch(token)?.(streamPtr >>> 0, eventId >>> 0, arg0 >>> 0, arg1);
|
|
326
|
+
},
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// ── ptr(view): copy a view/buffer into the arena, return its u32 offset ─────
|
|
331
|
+
//
|
|
332
|
+
// Used when zig.ts pre-materializes an address (rgbaPtr → ptr(rgba.buffer),
|
|
333
|
+
// ptr(outCountBuf), ptr(reserveBuffer), …) and passes the numeric offset into
|
|
334
|
+
// the very next symbol call. Native FFI hands the callee a raw pointer into JS
|
|
335
|
+
// memory valid only for that call; we mirror that lifetime by queuing the
|
|
336
|
+
// allocation as transient scratch that the next symbol call frees (see
|
|
337
|
+
// `#bindSymbol`). This keeps a per-frame `rgbaPtr(color)` loop leak-free.
|
|
338
|
+
//
|
|
339
|
+
// A writable ArrayBufferView is also an OUT-buffer here: native `ptr(view)` is
|
|
340
|
+
// a live pointer into the view's storage, so after the call the view must
|
|
341
|
+
// reflect Zig's writes. We record the source view so the claimed-scratch
|
|
342
|
+
// release copies it back (the span-feed `streamDrainSpans(ptr(drainBuffer))`
|
|
343
|
+
// and every FFIRenderLib `ptr(outBuffer)`/`ptr(cursorBuffer)`/`ptr(statsBuffer)`
|
|
344
|
+
// getter depend on this). Read-only ArrayBuffers carry a null view (copy-in only).
|
|
345
|
+
ptr(value: ArrayBuffer | ArrayBufferView): OpenTUIPointer {
|
|
346
|
+
const { bytes, byteOffset, byteLength } = viewBytes(value);
|
|
347
|
+
const size = byteLength === 0 ? ARENA_ALIGN : byteLength;
|
|
348
|
+
const offset = this.#alloc(size);
|
|
349
|
+
if (byteLength > 0) {
|
|
350
|
+
this.#u8().set(bytes.subarray(byteOffset, byteOffset + byteLength), offset);
|
|
351
|
+
}
|
|
352
|
+
this.#pendingPtrScratch.push({
|
|
353
|
+
offset,
|
|
354
|
+
size,
|
|
355
|
+
view: ArrayBuffer.isView(value) ? value : null,
|
|
356
|
+
});
|
|
357
|
+
return offset;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// ── toArrayBuffer(ptr, offset, length): a snapshot copy of linear memory ────
|
|
361
|
+
//
|
|
362
|
+
// Returns a fresh ArrayBuffer holding `[ptr+offset, +length)`. Every zig.ts
|
|
363
|
+
// caller reads-then-decodes synchronously (log/event-name/-data, highlight and
|
|
364
|
+
// encoded-char unpacks, span-feed chunks) — a copy is the correct, detach-safe
|
|
365
|
+
// result there; one site even adds its own `.slice(0)` to retain past scope.
|
|
366
|
+
//
|
|
367
|
+
// A stock JS ArrayBuffer cannot be a live sub-window of `memory.buffer`, so the
|
|
368
|
+
// five LIVE cell-array views (`bufferGet{Char,Fg,Bg,Attributes}Ptr`,
|
|
369
|
+
// `textBufferGetLineHighlightsPtr`) use `liveView()` instead — the one place
|
|
370
|
+
// that genuinely needs a window that tracks Zig's writes.
|
|
371
|
+
toArrayBuffer(
|
|
372
|
+
pointer: OpenTUIPointer,
|
|
373
|
+
offset: number | undefined,
|
|
374
|
+
length: number,
|
|
375
|
+
): ArrayBuffer {
|
|
376
|
+
const base = toOffset(pointer) + (offset ?? 0);
|
|
377
|
+
return this.#exports.memory.buffer.slice(base, base + length);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* A LIVE typed-array window over linear memory at `pointer`, tracking Zig's
|
|
382
|
+
* writes — the path the five cell-array symbols need. Always constructed over
|
|
383
|
+
* the CURRENT `memory.buffer`, so a `memory.grow` (which detaches the prior
|
|
384
|
+
* buffer) can never strand it: callers re-call `liveView` after any operation
|
|
385
|
+
* that may grow memory, exactly as buffer.ts re-fetches after `bufferResize`.
|
|
386
|
+
*
|
|
387
|
+
* @param ctor the element view (Uint32Array for char/attributes, Uint16Array
|
|
388
|
+
* for fg/bg RGBA quads).
|
|
389
|
+
* @param length element count (NOT bytes).
|
|
390
|
+
*/
|
|
391
|
+
liveView<T extends Uint8Array | Uint16Array | Uint32Array>(
|
|
392
|
+
ctor: { new (buffer: ArrayBufferLike, byteOffset: number, length: number): T },
|
|
393
|
+
pointer: OpenTUIPointer,
|
|
394
|
+
length: number,
|
|
395
|
+
): T {
|
|
396
|
+
return new ctor(this.#exports.memory.buffer, toOffset(pointer), length);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// ── dlopen(path, symbols): wire every requested symbol to its export ────────
|
|
400
|
+
dlopen(_path: string, symbols: OpenTUIFfiSymbols): OpenTUIFfiLibrary {
|
|
401
|
+
const exports = this.#instance.exports as Record<string, unknown>;
|
|
402
|
+
const bound: Record<string, OpenTUISymbolFn> = Object.create(null);
|
|
403
|
+
|
|
404
|
+
for (const name of Object.keys(symbols)) {
|
|
405
|
+
const sig = symbols[name];
|
|
406
|
+
const raw = exports[name];
|
|
407
|
+
if (typeof raw !== 'function') {
|
|
408
|
+
throw new Error(`opentui-wasm-backend: export '${name}' is missing or not callable`);
|
|
409
|
+
}
|
|
410
|
+
bound[name] = this.#bindSymbol(name, raw as (...a: unknown[]) => unknown, sig);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
return {
|
|
414
|
+
symbols: bound,
|
|
415
|
+
createCallback: (callback, definition) => this.#createCallback(callback, definition),
|
|
416
|
+
close: () => this.#closeAllCallbacks(),
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* Wrap one export with arg/return marshaling derived from its signature.
|
|
422
|
+
* Per-arg rule (the single generic arena protocol):
|
|
423
|
+
* - `ptr`/`pointer`/`cstring`: number/bigint → passed through (offset/handle);
|
|
424
|
+
* null/undefined → 0; ArrayBufferView/ArrayBuffer → copied into a scratch
|
|
425
|
+
* arena, passed as a u32 offset, copied back into the source view if it is
|
|
426
|
+
* writable (out-params), then freed after the call.
|
|
427
|
+
* - `u64`/`i64`/`usize` (when 64-bit on the wasm boundary is BigInt): a
|
|
428
|
+
* numeric arg is widened to BigInt so V8 routes it to an i64 param.
|
|
429
|
+
* - everything else: numeric, passed as-is.
|
|
430
|
+
* Return rule: `bool` → boolean is left numeric (callers compare truthiness);
|
|
431
|
+
* `ptr`/`usize`/`u64` returns are surfaced numerically (offset/handle), which
|
|
432
|
+
* is exactly what zig.ts feeds back as the next call's `ptr` arg.
|
|
433
|
+
*/
|
|
434
|
+
#bindSymbol(
|
|
435
|
+
name: string,
|
|
436
|
+
fn: (...a: unknown[]) => unknown,
|
|
437
|
+
sig: OpenTUIFfiFunction,
|
|
438
|
+
): OpenTUISymbolFn {
|
|
439
|
+
const argTypes = sig.args ?? [];
|
|
440
|
+
for (const t of argTypes) {
|
|
441
|
+
if (!FFI_TYPE_SET.has(t)) {
|
|
442
|
+
throw new Error(`opentui-wasm-backend: symbol '${name}' has unknown arg type '${t}'`);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
const returns = sig.returns ?? 'void';
|
|
446
|
+
if (!FFI_TYPE_SET.has(returns)) {
|
|
447
|
+
throw new Error(`opentui-wasm-backend: symbol '${name}' has unknown return type '${returns}'`);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
return (...args: unknown[]): unknown => {
|
|
451
|
+
// Optional per-symbol FFI diagnostic (call counts + linear-memory growth
|
|
452
|
+
// attribution). Installed by the opencode runner only when NIMBUS_DIAG_EXEC
|
|
453
|
+
// is set; a single global read on the hot path otherwise.
|
|
454
|
+
const diag = (globalThis as {
|
|
455
|
+
__nimbusOtuiFfiDiag?: { rec(n: string, g: number, a: unknown[], scratch: number): void };
|
|
456
|
+
}).__nimbusOtuiFfiDiag;
|
|
457
|
+
const memBefore = diag ? this.#exports.memory.buffer.byteLength : 0;
|
|
458
|
+
// Claim the transient ptr() scratch allocated while zig.ts evaluated this
|
|
459
|
+
// call's args. Claiming (vs. draining the shared list) scopes the frees to
|
|
460
|
+
// this call, so a callback that re-enters another symbol mid-execution
|
|
461
|
+
// cannot free a pointer this call is still reading.
|
|
462
|
+
const claimedPtr = this.#pendingPtrScratch.splice(0);
|
|
463
|
+
const scratch: Array<{ offset: number; size: number; view: ArrayBufferView | null }> = [];
|
|
464
|
+
const marshaled: unknown[] = new Array(argTypes.length);
|
|
465
|
+
|
|
466
|
+
for (let i = 0; i < argTypes.length; i++) {
|
|
467
|
+
const t = argTypes[i];
|
|
468
|
+
const a = args[i];
|
|
469
|
+
if (t === 'ptr' || t === 'pointer' || t === 'cstring') {
|
|
470
|
+
marshaled[i] = this.#marshalPtrArg(a as OpenTUIPointerArg, scratch);
|
|
471
|
+
} else if (t === 'u64' || t === 'i64') {
|
|
472
|
+
marshaled[i] = typeof a === 'bigint' ? a : BigInt(Math.trunc(Number(a)));
|
|
473
|
+
} else if (t === 'usize') {
|
|
474
|
+
// usize is u32 on wasm32: a plain number; tolerate BigInt handles.
|
|
475
|
+
marshaled[i] = typeof a === 'bigint' ? Number(a) : a;
|
|
476
|
+
} else if (t === 'bool') {
|
|
477
|
+
marshaled[i] = a ? 1 : 0;
|
|
478
|
+
} else {
|
|
479
|
+
marshaled[i] = typeof a === 'bigint' ? Number(a) : a;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
let result: unknown;
|
|
484
|
+
try {
|
|
485
|
+
result = fn(...marshaled);
|
|
486
|
+
} finally {
|
|
487
|
+
// Copy-back out-params, then free, in reverse alloc order. The copy-back
|
|
488
|
+
// spans the view's own byteLength (which may be < the padded alloc size).
|
|
489
|
+
for (let i = scratch.length - 1; i >= 0; i--) {
|
|
490
|
+
const s = scratch[i];
|
|
491
|
+
if (s.view && s.view.byteLength > 0) {
|
|
492
|
+
const dst = new Uint8Array(s.view.buffer, s.view.byteOffset, s.view.byteLength);
|
|
493
|
+
dst.set(this.#u8().subarray(s.offset, s.offset + s.view.byteLength));
|
|
494
|
+
}
|
|
495
|
+
this.#exports.nimbus_free(s.offset, s.size);
|
|
496
|
+
}
|
|
497
|
+
// Release this call's transient ptr() scratch (reverse alloc order),
|
|
498
|
+
// copying writable views back first so `ptr(outBuffer)` OUT-params (the
|
|
499
|
+
// span-feed drain, FFIRenderLib getters) reflect Zig's writes.
|
|
500
|
+
for (let i = claimedPtr.length - 1; i >= 0; i--) {
|
|
501
|
+
const s = claimedPtr[i];
|
|
502
|
+
if (s.view && s.view.byteLength > 0) {
|
|
503
|
+
const dst = new Uint8Array(s.view.buffer, s.view.byteOffset, s.view.byteLength);
|
|
504
|
+
dst.set(this.#u8().subarray(s.offset, s.offset + s.view.byteLength));
|
|
505
|
+
}
|
|
506
|
+
this.#exports.nimbus_free(s.offset, s.size);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
if (diag) {
|
|
511
|
+
let scratchBytes = 0;
|
|
512
|
+
for (const s of claimedPtr) scratchBytes += s.size;
|
|
513
|
+
for (const s of scratch) scratchBytes += s.size;
|
|
514
|
+
diag.rec(name, this.#exports.memory.buffer.byteLength - memBefore, marshaled, scratchBytes);
|
|
515
|
+
}
|
|
516
|
+
if (returns === 'u64' || returns === 'i64') {
|
|
517
|
+
return typeof result === 'bigint' ? result : BigInt(result as number);
|
|
518
|
+
}
|
|
519
|
+
return result;
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Marshal one `ptr`-typed argument into a u32 offset, queueing arena scratch
|
|
525
|
+
* for copy-back + free. A view that is writable is treated as a potential
|
|
526
|
+
* out-param (copied back after the call); read-only buffers are copy-in only.
|
|
527
|
+
*/
|
|
528
|
+
#marshalPtrArg(
|
|
529
|
+
a: OpenTUIPointerArg,
|
|
530
|
+
scratch: Array<{ offset: number; size: number; view: ArrayBufferView | null }>,
|
|
531
|
+
): number {
|
|
532
|
+
if (a === null || a === undefined) return 0;
|
|
533
|
+
if (typeof a === 'number') return a >>> 0;
|
|
534
|
+
if (typeof a === 'bigint') return Number(a) >>> 0;
|
|
535
|
+
|
|
536
|
+
const { bytes, byteOffset, byteLength } = viewBytes(a);
|
|
537
|
+
const offset = this.#alloc(byteLength === 0 ? ARENA_ALIGN : byteLength);
|
|
538
|
+
if (byteLength > 0) {
|
|
539
|
+
this.#u8().set(bytes.subarray(byteOffset, byteOffset + byteLength), offset);
|
|
540
|
+
}
|
|
541
|
+
// A typed-array/ArrayBuffer view is copied back so out-buffer/out-struct
|
|
542
|
+
// params (statsBuffer, outCountBuf, reserveBuffer, bufferGetId, …) work
|
|
543
|
+
// through the same path. ArrayBuffers are wrapped in a Uint8Array so the
|
|
544
|
+
// copy-back targets the same storage.
|
|
545
|
+
const writableView: ArrayBufferView =
|
|
546
|
+
ArrayBuffer.isView(a) ? a : new Uint8Array(a as ArrayBuffer);
|
|
547
|
+
scratch.push({ offset, size: byteLength === 0 ? ARENA_ALIGN : byteLength, view: writableView });
|
|
548
|
+
return offset;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
// ── createCallback(fn, signature): mint a non-zero token, decode on dispatch ─
|
|
552
|
+
//
|
|
553
|
+
// A wasm host cannot install JS functions in the module's indirect table, so
|
|
554
|
+
// the "fn pointer" Zig stores is an opaque non-zero u32 token we mint. The
|
|
555
|
+
// three `opentui` imports (#opentuiImports) receive `(token, ...rawArgs)`,
|
|
556
|
+
// decode the raw (ptr,len) pairs into the FFI-typed positional shape zig.ts's
|
|
557
|
+
// callbacks consume (a `ptr` arg → numeric offset read via toArrayBuffer, a
|
|
558
|
+
// `usize` → numeric, a `u64` → BigInt), and forward to the registered fn.
|
|
559
|
+
// `definition` is unused: the import shims already deliver the decoded shape.
|
|
560
|
+
#createCallback(
|
|
561
|
+
callback: (...args: unknown[]) => unknown,
|
|
562
|
+
_definition: OpenTUIFfiFunction,
|
|
563
|
+
): OpenTUIFfiCallbackInstance {
|
|
564
|
+
const token = this.#nextToken++;
|
|
565
|
+
const instance: OpenTUIFfiCallbackInstance = {
|
|
566
|
+
ptr: token,
|
|
567
|
+
threadsafe: false,
|
|
568
|
+
close: () => {
|
|
569
|
+
this.#callbacks.delete(token);
|
|
570
|
+
},
|
|
571
|
+
};
|
|
572
|
+
this.#callbacks.set(token, { fn: callback, instance });
|
|
573
|
+
return instance;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
#closeAllCallbacks(): void {
|
|
577
|
+
for (const entry of [...this.#callbacks.values()]) entry.instance.close();
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
#alloc(byteLength: number): number {
|
|
581
|
+
const size = byteLength === 0 ? ARENA_ALIGN : byteLength;
|
|
582
|
+
const offset = this.#exports.nimbus_alloc(size);
|
|
583
|
+
if (offset === 0) {
|
|
584
|
+
throw new Error(`opentui-wasm-backend: nimbus_alloc(${size}) returned null (OOM)`);
|
|
585
|
+
}
|
|
586
|
+
return offset;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
// ── helpers ───────────────────────────────────────────────────────────────────
|
|
591
|
+
|
|
592
|
+
export function toOffset(pointer: OpenTUIPointer): number {
|
|
593
|
+
return (typeof pointer === 'bigint' ? Number(pointer) : pointer) >>> 0;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/** Normalize an ArrayBuffer/ArrayBufferView to a byte view + offset + length. */
|
|
597
|
+
export function viewBytes(value: ArrayBuffer | ArrayBufferView): {
|
|
598
|
+
bytes: Uint8Array;
|
|
599
|
+
byteOffset: number;
|
|
600
|
+
byteLength: number;
|
|
601
|
+
} {
|
|
602
|
+
if (ArrayBuffer.isView(value)) {
|
|
603
|
+
const bytes = new Uint8Array(value.buffer, 0, value.buffer.byteLength);
|
|
604
|
+
return { bytes, byteOffset: value.byteOffset, byteLength: value.byteLength };
|
|
605
|
+
}
|
|
606
|
+
const bytes = new Uint8Array(value);
|
|
607
|
+
return { bytes, byteOffset: 0, byteLength: value.byteLength };
|
|
608
|
+
}
|