@nimbus-sh/worker 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/README.md +219 -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 +146 -0
- package/dist/_shared/cache-stats.d.ts.map +1 -0
- package/dist/_shared/cache-stats.js +162 -0
- package/dist/_shared/exports-resolver.d.ts +76 -0
- package/dist/_shared/exports-resolver.d.ts.map +1 -0
- package/dist/_shared/exports-resolver.js +284 -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/real-node-imports.d.ts +38 -0
- package/dist/_shared/real-node-imports.d.ts.map +1 -0
- package/dist/_shared/real-node-imports.js +46 -0
- package/dist/_shared/retry.d.ts +93 -0
- package/dist/_shared/retry.d.ts.map +1 -0
- package/dist/_shared/retry.js +161 -0
- package/dist/_shared/session-id.d.ts +39 -0
- package/dist/_shared/session-id.d.ts.map +1 -0
- package/dist/_shared/session-id.js +127 -0
- package/dist/_shared/session-router.d.ts +104 -0
- package/dist/_shared/session-router.d.ts.map +1 -0
- package/dist/_shared/session-router.js +165 -0
- package/dist/_shared/w7-frame.d.ts +93 -0
- package/dist/_shared/w7-frame.d.ts.map +1 -0
- package/dist/_shared/w7-frame.js +402 -0
- package/dist/auth/index.d.ts +16 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +15 -0
- package/dist/auth/middleware.d.ts +85 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +150 -0
- package/dist/auth/token.d.ts +96 -0
- package/dist/auth/token.d.ts.map +1 -0
- package/dist/auth/token.js +226 -0
- package/dist/auth/types.d.ts +141 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +114 -0
- package/dist/bindings/d1.d.ts +102 -0
- package/dist/bindings/d1.d.ts.map +1 -0
- package/dist/bindings/d1.js +549 -0
- package/dist/bindings/kv.d.ts +82 -0
- package/dist/bindings/kv.d.ts.map +1 -0
- package/dist/bindings/kv.js +290 -0
- package/dist/bindings/r2.d.ts +137 -0
- package/dist/bindings/r2.d.ts.map +1 -0
- package/dist/bindings/r2.js +379 -0
- package/dist/cirrus-npm-cjs.generated.d.ts +17 -0
- package/dist/cirrus-npm-cjs.generated.d.ts.map +1 -0
- package/dist/cirrus-npm-cjs.generated.js +41 -0
- package/dist/cirrus-plugin-react.generated.d.ts +34 -0
- package/dist/cirrus-plugin-react.generated.d.ts.map +1 -0
- package/dist/cirrus-plugin-react.generated.js +33 -0
- package/dist/constants.d.ts +34 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +116 -0
- package/dist/esbuild-wasm-bundle.generated.d.ts +41 -0
- package/dist/esbuild-wasm-bundle.generated.d.ts.map +1 -0
- package/dist/esbuild-wasm-bundle.generated.js +40 -0
- package/dist/facets/cirrus-real.d.ts +147 -0
- package/dist/facets/cirrus-real.d.ts.map +1 -0
- package/dist/facets/cirrus-real.js +981 -0
- package/dist/facets/inner-do-registry.d.ts +41 -0
- package/dist/facets/inner-do-registry.d.ts.map +1 -0
- package/dist/facets/inner-do-registry.js +51 -0
- package/dist/facets/manager.d.ts +314 -0
- package/dist/facets/manager.d.ts.map +1 -0
- package/dist/facets/manager.js +2681 -0
- package/dist/facets/process.d.ts +318 -0
- package/dist/facets/process.d.ts.map +1 -0
- package/dist/facets/process.js +567 -0
- package/dist/facets/real-vite-fs-shim.d.ts +151 -0
- package/dist/facets/real-vite-fs-shim.d.ts.map +1 -0
- package/dist/facets/real-vite-fs-shim.js +1279 -0
- package/dist/facets/real-vite-hmr.d.ts +142 -0
- package/dist/facets/real-vite-hmr.d.ts.map +1 -0
- package/dist/facets/real-vite-hmr.js +476 -0
- package/dist/facets/vite-dev-server.d.ts +293 -0
- package/dist/facets/vite-dev-server.d.ts.map +1 -0
- package/dist/facets/vite-dev-server.js +2580 -0
- package/dist/facets/wasm-swap-registry.d.ts +261 -0
- package/dist/facets/wasm-swap-registry.d.ts.map +1 -0
- package/dist/facets/wasm-swap-registry.js +551 -0
- package/dist/facets/ws-terminal.d.ts +107 -0
- package/dist/facets/ws-terminal.d.ts.map +1 -0
- package/dist/facets/ws-terminal.js +207 -0
- package/dist/git/commands.d.ts +13 -0
- package/dist/git/commands.d.ts.map +1 -0
- package/dist/git/commands.js +633 -0
- package/dist/git/network-facet.d.ts +61 -0
- package/dist/git/network-facet.d.ts.map +1 -0
- package/dist/git/network-facet.js +700 -0
- package/dist/git-bundle.generated.d.ts +16 -0
- package/dist/git-bundle.generated.d.ts.map +1 -0
- package/dist/git-bundle.generated.js +15 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/loaders/child-process/spawn-facet.d.ts +90 -0
- package/dist/loaders/child-process/spawn-facet.d.ts.map +1 -0
- package/dist/loaders/child-process/spawn-facet.js +103 -0
- package/dist/loaders/child-process/spawn-pool.d.ts +110 -0
- package/dist/loaders/child-process/spawn-pool.d.ts.map +1 -0
- package/dist/loaders/child-process/spawn-pool.js +161 -0
- package/dist/loaders/fanout-pool.d.ts +195 -0
- package/dist/loaders/fanout-pool.d.ts.map +1 -0
- package/dist/loaders/fanout-pool.js +326 -0
- package/dist/loaders/generated-workers.d.ts +26 -0
- package/dist/loaders/generated-workers.d.ts.map +1 -0
- package/dist/loaders/generated-workers.js +25 -0
- package/dist/loaders/index.d.ts +15 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +13 -0
- package/dist/loaders/loader-pool.d.ts +273 -0
- package/dist/loaders/loader-pool.d.ts.map +1 -0
- package/dist/loaders/loader-pool.js +624 -0
- package/dist/loaders/npm-resolve-preamble.d.ts +34 -0
- package/dist/loaders/npm-resolve-preamble.d.ts.map +1 -0
- package/dist/loaders/npm-resolve-preamble.js +237 -0
- package/dist/loaders/pre-bundle-preamble.d.ts +41 -0
- package/dist/loaders/pre-bundle-preamble.d.ts.map +1 -0
- package/dist/loaders/pre-bundle-preamble.js +114 -0
- package/dist/loaders/vendor/codegen.d.ts +24 -0
- package/dist/loaders/vendor/codegen.d.ts.map +1 -0
- package/dist/loaders/vendor/codegen.js +44 -0
- package/dist/loaders/vendor/errors.d.ts +24 -0
- package/dist/loaders/vendor/errors.d.ts.map +1 -0
- package/dist/loaders/vendor/errors.js +46 -0
- package/dist/loaders/vendor/index.d.ts +16 -0
- package/dist/loaders/vendor/index.d.ts.map +1 -0
- package/dist/loaders/vendor/index.js +11 -0
- package/dist/loaders/vendor/pool.d.ts +88 -0
- package/dist/loaders/vendor/pool.d.ts.map +1 -0
- package/dist/loaders/vendor/pool.js +353 -0
- package/dist/loaders/vendor/primitives.d.ts +11 -0
- package/dist/loaders/vendor/primitives.d.ts.map +1 -0
- package/dist/loaders/vendor/primitives.js +33 -0
- package/dist/loaders/vendor/serialize.d.ts +3 -0
- package/dist/loaders/vendor/serialize.d.ts.map +1 -0
- package/dist/loaders/vendor/serialize.js +25 -0
- package/dist/loaders/vendor/types.d.ts +60 -0
- package/dist/loaders/vendor/types.d.ts.map +1 -0
- package/dist/loaders/vendor/types.js +4 -0
- package/dist/npm/cache.d.ts +136 -0
- package/dist/npm/cache.d.ts.map +1 -0
- package/dist/npm/cache.js +429 -0
- package/dist/npm/install-batch-facet.d.ts +129 -0
- package/dist/npm/install-batch-facet.d.ts.map +1 -0
- package/dist/npm/install-batch-facet.js +598 -0
- package/dist/npm/install-facet.d.ts +29 -0
- package/dist/npm/install-facet.d.ts.map +1 -0
- package/dist/npm/install-facet.js +9 -0
- package/dist/npm/installer.d.ts +239 -0
- package/dist/npm/installer.d.ts.map +1 -0
- package/dist/npm/installer.js +2022 -0
- package/dist/npm/npx-install.d.ts +74 -0
- package/dist/npm/npx-install.d.ts.map +1 -0
- package/dist/npm/npx-install.js +302 -0
- package/dist/npm/pre-bundle-facet.d.ts +168 -0
- package/dist/npm/pre-bundle-facet.d.ts.map +1 -0
- package/dist/npm/pre-bundle-facet.js +653 -0
- package/dist/npm/r2-cache.d.ts +286 -0
- package/dist/npm/r2-cache.d.ts.map +1 -0
- package/dist/npm/r2-cache.js +506 -0
- package/dist/npm/resolve-facet.d.ts +202 -0
- package/dist/npm/resolve-facet.d.ts.map +1 -0
- package/dist/npm/resolve-facet.js +833 -0
- package/dist/npm/resolve-one-facet.d.ts +204 -0
- package/dist/npm/resolve-one-facet.d.ts.map +1 -0
- package/dist/npm/resolve-one-facet.js +437 -0
- package/dist/npm/resolver.d.ts +109 -0
- package/dist/npm/resolver.d.ts.map +1 -0
- package/dist/npm/resolver.js +899 -0
- package/dist/npm/tarball-stream.d.ts +85 -0
- package/dist/npm/tarball-stream.d.ts.map +1 -0
- package/dist/npm/tarball-stream.js +205 -0
- package/dist/npm/tarball.d.ts +51 -0
- package/dist/npm/tarball.d.ts.map +1 -0
- package/dist/npm/tarball.js +185 -0
- package/dist/observability/diag-counters.d.ts +292 -0
- package/dist/observability/diag-counters.d.ts.map +1 -0
- package/dist/observability/diag-counters.js +302 -0
- package/dist/observability/heap-estimate.d.ts +166 -0
- package/dist/observability/heap-estimate.d.ts.map +1 -0
- package/dist/observability/heap-estimate.js +192 -0
- package/dist/observability/heavy-alloc-coord.d.ts +95 -0
- package/dist/observability/heavy-alloc-coord.d.ts.map +1 -0
- package/dist/observability/heavy-alloc-coord.js +149 -0
- package/dist/observability/oom-classify.d.ts +56 -0
- package/dist/observability/oom-classify.d.ts.map +1 -0
- package/dist/observability/oom-classify.js +118 -0
- package/dist/observability/oom-discriminator.d.ts +192 -0
- package/dist/observability/oom-discriminator.d.ts.map +1 -0
- package/dist/observability/oom-discriminator.js +233 -0
- package/dist/real-vite-bundle.generated.d.ts +46 -0
- package/dist/real-vite-bundle.generated.d.ts.map +1 -0
- package/dist/real-vite-bundle.generated.js +53 -0
- package/dist/replica/routing.d.ts +171 -0
- package/dist/replica/routing.d.ts.map +1 -0
- package/dist/replica/routing.js +288 -0
- package/dist/replica/suspension.d.ts +36 -0
- package/dist/replica/suspension.d.ts.map +1 -0
- package/dist/replica/suspension.js +49 -0
- package/dist/router/index.d.ts +156 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +220 -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 +128 -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/barrel-synthesizer.d.ts +181 -0
- package/dist/runtime/barrel-synthesizer.d.ts.map +1 -0
- package/dist/runtime/barrel-synthesizer.js +541 -0
- package/dist/runtime/bun-repl.d.ts +46 -0
- package/dist/runtime/bun-repl.d.ts.map +1 -0
- package/dist/runtime/bun-repl.js +326 -0
- package/dist/runtime/bun-runner.d.ts +66 -0
- package/dist/runtime/bun-runner.d.ts.map +1 -0
- package/dist/runtime/bun-runner.js +219 -0
- package/dist/runtime/clang-runner.d.ts +38 -0
- package/dist/runtime/clang-runner.d.ts.map +1 -0
- package/dist/runtime/clang-runner.js +1033 -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/esbuild-service.d.ts +201 -0
- package/dist/runtime/esbuild-service.d.ts.map +1 -0
- package/dist/runtime/esbuild-service.js +1444 -0
- package/dist/runtime/esbuild-wasm-bytes.d.ts +87 -0
- package/dist/runtime/esbuild-wasm-bytes.d.ts.map +1 -0
- package/dist/runtime/esbuild-wasm-bytes.js +131 -0
- package/dist/runtime/framework-detect.d.ts +71 -0
- package/dist/runtime/framework-detect.d.ts.map +1 -0
- package/dist/runtime/framework-detect.js +178 -0
- package/dist/runtime/long-running-handle.d.ts +133 -0
- package/dist/runtime/long-running-handle.d.ts.map +1 -0
- package/dist/runtime/long-running-handle.js +192 -0
- package/dist/runtime/node-repl.d.ts +36 -0
- package/dist/runtime/node-repl.d.ts.map +1 -0
- package/dist/runtime/node-repl.js +293 -0
- package/dist/runtime/node-runner.d.ts +111 -0
- package/dist/runtime/node-runner.d.ts.map +1 -0
- package/dist/runtime/node-runner.js +194 -0
- package/dist/runtime/node-shims.d.ts +24 -0
- package/dist/runtime/node-shims.d.ts.map +1 -0
- package/dist/runtime/node-shims.js +3019 -0
- package/dist/runtime/package-manager.d.ts +118 -0
- package/dist/runtime/package-manager.d.ts.map +1 -0
- package/dist/runtime/package-manager.js +420 -0
- package/dist/runtime/port-registry.d.ts +80 -0
- package/dist/runtime/port-registry.d.ts.map +1 -0
- package/dist/runtime/port-registry.js +166 -0
- package/dist/runtime/process-logs-api.d.ts +102 -0
- package/dist/runtime/process-logs-api.d.ts.map +1 -0
- package/dist/runtime/process-logs-api.js +253 -0
- package/dist/runtime/process-logs.d.ts +311 -0
- package/dist/runtime/process-logs.d.ts.map +1 -0
- package/dist/runtime/process-logs.js +656 -0
- package/dist/runtime/process-table.d.ts +65 -0
- package/dist/runtime/process-table.d.ts.map +1 -0
- package/dist/runtime/process-table.js +107 -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-repl.d.ts +66 -0
- package/dist/runtime/python-repl.d.ts.map +1 -0
- package/dist/runtime/python-repl.js +563 -0
- package/dist/runtime/python-runner.d.ts +50 -0
- package/dist/runtime/python-runner.d.ts.map +1 -0
- package/dist/runtime/python-runner.js +870 -0
- package/dist/runtime/repl-session.d.ts +160 -0
- package/dist/runtime/repl-session.d.ts.map +1 -0
- package/dist/runtime/repl-session.js +393 -0
- package/dist/runtime/require-resolver.d.ts +52 -0
- package/dist/runtime/require-resolver.d.ts.map +1 -0
- package/dist/runtime/require-resolver.js +690 -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-repl.d.ts +43 -0
- package/dist/runtime/ruby-repl.d.ts.map +1 -0
- package/dist/runtime/ruby-repl.js +229 -0
- package/dist/runtime/ruby-runner.d.ts +62 -0
- package/dist/runtime/ruby-runner.d.ts.map +1 -0
- package/dist/runtime/ruby-runner.js +737 -0
- package/dist/runtime/runtime-catalog.d.ts +99 -0
- package/dist/runtime/runtime-catalog.d.ts.map +1 -0
- package/dist/runtime/runtime-catalog.js +183 -0
- package/dist/runtime/runtime-registry.d.ts +136 -0
- package/dist/runtime/runtime-registry.d.ts.map +1 -0
- package/dist/runtime/runtime-registry.js +318 -0
- package/dist/runtime/streams.d.ts +13 -0
- package/dist/runtime/streams.d.ts.map +1 -0
- package/dist/runtime/streams.js +402 -0
- package/dist/runtime/wasi-instance.d.ts +190 -0
- package/dist/runtime/wasi-instance.d.ts.map +1 -0
- package/dist/runtime/wasi-instance.js +2044 -0
- package/dist/runtime/wasm-runner.d.ts +117 -0
- package/dist/runtime/wasm-runner.d.ts.map +1 -0
- package/dist/runtime/wasm-runner.js +705 -0
- package/dist/session/bindings.d.ts +168 -0
- package/dist/session/bindings.d.ts.map +1 -0
- package/dist/session/bindings.js +524 -0
- package/dist/session/ctx-exports.d.ts +16 -0
- package/dist/session/ctx-exports.d.ts.map +1 -0
- package/dist/session/ctx-exports.js +22 -0
- package/dist/session/diag.d.ts +62 -0
- package/dist/session/diag.d.ts.map +1 -0
- package/dist/session/diag.js +118 -0
- package/dist/session/fs-watch.d.ts +132 -0
- package/dist/session/fs-watch.d.ts.map +1 -0
- package/dist/session/fs-watch.js +255 -0
- package/dist/session/helpers.d.ts +150 -0
- package/dist/session/helpers.d.ts.map +1 -0
- package/dist/session/helpers.js +472 -0
- package/dist/session/hibernation.d.ts +145 -0
- package/dist/session/hibernation.d.ts.map +1 -0
- package/dist/session/hibernation.js +385 -0
- package/dist/session/init-phases.d.ts +87 -0
- package/dist/session/init-phases.d.ts.map +1 -0
- package/dist/session/init-phases.js +137 -0
- package/dist/session/init.d.ts +46 -0
- package/dist/session/init.d.ts.map +1 -0
- package/dist/session/init.js +3579 -0
- package/dist/session/keys.d.ts +56 -0
- package/dist/session/keys.d.ts.map +1 -0
- package/dist/session/keys.js +55 -0
- package/dist/session/nimbus-session.d.ts +434 -0
- package/dist/session/nimbus-session.d.ts.map +1 -0
- package/dist/session/nimbus-session.js +1084 -0
- package/dist/session/programmatic.d.ts +105 -0
- package/dist/session/programmatic.d.ts.map +1 -0
- package/dist/session/programmatic.js +326 -0
- package/dist/session/replica-routes.d.ts +68 -0
- package/dist/session/replica-routes.d.ts.map +1 -0
- package/dist/session/replica-routes.js +77 -0
- package/dist/session/routes.d.ts +29 -0
- package/dist/session/routes.d.ts.map +1 -0
- package/dist/session/routes.js +1331 -0
- package/dist/session/rpc.d.ts +323 -0
- package/dist/session/rpc.d.ts.map +1 -0
- package/dist/session/rpc.js +808 -0
- package/dist/session/state-store.d.ts +210 -0
- package/dist/session/state-store.d.ts.map +1 -0
- package/dist/session/state-store.js +459 -0
- package/dist/session/supervisor-rpc.d.ts +269 -0
- package/dist/session/supervisor-rpc.d.ts.map +1 -0
- package/dist/session/supervisor-rpc.js +437 -0
- package/dist/session/ws-hibernation-config.d.ts +64 -0
- package/dist/session/ws-hibernation-config.d.ts.map +1 -0
- package/dist/session/ws-hibernation-config.js +89 -0
- package/dist/session/ws.d.ts +95 -0
- package/dist/session/ws.d.ts.map +1 -0
- package/dist/session/ws.js +395 -0
- package/dist/shell/features.d.ts +410 -0
- package/dist/shell/features.d.ts.map +1 -0
- package/dist/shell/features.js +1885 -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 +3703 -0
- package/dist/stubs/lifo-ui.d.ts +10 -0
- package/dist/stubs/lifo-ui.d.ts.map +1 -0
- package/dist/stubs/lifo-ui.js +1 -0
- package/dist/tailwind-play.generated.d.ts +19 -0
- package/dist/tailwind-play.generated.d.ts.map +1 -0
- package/dist/tailwind-play.generated.js +18 -0
- package/dist/vfs/dev-provider.d.ts +64 -0
- package/dist/vfs/dev-provider.d.ts.map +1 -0
- package/dist/vfs/dev-provider.js +191 -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 +30 -0
- package/dist/vfs/path.d.ts.map +1 -0
- package/dist/vfs/path.js +41 -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 +1045 -0
- package/dist/vfs/sqlite-vfs.d.ts +435 -0
- package/dist/vfs/sqlite-vfs.d.ts.map +1 -0
- package/dist/vfs/sqlite-vfs.js +1670 -0
- package/dist/vfs/symlink-registry.d.ts +64 -0
- package/dist/vfs/symlink-registry.d.ts.map +1 -0
- package/dist/vfs/symlink-registry.js +137 -0
- package/dist/wrangler/nimbus-wrangler.d.ts +157 -0
- package/dist/wrangler/nimbus-wrangler.d.ts.map +1 -0
- package/dist/wrangler/nimbus-wrangler.js +931 -0
- package/package.json +77 -0
- package/public/_assets/cirrus-plugin-react.bundle.js +70740 -0
- package/public/_assets/esbuild-0.24.2.wasm +0 -0
- package/public/_assets/real-vite-bundle.js +101478 -0
- package/public/_assets/rollup.wasm +0 -0
- package/public/favicon.svg +8 -0
- package/public/index.html +565 -0
- package/public/s/index.html +2379 -0
- package/scripts/bundle-esbuild-wasm.mjs +244 -0
- package/scripts/bundle-facet-workers.mjs +137 -0
- package/scripts/bundle-git.mjs +118 -0
- package/scripts/bundle-npm-cjs.mjs +363 -0
- package/scripts/bundle-plugin-react.mjs +480 -0
- package/scripts/bundle-real-vite.mjs +959 -0
- package/scripts/bundle-runtime.mjs +600 -0
- package/scripts/bundle-tailwind-play.mjs +130 -0
- package/scripts/patch-lifo-ui.mjs +131 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* shell-features.ts — Shell preprocessor for pipes, redirects, operators,
|
|
3
|
+
* env var expansion, glob expansion, and quoted strings.
|
|
4
|
+
*
|
|
5
|
+
* Wraps the LIFO shell's command execution with Unix-like features.
|
|
6
|
+
* Called from nimbus-session.ts before dispatching to the registry.
|
|
7
|
+
*/
|
|
8
|
+
import type { SqliteVFS } from '../vfs/sqlite-vfs.js';
|
|
9
|
+
/**
|
|
10
|
+
* Parse a command line into tokens, respecting quotes.
|
|
11
|
+
* "hello world" → one token. 'don\'t' → one token.
|
|
12
|
+
*/
|
|
13
|
+
export declare function tokenize(input: string): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Expand $VAR and ${VAR} in a string using the env map.
|
|
16
|
+
*/
|
|
17
|
+
export declare function expandVars(input: string, env: Record<string, string>): string;
|
|
18
|
+
/**
|
|
19
|
+
* Expand glob patterns (* and ?) against VFS directory entries.
|
|
20
|
+
*/
|
|
21
|
+
export declare function expandGlobs(tokens: string[], cwd: string, vfs: SqliteVFS): string[];
|
|
22
|
+
interface ParsedSegment {
|
|
23
|
+
command: string;
|
|
24
|
+
redirectOut?: string;
|
|
25
|
+
redirectAppend?: string;
|
|
26
|
+
redirectErr?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Split a command line by operators (|, &&, ||, ;) respecting quotes.
|
|
30
|
+
* Returns segments with their operator type.
|
|
31
|
+
*/
|
|
32
|
+
export declare function splitOperators(input: string): {
|
|
33
|
+
segments: string[];
|
|
34
|
+
operators: string[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Parse redirects from a command string.
|
|
38
|
+
* Returns the clean command and any redirect targets.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseRedirects(cmd: string): ParsedSegment;
|
|
41
|
+
/**
|
|
42
|
+
* Parsed heredoc information extracted from a command line.
|
|
43
|
+
*/
|
|
44
|
+
export interface HeredocInfo {
|
|
45
|
+
/** The command line with the heredoc operator and delimiter removed */
|
|
46
|
+
command: string;
|
|
47
|
+
/** The delimiter word (without quotes) */
|
|
48
|
+
delimiter: string;
|
|
49
|
+
/** Whether the delimiter was quoted (no variable expansion) */
|
|
50
|
+
quoted: boolean;
|
|
51
|
+
/** Whether to strip leading tabs (<<- form) */
|
|
52
|
+
stripTabs: boolean;
|
|
53
|
+
/** Redirect target file, if `cat > file << DELIM` pattern */
|
|
54
|
+
redirectFile?: string;
|
|
55
|
+
/** Whether it's an append redirect >> */
|
|
56
|
+
redirectAppend?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Detect and parse a heredoc operator in a command line.
|
|
60
|
+
* Supports: << DELIM, << 'DELIM', << "DELIM", <<- DELIM, <<- 'DELIM'
|
|
61
|
+
*
|
|
62
|
+
* Returns null if no heredoc is found.
|
|
63
|
+
*/
|
|
64
|
+
export declare function parseHeredoc(input: string): HeredocInfo | null;
|
|
65
|
+
/**
|
|
66
|
+
* HeredocHandler — monkey-patches a Shell instance to support heredoc syntax.
|
|
67
|
+
*
|
|
68
|
+
* Usage: call `HeredocHandler.install(shell, terminal, vfs)` after creating the shell.
|
|
69
|
+
* All heredoc logic lives here in shell-features.ts; nimbus-session.ts only calls install().
|
|
70
|
+
*
|
|
71
|
+
* When the user types a command containing `<<`, the handler:
|
|
72
|
+
* 1. Intercepts executeLine, parses the heredoc
|
|
73
|
+
* 2. Enters accumulation mode — shows `> ` continuation prompt
|
|
74
|
+
* 3. Collects input lines until the delimiter is found
|
|
75
|
+
* 4. Executes the command with the accumulated content as stdin
|
|
76
|
+
* 5. For `cat > file << DELIM`, writes the content directly to the file
|
|
77
|
+
*
|
|
78
|
+
* Design notes:
|
|
79
|
+
* - The Shell from @lifo-sh/core calls `executeLine(line)` when the user
|
|
80
|
+
* presses Enter with non-empty input. For empty input, it calls
|
|
81
|
+
* `printPrompt()` directly. We patch both methods so that empty lines
|
|
82
|
+
* inside a heredoc body are properly captured.
|
|
83
|
+
* - During accumulation mode, the shell's normal line-editing (arrow keys,
|
|
84
|
+
* backspace, history, tab completion) still works for each content line.
|
|
85
|
+
* - The `> ` continuation prompt visually signals heredoc mode.
|
|
86
|
+
*/
|
|
87
|
+
export declare class HeredocHandler {
|
|
88
|
+
private shell;
|
|
89
|
+
private terminal;
|
|
90
|
+
private vfs;
|
|
91
|
+
private originalExecuteLine;
|
|
92
|
+
private originalPrintPrompt;
|
|
93
|
+
private originalHandleInput;
|
|
94
|
+
private active;
|
|
95
|
+
private heredocInfo;
|
|
96
|
+
private lines;
|
|
97
|
+
private historyLengthAtStart;
|
|
98
|
+
/** Safety limit to prevent unbounded memory growth */
|
|
99
|
+
private static readonly MAX_HEREDOC_LINES;
|
|
100
|
+
constructor(shell: any, terminal: any, vfs: any);
|
|
101
|
+
/**
|
|
102
|
+
* Install the heredoc handler on a Shell instance.
|
|
103
|
+
* Call once after the Shell is created.
|
|
104
|
+
*/
|
|
105
|
+
static install(shell: any, terminal: any, vfs: any): HeredocHandler;
|
|
106
|
+
/** Cancel heredoc accumulation and return to normal shell prompt. */
|
|
107
|
+
private _cancel;
|
|
108
|
+
private _patch;
|
|
109
|
+
private _startAccumulation;
|
|
110
|
+
/**
|
|
111
|
+
* Process a single heredoc content line (non-recursive).
|
|
112
|
+
* Returns true if this was the delimiter (heredoc is complete).
|
|
113
|
+
*/
|
|
114
|
+
private _processLine;
|
|
115
|
+
/**
|
|
116
|
+
* Called when executeLine fires during accumulation (user typed a line + Enter).
|
|
117
|
+
* Also called during paste processing.
|
|
118
|
+
*/
|
|
119
|
+
private _accumulateLine;
|
|
120
|
+
/**
|
|
121
|
+
* Drain the Shell's pasteQueue during heredoc accumulation.
|
|
122
|
+
* When a multi-line heredoc is pasted, all lines land in the paste queue.
|
|
123
|
+
* Uses an iterative loop (not recursive) to avoid stack overflow.
|
|
124
|
+
*/
|
|
125
|
+
private _drainPasteQueue;
|
|
126
|
+
private _finishHeredoc;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* BUG-SWEEP-2 (2026-05-11): @lifo-sh/core ≥0.5.5's shell parser does
|
|
130
|
+
* not support fd-to-fd redirects (`2>&1`, `>&2`, `<&0`). Encountering
|
|
131
|
+
* one raises `Expected Word but got Amp ('&')` from the parser and
|
|
132
|
+
* the whole pipeline fails.
|
|
133
|
+
*
|
|
134
|
+
* Real-world impact:
|
|
135
|
+
* - `pip install foo 2>&1 | tail -5` → parse error
|
|
136
|
+
* - `cmd 2>&1` (standard "merge stderr into stdout") → parse error
|
|
137
|
+
* - `echo error >&2` ("write to stderr") → parse error
|
|
138
|
+
*
|
|
139
|
+
* In Nimbus's execution model, stdout AND stderr both stream to the
|
|
140
|
+
* same terminal frame buffer (see WebSocketTerminal). `2>&1` is
|
|
141
|
+
* therefore a no-op (stderr is already on the same sink as stdout)
|
|
142
|
+
* and `>&2` is functionally the same as no-redirect. We rewrite both
|
|
143
|
+
* to empty so the parser sees a clean command line.
|
|
144
|
+
*
|
|
145
|
+
* What this DOES NOT solve:
|
|
146
|
+
* - `cmd 2>/path/to/file` — file-redirect of stderr. NOT supported
|
|
147
|
+
* downstream either (lifo-sh's parser accepts `2>file` but the
|
|
148
|
+
* interpreter at executeSimpleCommand only honours stdout
|
|
149
|
+
* redirection via vfs.writeFile). Out of scope; flag as docs gap.
|
|
150
|
+
* - `cmd > /dev/null` — /dev/null missing on prod. Separate fix.
|
|
151
|
+
*
|
|
152
|
+
* Install AFTER HeredocHandler so heredoc accumulation isn't disturbed
|
|
153
|
+
* (we only run when executeLine fires on a complete line).
|
|
154
|
+
*/
|
|
155
|
+
export declare class FdRedirectNormalizer {
|
|
156
|
+
private shell;
|
|
157
|
+
constructor(shell: any);
|
|
158
|
+
/** Install on a Shell instance. Idempotent. */
|
|
159
|
+
static install(shell: any): FdRedirectNormalizer;
|
|
160
|
+
private _patch;
|
|
161
|
+
/**
|
|
162
|
+
* Strip fd-to-fd redirects from a shell line. Preserves single-
|
|
163
|
+
* quoted substrings verbatim (user-intended literals are safe).
|
|
164
|
+
*
|
|
165
|
+
* Returns the rewritten line.
|
|
166
|
+
*/
|
|
167
|
+
static normalize(line: string): string;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* BUG-SWEEP-R3-2 (2026-05-11): @lifo-sh/core's parser doesn't support
|
|
171
|
+
* subshell grouping `(cmd1; cmd2)`. Pre-fix `(echo a; echo b)` raised
|
|
172
|
+
* `unexpected token '('`. Common shell idioms (`(cd /x && cmd)` for
|
|
173
|
+
* cd-scoped execution, pipeline grouping `(a; b) | c`) all failed.
|
|
174
|
+
*
|
|
175
|
+
* In bash, `(cmd1; cmd2)` runs in a subshell — its `cd`/var/env
|
|
176
|
+
* changes do NOT affect the parent. We approximate by:
|
|
177
|
+
* 1. Strip the outer `(...)` parens.
|
|
178
|
+
* 2. Save cwd + env before running.
|
|
179
|
+
* 3. Run the inner sequence.
|
|
180
|
+
* 4. Restore cwd + env.
|
|
181
|
+
*
|
|
182
|
+
* Approximation gap: pipe-to-group `(a; b) | c` we currently
|
|
183
|
+
* concatenate the group into a `{ a; b ; }` brace-group inline and
|
|
184
|
+
* let lifo-sh handle the pipe — but lifo-sh also doesn't support
|
|
185
|
+
* brace-groups. So we rewrite `(a; b) | c` to `a; b | c` which is
|
|
186
|
+
* NOT the same semantically (only b's output pipes). Pipe-after-
|
|
187
|
+
* group is documented as a remaining gap.
|
|
188
|
+
*
|
|
189
|
+
* Bare subshells `(a; b)` are fully supported via the cwd/env
|
|
190
|
+
* save-restore pattern.
|
|
191
|
+
*/
|
|
192
|
+
export declare class SubshellNormalizer {
|
|
193
|
+
private shell;
|
|
194
|
+
constructor(shell: any);
|
|
195
|
+
static install(shell: any): SubshellNormalizer;
|
|
196
|
+
private _patch;
|
|
197
|
+
/**
|
|
198
|
+
* Find top-level `(...)` groups. Quote-aware: skip parens inside
|
|
199
|
+
* 'single' or "double" or `backtick` strings. Returns array of
|
|
200
|
+
* `{start, end}` indices (start = opening paren, end = closing).
|
|
201
|
+
*/
|
|
202
|
+
static findTopLevelGroups(line: string): {
|
|
203
|
+
start: number;
|
|
204
|
+
end: number;
|
|
205
|
+
}[];
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* BUG-SWEEP-R3-3 (2026-05-11): @lifo-sh/core doesn't expand
|
|
209
|
+
* `{a,b,c}` brace expressions. Pre-fix `ls /x/*.{js,ts}` returned
|
|
210
|
+
* nothing because the literal `*.{js,ts}` doesn't match a glob shape.
|
|
211
|
+
*
|
|
212
|
+
* Bash semantics: brace expansion runs BEFORE filename expansion.
|
|
213
|
+
* echo a{1,2,3}b → a1b a2b a3b
|
|
214
|
+
* ls *.{js,ts} → expanded to two glob patterns, both fed to ls
|
|
215
|
+
*
|
|
216
|
+
* We implement the comma-list form (bash {1..5} sequence form is a
|
|
217
|
+
* separate feature; we skip it here as lower-impact).
|
|
218
|
+
*/
|
|
219
|
+
export declare class BraceExpander {
|
|
220
|
+
private shell;
|
|
221
|
+
constructor(shell: any);
|
|
222
|
+
static install(shell: any): BraceExpander;
|
|
223
|
+
private _patch;
|
|
224
|
+
/**
|
|
225
|
+
* Expand bash-style brace lists in a shell line. Quote-aware:
|
|
226
|
+
* literals inside single quotes are preserved verbatim. `${var}`
|
|
227
|
+
* parameter expansions are skipped (they don't contain commas
|
|
228
|
+
* at the top level of the braces).
|
|
229
|
+
*
|
|
230
|
+
* Strategy: tokenize on whitespace (preserving quoted tokens),
|
|
231
|
+
* expand each token, re-join with spaces.
|
|
232
|
+
*/
|
|
233
|
+
static expandBraces(line: string): string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* BUG-SWEEP-R3-4 (2026-05-11): @lifo-sh/core doesn't expand `$$`
|
|
237
|
+
* (PID) or `$0` (shell name). Pre-fix `echo $$` printed literal `$$`
|
|
238
|
+
* and `echo $0` printed empty. Common in shell scripts (PID for
|
|
239
|
+
* lockfiles, $0 for script-name-aware behaviour).
|
|
240
|
+
*
|
|
241
|
+
* Fix: rewrite `$$` → a stable per-session PID (we use the supervisor
|
|
242
|
+
* DO's spawn-counter so it's deterministic per session) and `$0` →
|
|
243
|
+
* the shell name (always `nimbus-sh`).
|
|
244
|
+
*
|
|
245
|
+
* NOT addressed: `$1`..`$9` positional params (only meaningful inside
|
|
246
|
+
* scripts/functions which lifo-sh handles already), `$#`, `$?` (real
|
|
247
|
+
* `$?` works through lifo-sh's lastExitCode env), `$@`, `$*`.
|
|
248
|
+
*/
|
|
249
|
+
export declare class DollarVarShim {
|
|
250
|
+
private shell;
|
|
251
|
+
private pid;
|
|
252
|
+
constructor(shell: any);
|
|
253
|
+
static install(shell: any): DollarVarShim;
|
|
254
|
+
private _patch;
|
|
255
|
+
/**
|
|
256
|
+
* Expand `$$` and `$0` in a shell line. Quote-aware: literals
|
|
257
|
+
* inside single quotes preserved. Double-quoted strings: variables
|
|
258
|
+
* DO expand (bash semantics).
|
|
259
|
+
*/
|
|
260
|
+
static expandDollarVars(line: string, pid: number): string;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* BUG-SWEEP-R3-5 (2026-05-11): lifo-sh's HeredocHandler accumulates
|
|
264
|
+
* lines verbatim — `$X` references inside an unquoted-delimiter
|
|
265
|
+
* heredoc don't expand. Bash semantics:
|
|
266
|
+
* cat <<EOF → variables expand
|
|
267
|
+
* cat <<'EOF' → no expansion (single-quoted delim)
|
|
268
|
+
*
|
|
269
|
+
* Our HeredocHandler installation already lives in features.ts but
|
|
270
|
+
* doesn't expand vars. We patch the accumulated content at submit
|
|
271
|
+
* time: substitute `$NAME` / `${NAME}` with env values when the
|
|
272
|
+
* delimiter is NOT single-quoted.
|
|
273
|
+
*
|
|
274
|
+
* The patch wraps shell.execute()'s string-content stage. We can't
|
|
275
|
+
* easily intercept the heredoc submit from outside the handler, so
|
|
276
|
+
* we attach a post-build hook that consults shell.env.
|
|
277
|
+
*
|
|
278
|
+
* Decision: rather than patching HeredocHandler (a class we own —
|
|
279
|
+
* src/shell/features.ts:HeredocHandler), expose a public
|
|
280
|
+
* `expandHeredocVars(content, env)` and call it from inside
|
|
281
|
+
* HeredocHandler._accumulateLine / submit logic.
|
|
282
|
+
*/
|
|
283
|
+
export declare function expandHeredocVars(content: string, env: Record<string, string>): string;
|
|
284
|
+
/**
|
|
285
|
+
* BUG-SWEEP-R4-4 (2026-05-11): backtick `` `cmd` `` command
|
|
286
|
+
* substitution. Pre-fix `echo \`date +%Y\`` printed literal
|
|
287
|
+
* '`date +%Y`'. `$(cmd)` form worked; backtick form didn't.
|
|
288
|
+
*
|
|
289
|
+
* bash supports both. Many real-world scripts use backticks.
|
|
290
|
+
*
|
|
291
|
+
* Approach: rewrite top-level backtick spans into `$(...)` form
|
|
292
|
+
* before lifo-sh's parser sees the line. Quote-aware:
|
|
293
|
+
* - inside single quotes, backticks are literal (preserve)
|
|
294
|
+
* - inside double quotes, backticks DO expand (rewrite)
|
|
295
|
+
* - inside backticks, escapes \\\` and \\\$ should be honored (we
|
|
296
|
+
* handle the simple case; nested backticks aren't supported)
|
|
297
|
+
*/
|
|
298
|
+
export declare class BacktickNormalizer {
|
|
299
|
+
private shell;
|
|
300
|
+
constructor(shell: any);
|
|
301
|
+
static install(shell: any): BacktickNormalizer;
|
|
302
|
+
private _patch;
|
|
303
|
+
/**
|
|
304
|
+
* Rewrite `cmd` → $(cmd). Quote-aware: single-quotes preserve
|
|
305
|
+
* literal backticks; double-quotes pass through and rewrite inside.
|
|
306
|
+
*/
|
|
307
|
+
static rewrite(line: string): string;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* LineEditorExtender — adds bash-readline-parity keybindings to the
|
|
311
|
+
* @lifo-sh/core Shell line editor.
|
|
312
|
+
*
|
|
313
|
+
* The vanilla Shell handles only a minimal set: ←/→/↑/↓, Home, End,
|
|
314
|
+
* Ctrl+A, Ctrl+E, Ctrl+C, Ctrl+D (EOF), Ctrl+U (whole-line wipe), Tab,
|
|
315
|
+
* Enter, Backspace, Delete. Every other readline binding (Ctrl+W,
|
|
316
|
+
* Ctrl+K, Ctrl+Y, Alt+B, Alt+F, Alt+D, Ctrl+←, Alt+. , Ctrl+R, etc.)
|
|
317
|
+
* gets dropped on the floor.
|
|
318
|
+
*
|
|
319
|
+
* This handler wraps `shell.handleInput` to recognise the missing
|
|
320
|
+
* sequences and apply their readline-spec semantics directly to
|
|
321
|
+
* `shell.lineBuffer` / `shell.cursorPos` / `shell.history`, then
|
|
322
|
+
* triggers `shell.redrawLine()` to re-render.
|
|
323
|
+
*
|
|
324
|
+
* Install AFTER HeredocHandler so the heredoc wrapper sees input
|
|
325
|
+
* first (its mode is exclusive); when heredoc isn't active our
|
|
326
|
+
* handler runs.
|
|
327
|
+
*
|
|
328
|
+
* Word boundary conventions (matches bash 5.x readline):
|
|
329
|
+
* - Ctrl+W (unix-word-rubout): whitespace boundary — bash override
|
|
330
|
+
* - Alt+Backspace (backward-kill-word): readline word `[A-Za-z0-9_]+`
|
|
331
|
+
* - Alt+B / Alt+F (backward/forward-word): readline word
|
|
332
|
+
* - Ctrl+← / Ctrl+→ (alias for word nav): readline word
|
|
333
|
+
* - Alt+D (kill-word): readline word
|
|
334
|
+
*
|
|
335
|
+
* Kill-ring: simple single-slot (the most-recent cut). Ctrl+Y yanks it.
|
|
336
|
+
*
|
|
337
|
+
* Ctrl+R sub-mode: enters reverse-i-search; capturing chars narrows
|
|
338
|
+
* the match against history; Enter runs the matched line; Esc/Ctrl+G
|
|
339
|
+
* aborts; another Ctrl+R steps to the next-older match.
|
|
340
|
+
*/
|
|
341
|
+
export declare class LineEditorExtender {
|
|
342
|
+
private shell;
|
|
343
|
+
private terminal;
|
|
344
|
+
private originalHandleInput;
|
|
345
|
+
/** Single-slot kill-ring. Set by Ctrl+W / Ctrl+K / Ctrl+U / Alt+Backspace / Alt+D. */
|
|
346
|
+
private killRing;
|
|
347
|
+
/** Yank-last-arg state — index into `history` (from the end), most
|
|
348
|
+
* recent = 0. Reset when the user types anything other than Alt+. */
|
|
349
|
+
private yankLastArgIndex;
|
|
350
|
+
/** Length of the inserted last-arg blob from the previous Alt+. press
|
|
351
|
+
* so a follow-up Alt+. can remove it and insert the older one. */
|
|
352
|
+
private yankLastArgInsertedLen;
|
|
353
|
+
/** Reverse-i-search sub-mode state. */
|
|
354
|
+
private rsearchActive;
|
|
355
|
+
private rsearchQuery;
|
|
356
|
+
/** History index (from end) of the currently-displayed match;
|
|
357
|
+
* -1 = no match, otherwise points at `history[history.length-1-idx]`. */
|
|
358
|
+
private rsearchMatchIndex;
|
|
359
|
+
/** Match readline's word definition: ASCII alphanumerics + underscore. */
|
|
360
|
+
private static isWordChar;
|
|
361
|
+
constructor(shell: any, terminal: any);
|
|
362
|
+
static install(shell: any, terminal: any): LineEditorExtender;
|
|
363
|
+
private _patch;
|
|
364
|
+
/**
|
|
365
|
+
* Returns true if the input was a recognised readline binding and we
|
|
366
|
+
* handled it; false to fall through to the original handler.
|
|
367
|
+
*/
|
|
368
|
+
private _handleBinding;
|
|
369
|
+
/** Move from `pos` to the start of the previous readline word. */
|
|
370
|
+
private _prevWordStart;
|
|
371
|
+
/** Move from `pos` to the end of the next readline word. */
|
|
372
|
+
private _nextWordEnd;
|
|
373
|
+
private _caseTransformWord;
|
|
374
|
+
private _yankLastArg;
|
|
375
|
+
private _rsearchEnter;
|
|
376
|
+
private _rsearchHandle;
|
|
377
|
+
/** Step the match index forward (older) and re-search from there. */
|
|
378
|
+
private _rsearchAdvance;
|
|
379
|
+
/** Find the most-recent history line containing the query. */
|
|
380
|
+
private _rsearchSearch;
|
|
381
|
+
private _rsearchCurrentMatch;
|
|
382
|
+
/** Render the search-prompt line. */
|
|
383
|
+
private _rsearchRender;
|
|
384
|
+
/**
|
|
385
|
+
* Exit the search sub-mode. If `restoreLine` is true, the line
|
|
386
|
+
* buffer is left as it was when search began (no insertion). The
|
|
387
|
+
* caller is expected to call `redrawLine()` afterward if needed.
|
|
388
|
+
*/
|
|
389
|
+
private _rsearchExit;
|
|
390
|
+
}
|
|
391
|
+
export interface ShellExecContext {
|
|
392
|
+
env: Record<string, string>;
|
|
393
|
+
cwd: string;
|
|
394
|
+
vfs: SqliteVFS;
|
|
395
|
+
/** Execute a single command — returns exit code */
|
|
396
|
+
runCommand: (cmd: string, args: string[], stdin?: string) => Promise<{
|
|
397
|
+
exitCode: number;
|
|
398
|
+
stdout: string;
|
|
399
|
+
}>;
|
|
400
|
+
/** Write to terminal */
|
|
401
|
+
writeStdout: (data: string) => void;
|
|
402
|
+
writeStderr: (data: string) => void;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Execute a full command line with pipes, redirects, operators, var expansion, and globs.
|
|
406
|
+
* Returns the exit code of the last command.
|
|
407
|
+
*/
|
|
408
|
+
export declare function executeCommandLine(input: string, ctx: ShellExecContext): Promise<number>;
|
|
409
|
+
export {};
|
|
410
|
+
//# sourceMappingURL=features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/shell/features.ts"],"names":[],"mappings":"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"}
|