@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,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* node-runner.ts — Always-fresh-isolate dispatch for `node` and `bun`.
|
|
3
|
+
*
|
|
4
|
+
* Architectural promise (post fresh-isolate-bun-behavioral wave)
|
|
5
|
+
* ─────────────────────────────────────────────────────────────
|
|
6
|
+
* Every external runtime invocation (`node script`, `node -e`,
|
|
7
|
+
* `node --version`, `bun X`, `npx X`) is dispatched into a FRESH
|
|
8
|
+
* Worker Loader isolate. There is NO content-sniffing heuristic; the
|
|
9
|
+
* only routing signal is argv flags that explicitly mean "this is
|
|
10
|
+
* supposed to be long-lived" (`--watch`, `--inspect`, `--inspect-brk`).
|
|
11
|
+
*
|
|
12
|
+
* Two execution modes
|
|
13
|
+
* ───────────────────
|
|
14
|
+
* short — `facetMgr.exec(code, opts)`. Per-call LOADER.get(codeId)
|
|
15
|
+
* creates a fresh isolate keyed on hash(code+bundle+manifest).
|
|
16
|
+
* Output is streamed back via per-pid child DO Facet's
|
|
17
|
+
* supervisor RPC (`_rpcStdout` / `_rpcStderr`); supervisor
|
|
18
|
+
* awaits and returns the consolidated {exitCode, stdout,
|
|
19
|
+
* stderr}. The facet is deleted at completion.
|
|
20
|
+
*
|
|
21
|
+
* long — `facetMgr.spawn(workerCode, command, cwd)`. Fire-and-
|
|
22
|
+
* forget LOADER.load(). Returns {pid, facetStub} immediately;
|
|
23
|
+
* the shell prints a `[started (long-running): pid=N
|
|
24
|
+
* cmd=...]` notice and returns. The facet outlives the
|
|
25
|
+
* supervisor RPC until killed or evicted.
|
|
26
|
+
*
|
|
27
|
+
* Routing
|
|
28
|
+
* ───────
|
|
29
|
+
* args.includes('--watch' | '--inspect' | '--inspect-brk') → long
|
|
30
|
+
* default → short
|
|
31
|
+
*
|
|
32
|
+
* The previous `detectLongRunning(code, args)` content-regex sniff
|
|
33
|
+
* (deprecated) is removed. False-positives (a script that *imports*
|
|
34
|
+
* http but exits quickly) used to fork unnecessarily; with
|
|
35
|
+
* argv-only routing, the user gets the inline behaviour they expect
|
|
36
|
+
* unless they explicitly opted into long-running with a flag.
|
|
37
|
+
*
|
|
38
|
+
* For scripts that don't terminate but also don't carry one of the
|
|
39
|
+
* argv flags (e.g. an http.listen with no --watch), `facetMgr.exec`'s
|
|
40
|
+
* 5-minute timeout caps the worst case. The supervisor returns the
|
|
41
|
+
* timeout exit code; the facet is torn down. Documented trade-off.
|
|
42
|
+
*
|
|
43
|
+
* Anti-requirements observed
|
|
44
|
+
* ──────────────────────────
|
|
45
|
+
* - NO setTimeout / sleep on hot paths.
|
|
46
|
+
* - NO fallback to in-supervisor execution. facetMgr.exec /
|
|
47
|
+
* facetMgr.spawn throw if env.LOADER is missing.
|
|
48
|
+
* - NO content-sniffing heuristic. argv-only routing.
|
|
49
|
+
*
|
|
50
|
+
* Cold-start (measured against prod 9d30dc95):
|
|
51
|
+
* first-run `node -e` : 152–608 ms (warm-isolate cold case)
|
|
52
|
+
* warm `node -e` (median) : 102 ms
|
|
53
|
+
* warm `node script.js` : ~50–100 ms
|
|
54
|
+
* All under the 250ms warm-pool gate; no warm-pool needed.
|
|
55
|
+
*/
|
|
56
|
+
import { resolveLongRunningPort } from './long-running-handle.js';
|
|
57
|
+
/**
|
|
58
|
+
* Argv-only long-running detection. The ONLY signals we honour:
|
|
59
|
+
* --watch (node --watch / bun --watch)
|
|
60
|
+
* --inspect (node --inspect)
|
|
61
|
+
* --inspect-brk (node --inspect-brk)
|
|
62
|
+
*
|
|
63
|
+
* No content sniff; no heuristic over the script source. False-positive
|
|
64
|
+
* class is gone. False-negative class is "user runs a server without
|
|
65
|
+
* --watch and the supervisor RPC blocks for 5 min" — accepted; users
|
|
66
|
+
* are guided in docs to add `--watch` for keep-alive servers OR rely
|
|
67
|
+
* on the 5-min timeout to recover.
|
|
68
|
+
*/
|
|
69
|
+
export function isLongRunningInvocation(args) {
|
|
70
|
+
for (const a of args) {
|
|
71
|
+
if (a === '--watch')
|
|
72
|
+
return true;
|
|
73
|
+
if (a === '--inspect')
|
|
74
|
+
return true;
|
|
75
|
+
if (a === '--inspect-brk')
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Build a small Worker Loader entrypoint that wraps the user's `code`
|
|
82
|
+
* for the long-running fork path. The entrypoint exports a fetch
|
|
83
|
+
* handler stub (FacetManager.spawn requires it) that returns 404 for
|
|
84
|
+
* everything; the user's code runs once at module init.
|
|
85
|
+
*/
|
|
86
|
+
function buildLongRunningEntrypoint(code) {
|
|
87
|
+
const safeCode = JSON.stringify(code);
|
|
88
|
+
return [
|
|
89
|
+
'async function __nimbusDispatchHttp(req) {',
|
|
90
|
+
' const ports = globalThis.__portRegistry;',
|
|
91
|
+
' const hinted = Number(req.headers.get("X-Nimbus-Port") || 0);',
|
|
92
|
+
' const server = ports && (ports.get(hinted) || ports.values().next().value);',
|
|
93
|
+
' if (!server || typeof server._handleRequest !== "function") {',
|
|
94
|
+
' return new Response("Nimbus: no HTTP server is listening in this process", { status: 502 });',
|
|
95
|
+
' }',
|
|
96
|
+
' const url = new URL(req.url);',
|
|
97
|
+
' const headers = {};',
|
|
98
|
+
' req.headers.forEach((v, k) => { headers[k] = v; });',
|
|
99
|
+
' let body = "";',
|
|
100
|
+
' if (req.method !== "GET" && req.method !== "HEAD") body = await req.text();',
|
|
101
|
+
' const res = server._handleRequest(url.pathname + url.search, req.method, headers, body);',
|
|
102
|
+
' if (!res._ended) {',
|
|
103
|
+
' await new Promise((resolve) => {',
|
|
104
|
+
' try { res.on("finish", resolve); } catch { resolve(); }',
|
|
105
|
+
' setTimeout(resolve, 5000);',
|
|
106
|
+
' });',
|
|
107
|
+
' }',
|
|
108
|
+
' return new Response((res._body || []).join(""), { status: res.statusCode || 200, headers: res.headers || {} });',
|
|
109
|
+
'}',
|
|
110
|
+
'export default {',
|
|
111
|
+
' async fetch(req) { return __nimbusDispatchHttp(req); },',
|
|
112
|
+
' async handleHttpRequest(req) { return __nimbusDispatchHttp(req); }',
|
|
113
|
+
'};',
|
|
114
|
+
'try {',
|
|
115
|
+
' // eslint-disable-next-line no-new-func',
|
|
116
|
+
' new Function(' + safeCode + ')();',
|
|
117
|
+
'} catch (e) {',
|
|
118
|
+
' console.error("[long-running] startup error:", e && e.message ? e.message : String(e));',
|
|
119
|
+
'}',
|
|
120
|
+
].join('\n');
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Always-fresh-isolate dispatcher. Replaces the previous
|
|
124
|
+
* `runNodeScript` content-sniff variant. Used by both `node` and
|
|
125
|
+
* `bun` shell handlers.
|
|
126
|
+
*/
|
|
127
|
+
export async function runFresh(facetMgr, code, opts) {
|
|
128
|
+
const args = opts.argv || [];
|
|
129
|
+
if (!isLongRunningInvocation(args)) {
|
|
130
|
+
// Short path: fresh-isolate-per-call via facetMgr.exec.
|
|
131
|
+
// LOADER.get(codeId) keyed on hash(code+bundle+manifest) — every
|
|
132
|
+
// invocation gets a fresh isolate; warm slots are reused only
|
|
133
|
+
// for byte-identical re-invocations.
|
|
134
|
+
const r = await facetMgr.exec(code, opts);
|
|
135
|
+
return {
|
|
136
|
+
exitCode: r.exitCode,
|
|
137
|
+
stdout: r.stdout,
|
|
138
|
+
stderr: r.stderr,
|
|
139
|
+
longRunning: false,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Long path: argv flag --watch/--inspect/--inspect-brk explicitly
|
|
143
|
+
// opts in. Fork to a long-lived Worker Loader via facetMgr.spawn
|
|
144
|
+
// (LOADER.load — one-shot, not cached). Returns immediately with
|
|
145
|
+
// {pid, facetStub}.
|
|
146
|
+
const command = opts.command || `node ${opts.filename || '<script>'}`;
|
|
147
|
+
const workerCode = buildLongRunningEntrypoint(code);
|
|
148
|
+
const cwd = opts.cwd || '/home/user';
|
|
149
|
+
let spawned;
|
|
150
|
+
const port = resolveLongRunningPort({
|
|
151
|
+
argv: args,
|
|
152
|
+
env: opts.env,
|
|
153
|
+
fallback: 3000,
|
|
154
|
+
});
|
|
155
|
+
try {
|
|
156
|
+
if (typeof facetMgr.spawnNode === 'function') {
|
|
157
|
+
spawned = await facetMgr.spawnNode(code, {
|
|
158
|
+
argv: args,
|
|
159
|
+
env: opts.env,
|
|
160
|
+
cwd,
|
|
161
|
+
filename: opts.filename,
|
|
162
|
+
dirname: opts.dirname,
|
|
163
|
+
command,
|
|
164
|
+
port,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
spawned = facetMgr.spawn(workerCode, command, cwd, { port });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
// Hard-fail per anti-requirement: missing env.LOADER throws here.
|
|
173
|
+
return {
|
|
174
|
+
exitCode: 1,
|
|
175
|
+
stdout: '',
|
|
176
|
+
stderr: `runFresh: long-running fork failed: ${e?.message ?? String(e)}\n`,
|
|
177
|
+
longRunning: true,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const noticeLine = `\x1b[2m[started (long-running): pid=${spawned.pid} cmd="${command}"]\x1b[0m\n`;
|
|
181
|
+
return {
|
|
182
|
+
exitCode: 0,
|
|
183
|
+
stdout: noticeLine,
|
|
184
|
+
stderr: '',
|
|
185
|
+
spawnedPid: spawned.pid,
|
|
186
|
+
longRunning: true,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* BACKWARD-COMPAT shim. The arch-gaps wave's `runNodeScript` is now an
|
|
191
|
+
* alias for `runFresh` so the call sites in src/session/init.ts don't
|
|
192
|
+
* need to change in this commit.
|
|
193
|
+
*/
|
|
194
|
+
export const runNodeScript = runFresh;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* node-shims.ts — Nimbus v2.0 Node.js runtime shims for dynamic workers.
|
|
3
|
+
*
|
|
4
|
+
* Generates a raw JS string embedded in facet code. Provides:
|
|
5
|
+
* - fs: full sync/async/promises/streams VFS-backed filesystem
|
|
6
|
+
* - path: complete POSIX path operations
|
|
7
|
+
* - os/process: Linux edge environment simulation
|
|
8
|
+
* - Buffer: Uint8Array wrapper with encoding support
|
|
9
|
+
* - events: full EventEmitter
|
|
10
|
+
* - stream: real Readable/Writable/Transform/Duplex with backpressure
|
|
11
|
+
* - crypto: createHash (FNV-1a sync, SubtleCrypto async), randomBytes/UUID
|
|
12
|
+
* - zlib: real gzip/gunzip/deflate via CompressionStream/DecompressionStream
|
|
13
|
+
* - dns: real DNS resolution via Cloudflare DNS-over-HTTPS
|
|
14
|
+
* - http: virtual server with port registry for supervisor routing
|
|
15
|
+
* - https: fetch()-backed request/get
|
|
16
|
+
* - net: Socket/Server with connect/write/end
|
|
17
|
+
* - child_process: ChildProcess objects (execution requires supervisor RPC)
|
|
18
|
+
* - assert, util, url, querystring, string_decoder, readline, tty, timers
|
|
19
|
+
*
|
|
20
|
+
* VFS access: reads from __vfsBundle (pre-bundled by FacetManager),
|
|
21
|
+
* writes to __vfsWrites (flushed back to VFS on completion).
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateShimsCode(): string;
|
|
24
|
+
//# sourceMappingURL=node-shims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-shims.d.ts","sourceRoot":"","sources":["../../src/runtime/node-shims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA2BH,wBAAgB,iBAAiB,IAAI,MAAM,CA65F1C"}
|