@nimbus-sh/worker 0.9.0 → 0.11.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/NOTICE.md +5 -0
- package/README.md +10 -0
- package/dist/_shared/session-router.d.ts +7 -0
- package/dist/_shared/session-router.d.ts.map +1 -1
- package/dist/_shared/session-router.js +7 -0
- package/dist/bindings/body.d.ts +6 -0
- package/dist/bindings/body.d.ts.map +1 -0
- package/dist/bindings/body.js +37 -0
- package/dist/bindings/kv.d.ts +0 -2
- package/dist/bindings/kv.d.ts.map +1 -1
- package/dist/bindings/kv.js +3 -42
- package/dist/bindings/r2.d.ts +0 -2
- package/dist/bindings/r2.d.ts.map +1 -1
- package/dist/bindings/r2.js +4 -44
- package/dist/esbuild-cli-artifact.generated.d.ts +18 -0
- package/dist/esbuild-cli-artifact.generated.d.ts.map +1 -0
- package/dist/esbuild-cli-artifact.generated.js +17 -0
- package/dist/esbuild-wasm-bundle.generated.d.ts +24 -24
- package/dist/esbuild-wasm-bundle.generated.d.ts.map +1 -1
- package/dist/esbuild-wasm-bundle.generated.js +24 -24
- package/dist/facets/cirrus-real.d.ts.map +1 -1
- package/dist/facets/cirrus-real.js +11 -6
- package/dist/facets/compose.d.ts +11 -7
- package/dist/facets/compose.d.ts.map +1 -1
- package/dist/facets/compose.js +8 -31
- package/dist/facets/data-plan.d.ts +79 -0
- package/dist/facets/data-plan.d.ts.map +1 -0
- package/dist/facets/data-plan.js +477 -0
- package/dist/facets/esbuild-bundle-pool.d.ts +1 -1
- package/dist/facets/esbuild-bundle-pool.js +3 -3
- package/dist/facets/esbuild-transform.d.ts +38 -8
- package/dist/facets/esbuild-transform.d.ts.map +1 -1
- package/dist/facets/esbuild-transform.js +219 -19
- package/dist/facets/exec-telemetry.d.ts +7 -3
- package/dist/facets/exec-telemetry.d.ts.map +1 -1
- package/dist/facets/manager.d.ts +198 -69
- package/dist/facets/manager.d.ts.map +1 -1
- package/dist/facets/manager.js +1276 -652
- package/dist/facets/opencode-staging.d.ts +0 -2
- package/dist/facets/opencode-staging.d.ts.map +1 -1
- package/dist/facets/opencode-staging.js +5 -11
- package/dist/facets/process.d.ts +4 -0
- package/dist/facets/process.d.ts.map +1 -1
- package/dist/facets/process.js +3 -0
- package/dist/facets/read-profile.d.ts +149 -0
- package/dist/facets/read-profile.d.ts.map +1 -0
- package/dist/facets/read-profile.js +483 -0
- package/dist/facets/real-vite-hmr.d.ts +2 -0
- package/dist/facets/real-vite-hmr.d.ts.map +1 -1
- package/dist/facets/real-vite-hmr.js +3 -2
- package/dist/facets/resident-identity.d.ts +0 -1
- package/dist/facets/resident-identity.d.ts.map +1 -1
- package/dist/facets/resident-identity.js +0 -3
- package/dist/facets/wasm-swap-registry.d.ts +34 -25
- package/dist/facets/wasm-swap-registry.d.ts.map +1 -1
- package/dist/facets/wasm-swap-registry.js +62 -56
- package/dist/facets/ws-terminal.d.ts +4 -4
- package/dist/facets/ws-terminal.d.ts.map +1 -1
- package/dist/facets/ws-terminal.js +4 -5
- package/dist/git/commands.d.ts +33 -10
- package/dist/git/commands.d.ts.map +1 -1
- package/dist/git/commands.js +1891 -197
- package/dist/git/network-facet.d.ts +12 -2
- package/dist/git/network-facet.d.ts.map +1 -1
- package/dist/git/network-facet.js +69 -18
- package/dist/git/unified-diff.d.ts +74 -0
- package/dist/git/unified-diff.d.ts.map +1 -0
- package/dist/git/unified-diff.js +676 -0
- package/dist/git-bundle.generated.d.ts +7 -11
- package/dist/git-bundle.generated.d.ts.map +1 -1
- package/dist/git-bundle.generated.js +7 -11
- package/dist/hosted/commands.d.ts.map +1 -1
- package/dist/hosted/commands.js +64 -245
- package/dist/hosted/runtime.d.ts +22 -15
- package/dist/hosted/runtime.d.ts.map +1 -1
- package/dist/hosted/runtime.js +72 -14
- package/dist/hosted/services.d.ts +8 -1
- package/dist/hosted/services.d.ts.map +1 -1
- package/dist/hosted/services.js +12 -13
- package/dist/hosted/session.d.ts +165 -0
- package/dist/hosted/session.d.ts.map +1 -0
- package/dist/hosted/session.js +132 -0
- package/dist/loaders/generated-workers.d.ts +6 -3
- package/dist/loaders/generated-workers.d.ts.map +1 -1
- package/dist/loaders/generated-workers.js +8 -5
- package/dist/loaders/npm-resolve-preamble.d.ts.map +1 -1
- package/dist/loaders/npm-resolve-preamble.js +0 -27
- package/dist/loaders/pre-bundle-preamble.d.ts +6 -3
- package/dist/loaders/pre-bundle-preamble.d.ts.map +1 -1
- package/dist/loaders/pre-bundle-preamble.js +13 -8
- package/dist/node-shims-artifact.generated.d.ts +13 -4
- package/dist/node-shims-artifact.generated.d.ts.map +1 -1
- package/dist/node-shims-artifact.generated.js +16 -7
- package/dist/npm/bin-links.d.ts +3 -1
- package/dist/npm/bin-links.d.ts.map +1 -1
- package/dist/npm/bin-links.js +32 -8
- package/dist/npm/cache.d.ts +11 -1
- package/dist/npm/cache.d.ts.map +1 -1
- package/dist/npm/cache.js +21 -7
- package/dist/npm/install-batch-facet.d.ts +4 -2
- package/dist/npm/install-batch-facet.d.ts.map +1 -1
- package/dist/npm/install-batch-facet.js +32 -18
- package/dist/npm/installer.d.ts +23 -3
- package/dist/npm/installer.d.ts.map +1 -1
- package/dist/npm/installer.js +330 -131
- package/dist/npm/npx-install.d.ts +3 -1
- package/dist/npm/npx-install.d.ts.map +1 -1
- package/dist/npm/npx-install.js +4 -1
- package/dist/npm/package-lock.d.ts +32 -0
- package/dist/npm/package-lock.d.ts.map +1 -0
- package/dist/npm/package-lock.js +65 -0
- package/dist/npm/placement.d.ts +16 -0
- package/dist/npm/placement.d.ts.map +1 -0
- package/dist/npm/placement.js +33 -0
- package/dist/npm/pre-bundle-facet.d.ts +1 -30
- package/dist/npm/pre-bundle-facet.d.ts.map +1 -1
- package/dist/npm/pre-bundle-facet.js +3 -5
- package/dist/npm/r2-cache.d.ts +12 -6
- package/dist/npm/r2-cache.d.ts.map +1 -1
- package/dist/npm/r2-cache.js +34 -16
- package/dist/npm/resolve-one-facet.d.ts +3 -0
- package/dist/npm/resolve-one-facet.d.ts.map +1 -1
- package/dist/npm/resolve-one-facet.js +15 -3
- package/dist/npm/resolver.d.ts +11 -13
- package/dist/npm/resolver.d.ts.map +1 -1
- package/dist/npm/resolver.js +12 -25
- package/dist/opencode-artifact.generated.js +2 -2
- package/dist/replica/routing.d.ts +2 -38
- package/dist/replica/routing.d.ts.map +1 -1
- package/dist/replica/routing.js +3 -55
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +15 -2
- package/dist/router/public-directory.d.ts +18 -0
- package/dist/router/public-directory.d.ts.map +1 -1
- package/dist/router/public-directory.js +1 -1
- package/dist/router/remote-api.d.ts +3 -1
- package/dist/router/remote-api.d.ts.map +1 -1
- package/dist/router/remote-api.js +42 -79
- package/dist/runtime/bash-repl.js +2 -2
- package/dist/runtime/bun-repl.d.ts.map +1 -1
- package/dist/runtime/bun-repl.js +2 -13
- package/dist/runtime/cpython-resident.d.ts.map +1 -1
- package/dist/runtime/cpython-resident.js +2 -10
- package/dist/runtime/esbuild-wasm-bytes.d.ts +37 -18
- package/dist/runtime/esbuild-wasm-bytes.d.ts.map +1 -1
- package/dist/runtime/esbuild-wasm-bytes.js +66 -92
- package/dist/runtime/facet-loader-host.d.ts.map +1 -1
- package/dist/runtime/facet-loader-host.js +0 -7
- package/dist/runtime/git-bundle-artifact.d.ts +17 -0
- package/dist/runtime/git-bundle-artifact.d.ts.map +1 -0
- package/dist/runtime/git-bundle-artifact.js +25 -0
- package/dist/runtime/node-repl.d.ts.map +1 -1
- package/dist/runtime/node-repl.js +2 -13
- package/dist/runtime/node-shims-artifact.d.ts +22 -23
- package/dist/runtime/node-shims-artifact.d.ts.map +1 -1
- package/dist/runtime/node-shims-artifact.js +48 -78
- package/dist/runtime/node-shims.d.ts.map +1 -1
- package/dist/runtime/node-shims.js +2358 -996
- package/dist/runtime/opencode-artifact.d.ts.map +1 -1
- package/dist/runtime/opencode-artifact.js +17 -53
- package/dist/runtime/opencode-facet-runner.d.ts +3 -6
- package/dist/runtime/opencode-facet-runner.d.ts.map +1 -1
- package/dist/runtime/opencode-facet-runner.js +45 -10
- package/dist/runtime/opentui-wasm-bytes.d.ts.map +1 -1
- package/dist/runtime/opentui-wasm-bytes.js +16 -49
- package/dist/runtime/package-manager.d.ts +0 -2
- package/dist/runtime/package-manager.d.ts.map +1 -1
- package/dist/runtime/package-manager.js +0 -3
- package/dist/runtime/python-repl.d.ts.map +1 -1
- package/dist/runtime/python-repl.js +4 -35
- package/dist/runtime/repl-session.d.ts +10 -0
- package/dist/runtime/repl-session.d.ts.map +1 -1
- package/dist/runtime/repl-session.js +7 -0
- package/dist/runtime/ruby-repl.d.ts.map +1 -1
- package/dist/runtime/ruby-repl.js +2 -2
- package/dist/runtime/ruby-resident.d.ts.map +1 -1
- package/dist/runtime/ruby-resident.js +41 -51
- package/dist/runtime/runtime-catalog.d.ts +10 -3
- package/dist/runtime/runtime-catalog.d.ts.map +1 -1
- package/dist/runtime/runtime-catalog.js +125 -15
- package/dist/runtime/sqlite-wasm-bytes.d.ts +4 -4
- package/dist/runtime/sqlite-wasm-bytes.d.ts.map +1 -1
- package/dist/runtime/sqlite-wasm-bytes.js +21 -57
- package/dist/runtime/staged-source.d.ts +67 -0
- package/dist/runtime/staged-source.d.ts.map +1 -0
- package/dist/runtime/staged-source.js +113 -0
- package/dist/runtime/wasi/preamble.d.ts +0 -22
- package/dist/runtime/wasi/preamble.d.ts.map +1 -1
- package/dist/runtime/wasi/preamble.js +98 -1425
- package/dist/runtime-catalog.generated.js +1 -1
- package/dist/session/agent.d.ts +14 -2
- package/dist/session/agent.d.ts.map +1 -1
- package/dist/session/agent.js +57 -19
- package/dist/session/ai.d.ts +0 -11
- package/dist/session/ai.d.ts.map +1 -1
- package/dist/session/ai.js +0 -4
- package/dist/session/fs-watch.d.ts +0 -11
- package/dist/session/fs-watch.d.ts.map +1 -1
- package/dist/session/fs-watch.js +0 -21
- package/dist/session/hibernation.d.ts +68 -2
- package/dist/session/hibernation.d.ts.map +1 -1
- package/dist/session/hibernation.js +95 -1
- package/dist/session/init-phases.d.ts +1 -2
- package/dist/session/init-phases.d.ts.map +1 -1
- package/dist/session/init-phases.js +1 -2
- package/dist/session/init.d.ts.map +1 -1
- package/dist/session/init.js +7 -20
- package/dist/session/keys.d.ts +0 -3
- package/dist/session/keys.d.ts.map +1 -1
- package/dist/session/keys.js +0 -3
- package/dist/session/legacy-reset.d.ts +11 -0
- package/dist/session/legacy-reset.d.ts.map +1 -0
- package/dist/session/legacy-reset.js +16 -0
- package/dist/session/nimbus-session.d.ts +50 -16
- package/dist/session/nimbus-session.d.ts.map +1 -1
- package/dist/session/nimbus-session.js +77 -71
- package/dist/session/npm-install-port.d.ts.map +1 -1
- package/dist/session/npm-install-port.js +2 -0
- package/dist/session/programmatic.d.ts +13 -18
- package/dist/session/programmatic.d.ts.map +1 -1
- package/dist/session/programmatic.js +53 -39
- package/dist/session/replica-routes.d.ts +2 -3
- package/dist/session/replica-routes.d.ts.map +1 -1
- package/dist/session/replica-routes.js +3 -10
- package/dist/session/routes.d.ts.map +1 -1
- package/dist/session/routes.js +11 -12
- package/dist/session/rpc.d.ts +108 -21
- package/dist/session/rpc.d.ts.map +1 -1
- package/dist/session/rpc.js +194 -39
- package/dist/session/start-real-vite.js +2 -2
- package/dist/session/state-store.d.ts +1 -17
- package/dist/session/state-store.d.ts.map +1 -1
- package/dist/session/state-store.js +3 -53
- package/dist/session/supervisor-op.d.ts +7 -0
- package/dist/session/supervisor-op.d.ts.map +1 -1
- package/dist/session/supervisor-op.js +6 -1
- package/dist/session/supervisor-rpc.d.ts +116 -19
- package/dist/session/supervisor-rpc.d.ts.map +1 -1
- package/dist/session/supervisor-rpc.js +194 -84
- package/dist/session/vite-command.d.ts.map +1 -1
- package/dist/session/vite-command.js +17 -14
- package/dist/session/ws.d.ts.map +1 -1
- package/dist/session/ws.js +20 -8
- package/dist/shell/npm-bin-entrypoints.d.ts.map +1 -1
- package/dist/shell/npm-bin-entrypoints.js +30 -5
- package/dist/vfs/facet-resident-limits.d.ts +33 -0
- package/dist/vfs/facet-resident-limits.d.ts.map +1 -0
- package/dist/vfs/facet-resident-limits.js +33 -0
- package/dist/vfs/facet-resident-store.d.ts +2 -10
- package/dist/vfs/facet-resident-store.d.ts.map +1 -1
- package/dist/vfs/facet-resident-store.js +1594 -219
- package/dist/workspace-host.d.ts +3 -1
- package/dist/workspace-host.d.ts.map +1 -1
- package/dist/workspace-host.js +2 -0
- package/dist/wrangler/nimbus-wrangler.d.ts +0 -2
- package/dist/wrangler/nimbus-wrangler.d.ts.map +1 -1
- package/dist/wrangler/nimbus-wrangler.js +8 -22
- package/package.json +34 -7
- package/public/_assets/esbuild-0.24.2.js +2380 -0
- package/public/_assets/opencode/1.16.2/index-attach.js +2 -2
- package/public/_assets/runtime/esbuild-cli-c4fda380d52befc1.js +6892 -0
- package/public/_assets/runtime/git-de3e60c9f3ff006a.js +103 -0
- package/public/_assets/runtime/{node-shims-acaa037e6d26ec0d.js → node-shims-06565b121555c194.js} +2879 -992
- package/public/_assets/runtime/resident-store-6ffb1939c53d982f.js +2264 -0
- package/public/_assets/runtime/vfs-write-ledger-e501e8fc793bc2c1.js +889 -0
- package/scripts/build-opencode-attach-entry.mjs +51 -1
- package/scripts/bundle-esbuild-wasm.mjs +55 -39
- package/scripts/bundle-facet-workers.mjs +159 -10
- package/scripts/bundle-git.mjs +88 -27
- package/scripts/bundle-node-shims.mjs +72 -46
- package/scripts/bundle-runtime.mjs +18 -421
- package/scripts/cf-git-patch.mjs +137 -0
- package/scripts/patch-install-deps.mjs +49 -96
- package/scripts/runtime-specs.mjs +435 -0
- package/vendor/git-http.generated.d.ts +82 -0
- package/vendor/git-upstream.generated.d.ts +4378 -0
- package/vendor/git.LICENSE +7 -0
- package/vendor/git.generated.d.mts +21 -0
- package/vendor/git.generated.mjs +103 -0
- package/dist/replica/suspension.d.ts +0 -36
- package/dist/replica/suspension.d.ts.map +0 -1
- package/dist/replica/suspension.js +0 -49
- package/dist/runtime/static-server.d.ts +0 -3
- package/dist/runtime/static-server.d.ts.map +0 -1
- package/dist/runtime/static-server.js +0 -133
- package/scripts/clean-dist.mjs +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-bin-entrypoints.d.ts","sourceRoot":"","sources":["../../src/shell/npm-bin-entrypoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"npm-bin-entrypoints.d.ts","sourceRoot":"","sources":["../../src/shell/npm-bin-entrypoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,sBAAsB,CAAC;AAYnF,KAAK,MAAM,GAAG;IAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAiB5C,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACnD,CAAC;AAEF,KAAK,kBAAkB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC;AAezD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE;IACJ,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,IAAI,MAAM,CAAC;IACjB,SAAS,EAAE,wBAAwB,CAAC;IACpC,eAAe,IAAI,YAAY,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxJ,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9D,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7F,GACA,IAAI,CAgJN;AAqFD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,GACb,yBAAyB,CAS3B;AAiGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAS/E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveNpmBin, resolveNpmBinFromPath, isStagedArtifactTarget, stagedArtifactId, } from '../npm/bin-links.js';
|
|
1
|
+
import { resolveNpmBin, resolveNpmBinFromPath, resolveNpmBinPath, isStagedArtifactTarget, stagedArtifactId, } from '../npm/bin-links.js';
|
|
2
2
|
import { bundleProfileForNpmBin } from '@nimbus-sh/core/runtime/bundle-profile.js';
|
|
3
3
|
import { OPENCODE_TREE_SITTER_DIAG_ARG } from '../runtime/opencode-facet-runner.js';
|
|
4
4
|
import { normalizeVfsPath } from '@nimbus-sh/core/vfs/path.js';
|
|
@@ -18,6 +18,15 @@ export function installNpmBinFallbackResolver(registry, deps) {
|
|
|
18
18
|
const vfs = deps.vfs;
|
|
19
19
|
const upstreamResolve = registry.resolve.bind(registry);
|
|
20
20
|
registry.resolve = async function resolveWithNpmBins(name) {
|
|
21
|
+
// `<dir>/node_modules/.bin/<bin>` by path (a launcher's `exec`) is the
|
|
22
|
+
// same program as the bare name: same runtime choice, TTY and lifecycle.
|
|
23
|
+
if (name.startsWith('/') || name.startsWith('./') || name.startsWith('../')) {
|
|
24
|
+
const cwd = deps.getCwd() || '/home/user';
|
|
25
|
+
const bin = resolveNpmBinPath(vfs, cwd, name);
|
|
26
|
+
if (!bin)
|
|
27
|
+
return await upstreamResolve(name);
|
|
28
|
+
return binHandler(bin.name, (ctx) => resolveNpmBinPath(vfs, ctx.cwd || '/home/user', name));
|
|
29
|
+
}
|
|
21
30
|
const upstream = await upstreamResolve(name);
|
|
22
31
|
if (upstream)
|
|
23
32
|
return upstream;
|
|
@@ -40,9 +49,12 @@ export function installNpmBinFallbackResolver(registry, deps) {
|
|
|
40
49
|
hintHandler.__nimbusRuntimeInstallHint = true;
|
|
41
50
|
return hintHandler;
|
|
42
51
|
}
|
|
52
|
+
return binHandler(name, (ctx) => resolveNpmBinForInvocation(vfs, ctx.cwd || '/home/user', ctx.env?.PATH || DEFAULT_PATH, name));
|
|
53
|
+
};
|
|
54
|
+
function binHandler(name, lookup) {
|
|
43
55
|
return async (ctx) => {
|
|
44
56
|
const invocationCwd = ctx.cwd || '/home/user';
|
|
45
|
-
const bin =
|
|
57
|
+
const bin = lookup(ctx);
|
|
46
58
|
if (!bin) {
|
|
47
59
|
ctx.stderr.write(`${name}: command not found\n`);
|
|
48
60
|
return 127;
|
|
@@ -56,11 +68,21 @@ export function installNpmBinFallbackResolver(registry, deps) {
|
|
|
56
68
|
const disposition = classifyStagedArtifact(artifact, argv);
|
|
57
69
|
return await runStagedArtifact(deps, name, artifact, argv, invocationCwd, ctx, disposition);
|
|
58
70
|
}
|
|
71
|
+
// A PATH script for another interpreter (`#!/bin/sh`) is not a node
|
|
72
|
+
// program: run it the way a path-shaped invocation of it runs.
|
|
73
|
+
const runtimeName = npmBinRuntimeForTarget(vfs, bin.targetPath);
|
|
74
|
+
if (runtimeName === null) {
|
|
75
|
+
const execCmd = await upstreamResolve('/' + bin.shimPath);
|
|
76
|
+
if (typeof execCmd !== 'function') {
|
|
77
|
+
ctx.stderr.write(`${name}: command not found\n`);
|
|
78
|
+
return 127;
|
|
79
|
+
}
|
|
80
|
+
return await execCmd(ctx);
|
|
81
|
+
}
|
|
59
82
|
const bundleProfile = bundleProfileForNpmBin(bin);
|
|
60
83
|
const metadata = readNpmBinPackageMetadata(vfs, bin.packagePath);
|
|
61
84
|
const attachedTty = looksAttachedTtyNpmBin(metadata, argv, ctx.env);
|
|
62
85
|
const longRunning = attachedTty || looksLongRunningNpmBin(name, argv);
|
|
63
|
-
const runtimeName = npmBinRuntimeForTarget(vfs, bin.targetPath);
|
|
64
86
|
const runtimeCmd = await upstreamResolve(runtimeName);
|
|
65
87
|
if (typeof runtimeCmd !== 'function') {
|
|
66
88
|
ctx.stderr.write(`${name}: ${runtimeName} command unavailable\n`);
|
|
@@ -131,7 +153,7 @@ export function installNpmBinFallbackResolver(registry, deps) {
|
|
|
131
153
|
}
|
|
132
154
|
return exitCode;
|
|
133
155
|
};
|
|
134
|
-
}
|
|
156
|
+
}
|
|
135
157
|
}
|
|
136
158
|
function resolveNpmBinForInvocation(vfs, cwd, envPath, name) {
|
|
137
159
|
return resolveNpmBinFromPath(vfs, cwd, envPath, name)
|
|
@@ -216,9 +238,12 @@ function formatError(error) {
|
|
|
216
238
|
return error.stack || error.message;
|
|
217
239
|
return String(error);
|
|
218
240
|
}
|
|
241
|
+
/** null when the target's `#!` names an interpreter other than node or bun; no `#!` runs as node. */
|
|
219
242
|
function npmBinRuntimeForTarget(vfs, targetPath) {
|
|
220
243
|
const firstLine = readFirstLine(vfs, targetPath);
|
|
221
|
-
|
|
244
|
+
if (!firstLine?.startsWith('#!'))
|
|
245
|
+
return 'node';
|
|
246
|
+
return shebangRuntime(firstLine);
|
|
222
247
|
}
|
|
223
248
|
function readFirstLine(vfs, path) {
|
|
224
249
|
try {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounds of the in-facet resident store (vfs/facet-resident-store.ts) that the
|
|
3
|
+
* supervisor also needs.
|
|
4
|
+
*
|
|
5
|
+
* They live apart from the store because that module exports the store's
|
|
6
|
+
* source text, FACET_RESIDENT_STORE_SOURCE (~105 KB). The facet receives that
|
|
7
|
+
* text as a staged asset (scripts/bundle-node-shims.mjs), and importing a
|
|
8
|
+
* constant from the store module would bundle the text into the Worker too:
|
|
9
|
+
* esbuild keeps a template literal with substitutions even when nothing reads
|
|
10
|
+
* it. The Worker bundle has a size gate
|
|
11
|
+
* (tests/behavioral/assets-fetch/new/worker-bundle-size.mjs).
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Bytes of file content in one row.
|
|
15
|
+
*
|
|
16
|
+
* The measured ceiling is 2,199,981 bytes in a single value (bisected, with a
|
|
17
|
+
* 12-char key; the limit is on the row, so a longer path buys less). 1 MiB
|
|
18
|
+
* leaves better than 2x of headroom against a limit whose exact form is not
|
|
19
|
+
* contractual, and keeps the per-read allocation of a large file bounded.
|
|
20
|
+
* Files at or under it — effectively all of them — are one row and one query.
|
|
21
|
+
*/
|
|
22
|
+
export declare const RESIDENT_CHUNK_BYTES = 1048576;
|
|
23
|
+
/**
|
|
24
|
+
* What a one-shot's store may hold in its heap: the closure bound a one-shot
|
|
25
|
+
* is already held to (VFS_BUNDLE_MAX_BYTES, the module map it adopts) plus
|
|
26
|
+
* 16 MiB for the namespace image and the data plan. A one-shot runs in a
|
|
27
|
+
* 128 MiB isolate, and today holds the same module map in its heap as a
|
|
28
|
+
* table; past this budget the store degrades as the durable one does near
|
|
29
|
+
* the session's limit: a fill is refused (the read is an honest miss), and an
|
|
30
|
+
* own write is held within its own bound or named ENOSPC.
|
|
31
|
+
*/
|
|
32
|
+
export declare const ONE_SHOT_STORE_MEMORY_BYTES: number;
|
|
33
|
+
//# sourceMappingURL=facet-resident-limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facet-resident-limits.d.ts","sourceRoot":"","sources":["../../src/vfs/facet-resident-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAA0C,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounds of the in-facet resident store (vfs/facet-resident-store.ts) that the
|
|
3
|
+
* supervisor also needs.
|
|
4
|
+
*
|
|
5
|
+
* They live apart from the store because that module exports the store's
|
|
6
|
+
* source text, FACET_RESIDENT_STORE_SOURCE (~105 KB). The facet receives that
|
|
7
|
+
* text as a staged asset (scripts/bundle-node-shims.mjs), and importing a
|
|
8
|
+
* constant from the store module would bundle the text into the Worker too:
|
|
9
|
+
* esbuild keeps a template literal with substitutions even when nothing reads
|
|
10
|
+
* it. The Worker bundle has a size gate
|
|
11
|
+
* (tests/behavioral/assets-fetch/new/worker-bundle-size.mjs).
|
|
12
|
+
*/
|
|
13
|
+
import { VFS_BUNDLE_MAX_BYTES } from '@nimbus-sh/core/constants.js';
|
|
14
|
+
/**
|
|
15
|
+
* Bytes of file content in one row.
|
|
16
|
+
*
|
|
17
|
+
* The measured ceiling is 2,199,981 bytes in a single value (bisected, with a
|
|
18
|
+
* 12-char key; the limit is on the row, so a longer path buys less). 1 MiB
|
|
19
|
+
* leaves better than 2x of headroom against a limit whose exact form is not
|
|
20
|
+
* contractual, and keeps the per-read allocation of a large file bounded.
|
|
21
|
+
* Files at or under it — effectively all of them — are one row and one query.
|
|
22
|
+
*/
|
|
23
|
+
export const RESIDENT_CHUNK_BYTES = 1_048_576;
|
|
24
|
+
/**
|
|
25
|
+
* What a one-shot's store may hold in its heap: the closure bound a one-shot
|
|
26
|
+
* is already held to (VFS_BUNDLE_MAX_BYTES, the module map it adopts) plus
|
|
27
|
+
* 16 MiB for the namespace image and the data plan. A one-shot runs in a
|
|
28
|
+
* 128 MiB isolate, and today holds the same module map in its heap as a
|
|
29
|
+
* table; past this budget the store degrades as the durable one does near
|
|
30
|
+
* the session's limit: a fill is refused (the read is an honest miss), and an
|
|
31
|
+
* own write is held within its own bound or named ENOSPC.
|
|
32
|
+
*/
|
|
33
|
+
export const ONE_SHOT_STORE_MEMORY_BYTES = VFS_BUNDLE_MAX_BYTES + 16 * 1024 * 1024;
|
|
@@ -180,16 +180,6 @@
|
|
|
180
180
|
* over — measured past the DO CPU limit at pi scale. See
|
|
181
181
|
* \`__residentSynchronizeFromSupervisor\`.
|
|
182
182
|
*/
|
|
183
|
-
/**
|
|
184
|
-
* Bytes of file content in one row.
|
|
185
|
-
*
|
|
186
|
-
* The measured ceiling is 2,199,981 bytes in a single value (bisected, with a
|
|
187
|
-
* 12-char key; the limit is on the row, so a longer path buys less). 1 MiB
|
|
188
|
-
* leaves better than 2x of headroom against a limit whose exact form is not
|
|
189
|
-
* contractual, and keeps the per-read allocation of a large file bounded.
|
|
190
|
-
* Files at or under it — effectively all of them — are one row and one query.
|
|
191
|
-
*/
|
|
192
|
-
export declare const RESIDENT_CHUNK_BYTES = 1048576;
|
|
193
183
|
/**
|
|
194
184
|
* Rows written before the materialiser yields.
|
|
195
185
|
*
|
|
@@ -216,6 +206,8 @@ export declare const RESIDENT_FILL_BATCH_BYTES: number;
|
|
|
216
206
|
* The in-facet store. Spliced into the generated module ahead of the shims, in
|
|
217
207
|
* the same way `VFS_WRITE_LEDGER_SOURCE` is (`facets/manager.ts`), because it
|
|
218
208
|
* has to close over the same module scope the shims read `__vfsBundle` from.
|
|
209
|
+
* Like the ledger and the shims it reaches the facet as a staged asset
|
|
210
|
+
* (scripts/bundle-node-shims.mjs), not through the Worker bundle.
|
|
219
211
|
*
|
|
220
212
|
* It presents a Proxy rather than a new API on purpose. `_bundleLookup`,
|
|
221
213
|
* `_writtenCell`, `__readFileOr`, `__fileExists` and the directory scans all
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facet-resident-store.d.ts","sourceRoot":"","sources":["../../src/vfs/facet-resident-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqLG;
|
|
1
|
+
{"version":3,"file":"facet-resident-store.d.ts","sourceRoot":"","sources":["../../src/vfs/facet-resident-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqLG;AAUH;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,OAA2B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,QAytEhC,CAAC;AAET,iFAAiF;AACjF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1D,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE"}
|