@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,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* facet-pool.ts — Nimbus-specific wrapper over cloudflare-parallel.
|
|
3
|
+
*
|
|
4
|
+
* Adds on top of the vendored WorkerPool:
|
|
5
|
+
* 1. **Stable-slot isolate reuse**. Upstream's #counter++ gives every
|
|
6
|
+
* dispatch a fresh isolate — fine for one-off AI calls, terrible for
|
|
7
|
+
* running 67 npm tarball extractions (cold-start dominates). We pin
|
|
8
|
+
* each job to `slot = cursor % concurrency` and use stable loader
|
|
9
|
+
* IDs `nfp:${fnHash}:slot-${i}`, so a pool of concurrency=4 keeps at
|
|
10
|
+
* most 4 warm isolates rather than N fresh ones.
|
|
11
|
+
* 2. **Nimbus defaults**: compatibilityDate = CF_COMPAT_DATE (matches
|
|
12
|
+
* the supervisor worker), compatibilityFlags = ['nodejs_compat'],
|
|
13
|
+
* globalOutbound = undefined (inherit parent network so the facet can
|
|
14
|
+
* reach https://registry.npmjs.org without a proxy binding).
|
|
15
|
+
* 3. **SupervisorRPC autoinjection**. The pool grabs a SupervisorRPC
|
|
16
|
+
* stub from `getCtxExports()` and forwards it as `env.SUPERVISOR` to
|
|
17
|
+
* every facet, same pattern as git-network-facet.ts. Callers can add
|
|
18
|
+
* more bindings via `extraBindings`.
|
|
19
|
+
* 4. **Fail-loud defaults**: timeout 60s, retries 0, onError 'throw'.
|
|
20
|
+
* Caller opts in to leniency.
|
|
21
|
+
*
|
|
22
|
+
* This wrapper does NOT re-export the upstream surface. Users import
|
|
23
|
+
* NimbusLoaderPool via src/parallel/index.ts; the vendored directory is
|
|
24
|
+
* an implementation detail.
|
|
25
|
+
*/
|
|
26
|
+
/** Options handed to NimbusLoaderPool's constructor. */
|
|
27
|
+
export interface NimbusLoaderPoolOptions {
|
|
28
|
+
/** Maximum concurrent in-flight facets. Default 4. */
|
|
29
|
+
concurrency?: number;
|
|
30
|
+
/** Per-task timeout in ms. Default 60_000. */
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Per-task retry attempts AFTER the initial failure. Default 0.
|
|
34
|
+
* Set to a small number only if transient RPC errors are common.
|
|
35
|
+
*/
|
|
36
|
+
retries?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Additional bindings forwarded to each facet. These merge on top of the
|
|
39
|
+
* default `{ SUPERVISOR: SupervisorRPC({ doId, pid:0 }) }`. Use this to
|
|
40
|
+
* give facets access to KV, R2, AI, or additional supervisor-level APIs.
|
|
41
|
+
*/
|
|
42
|
+
extraBindings?: Record<string, unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* Optional tag used in loader IDs for debugging (e.g. "npm-install").
|
|
45
|
+
* Does NOT affect isolate identity — same fn + same tag = same slot.
|
|
46
|
+
*/
|
|
47
|
+
tag?: string;
|
|
48
|
+
/**
|
|
49
|
+
* If true, omit the default SupervisorRPC binding. Use this for pools
|
|
50
|
+
* that don't need DO callbacks (e.g. a pure CPU compute pool).
|
|
51
|
+
*/
|
|
52
|
+
omitSupervisor?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Override the `doId` baked into the auto-injected SUPERVISOR binding.
|
|
55
|
+
* Default: `ctx.id.toString()` (the DO that constructs the pool).
|
|
56
|
+
*
|
|
57
|
+
* Used by NimbusFanoutPool's peer-DO branch (POC B): peer DOs
|
|
58
|
+
* construct their per-task NimbusLoaderPool from inside
|
|
59
|
+
* `_rpcFanoutExecute`, where `ctx` is the PEER DO's ctx. Without this
|
|
60
|
+
* override the peer's auto-injected SUPERVISOR routes back to the
|
|
61
|
+
* peer DO itself — so writes (e.g. install-batch-facet's
|
|
62
|
+
* writeBatchStream) land in the peer's VFS instead of the
|
|
63
|
+
* COORDINATOR's. The user's terminal session is on the coordinator;
|
|
64
|
+
* writes-to-peer are invisible. See INSTALL-HONESTY-retro.md.
|
|
65
|
+
*
|
|
66
|
+
* When set, the auto-injected SupervisorRPC uses this string as the
|
|
67
|
+
* `props.doId`, routing all SUPERVISOR.* calls back to the
|
|
68
|
+
* coordinator. Effective only when `omitSupervisor !== true`.
|
|
69
|
+
*/
|
|
70
|
+
supervisorDoIdOverride?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Raw JavaScript source prepended to every generated worker module.
|
|
73
|
+
* Lets callers inject helpers that cannot be captured via `context`
|
|
74
|
+
* (which is JSON-only) — typically a bundled dependency like a tar
|
|
75
|
+
* parser. The user function can reference top-level names declared in
|
|
76
|
+
* the preamble as if they were in lexical scope.
|
|
77
|
+
*
|
|
78
|
+
* Example: `preamble: 'export const parse = ...; const helper = ...;'`
|
|
79
|
+
* — the preamble runs at module-load time; any side effects happen
|
|
80
|
+
* inside the facet isolate.
|
|
81
|
+
*
|
|
82
|
+
* Preamble text is bytes-stable for a given pool — it's part of the
|
|
83
|
+
* loader-cache key (fnHash), so changing the preamble invalidates all
|
|
84
|
+
* warm slots.
|
|
85
|
+
*/
|
|
86
|
+
preamble?: string;
|
|
87
|
+
/**
|
|
88
|
+
* WebAssembly modules to ship into the facet via the LOADER's
|
|
89
|
+
* `modules` map. Map keys are module specifier paths (e.g.
|
|
90
|
+
* `'esbuild.wasm'`); values are the raw bytes.
|
|
91
|
+
*
|
|
92
|
+
* Workerd registers each entry as `{ wasm: ArrayBuffer }` in the
|
|
93
|
+
* worker's modules map. The pool prepends a static
|
|
94
|
+
* `import __NIMBUS_WASM_<id> from './<key>';` to the generated
|
|
95
|
+
* worker.js so workerd compiles each at module-load (startup phase,
|
|
96
|
+
* where wasm code generation is permitted). The compiled Modules
|
|
97
|
+
* are exposed via `globalThis.__NIMBUS_WASM[<key>]` for the user
|
|
98
|
+
* function to read at request time.
|
|
99
|
+
*
|
|
100
|
+
* Why this works when other paths don't:
|
|
101
|
+
* - request-time `WebAssembly.compile()` — disallowed by workerd
|
|
102
|
+
* in this deploy.
|
|
103
|
+
* - request-time RPC of a pre-compiled Module — workerd
|
|
104
|
+
* structured-clone refuses ("Unable to deserialize cloned data").
|
|
105
|
+
* - inlining bytes in the preamble — 16 MiB string per dispatch
|
|
106
|
+
* OOMs the supervisor at module-source allocation time.
|
|
107
|
+
* - LOADER modules-map (this) — bytes ride INSIDE the worker code
|
|
108
|
+
* blob; workerd compiles wasm during its own startup pipeline,
|
|
109
|
+
* never crossing structured-clone, never executing JS eval.
|
|
110
|
+
*
|
|
111
|
+
* The bytes ARE part of the loader-cache key (workerd hashes the
|
|
112
|
+
* whole WorkerCode), so changing the wasm bytes invalidates warm
|
|
113
|
+
* slots — desirable when the bundled wasm version changes.
|
|
114
|
+
*/
|
|
115
|
+
wasmModules?: Record<string, ArrayBuffer>;
|
|
116
|
+
}
|
|
117
|
+
/** Per-call override (merged with pool defaults). */
|
|
118
|
+
export interface NimbusLoaderCallOptions {
|
|
119
|
+
timeoutMs?: number;
|
|
120
|
+
retries?: number;
|
|
121
|
+
/**
|
|
122
|
+
* Extra module-level constants injected into the generated worker source
|
|
123
|
+
* BEFORE the user function is declared. JSON-serializable only.
|
|
124
|
+
*/
|
|
125
|
+
context?: Record<string, unknown>;
|
|
126
|
+
/**
|
|
127
|
+
* Per-call WebAssembly modules. Merged with the pool's
|
|
128
|
+
* constructor-time `wasmModules` at dispatch time and shipped via
|
|
129
|
+
* the LOADER's modules map (same `{ wasm: ArrayBuffer }` shape).
|
|
130
|
+
*
|
|
131
|
+
* Shipping path validated empirically against prod (see
|
|
132
|
+
* /workspace/.seal-internal/2026-05-10-wasm-csp/findings.md):
|
|
133
|
+
* `WebAssembly.instantiate(bytes)` is blocked at request-time but
|
|
134
|
+
* the LOADER-modules path compiles bytes during the inner
|
|
135
|
+
* worker's module-load phase, where wasm code generation IS
|
|
136
|
+
* permitted. The bytes ride INSIDE the worker code blob; workerd
|
|
137
|
+
* never crosses structured-clone, never executes user-eval.
|
|
138
|
+
*
|
|
139
|
+
* Cache key impact: per-call bytes are fingerprinted (length +
|
|
140
|
+
* first/last byte per module) and folded into the loader cache
|
|
141
|
+
* key. Identical bytes on the same slot → warm reuse; different
|
|
142
|
+
* bytes → fresh isolate. The pool's existing `wasmHash` field
|
|
143
|
+
* captures CONSTRUCTOR-time bytes only; per-call bytes get an
|
|
144
|
+
* independent fingerprint mixed into the slot id at dispatch.
|
|
145
|
+
*
|
|
146
|
+
* Naming collision rule: a per-call key MUST NOT collide with a
|
|
147
|
+
* constructor-time key (after identifier sanitisation). The
|
|
148
|
+
* dispatch path throws BindingError if it does — silently
|
|
149
|
+
* shadowing the constructor's wasm would break the cache-key
|
|
150
|
+
* invariant downstream callers rely on.
|
|
151
|
+
*
|
|
152
|
+
* Used by the `wasm-runner` shell command in src/runtime/
|
|
153
|
+
* wasm-runner.ts to ship user-supplied .wasm bytes from VFS into
|
|
154
|
+
* a fresh facet isolate per invocation.
|
|
155
|
+
*/
|
|
156
|
+
wasmModules?: Record<string, ArrayBuffer>;
|
|
157
|
+
}
|
|
158
|
+
/** Per-map override. Adds onError strategy for partial failures. */
|
|
159
|
+
export interface NimbusLoaderMapOptions extends NimbusLoaderCallOptions {
|
|
160
|
+
/** Concurrency override for this call. Defaults to pool's concurrency. */
|
|
161
|
+
concurrency?: number;
|
|
162
|
+
/**
|
|
163
|
+
* What to do when an individual item fails:
|
|
164
|
+
* - 'throw' (default): reject whole map on first failure.
|
|
165
|
+
* - 'null': replace failed items with null in the result array.
|
|
166
|
+
* - 'skip': omit failed items from the result array.
|
|
167
|
+
* We default to 'throw' — install-time failures are not silently ignored.
|
|
168
|
+
*/
|
|
169
|
+
onError?: 'throw' | 'null' | 'skip';
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Nimbus-scoped parallel dispatch over `env.LOADER`. Tasks are pure
|
|
173
|
+
* functions whose last argument is an `env` object containing the
|
|
174
|
+
* forwarded bindings (default: `{ SUPERVISOR }`).
|
|
175
|
+
*
|
|
176
|
+
* Typical use:
|
|
177
|
+
*
|
|
178
|
+
* const pool = new NimbusLoaderPool(env, ctx, {
|
|
179
|
+
* concurrency: 4,
|
|
180
|
+
* tag: 'npm-install',
|
|
181
|
+
* });
|
|
182
|
+
* const results = await pool.map(
|
|
183
|
+
* async (pkg, env) => env.SUPERVISOR.writeBatch(buildPayload(pkg)),
|
|
184
|
+
* toFetch,
|
|
185
|
+
* );
|
|
186
|
+
*/
|
|
187
|
+
export declare class NimbusLoaderPool {
|
|
188
|
+
#private;
|
|
189
|
+
private readonly loader;
|
|
190
|
+
private readonly concurrency;
|
|
191
|
+
private readonly defaultTimeoutMs;
|
|
192
|
+
private readonly defaultRetries;
|
|
193
|
+
private readonly tag;
|
|
194
|
+
private readonly bindings;
|
|
195
|
+
private readonly preamble;
|
|
196
|
+
private readonly preambleHash;
|
|
197
|
+
/**
|
|
198
|
+
* WASM modules to ship in the LOADER `modules` map. See
|
|
199
|
+
* NimbusLoaderPoolOptions.wasmModules for the rationale. Stored in
|
|
200
|
+
* insertion order so the per-import preamble we generate matches
|
|
201
|
+
* across pool dispatches (cache-key stability).
|
|
202
|
+
*/
|
|
203
|
+
private readonly wasmModules;
|
|
204
|
+
/** Hash of (name + byte length + first/last bytes) of every wasm
|
|
205
|
+
* module, folded into the loader cache key so changes invalidate
|
|
206
|
+
* warm slots. Hashing the FULL bytes would be O(20+ MiB) per dispatch
|
|
207
|
+
* and is unnecessary — wasm bytes are pinned at deploy time, the
|
|
208
|
+
* length+endpoints are a strong-enough fingerprint. */
|
|
209
|
+
private readonly wasmHash;
|
|
210
|
+
/**
|
|
211
|
+
* Short prefix of the owning DO's id, baked into the loader.get()
|
|
212
|
+
* cache key so warm isolates are scoped to ONE session. Without this,
|
|
213
|
+
* session A's pool and session B's pool (same `tag` + `fnHash`) share
|
|
214
|
+
* an isolate — which means B's writeBatch RPCs routed through A's
|
|
215
|
+
* env.SUPERVISOR binding (minted with A's doId at construction
|
|
216
|
+
* time). B's install reports success but the writes land in A's VFS,
|
|
217
|
+
* leaving B with only the git-clone seed files (~119 instead of ~1491).
|
|
218
|
+
* 12 chars is enough entropy for DO ids to collide-free per process.
|
|
219
|
+
*/
|
|
220
|
+
private readonly doIdShort;
|
|
221
|
+
constructor(env: any, ctx: DurableObjectState, opts?: NimbusLoaderPoolOptions);
|
|
222
|
+
/** Effective concurrency used when no per-call override is supplied. */
|
|
223
|
+
get defaultConcurrency(): number;
|
|
224
|
+
/**
|
|
225
|
+
* Run `fn` once with `arg` on a slot isolate. Returns the result or
|
|
226
|
+
* throws TimeoutError / RetryExhaustedError / ExecutionError.
|
|
227
|
+
*/
|
|
228
|
+
submit<T, R>(fn: (arg: T, env: any) => R | Promise<R>, arg: T, opts?: NimbusLoaderCallOptions): Promise<Awaited<R>>;
|
|
229
|
+
/**
|
|
230
|
+
* Run `fn` on every item in `items`, at most `concurrency` at a time,
|
|
231
|
+
* pinned to stable slots so warm isolates are reused.
|
|
232
|
+
*
|
|
233
|
+
* Results are returned in input order. Failure handling per `onError`.
|
|
234
|
+
*/
|
|
235
|
+
map<T, R>(fn: (item: T, env: any) => R | Promise<R>, items: T[], opts?: NimbusLoaderMapOptions): Promise<Array<Awaited<R> | null>>;
|
|
236
|
+
/**
|
|
237
|
+
* Same shape as `map`, but accepts a pre-serialized function source
|
|
238
|
+
* string instead of a live function reference. Used by
|
|
239
|
+
* `NimbusFanoutPool`'s peer-DO leg, where the function was already
|
|
240
|
+
* serialized on the coordinator side and forwarded over RPC.
|
|
241
|
+
*
|
|
242
|
+
* The fnSource MUST be the output of `serializeFunction(fn)`
|
|
243
|
+
* (typically forwarded directly from a coordinator RPC). Bytes-
|
|
244
|
+
* stable invariants:
|
|
245
|
+
* - `fnHash = hashSource(fnSource)` must be deterministic so
|
|
246
|
+
* warm slots are correctly keyed.
|
|
247
|
+
* - `fnSource` must NOT reference `this` — same rule as
|
|
248
|
+
* `serializeFunction`.
|
|
249
|
+
*
|
|
250
|
+
* No fn-validation runs here (it already ran on the coordinator);
|
|
251
|
+
* the peer trusts the caller to forward a valid serialization.
|
|
252
|
+
*/
|
|
253
|
+
mapSource<T, R>(fnSource: string, items: T[], opts?: NimbusLoaderMapOptions): Promise<Array<Awaited<R> | null>>;
|
|
254
|
+
/**
|
|
255
|
+
* Release any RPC stubs held by the pool. Call this once the caller
|
|
256
|
+
* is done with the pool (post-`map`/`submit`) so the underlying
|
|
257
|
+
* stubs don't linger in workerd's deferred-destruction queue.
|
|
258
|
+
*
|
|
259
|
+
* Primary target: the SUPERVISOR binding stub we minted at
|
|
260
|
+
* construction time (via `ctxExports.SupervisorRPC({props})`). It's
|
|
261
|
+
* a cross-isolate RPC stub — without explicit disposal it stays
|
|
262
|
+
* referenced until the parent isolate's event-handler context
|
|
263
|
+
* finishes, which during npm install means "until the whole install
|
|
264
|
+
* completes" — long enough to accumulate alongside other leaked
|
|
265
|
+
* stubs and trip the QueueState::ACTIVE fatal.
|
|
266
|
+
*
|
|
267
|
+
* Safe to call more than once; idempotent.
|
|
268
|
+
*/
|
|
269
|
+
dispose(): void;
|
|
270
|
+
}
|
|
271
|
+
/** Re-export the subset of error types callers need to catch. */
|
|
272
|
+
export { BindingError, ExecutionError, RetryExhaustedError, TimeoutError, } from './vendor/errors.js';
|
|
273
|
+
//# sourceMappingURL=loader-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-pool.d.ts","sourceRoot":"","sources":["../../src/loaders/loader-pool.ts"],"names":[],"mappings":"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"}
|