@nimbus-sh/worker 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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.js +3 -3
- package/dist/facets/compose.d.ts +3 -0
- package/dist/facets/compose.d.ts.map +1 -1
- package/dist/facets/compose.js +10 -3
- 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 +6 -2
- package/dist/facets/esbuild-transform.d.ts.map +1 -1
- package/dist/facets/esbuild-transform.js +8 -4
- package/dist/facets/manager.d.ts +54 -15
- package/dist/facets/manager.d.ts.map +1 -1
- package/dist/facets/manager.js +227 -144
- 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/git/commands.d.ts +17 -1
- package/dist/git/commands.d.ts.map +1 -1
- package/dist/git/commands.js +73 -9
- package/dist/git/network-facet.d.ts +2 -0
- package/dist/git/network-facet.d.ts.map +1 -1
- package/dist/git/network-facet.js +10 -5
- package/dist/hosted/commands.d.ts.map +1 -1
- package/dist/hosted/commands.js +28 -39
- package/dist/hosted/runtime.d.ts +24 -2
- package/dist/hosted/runtime.d.ts.map +1 -1
- package/dist/hosted/runtime.js +70 -13
- package/dist/hosted/services.d.ts +14 -2
- package/dist/hosted/services.d.ts.map +1 -1
- package/dist/hosted/services.js +15 -2
- package/dist/loaders/generated-workers.d.ts +2 -2
- package/dist/loaders/generated-workers.d.ts.map +1 -1
- package/dist/loaders/generated-workers.js +4 -4
- 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.js +3 -3
- package/dist/npm/cache.d.ts +6 -1
- package/dist/npm/cache.d.ts.map +1 -1
- package/dist/npm/cache.js +8 -6
- package/dist/npm/install-batch-facet.d.ts +2 -0
- package/dist/npm/install-batch-facet.d.ts.map +1 -1
- package/dist/npm/install-batch-facet.js +29 -15
- package/dist/npm/installer.d.ts +8 -4
- package/dist/npm/installer.d.ts.map +1 -1
- package/dist/npm/installer.js +173 -113
- 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/placement.d.ts +16 -0
- package/dist/npm/placement.d.ts.map +1 -0
- package/dist/npm/placement.js +33 -0
- package/dist/npm/r2-cache.d.ts +10 -6
- package/dist/npm/r2-cache.d.ts.map +1 -1
- package/dist/npm/r2-cache.js +32 -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 +1 -0
- package/dist/npm/resolver.d.ts +11 -6
- package/dist/npm/resolver.d.ts.map +1 -1
- package/dist/npm/resolver.js +12 -3
- package/dist/runtime/bash-repl.d.ts +5 -3
- package/dist/runtime/bash-repl.d.ts.map +1 -1
- package/dist/runtime/bash-repl.js +8 -3
- 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 +25 -18
- package/dist/runtime/esbuild-wasm-bytes.d.ts.map +1 -1
- package/dist/runtime/esbuild-wasm-bytes.js +55 -30
- package/dist/runtime/facet-loader-host.d.ts.map +1 -1
- package/dist/runtime/facet-loader-host.js +0 -9
- package/dist/runtime/node-shims.d.ts.map +1 -1
- package/dist/runtime/node-shims.js +853 -181
- package/dist/runtime/python-repl.d.ts +4 -3
- package/dist/runtime/python-repl.d.ts.map +1 -1
- package/dist/runtime/python-repl.js +10 -39
- package/dist/runtime/ruby-repl.d.ts +3 -2
- package/dist/runtime/ruby-repl.d.ts.map +1 -1
- package/dist/runtime/ruby-repl.js +7 -6
- package/dist/runtime/ruby-resident.d.ts.map +1 -1
- package/dist/runtime/ruby-resident.js +5 -16
- package/dist/runtime/runtime-catalog.js +1 -1
- 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 +160 -1445
- package/dist/runtime-catalog.generated.js +1 -1
- package/dist/session/hibernation.d.ts +45 -2
- package/dist/session/hibernation.d.ts.map +1 -1
- package/dist/session/hibernation.js +78 -1
- package/dist/session/init.d.ts.map +1 -1
- package/dist/session/init.js +1 -0
- package/dist/session/nimbus-session.d.ts +16 -23
- package/dist/session/nimbus-session.d.ts.map +1 -1
- package/dist/session/nimbus-session.js +25 -36
- package/dist/session/npm-install-port.d.ts.map +1 -1
- package/dist/session/npm-install-port.js +1 -0
- package/dist/session/port-capability.d.ts.map +1 -1
- package/dist/session/port-capability.js +11 -1
- package/dist/session/programmatic.js +2 -2
- package/dist/session/routes.d.ts.map +1 -1
- package/dist/session/routes.js +4 -2
- package/dist/session/rpc.d.ts +7 -44
- package/dist/session/rpc.d.ts.map +1 -1
- package/dist/session/rpc.js +17 -67
- package/dist/session/supervisor-op.d.ts +8 -3
- package/dist/session/supervisor-op.d.ts.map +1 -1
- package/dist/session/supervisor-op.js +10 -45
- package/dist/session/supervisor-rpc.d.ts +47 -22
- package/dist/session/supervisor-rpc.d.ts.map +1 -1
- package/dist/session/supervisor-rpc.js +64 -26
- package/dist/vfs/facet-resident-store.d.ts.map +1 -1
- package/dist/vfs/facet-resident-store.js +4 -2
- package/dist/workspace-host.d.ts +2 -1
- package/dist/workspace-host.d.ts.map +1 -1
- package/dist/wrangler/nimbus-wrangler.d.ts.map +1 -1
- package/dist/wrangler/nimbus-wrangler.js +3 -0
- package/package.json +30 -4
- package/public/_assets/esbuild-0.24.2.js +2380 -0
- package/public/_assets/runtime/{node-shims-8f8c64edd2a1f0f5.js → node-shims-7b4dd7a76d95d21e.js} +852 -180
- package/scripts/bundle-esbuild-wasm.mjs +55 -39
- package/scripts/bundle-facet-workers.mjs +45 -7
- package/scripts/bundle-runtime.mjs +35 -8
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* Exported from index.ts. Facets receive `env.SUPERVISOR` service binding
|
|
5
5
|
* pointing to this class via ctx.exports loopback binding.
|
|
6
6
|
*
|
|
7
|
-
* Props: { doId: string, pid: number, writerId: string }
|
|
7
|
+
* Props: { doId: string, pid: number, writerId: string, route: HostRoute }
|
|
8
8
|
* doId — the supervisor DO's durable object ID (for routing)
|
|
9
9
|
* pid — the process ID (for stdout/stderr routing)
|
|
10
10
|
* writerId — the active append-writer incarnation for this process
|
|
11
|
+
* route — the host namespace and dispatch method, minted with the binding
|
|
12
|
+
* in the host's isolate; this entrypoint may answer from another
|
|
11
13
|
*
|
|
12
14
|
* Methods callable by facets via RPC:
|
|
13
15
|
* readFile(path) → string | null
|
|
@@ -30,7 +32,7 @@
|
|
|
30
32
|
*/
|
|
31
33
|
import { WorkerEntrypoint } from 'cloudflare:workers';
|
|
32
34
|
import type { PackumentReadThrough } from '../npm/r2-cache.js';
|
|
33
|
-
import type { VfsAcquireResult, VfsListPage } from '@nimbus-sh/core/runtime/os-contracts.js';
|
|
35
|
+
import type { VfsAcquireResult, VfsListPage, VfsMutationReceipt, RuntimeFsBridge, RuntimeFsPath, RuntimeOpenFlags, RuntimeFileHandle } from '@nimbus-sh/core/runtime/os-contracts.js';
|
|
34
36
|
import type { WriteBatchStreamResult } from '@nimbus-sh/core/vfs/sqlite-vfs.js';
|
|
35
37
|
import type { FsReadBatchEntry, FsReadBatchRequest } from './rpc.js';
|
|
36
38
|
import type { CacheTier, CacheKind } from '@nimbus-sh/core/_shared/cache-stats.js';
|
|
@@ -53,7 +55,11 @@ export type SupervisorCacheStatEvent = {
|
|
|
53
55
|
cacheKind: CacheKind;
|
|
54
56
|
};
|
|
55
57
|
export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
56
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Resolve the host anew for each WorkerEntrypoint invocation, by the
|
|
60
|
+
* route the binding carries. The platform serves this entrypoint from
|
|
61
|
+
* whichever isolate it likes; the props were minted in the host's.
|
|
62
|
+
*/
|
|
57
63
|
private _dispatch;
|
|
58
64
|
private _op;
|
|
59
65
|
/** Stamp filesystem credentials from the binding, not the supplied arguments. */
|
|
@@ -67,29 +73,31 @@ export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
|
67
73
|
* Read a file as raw bytes. Used by the git network facet for binary
|
|
68
74
|
* object/pack files where the text readFile would corrupt content.
|
|
69
75
|
*/
|
|
70
|
-
readFileBytes(path:
|
|
71
|
-
writeFile(path:
|
|
72
|
-
stat(path:
|
|
76
|
+
readFileBytes(path: RuntimeFsPath): Promise<Uint8Array | null>;
|
|
77
|
+
writeFile(path: RuntimeFsPath, content: string | Uint8Array): Promise<number>;
|
|
78
|
+
stat(path: RuntimeFsPath, options?: {
|
|
79
|
+
followSymlinks?: boolean;
|
|
80
|
+
}): Promise<Awaited<ReturnType<RuntimeFsBridge['stat']>>>;
|
|
73
81
|
lstat(path: string): Promise<any>;
|
|
74
82
|
hasLegacySymlinkUnder(path: string): Promise<boolean>;
|
|
75
|
-
utimes(path:
|
|
76
|
-
chmod(path:
|
|
77
|
-
access(path:
|
|
78
|
-
chown(path:
|
|
83
|
+
utimes(path: RuntimeFsPath, atimeMs: number, mtimeMs: number): Promise<VfsMutationReceipt>;
|
|
84
|
+
chmod(path: RuntimeFsPath, mode: number): Promise<VfsMutationReceipt>;
|
|
85
|
+
access(path: RuntimeFsPath, mode: number): Promise<void>;
|
|
86
|
+
chown(path: RuntimeFsPath, uid: number, gid: number, options?: {
|
|
79
87
|
followSymlinks?: boolean;
|
|
80
|
-
}): Promise<
|
|
88
|
+
}): Promise<VfsMutationReceipt>;
|
|
81
89
|
setUmask(mask: number): Promise<number>;
|
|
82
|
-
readdir(path:
|
|
90
|
+
readdir(path: RuntimeFsPath): Promise<{
|
|
83
91
|
name: string;
|
|
84
92
|
type: string;
|
|
85
93
|
}[]>;
|
|
86
94
|
exists(path: string): Promise<boolean>;
|
|
87
|
-
mkdir(path:
|
|
88
|
-
rmdir(path:
|
|
89
|
-
rename(from:
|
|
90
|
-
unlink(path:
|
|
91
|
-
readlink(path:
|
|
92
|
-
symlink(target: string, path:
|
|
95
|
+
mkdir(path: RuntimeFsPath, options?: Parameters<RuntimeFsBridge['mkdir']>[1]): Promise<void>;
|
|
96
|
+
rmdir(path: RuntimeFsPath): Promise<void>;
|
|
97
|
+
rename(from: RuntimeFsPath, to: RuntimeFsPath): Promise<void>;
|
|
98
|
+
unlink(path: RuntimeFsPath): Promise<void>;
|
|
99
|
+
readlink(path: RuntimeFsPath): Promise<string | null>;
|
|
100
|
+
symlink(target: string, path: RuntimeFsPath): Promise<void>;
|
|
93
101
|
/**
|
|
94
102
|
* ACQUIRE: the paths mutated since the facet's cursor, plus a fresh
|
|
95
103
|
* cursor. The facet drops those cells from its resident set before
|
|
@@ -136,9 +144,24 @@ export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
|
136
144
|
wsPoll(id: number, waitMs: number): Promise<unknown[]>;
|
|
137
145
|
wsSend(id: number, text: string | null, bytes: Uint8Array | null): Promise<void>;
|
|
138
146
|
wsClose(id: number, code?: number, reason?: string): Promise<void>;
|
|
139
|
-
fsOpen(path:
|
|
147
|
+
fsOpen(path: RuntimeFsPath, flags: RuntimeOpenFlags): Promise<RuntimeFileHandle>;
|
|
140
148
|
fsRead(handleId: number, offset: number | null, length: number): Promise<Uint8Array>;
|
|
141
149
|
fsWrite(handleId: number, offset: number | null, bytes: Uint8Array | ArrayBuffer | number[]): Promise<number>;
|
|
150
|
+
fsFstat(...args: Parameters<RuntimeFsBridge['fstat']>): Promise<Awaited<ReturnType<RuntimeFsBridge['fstat']>>>;
|
|
151
|
+
fsDup(...args: Parameters<RuntimeFsBridge['dup']>): Promise<Awaited<ReturnType<RuntimeFsBridge['dup']>>>;
|
|
152
|
+
fsSeek(...args: Parameters<RuntimeFsBridge['seek']>): Promise<Awaited<ReturnType<RuntimeFsBridge['seek']>>>;
|
|
153
|
+
fsSetStatus(...args: Parameters<RuntimeFsBridge['setStatus']>): Promise<Awaited<ReturnType<RuntimeFsBridge['setStatus']>>>;
|
|
154
|
+
fsReaddirHandle(...args: Parameters<RuntimeFsBridge['readdirHandle']>): Promise<Awaited<ReturnType<RuntimeFsBridge['readdirHandle']>>>;
|
|
155
|
+
fsFtruncate(...args: Parameters<RuntimeFsBridge['ftruncate']>): Promise<Awaited<ReturnType<RuntimeFsBridge['ftruncate']>>>;
|
|
156
|
+
fsFchmod(...args: Parameters<RuntimeFsBridge['fchmod']>): Promise<Awaited<ReturnType<RuntimeFsBridge['fchmod']>>>;
|
|
157
|
+
fsFchown(...args: Parameters<RuntimeFsBridge['fchown']>): Promise<Awaited<ReturnType<RuntimeFsBridge['fchown']>>>;
|
|
158
|
+
fsFutimes(...args: Parameters<RuntimeFsBridge['futimes']>): Promise<Awaited<ReturnType<RuntimeFsBridge['futimes']>>>;
|
|
159
|
+
fsSync(...args: Parameters<RuntimeFsBridge['fsync']>): Promise<Awaited<ReturnType<RuntimeFsBridge['fsync']>>>;
|
|
160
|
+
fsRealpath(...args: Parameters<RuntimeFsBridge['realpath']>): Promise<Awaited<ReturnType<RuntimeFsBridge['realpath']>>>;
|
|
161
|
+
fsRemove(...args: Parameters<RuntimeFsBridge['remove']>): Promise<Awaited<ReturnType<RuntimeFsBridge['remove']>>>;
|
|
162
|
+
fsCopyFile(...args: Parameters<RuntimeFsBridge['copyFile']>): Promise<Awaited<ReturnType<RuntimeFsBridge['copyFile']>>>;
|
|
163
|
+
fsAcquireExclusiveMutation(...args: Parameters<RuntimeFsBridge['acquireExclusiveMutation']>): Promise<Awaited<ReturnType<RuntimeFsBridge['acquireExclusiveMutation']>>>;
|
|
164
|
+
fsReleaseExclusiveMutation(...args: Parameters<RuntimeFsBridge['releaseExclusiveMutation']>): Promise<Awaited<ReturnType<RuntimeFsBridge['releaseExclusiveMutation']>>>;
|
|
142
165
|
fsClose(handleId: number): Promise<void>;
|
|
143
166
|
/**
|
|
144
167
|
* Stateless ranged ops. Unlike fsOpen/fsRead/fsWrite they carry no
|
|
@@ -167,10 +190,10 @@ export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
|
167
190
|
* a short result, which a caller could mistake for a short file.
|
|
168
191
|
*/
|
|
169
192
|
fsReadBatch(requests: FsReadBatchRequest[]): Promise<FsReadBatchEntry[]>;
|
|
170
|
-
fsWriteRange(path: string, offset: number, bytes: Uint8Array | ArrayBuffer): Promise<
|
|
193
|
+
fsWriteRange(path: string, offset: number, bytes: Uint8Array | ArrayBuffer): Promise<VfsMutationReceipt>;
|
|
171
194
|
fsAppend(path: string, moduleId: string, operationId: string, bytes: Uint8Array | ArrayBuffer): Promise<number>;
|
|
172
195
|
fsAppendAck(moduleId: string, operationId: string): Promise<void>;
|
|
173
|
-
fsTruncate(path: string, size: number): Promise<
|
|
196
|
+
fsTruncate(path: string, size: number): Promise<VfsMutationReceipt>;
|
|
174
197
|
/**
|
|
175
198
|
* Bulk-write all inodes + chunks in ONE transactionSync on the supervisor.
|
|
176
199
|
* Used by facets that buffer writes locally (git clone/fetch/pull).
|
|
@@ -266,11 +289,13 @@ export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
|
266
289
|
* it, so a caller-supplied `put` would be a cross-tenant
|
|
267
290
|
* code-execution primitive for anyone holding a supervisor stub. No
|
|
268
291
|
* such RPC exists: the only bytes that reach `pc/<name>.json` are the
|
|
269
|
-
* ones registry.npmjs.org served for that exact name
|
|
292
|
+
* ones registry.npmjs.org served for that exact name; another registry
|
|
293
|
+
* (`options.registry`, the install's `NPM_REGISTRY`) has its own keys.
|
|
270
294
|
*/
|
|
271
295
|
getPackument(name: string, options?: {
|
|
272
296
|
retries?: number;
|
|
273
297
|
timeoutMs?: number;
|
|
298
|
+
registry?: string;
|
|
274
299
|
}): Promise<PackumentReadThrough & {
|
|
275
300
|
events: SupervisorCacheStatEvent[];
|
|
276
301
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-rpc.d.ts","sourceRoot":"","sources":["../../src/session/supervisor-rpc.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"supervisor-rpc.d.ts","sourceRoot":"","sources":["../../src/session/supervisor-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* Exported from index.ts. Facets receive `env.SUPERVISOR` service binding
|
|
5
5
|
* pointing to this class via ctx.exports loopback binding.
|
|
6
6
|
*
|
|
7
|
-
* Props: { doId: string, pid: number, writerId: string }
|
|
7
|
+
* Props: { doId: string, pid: number, writerId: string, route: HostRoute }
|
|
8
8
|
* doId — the supervisor DO's durable object ID (for routing)
|
|
9
9
|
* pid — the process ID (for stdout/stderr routing)
|
|
10
10
|
* writerId — the active append-writer incarnation for this process
|
|
11
|
+
* route — the host namespace and dispatch method, minted with the binding
|
|
12
|
+
* in the host's isolate; this entrypoint may answer from another
|
|
11
13
|
*
|
|
12
14
|
* Methods callable by facets via RPC:
|
|
13
15
|
* readFile(path) → string | null
|
|
@@ -29,7 +31,7 @@
|
|
|
29
31
|
* prefetch(cwd, entryCode) → Record<string, string>
|
|
30
32
|
*/
|
|
31
33
|
import { WorkerEntrypoint } from 'cloudflare:workers';
|
|
32
|
-
import {
|
|
34
|
+
import { hostNamespaceBinding, hostOpDispatch } from '@nimbus-sh/fabric/host-dispatch.js';
|
|
33
35
|
// W5: OOM discriminator — record last-known RPC frame on writeBatch entry
|
|
34
36
|
import { setLastRpcFrame } from '@nimbus-sh/platform/oom-discriminator.js';
|
|
35
37
|
// Phase 2 A'.2 — supervisor in-flight RPC payload byte tracking.
|
|
@@ -79,30 +81,20 @@ function _estimateWriteBatchBytes(payload) {
|
|
|
79
81
|
// worker's composition root (src/index.ts) names this class to the fabric
|
|
80
82
|
// with composeFabric.
|
|
81
83
|
export class SupervisorRPC extends WorkerEntrypoint {
|
|
82
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Resolve the host anew for each WorkerEntrypoint invocation, by the
|
|
86
|
+
* route the binding carries. The platform serves this entrypoint from
|
|
87
|
+
* whichever isolate it likes; the props were minted in the host's.
|
|
88
|
+
*/
|
|
83
89
|
_dispatch() {
|
|
84
|
-
const
|
|
90
|
+
const props = (this.ctx.props ?? {});
|
|
91
|
+
const doId = props.doId;
|
|
85
92
|
if (typeof doId !== 'string' || doId.length === 0) {
|
|
86
93
|
throw new Error('SupervisorRPC: missing doId in props');
|
|
87
94
|
}
|
|
88
|
-
const
|
|
89
|
-
const namespace = Reflect.get(this.env, binding);
|
|
90
|
-
if (!namespace || typeof namespace.idFromString !== 'function') {
|
|
91
|
-
throw new Error(`SupervisorRPC: env.${binding} is not a Durable Object namespace; `
|
|
92
|
-
+ "a workspace host names its own with composeFabric({ hostNamespace: '<binding>' })");
|
|
93
|
-
}
|
|
95
|
+
const namespace = hostNamespaceBinding(this.env, 'SupervisorRPC', props.route);
|
|
94
96
|
const stub = namespace.get(namespace.idFromString(doId));
|
|
95
|
-
|
|
96
|
-
const dispatch = Reflect.get(stub, method);
|
|
97
|
-
if (typeof dispatch !== 'function') {
|
|
98
|
-
throw new Error(`SupervisorRPC: the workspace host mounts no ${method}(); `
|
|
99
|
-
+ 'a host forwards one method to workspace.supervisorOp(op)');
|
|
100
|
-
}
|
|
101
|
-
// Never `.call(stub, …)` on an RpcStub: the proxy treats `call` as a
|
|
102
|
-
// property get, which becomes an RPC to a method literally named "call".
|
|
103
|
-
// `Reflect.apply` reaches the proxied member's apply trap instead, and on
|
|
104
|
-
// a plain-object host it still invokes the method with the stub as `this`.
|
|
105
|
-
return (envelope) => Reflect.apply(dispatch, stub, [envelope]);
|
|
97
|
+
return hostOpDispatch(stub, 'SupervisorRPC', props.route);
|
|
106
98
|
}
|
|
107
99
|
_op(op, args = [], extra = {}) {
|
|
108
100
|
return this._dispatch()({ op, args, ...extra });
|
|
@@ -151,8 +143,8 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
151
143
|
// Uint8Array transparently; downstream _rpcWriteFile also accepts
|
|
152
144
|
return this._call(this._fsOp('writeFile', [path, content]));
|
|
153
145
|
}
|
|
154
|
-
async stat(path) {
|
|
155
|
-
return this._call(this._fsOp('stat', [path]));
|
|
146
|
+
async stat(path, options) {
|
|
147
|
+
return this._call(this._fsOp('stat', [path, options]));
|
|
156
148
|
}
|
|
157
149
|
async lstat(path) {
|
|
158
150
|
return this._call(this._fsOp('lstat', [path]));
|
|
@@ -181,8 +173,8 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
181
173
|
async exists(path) {
|
|
182
174
|
return this._call(this._fsOp('exists', [path]));
|
|
183
175
|
}
|
|
184
|
-
async mkdir(path) {
|
|
185
|
-
return this._call(this._fsOp('mkdir', [path]));
|
|
176
|
+
async mkdir(path, options) {
|
|
177
|
+
return this._call(this._fsOp('mkdir', [path, options]));
|
|
186
178
|
}
|
|
187
179
|
async rmdir(path) {
|
|
188
180
|
return this._call(this._fsOp('rmdir', [path]));
|
|
@@ -265,6 +257,51 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
265
257
|
async fsWrite(handleId, offset, bytes) {
|
|
266
258
|
return this._call(this._fsOp('fsWrite', [handleId, offset, bytes]));
|
|
267
259
|
}
|
|
260
|
+
async fsFstat(...args) {
|
|
261
|
+
return this._call(this._fsOp('fsFstat', args));
|
|
262
|
+
}
|
|
263
|
+
async fsDup(...args) {
|
|
264
|
+
return this._call(this._fsOp('fsDup', args));
|
|
265
|
+
}
|
|
266
|
+
async fsSeek(...args) {
|
|
267
|
+
return this._call(this._fsOp('fsSeek', args));
|
|
268
|
+
}
|
|
269
|
+
async fsSetStatus(...args) {
|
|
270
|
+
return this._call(this._fsOp('fsSetStatus', args));
|
|
271
|
+
}
|
|
272
|
+
async fsReaddirHandle(...args) {
|
|
273
|
+
return this._call(this._fsOp('fsReaddirHandle', args));
|
|
274
|
+
}
|
|
275
|
+
async fsFtruncate(...args) {
|
|
276
|
+
return this._call(this._fsOp('fsFtruncate', args));
|
|
277
|
+
}
|
|
278
|
+
async fsFchmod(...args) {
|
|
279
|
+
return this._call(this._fsOp('fsFchmod', args));
|
|
280
|
+
}
|
|
281
|
+
async fsFchown(...args) {
|
|
282
|
+
return this._call(this._fsOp('fsFchown', args));
|
|
283
|
+
}
|
|
284
|
+
async fsFutimes(...args) {
|
|
285
|
+
return this._call(this._fsOp('fsFutimes', args));
|
|
286
|
+
}
|
|
287
|
+
async fsSync(...args) {
|
|
288
|
+
return this._call(this._fsOp('fsSync', args));
|
|
289
|
+
}
|
|
290
|
+
async fsRealpath(...args) {
|
|
291
|
+
return this._call(this._fsOp('fsRealpath', args));
|
|
292
|
+
}
|
|
293
|
+
async fsRemove(...args) {
|
|
294
|
+
return this._call(this._fsOp('fsRemove', args));
|
|
295
|
+
}
|
|
296
|
+
async fsCopyFile(...args) {
|
|
297
|
+
return this._call(this._fsOp('fsCopyFile', args));
|
|
298
|
+
}
|
|
299
|
+
async fsAcquireExclusiveMutation(...args) {
|
|
300
|
+
return this._call(this._fsOp('fsAcquireExclusiveMutation', args));
|
|
301
|
+
}
|
|
302
|
+
async fsReleaseExclusiveMutation(...args) {
|
|
303
|
+
return this._call(this._fsOp('fsReleaseExclusiveMutation', args));
|
|
304
|
+
}
|
|
268
305
|
async fsClose(handleId) {
|
|
269
306
|
return this._call(this._fsOp('fsClose', [handleId]));
|
|
270
307
|
}
|
|
@@ -489,7 +526,8 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
489
526
|
* it, so a caller-supplied `put` would be a cross-tenant
|
|
490
527
|
* code-execution primitive for anyone holding a supervisor stub. No
|
|
491
528
|
* such RPC exists: the only bytes that reach `pc/<name>.json` are the
|
|
492
|
-
* ones registry.npmjs.org served for that exact name
|
|
529
|
+
* ones registry.npmjs.org served for that exact name; another registry
|
|
530
|
+
* (`options.registry`, the install's `NPM_REGISTRY`) has its own keys.
|
|
493
531
|
*/
|
|
494
532
|
async getPackument(name, options) {
|
|
495
533
|
const r2 = this._r2();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facet-resident-store.d.ts","sourceRoot":"","sources":["../../src/vfs/facet-resident-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqLG;AAQH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,OAA2B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAA8B,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"facet-resident-store.d.ts","sourceRoot":"","sources":["../../src/vfs/facet-resident-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqLG;AAQH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,OAA2B,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAA8B,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,QAo3BhC,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"}
|
|
@@ -795,7 +795,7 @@ async function __residentEnumerate(supervisor) {
|
|
|
795
795
|
if (!Number.isSafeInteger(size) || size < 0 || !Number.isSafeInteger(rev) || rev < 0) {
|
|
796
796
|
throw new Error("Nimbus: fsList returned unusable metadata for '" + path + "'");
|
|
797
797
|
}
|
|
798
|
-
entries.push({ path, size, rev });
|
|
798
|
+
entries.push({ path, size, rev, epoch: cursor.epoch });
|
|
799
799
|
}
|
|
800
800
|
if (listed.next === null || listed.next === undefined) {
|
|
801
801
|
return { entries, cursor, complete: true, reason: null };
|
|
@@ -844,6 +844,7 @@ async function __residentFetchFiles(supervisor, files) {
|
|
|
844
844
|
ranges.push({
|
|
845
845
|
path: file.path,
|
|
846
846
|
rev: file.rev,
|
|
847
|
+
epoch: file.epoch,
|
|
847
848
|
part,
|
|
848
849
|
parts,
|
|
849
850
|
offset,
|
|
@@ -874,7 +875,7 @@ async function __residentFetchFiles(supervisor, files) {
|
|
|
874
875
|
let results;
|
|
875
876
|
try {
|
|
876
877
|
results = await supervisor.fsReadBatch(
|
|
877
|
-
batch.map((r) => ({ path: r.path, offset: r.offset, length: r.length }))
|
|
878
|
+
batch.map((r) => ({ path: r.path, offset: r.offset, length: r.length, expectedEpoch: r.epoch, expectedRevision: r.rev }))
|
|
878
879
|
);
|
|
879
880
|
} catch {
|
|
880
881
|
for (const r of batch) failedPaths.add(r.path);
|
|
@@ -896,6 +897,7 @@ async function __residentFetchFiles(supervisor, files) {
|
|
|
896
897
|
}
|
|
897
898
|
if (entry.bytes === null || entry.bytes === undefined) { failedPaths.add(range.path); continue; }
|
|
898
899
|
const chunk = __residentBytes(entry.bytes);
|
|
900
|
+
if (chunk.byteLength !== range.length) { failedPaths.add(range.path); continue; }
|
|
899
901
|
fetchedBytes += chunk.byteLength;
|
|
900
902
|
__residentPutChunk(__residentSql, range.path, range.part, chunk);
|
|
901
903
|
const seen = (landed.get(range.path) || 0) + 1;
|
package/dist/workspace-host.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { composeFacetManager, type FacetManagerDeps, type ComposedFacetManager } from './facets/compose.js';
|
|
1
|
+
export { composeFacetManager, type FacetManagerDeps, type FacetManagerHostHooks, type ComposedFacetManager } from './facets/compose.js';
|
|
2
|
+
export type { WorkerRecipe, ResolvedWorkerLaunch, LongRunningWorkerSpawnOptions } from './facets/manager.js';
|
|
2
3
|
export { composeHostedRuntime, type HostedRuntime, type HostedRuntimeOptions, type HostedRuntimeLifecycle, type HostedRuntimeTask, type RuntimeFiles } from './hosted/runtime.js';
|
|
3
4
|
export { runtimeCatalogSource } from './runtime/runtime-catalog.js';
|
|
4
5
|
export { SupervisorRPC } from './session/supervisor-rpc.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-host.d.ts","sourceRoot":"","sources":["../src/workspace-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-host.d.ts","sourceRoot":"","sources":["../src/workspace-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACxI,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClL,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nimbus-wrangler.d.ts","sourceRoot":"","sources":["../../src/wrangler/nimbus-wrangler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"nimbus-wrangler.d.ts","sourceRoot":"","sources":["../../src/wrangler/nimbus-wrangler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAqD/E,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,eAAe,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,GAAG,CAAC;IACT;;;;OAIG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CA+BR;AAyDD,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAAa;IACjC,6EAA6E;IAC7E,OAAO,CAAC,UAAU,CAA+B;IACjD,gFAAgF;IAChF,OAAO,CAAC,YAAY,CAA0B;gBAElC,IAAI,EAAE,qBAAqB;IAWvC,qCAAqC;IAC/B,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB/B,oCAAoC;IACpC,IAAI,IAAI,IAAI;IAgBZ,IAAI,SAAS,YAA2B;IAIxC,OAAO,CAAC,UAAU;IAiDlB,oFAAoF;IACpF,OAAO,CAAC,gBAAgB;IAqBxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,gBAAgB;YAIV,YAAY;IA6L1B,OAAO,CAAC,aAAa;IAwOrB,OAAO,CAAC,eAAe;IAkCvB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,CAAC;IAsFpB,IAAI,KAAK;;;;;;MAQR;IAYD,8FAA8F;IAC9F,kBAAkB,IAAI,OAAO;IAK7B,+EAA+E;IAC/E,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI5C;;;;;gCAK4B;IAC5B,uBAAuB,IAAI,IAAI;CA4BhC"}
|
|
@@ -18,6 +18,7 @@ import { registerInnerDoClass, clearInnerDoClasses } from '@nimbus-sh/fabric/inn
|
|
|
18
18
|
import { KvEmulator } from '../bindings/kv.js';
|
|
19
19
|
import { D1Emulator } from '../bindings/d1.js';
|
|
20
20
|
import { R2Emulator } from '../bindings/r2.js';
|
|
21
|
+
import { hostRoute } from '@nimbus-sh/fabric/composition.js';
|
|
21
22
|
// ── Proxy helpers ──────────────────────────────────────────────────────
|
|
22
23
|
/**
|
|
23
24
|
* Rewrite a Location header emitted by the inner Worker so that, when
|
|
@@ -558,6 +559,7 @@ export class NimbusWrangler {
|
|
|
558
559
|
vfsRoot: this.root,
|
|
559
560
|
assetsDir,
|
|
560
561
|
doId,
|
|
562
|
+
route: hostRoute() ?? undefined,
|
|
561
563
|
},
|
|
562
564
|
});
|
|
563
565
|
}
|
|
@@ -624,6 +626,7 @@ export class NimbusWrangler {
|
|
|
624
626
|
props: {
|
|
625
627
|
bindingName,
|
|
626
628
|
supervisorDoId: doId,
|
|
629
|
+
route: hostRoute() ?? undefined,
|
|
627
630
|
},
|
|
628
631
|
});
|
|
629
632
|
// Track facet names we might create later so stop() can abort
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimbus-sh/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Nimbus runtime package for Cloudflare Workers, re-exported publicly through @nimbus-sh/sdk/worker.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -78,6 +78,31 @@
|
|
|
78
78
|
"types": "./dist/git/commands.d.ts",
|
|
79
79
|
"import": "./dist/git/commands.js"
|
|
80
80
|
},
|
|
81
|
+
"./session/programmatic": {
|
|
82
|
+
"workspace": "./src/session/programmatic.ts",
|
|
83
|
+
"types": "./dist/session/programmatic.d.ts",
|
|
84
|
+
"import": "./dist/session/programmatic.js"
|
|
85
|
+
},
|
|
86
|
+
"./session/rpc": {
|
|
87
|
+
"workspace": "./src/session/rpc.ts",
|
|
88
|
+
"types": "./dist/session/rpc.d.ts",
|
|
89
|
+
"import": "./dist/session/rpc.js"
|
|
90
|
+
},
|
|
91
|
+
"./session/supervisor-rpc": {
|
|
92
|
+
"workspace": "./src/session/supervisor-rpc.ts",
|
|
93
|
+
"types": "./dist/session/supervisor-rpc.d.ts",
|
|
94
|
+
"import": "./dist/session/supervisor-rpc.js"
|
|
95
|
+
},
|
|
96
|
+
"./session/routes": {
|
|
97
|
+
"workspace": "./src/session/routes.ts",
|
|
98
|
+
"types": "./dist/session/routes.d.ts",
|
|
99
|
+
"import": "./dist/session/routes.js"
|
|
100
|
+
},
|
|
101
|
+
"./runtime/package-manager": {
|
|
102
|
+
"workspace": "./src/runtime/package-manager.ts",
|
|
103
|
+
"types": "./dist/runtime/package-manager.d.ts",
|
|
104
|
+
"import": "./dist/runtime/package-manager.js"
|
|
105
|
+
},
|
|
81
106
|
"./runtime-sync-helper": "./scripts/bundle-runtime.mjs",
|
|
82
107
|
"./public/*": "./public/*",
|
|
83
108
|
"./package.json": "./package.json"
|
|
@@ -109,9 +134,9 @@
|
|
|
109
134
|
},
|
|
110
135
|
"dependencies": {
|
|
111
136
|
"@ai-sdk/openai-compatible": "^2.0.41",
|
|
112
|
-
"@nimbus-sh/core": "^0.
|
|
113
|
-
"@nimbus-sh/fabric": "^0.
|
|
114
|
-
"@nimbus-sh/platform": "^0.
|
|
137
|
+
"@nimbus-sh/core": "^0.12.0",
|
|
138
|
+
"@nimbus-sh/fabric": "^0.7.1",
|
|
139
|
+
"@nimbus-sh/platform": "^0.5.1",
|
|
115
140
|
"@renovatebot/pep440": "^5.0.0",
|
|
116
141
|
"ai": "^6.0.182",
|
|
117
142
|
"clean-git-ref": "^2.0.1",
|
|
@@ -135,6 +160,7 @@
|
|
|
135
160
|
},
|
|
136
161
|
"devDependencies": {
|
|
137
162
|
"@cloudflare/workers-types": "^4.20250327.0",
|
|
163
|
+
"acorn": "^8.15.0",
|
|
138
164
|
"dompurify": "3.4.12",
|
|
139
165
|
"highlight.js": "11.11.1",
|
|
140
166
|
"marked": "18.0.6",
|