@nimbus-sh/sdk 0.1.3 → 0.1.5
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 +32 -0
- package/dist/flue.d.ts +93 -0
- package/dist/flue.d.ts.map +1 -0
- package/dist/flue.js +112 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/sandbox.d.ts +18 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +10 -0
- package/dist/worker.d.ts +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +1 -1
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -72,6 +72,15 @@ export default createNimbusHandler({
|
|
|
72
72
|
});
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
+
The bundled session UI includes an Agent surface in the editor workspace.
|
|
76
|
+
Configure it with Worker vars
|
|
77
|
+
`NIMBUS_CF_OAUTH_CLIENT_ID`, `NIMBUS_CF_OAUTH_SCOPES`,
|
|
78
|
+
`NIMBUS_AGENT_MODEL`, `NIMBUS_AGENT_GATEWAY_ID`, and the secrets
|
|
79
|
+
`NIMBUS_AGENT_COOKIE_SECRET` or `NIMBUS_CLOUDFLARE_API_TOKEN` when you want
|
|
80
|
+
Cloudflare OAuth or owner-token Workers AI access. User OAuth uses
|
|
81
|
+
Authorization Code + PKCE and encrypted browser cookies; Nimbus does not store
|
|
82
|
+
user OAuth tokens in Durable Object storage.
|
|
83
|
+
|
|
75
84
|
## Programmatic sandbox quickstart
|
|
76
85
|
|
|
77
86
|
The same sandbox handle API works in two modes:
|
|
@@ -152,6 +161,28 @@ Worker verifies the JWT, enforces `sid` pins and `sandbox:use` scope, applies
|
|
|
152
161
|
the configured runtime policy, and delegates to the same `NimbusSession` RPC
|
|
153
162
|
methods used by `Nimbus.fromEnv()`.
|
|
154
163
|
|
|
164
|
+
## Flue connector
|
|
165
|
+
|
|
166
|
+
Use `@nimbus-sh/sdk/flue` when an agent runtime expects Flue's sandbox
|
|
167
|
+
provider contract:
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
import { Nimbus } from '@nimbus-sh/sdk/sandbox';
|
|
171
|
+
import { nimbusFlue } from '@nimbus-sh/sdk/flue';
|
|
172
|
+
|
|
173
|
+
const box = Nimbus.fromEnv(env, nimbusConfig).sandbox('job-123');
|
|
174
|
+
await box.ready();
|
|
175
|
+
|
|
176
|
+
const factory = nimbusFlue(box);
|
|
177
|
+
const sessionEnv = await factory.createSessionEnv({
|
|
178
|
+
id: 'job-123',
|
|
179
|
+
cwd: '/home/user',
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
await sessionEnv.writeFile('/home/user/main.py', 'print(2 + 2)\n');
|
|
183
|
+
const result = await sessionEnv.exec('python /home/user/main.py');
|
|
184
|
+
```
|
|
185
|
+
|
|
155
186
|
## Sandbox handle API
|
|
156
187
|
|
|
157
188
|
```ts
|
|
@@ -174,6 +205,7 @@ await box.runCode('print(2 + 2)', { language: 'python', install: 'ifMissing' });
|
|
|
174
205
|
await box.files.write('/home/user/app/a.txt', 'hello');
|
|
175
206
|
await box.files.read('/home/user/app/a.txt');
|
|
176
207
|
await box.files.list('/home/user/app');
|
|
208
|
+
await box.files.stat('/home/user/app/a.txt');
|
|
177
209
|
await box.files.delete('/home/user/app/a.txt');
|
|
178
210
|
|
|
179
211
|
await box.runtimes.available();
|
package/dist/flue.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nimbus-sh/sdk/flue - Flue sandbox connector for Nimbus sandboxes.
|
|
3
|
+
*
|
|
4
|
+
* Flue owns the agent harness. Nimbus owns the sandbox. This adapter maps a
|
|
5
|
+
* `NimbusSandbox` handle to Flue's `SandboxFactory`/`SandboxApi` contract
|
|
6
|
+
* without making `@flue/runtime` a hard dependency of the core SDK.
|
|
7
|
+
*/
|
|
8
|
+
import type { NimbusSandbox } from './sandbox.js';
|
|
9
|
+
export interface NimbusFlueFileStat {
|
|
10
|
+
isFile: boolean;
|
|
11
|
+
isDirectory: boolean;
|
|
12
|
+
isSymbolicLink: boolean;
|
|
13
|
+
size: number;
|
|
14
|
+
mtime: Date;
|
|
15
|
+
}
|
|
16
|
+
export interface NimbusFlueSessionEnv {
|
|
17
|
+
exec(command: string, options?: NimbusFlueExecOptions): Promise<NimbusFlueShellResult>;
|
|
18
|
+
readFile(path: string): Promise<string>;
|
|
19
|
+
readFileBuffer(path: string): Promise<Uint8Array>;
|
|
20
|
+
writeFile(path: string, content: string | Uint8Array): Promise<void>;
|
|
21
|
+
stat(path: string): Promise<NimbusFlueFileStat>;
|
|
22
|
+
readdir(path: string): Promise<string[]>;
|
|
23
|
+
exists(path: string): Promise<boolean>;
|
|
24
|
+
mkdir(path: string, options?: {
|
|
25
|
+
recursive?: boolean;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
rm(path: string, options?: {
|
|
28
|
+
recursive?: boolean;
|
|
29
|
+
force?: boolean;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
cwd: string;
|
|
32
|
+
resolvePath(path: string): string;
|
|
33
|
+
}
|
|
34
|
+
export interface NimbusFlueShellResult {
|
|
35
|
+
stdout: string;
|
|
36
|
+
stderr: string;
|
|
37
|
+
exitCode: number;
|
|
38
|
+
}
|
|
39
|
+
export interface NimbusFlueExecOptions {
|
|
40
|
+
cwd?: string;
|
|
41
|
+
env?: Record<string, string>;
|
|
42
|
+
timeout?: number;
|
|
43
|
+
signal?: AbortSignal;
|
|
44
|
+
}
|
|
45
|
+
export interface NimbusFlueSandboxApi {
|
|
46
|
+
readFile(path: string): Promise<string>;
|
|
47
|
+
readFileBuffer(path: string): Promise<Uint8Array>;
|
|
48
|
+
writeFile(path: string, content: string | Uint8Array): Promise<void>;
|
|
49
|
+
stat(path: string): Promise<NimbusFlueFileStat>;
|
|
50
|
+
readdir(path: string): Promise<string[]>;
|
|
51
|
+
exists(path: string): Promise<boolean>;
|
|
52
|
+
mkdir(path: string, options?: {
|
|
53
|
+
recursive?: boolean;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
rm(path: string, options?: {
|
|
56
|
+
recursive?: boolean;
|
|
57
|
+
force?: boolean;
|
|
58
|
+
}): Promise<void>;
|
|
59
|
+
exec(command: string, options?: NimbusFlueExecOptions): Promise<NimbusFlueShellResult>;
|
|
60
|
+
}
|
|
61
|
+
export interface NimbusFlueRuntime<SessionEnv = NimbusFlueSessionEnv> {
|
|
62
|
+
createSandboxSessionEnv(api: NimbusFlueSandboxApi, cwd: string): SessionEnv;
|
|
63
|
+
}
|
|
64
|
+
export interface NimbusFlueFactory<SessionEnv = NimbusFlueSessionEnv> {
|
|
65
|
+
createSessionEnv(options: {
|
|
66
|
+
id: string;
|
|
67
|
+
cwd?: string;
|
|
68
|
+
}): Promise<SessionEnv>;
|
|
69
|
+
}
|
|
70
|
+
export interface NimbusFlueOptions<SessionEnv = NimbusFlueSessionEnv> {
|
|
71
|
+
cwd?: string;
|
|
72
|
+
runtime?: NimbusFlueRuntime<SessionEnv>;
|
|
73
|
+
}
|
|
74
|
+
export declare function nimbusFlue<SessionEnv = NimbusFlueSessionEnv>(sandbox: NimbusSandbox, options?: NimbusFlueOptions<SessionEnv>): NimbusFlueFactory<SessionEnv>;
|
|
75
|
+
export declare class NimbusFlueApi implements NimbusFlueSandboxApi {
|
|
76
|
+
private readonly sandbox;
|
|
77
|
+
constructor(sandbox: NimbusSandbox);
|
|
78
|
+
readFile(path: string): Promise<string>;
|
|
79
|
+
readFileBuffer(path: string): Promise<Uint8Array>;
|
|
80
|
+
writeFile(path: string, content: string | Uint8Array): Promise<void>;
|
|
81
|
+
stat(path: string): Promise<NimbusFlueFileStat>;
|
|
82
|
+
readdir(path: string): Promise<string[]>;
|
|
83
|
+
exists(path: string): Promise<boolean>;
|
|
84
|
+
mkdir(path: string, _options?: {
|
|
85
|
+
recursive?: boolean;
|
|
86
|
+
}): Promise<void>;
|
|
87
|
+
rm(path: string, options?: {
|
|
88
|
+
recursive?: boolean;
|
|
89
|
+
force?: boolean;
|
|
90
|
+
}): Promise<void>;
|
|
91
|
+
exec(command: string, options?: NimbusFlueExecOptions): Promise<NimbusFlueShellResult>;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=flue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flue.d.ts","sourceRoot":"","sources":["../src/flue.ts"],"names":[],"mappings":"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"}
|
package/dist/flue.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nimbus-sh/sdk/flue - Flue sandbox connector for Nimbus sandboxes.
|
|
3
|
+
*
|
|
4
|
+
* Flue owns the agent harness. Nimbus owns the sandbox. This adapter maps a
|
|
5
|
+
* `NimbusSandbox` handle to Flue's `SandboxFactory`/`SandboxApi` contract
|
|
6
|
+
* without making `@flue/runtime` a hard dependency of the core SDK.
|
|
7
|
+
*/
|
|
8
|
+
export function nimbusFlue(sandbox, options = {}) {
|
|
9
|
+
return {
|
|
10
|
+
async createSessionEnv({ cwd }) {
|
|
11
|
+
const runtime = options.runtime ?? await loadFlueRuntime();
|
|
12
|
+
return runtime.createSandboxSessionEnv(new NimbusFlueApi(sandbox), cwd ?? options.cwd ?? '/home/user');
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export class NimbusFlueApi {
|
|
17
|
+
sandbox;
|
|
18
|
+
constructor(sandbox) {
|
|
19
|
+
this.sandbox = sandbox;
|
|
20
|
+
}
|
|
21
|
+
async readFile(path) {
|
|
22
|
+
const content = await this.sandbox.files.read(path);
|
|
23
|
+
if (content == null)
|
|
24
|
+
throw enoent(path);
|
|
25
|
+
return content;
|
|
26
|
+
}
|
|
27
|
+
async readFileBuffer(path) {
|
|
28
|
+
const content = await this.sandbox.files.readBytes(path);
|
|
29
|
+
if (content == null)
|
|
30
|
+
throw enoent(path);
|
|
31
|
+
return content;
|
|
32
|
+
}
|
|
33
|
+
async writeFile(path, content) {
|
|
34
|
+
await this.sandbox.files.write(path, content);
|
|
35
|
+
}
|
|
36
|
+
async stat(path) {
|
|
37
|
+
const stat = await this.sandbox.files.stat(path);
|
|
38
|
+
if (!stat)
|
|
39
|
+
throw enoent(path);
|
|
40
|
+
return toFlueStat(stat);
|
|
41
|
+
}
|
|
42
|
+
async readdir(path) {
|
|
43
|
+
const entries = await this.sandbox.files.list(path);
|
|
44
|
+
return entries.map((entry) => entry.name);
|
|
45
|
+
}
|
|
46
|
+
async exists(path) {
|
|
47
|
+
return this.sandbox.files.exists(path);
|
|
48
|
+
}
|
|
49
|
+
async mkdir(path, _options = {}) {
|
|
50
|
+
await this.sandbox.files.mkdir(path);
|
|
51
|
+
}
|
|
52
|
+
async rm(path, options = {}) {
|
|
53
|
+
if (options.force && !(await this.sandbox.files.exists(path)))
|
|
54
|
+
return;
|
|
55
|
+
await this.sandbox.files.delete(path, { recursive: options.recursive });
|
|
56
|
+
}
|
|
57
|
+
async exec(command, options = {}) {
|
|
58
|
+
const result = await this.sandbox.exec(command, {
|
|
59
|
+
cwd: options.cwd,
|
|
60
|
+
env: options.env,
|
|
61
|
+
timeoutMs: secondsToMilliseconds(options.timeout),
|
|
62
|
+
});
|
|
63
|
+
if (options.signal?.aborted)
|
|
64
|
+
throw abortError(options.signal);
|
|
65
|
+
return toShellResult(result);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async function loadFlueRuntime() {
|
|
69
|
+
try {
|
|
70
|
+
const specifier = '@flue/runtime';
|
|
71
|
+
const runtime = await import(specifier);
|
|
72
|
+
if (typeof runtime.createSandboxSessionEnv === 'function') {
|
|
73
|
+
return runtime;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Error below gives callers the exact integration action.
|
|
78
|
+
}
|
|
79
|
+
throw new Error('nimbusFlue requires @flue/runtime. Install Flue or pass { runtime: { createSandboxSessionEnv } }.');
|
|
80
|
+
}
|
|
81
|
+
function toFlueStat(stat) {
|
|
82
|
+
const type = String(stat.type);
|
|
83
|
+
return {
|
|
84
|
+
isFile: type === 'file',
|
|
85
|
+
isDirectory: type === 'directory',
|
|
86
|
+
isSymbolicLink: false,
|
|
87
|
+
size: Number(stat.size) || 0,
|
|
88
|
+
mtime: new Date(Number(stat.mtime) || Date.now()),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function toShellResult(result) {
|
|
92
|
+
return {
|
|
93
|
+
stdout: result.stdout,
|
|
94
|
+
stderr: result.stderr,
|
|
95
|
+
exitCode: result.exitCode,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function secondsToMilliseconds(timeout) {
|
|
99
|
+
if (typeof timeout !== 'number' || !Number.isFinite(timeout) || timeout <= 0)
|
|
100
|
+
return undefined;
|
|
101
|
+
return Math.max(1, Math.round(timeout * 1000));
|
|
102
|
+
}
|
|
103
|
+
function enoent(path) {
|
|
104
|
+
const error = new Error(`ENOENT: no such file or directory, '${path}'`);
|
|
105
|
+
error.code = 'ENOENT';
|
|
106
|
+
return error;
|
|
107
|
+
}
|
|
108
|
+
function abortError(signal) {
|
|
109
|
+
return signal.reason instanceof Error
|
|
110
|
+
? signal.reason
|
|
111
|
+
: new DOMException('The operation was aborted', 'AbortError');
|
|
112
|
+
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/sandbox.d.ts
CHANGED
|
@@ -64,6 +64,15 @@ export interface NimbusExecResult {
|
|
|
64
64
|
duration: number;
|
|
65
65
|
timestamp: number;
|
|
66
66
|
}
|
|
67
|
+
export interface NimbusDestroyOptions {
|
|
68
|
+
reason?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface NimbusDestroyResult {
|
|
71
|
+
ok: true;
|
|
72
|
+
killed: number;
|
|
73
|
+
destroyedAt: number;
|
|
74
|
+
reason: string | null;
|
|
75
|
+
}
|
|
67
76
|
export interface NimbusStartResult extends NimbusExecResult {
|
|
68
77
|
pid: number | null;
|
|
69
78
|
process: NimbusProcess | null;
|
|
@@ -85,6 +94,13 @@ export interface NimbusPort {
|
|
|
85
94
|
pid: number;
|
|
86
95
|
registeredAt: number;
|
|
87
96
|
}
|
|
97
|
+
export interface NimbusFileStat {
|
|
98
|
+
type: 'file' | 'directory' | string;
|
|
99
|
+
size: number;
|
|
100
|
+
ctime?: number;
|
|
101
|
+
mtime: number;
|
|
102
|
+
mode: number;
|
|
103
|
+
}
|
|
88
104
|
export interface NimbusRuntimeSummary {
|
|
89
105
|
name: string;
|
|
90
106
|
version: string;
|
|
@@ -154,10 +170,12 @@ export declare class NimbusSandbox {
|
|
|
154
170
|
language?: 'javascript' | 'typescript' | 'python' | 'ruby' | 'shell';
|
|
155
171
|
install?: 'never' | 'ifMissing';
|
|
156
172
|
}): Promise<NimbusExecResult>;
|
|
173
|
+
destroy(options?: NimbusDestroyOptions): Promise<NimbusDestroyResult>;
|
|
157
174
|
files: {
|
|
158
175
|
read: (path: string) => Promise<string | null>;
|
|
159
176
|
readBytes: (path: string) => Promise<Uint8Array | null>;
|
|
160
177
|
write: (path: string, content: string | Uint8Array) => Promise<void>;
|
|
178
|
+
stat: (path: string) => Promise<NimbusFileStat | null>;
|
|
161
179
|
list: (path?: string) => Promise<{
|
|
162
180
|
name: string;
|
|
163
181
|
type: string;
|
package/dist/sandbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.js
CHANGED
|
@@ -101,6 +101,7 @@ export class NimbusSandbox {
|
|
|
101
101
|
_rpcReadFile: (path) => this.remoteRpc('readFile', [path]),
|
|
102
102
|
_rpcReadFileBytes: (path) => this.remoteRpc('readFileBytes', [path]),
|
|
103
103
|
_rpcWriteFile: (path, content) => this.remoteRpc('writeFile', [path, content]),
|
|
104
|
+
_rpcStat: (path) => this.remoteRpc('stat', [path]),
|
|
104
105
|
_rpcReaddir: (path) => this.remoteRpc('readdir', [path]),
|
|
105
106
|
_rpcExists: (path) => this.remoteRpc('exists', [path]),
|
|
106
107
|
_rpcMkdir: (path) => this.remoteRpc('mkdir', [path]),
|
|
@@ -114,6 +115,7 @@ export class NimbusSandbox {
|
|
|
114
115
|
_rpcListPorts: () => this.remoteRpc('listPorts', []),
|
|
115
116
|
_rpcExposePort: (port) => this.remoteRpc('exposePort', [port]),
|
|
116
117
|
_rpcUnexposePort: (port) => this.remoteRpc('unexposePort', [port]),
|
|
118
|
+
_rpcDestroy: (options) => this.remoteRpc('destroy', [options]),
|
|
117
119
|
};
|
|
118
120
|
}
|
|
119
121
|
async remoteRpc(op, args) {
|
|
@@ -190,6 +192,10 @@ export class NimbusSandbox {
|
|
|
190
192
|
install: options.install ?? 'never',
|
|
191
193
|
});
|
|
192
194
|
}
|
|
195
|
+
async destroy(options = {}) {
|
|
196
|
+
this.readyPromise = null;
|
|
197
|
+
return this.stub()._rpcDestroy(options);
|
|
198
|
+
}
|
|
193
199
|
files = {
|
|
194
200
|
read: async (path) => {
|
|
195
201
|
await this.ready();
|
|
@@ -203,6 +209,10 @@ export class NimbusSandbox {
|
|
|
203
209
|
await this.ready();
|
|
204
210
|
return this.stub()._rpcWriteFile(path, content);
|
|
205
211
|
},
|
|
212
|
+
stat: async (path) => {
|
|
213
|
+
await this.ready();
|
|
214
|
+
return this.stub()._rpcStat(path);
|
|
215
|
+
},
|
|
206
216
|
list: async (path = this.root) => {
|
|
207
217
|
await this.ready();
|
|
208
218
|
return this.stub()._rpcReaddir(path);
|
package/dist/worker.d.ts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* should import through the SDK so the interactive app and programmatic
|
|
7
7
|
* sandbox APIs share one public package surface.
|
|
8
8
|
*/
|
|
9
|
-
export { NimbusSession, SupervisorRPC, NimbusAssetsRPC, NimbusLoaderRPC, NimbusLoadedWorker, NimbusLoadedEntrypoint, NimbusDurableObjectNamespace, NimbusDOStub, CirrusHmrRPC, createNimbusHandler, issueNimbusToken, verifyNimbusToken, NimbusAuthError, } from '@nimbus-sh/worker';
|
|
9
|
+
export { NimbusSession, SupervisorRPC, NimbusAssetsRPC, NimbusLoaderRPC, NimbusLoadedWorker, NimbusLoadedEntrypoint, NimbusDurableObjectNamespace, NimbusDOStub, CirrusHmrRPC, base64Utf8, base64Url, base64UrlDecode, createNimbusHandler, decodeJsonBase64Url, encodeJsonBase64Url, generateSessionId, isValidSessionId, issueNimbusToken, pkceChallenge, randomBase64Url, sealJson, sha256Base64Url, unsealJson, verifyNimbusToken, NimbusAuthError, } from '@nimbus-sh/worker';
|
|
10
10
|
export type { NimbusHandler, NimbusHooks, NimbusHookContext, CustomRoutes, CreateNimbusHandlerOptions, NimbusRemoteApiConfig, NimbusRuntimePolicy, NimbusSandboxProfile, NimbusSdkConfig, NimbusSdkRouterConfig, AuthMode, NimbusAuthConfig, NimbusAuthEnv, NimbusTokenClaims, VerifiedNimbusToken, } from '@nimbus-sh/worker';
|
|
11
11
|
//# sourceMappingURL=worker.d.ts.map
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
package/dist/worker.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* should import through the SDK so the interactive app and programmatic
|
|
7
7
|
* sandbox APIs share one public package surface.
|
|
8
8
|
*/
|
|
9
|
-
export { NimbusSession, SupervisorRPC, NimbusAssetsRPC, NimbusLoaderRPC, NimbusLoadedWorker, NimbusLoadedEntrypoint, NimbusDurableObjectNamespace, NimbusDOStub, CirrusHmrRPC, createNimbusHandler, issueNimbusToken, verifyNimbusToken, NimbusAuthError, } from '@nimbus-sh/worker';
|
|
9
|
+
export { NimbusSession, SupervisorRPC, NimbusAssetsRPC, NimbusLoaderRPC, NimbusLoadedWorker, NimbusLoadedEntrypoint, NimbusDurableObjectNamespace, NimbusDOStub, CirrusHmrRPC, base64Utf8, base64Url, base64UrlDecode, createNimbusHandler, decodeJsonBase64Url, encodeJsonBase64Url, generateSessionId, isValidSessionId, issueNimbusToken, pkceChallenge, randomBase64Url, sealJson, sha256Base64Url, unsealJson, verifyNimbusToken, NimbusAuthError, } from '@nimbus-sh/worker';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimbus-sh/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Nimbus SDK — Worker embedder, programmatic sandboxes, token mint, and client helpers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -43,6 +43,11 @@
|
|
|
43
43
|
"types": "./dist/sandbox.d.ts",
|
|
44
44
|
"import": "./dist/sandbox.js"
|
|
45
45
|
},
|
|
46
|
+
"./flue": {
|
|
47
|
+
"workspace": "./src/flue.ts",
|
|
48
|
+
"types": "./dist/flue.d.ts",
|
|
49
|
+
"import": "./dist/flue.js"
|
|
50
|
+
},
|
|
46
51
|
"./worker": {
|
|
47
52
|
"workspace": "./src/worker.ts",
|
|
48
53
|
"types": "./dist/worker.d.ts",
|
|
@@ -67,11 +72,11 @@
|
|
|
67
72
|
"typecheck": "tsc --noEmit"
|
|
68
73
|
},
|
|
69
74
|
"peerDependencies": {
|
|
70
|
-
"@nimbus-sh/worker": "^0.1.
|
|
75
|
+
"@nimbus-sh/worker": "^0.1.6"
|
|
71
76
|
},
|
|
72
77
|
"devDependencies": {
|
|
73
78
|
"@cloudflare/workers-types": "^4.20250327.0",
|
|
74
|
-
"@nimbus-sh/worker": "^0.1.
|
|
79
|
+
"@nimbus-sh/worker": "^0.1.6",
|
|
75
80
|
"typescript": "^5.7.0"
|
|
76
81
|
},
|
|
77
82
|
"publishConfig": {
|