@lightningai/sdk 2026.6.8-post0 → 2026.6.25-post0
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 +2 -97
- package/dist/command.d.ts +27 -1
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +29 -0
- package/dist/command.js.map +1 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -8
- package/dist/config.js.map +1 -1
- package/dist/filesystem.d.ts +3 -0
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +5 -0
- package/dist/filesystem.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lightning_cloud/openapi/SandboxesService.d.ts +10 -49
- package/dist/lightning_cloud/openapi/SandboxesService.d.ts.map +1 -1
- package/dist/lightning_cloud/openapi/SandboxesService.js +14 -51
- package/dist/lightning_cloud/openapi/SandboxesService.js.map +1 -1
- package/dist/lightning_cloud/openapi/data-contracts.d.ts +90 -77
- package/dist/lightning_cloud/openapi/data-contracts.d.ts.map +1 -1
- package/dist/network-policy.d.ts +49 -0
- package/dist/network-policy.d.ts.map +1 -0
- package/dist/network-policy.js +61 -0
- package/dist/network-policy.js.map +1 -0
- package/dist/process.d.ts +4 -3
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +3 -5
- package/dist/process.js.map +1 -1
- package/dist/pty.d.ts +5 -0
- package/dist/pty.d.ts.map +1 -1
- package/dist/pty.js +5 -0
- package/dist/pty.js.map +1 -1
- package/dist/sandbox.d.ts +90 -4
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +240 -27
- package/dist/sandbox.js.map +1 -1
- package/dist/types.d.ts +129 -15
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/sandbox.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { SandboxConfig, CreateSandboxParams, GetSandboxParams, ListSandboxesParams, RunCommandOpts, CommandStatus, CommandLog, WaitForCommandOptions, WriteFileParams, ReadFileParams, CreateDirectoryParams } from "./types.js";
|
|
1
|
+
import type { SandboxConfig, CreateSandboxParams, GetSandboxParams, ListSandboxesParams, RunCommandOpts, CommandStatus, CommandLog, WaitForCommandOptions, WriteFileParams, ReadFileParams, CreateDirectoryParams, ResumeSandboxParams, CreateSnapshotParams, SnapshotData, ListSnapshotsParams } from "./types.js";
|
|
2
2
|
import { Command } from "./command.js";
|
|
3
3
|
import { FileSystem } from "./filesystem.js";
|
|
4
4
|
import { SandboxProcess } from "./process.js";
|
|
5
|
+
import { NetworkPolicy } from "./network-policy.js";
|
|
5
6
|
/**
|
|
6
7
|
* A sandbox is an isolated Linux environment you can create on demand.
|
|
7
8
|
* Use it to run commands, read/write files, and manage the sandbox lifecycle.
|
|
@@ -33,13 +34,28 @@ export declare class Sandbox {
|
|
|
33
34
|
readonly sandboxId: string;
|
|
34
35
|
readonly name: string;
|
|
35
36
|
readonly organizationId: string;
|
|
36
|
-
readonly clusterId: string;
|
|
37
37
|
readonly instanceType: string;
|
|
38
38
|
readonly spot: boolean;
|
|
39
39
|
readonly status: string;
|
|
40
|
-
readonly cloudspaceId: string;
|
|
41
40
|
readonly ports: string[];
|
|
41
|
+
/** Cluster placement, kept internally for PTY attach. Not exposed publicly. */
|
|
42
|
+
private readonly _clusterId;
|
|
42
43
|
readonly runtime: string;
|
|
44
|
+
/** Custom OCI image the sandbox was created with (`""` for a curated runtime). */
|
|
45
|
+
readonly image: string;
|
|
46
|
+
/** Project Docker-registry Secret used to pull `image` (`""` when unused). */
|
|
47
|
+
readonly imageSecretRef: string;
|
|
48
|
+
/** Source snapshot this sandbox was restored from (`""` otherwise). */
|
|
49
|
+
readonly snapshotId: string;
|
|
50
|
+
/** User who created the sandbox (`""` if not tracked). */
|
|
51
|
+
readonly userId: string;
|
|
52
|
+
readonly persistent: boolean;
|
|
53
|
+
readonly projectId: string;
|
|
54
|
+
readonly storageGb: number;
|
|
55
|
+
/** Maximum lifetime in milliseconds (0 = no timeout). */
|
|
56
|
+
readonly timeout: number;
|
|
57
|
+
/** Egress firewall policy in effect for the sandbox. */
|
|
58
|
+
readonly networkPolicy: NetworkPolicy;
|
|
43
59
|
readonly createdAt: Date;
|
|
44
60
|
readonly updatedAt: Date;
|
|
45
61
|
/** Path-oriented file helpers that run commands inside the sandbox (see {@link FileSystem}). */
|
|
@@ -54,7 +70,6 @@ export declare class Sandbox {
|
|
|
54
70
|
* ```ts
|
|
55
71
|
* const pty = await sandbox.process.createPty({
|
|
56
72
|
* sessionName: "shell",
|
|
57
|
-
* clusterId: sandbox.clusterId,
|
|
58
73
|
* onData: (chunk) => process.stdout.write(chunk),
|
|
59
74
|
* });
|
|
60
75
|
* await pty.sendInput("ls -la\n");
|
|
@@ -66,6 +81,12 @@ export declare class Sandbox {
|
|
|
66
81
|
*/
|
|
67
82
|
static configure(config: SandboxConfig): void;
|
|
68
83
|
static create(params: CreateSandboxParams): Promise<Sandbox>;
|
|
84
|
+
/**
|
|
85
|
+
* Poll {@link Sandbox.get} until the sandbox reports `running`, throwing if
|
|
86
|
+
* it enters a terminal state or the readiness deadline elapses. Shared by
|
|
87
|
+
* {@link Sandbox.create} and {@link Sandbox.resume}.
|
|
88
|
+
*/
|
|
89
|
+
private static waitForRunning;
|
|
69
90
|
static get(params: GetSandboxParams): Promise<Sandbox>;
|
|
70
91
|
static list(params?: ListSandboxesParams): Promise<{
|
|
71
92
|
sandboxes: Sandbox[];
|
|
@@ -73,7 +94,59 @@ export declare class Sandbox {
|
|
|
73
94
|
previousPageToken: string;
|
|
74
95
|
totalSize: number;
|
|
75
96
|
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Resume a previously stopped/paused persistent sandbox from its most
|
|
99
|
+
* recent auto-snapshot, preserving the sandbox id. Blocks until the sandbox
|
|
100
|
+
* is `running` again. A no-op (returns the running sandbox) when it is
|
|
101
|
+
* already running; errors when the sandbox is not persistent or has no
|
|
102
|
+
* resumable auto-snapshot.
|
|
103
|
+
*/
|
|
104
|
+
static resume(params: ResumeSandboxParams): Promise<Sandbox>;
|
|
105
|
+
static listSnapshots(params?: ListSnapshotsParams): Promise<{
|
|
106
|
+
snapshots: SnapshotData[];
|
|
107
|
+
nextPageToken: string;
|
|
108
|
+
previousPageToken: string;
|
|
109
|
+
totalSize: number;
|
|
110
|
+
}>;
|
|
111
|
+
static getSnapshot(snapshotId: string): Promise<SnapshotData>;
|
|
112
|
+
static deleteSnapshot(snapshotId: string): Promise<void>;
|
|
76
113
|
delete(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Stop the sandbox. For persistent sandboxes the controlplane first
|
|
116
|
+
* captures an auto-snapshot keyed to the sandbox id (returned as
|
|
117
|
+
* `autoSnapshotId`) so it can later be brought back via {@link Sandbox.resume}
|
|
118
|
+
* without losing filesystem state. For non-persistent sandboxes the server
|
|
119
|
+
* is simply stopped and no snapshot is taken.
|
|
120
|
+
*/
|
|
121
|
+
stop(): Promise<{
|
|
122
|
+
autoSnapshotId: string;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Resume this sandbox by id (see {@link Sandbox.resume}). Returns a fresh
|
|
126
|
+
* running {@link Sandbox} instance; the original handle is left unchanged.
|
|
127
|
+
*/
|
|
128
|
+
resume(): Promise<Sandbox>;
|
|
129
|
+
/**
|
|
130
|
+
* Push out this sandbox's auto-stop deadline by `timeoutMs` milliseconds.
|
|
131
|
+
*
|
|
132
|
+
* The create-time `timeout` sets the *initial* deadline and is fixed once the
|
|
133
|
+
* sandbox exists; this is the only way to move it afterward. Call it
|
|
134
|
+
* repeatedly (e.g. as a heartbeat) to keep a long-running sandbox alive.
|
|
135
|
+
* `timeoutMs` is the number of milliseconds to **add** to the current
|
|
136
|
+
* deadline and must be at least 1000 (1 second).
|
|
137
|
+
*
|
|
138
|
+
* The control plane returns no payload, so the local `timeout` field is left
|
|
139
|
+
* unchanged; call {@link Sandbox.get} if you need fresh state.
|
|
140
|
+
*/
|
|
141
|
+
extendTimeout(timeoutMs: number): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Capture a user-initiated snapshot of this sandbox's filesystem. The
|
|
144
|
+
* returned snapshot starts in `saving` and flips to `ready` once the
|
|
145
|
+
* in-sandbox agent finishes uploading; use {@link Sandbox.getSnapshot} to
|
|
146
|
+
* poll for `ready`, and {@link CreateSandboxParams.snapshotId} to boot a new
|
|
147
|
+
* sandbox from it.
|
|
148
|
+
*/
|
|
149
|
+
createSnapshot(params?: CreateSnapshotParams): Promise<SnapshotData>;
|
|
77
150
|
/**
|
|
78
151
|
* Run a command inside the sandbox.
|
|
79
152
|
*
|
|
@@ -89,6 +162,13 @@ export declare class Sandbox {
|
|
|
89
162
|
}>;
|
|
90
163
|
killCommand(cmdId: string): Promise<void>;
|
|
91
164
|
getCommand(cmdId: string): Promise<CommandStatus>;
|
|
165
|
+
/**
|
|
166
|
+
* List commands the server has recorded for this sandbox. Each returned
|
|
167
|
+
* {@link Command} handle carries the recorded command line plus `startedAt` /
|
|
168
|
+
* `updatedAt` timestamps, and supports {@link Command.getStatus},
|
|
169
|
+
* {@link Command.wait}, {@link Command.kill}, and {@link Command.logs}.
|
|
170
|
+
*/
|
|
171
|
+
listCommands(): Promise<Command[]>;
|
|
92
172
|
/**
|
|
93
173
|
* Poll {@link getCommand} until the command exits and return its final status.
|
|
94
174
|
*
|
|
@@ -108,5 +188,11 @@ export declare class Sandbox {
|
|
|
108
188
|
readFile(params: ReadFileParams): Promise<string | null>;
|
|
109
189
|
writeFiles(files: WriteFileParams[]): Promise<void>;
|
|
110
190
|
createDirectory(params: CreateDirectoryParams): Promise<void>;
|
|
191
|
+
/**
|
|
192
|
+
* Create a single directory via the directories API. Convenience alias for
|
|
193
|
+
* {@link createDirectory} that takes a bare path. For nested creation
|
|
194
|
+
* (`mkdir -p`), use the shell-based {@link FileSystem.mkdir} via `sandbox.fs`.
|
|
195
|
+
*/
|
|
196
|
+
mkdir(path: string): Promise<void>;
|
|
111
197
|
}
|
|
112
198
|
//# sourceMappingURL=sandbox.d.ts.map
|
package/dist/sandbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EAEnB,cAAc,EACd,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,qBAAqB,
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Command } from "./command.js";
|
|
2
|
-
import { getApiKey, getBaseUrl, mergeSandboxConfig
|
|
2
|
+
import { getApiKey, getBaseUrl, mergeSandboxConfig } from "./config.js";
|
|
3
3
|
import { FileSystem } from "./filesystem.js";
|
|
4
4
|
import { SandboxProcess } from "./process.js";
|
|
5
|
+
import { fromV1NetworkPolicy, toV1NetworkPolicy } from "./network-policy.js";
|
|
5
6
|
function buildQuery(params) {
|
|
6
7
|
const qs = new URLSearchParams();
|
|
7
8
|
for (const [k, v] of Object.entries(params)) {
|
|
@@ -22,7 +23,6 @@ async function request(method, path, body, apiKeyOverride) {
|
|
|
22
23
|
init.body = JSON.stringify(body);
|
|
23
24
|
}
|
|
24
25
|
const resp = await fetch(url, init);
|
|
25
|
-
console.log(url);
|
|
26
26
|
if (!resp.ok) {
|
|
27
27
|
const text = await resp.text();
|
|
28
28
|
throw new Error(`Lightning API error ${resp.status}: ${text}`);
|
|
@@ -42,11 +42,39 @@ function toSandboxData(v) {
|
|
|
42
42
|
instanceType: v.instanceType ?? "",
|
|
43
43
|
spot: v.spot ?? false,
|
|
44
44
|
status: v.status ?? "",
|
|
45
|
-
cloudspaceId: v.cloudspaceId ?? "",
|
|
46
45
|
ports: v.ports ?? [],
|
|
47
46
|
runtime: v.runtime ?? "",
|
|
47
|
+
image: v.image ?? "",
|
|
48
|
+
imageSecretRef: v.imageSecretRef ?? "",
|
|
49
|
+
snapshotId: v.snapshotId ?? "",
|
|
50
|
+
userId: v.userId ?? "",
|
|
48
51
|
createdAt: v.createdAt ?? "",
|
|
49
52
|
updatedAt: v.updatedAt ?? "",
|
|
53
|
+
persistent: v.persistent ?? false,
|
|
54
|
+
projectId: v.projectId ?? "",
|
|
55
|
+
storageGb: v.storageGb !== undefined && v.storageGb !== "" ? Number(v.storageGb) : 0,
|
|
56
|
+
timeout: v.timeout !== undefined && v.timeout !== "" ? Number(v.timeout) : 0,
|
|
57
|
+
networkPolicy: v.networkPolicy,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function toSnapshotData(v) {
|
|
61
|
+
return {
|
|
62
|
+
id: v.id ?? "",
|
|
63
|
+
organizationId: v.organizationId ?? "",
|
|
64
|
+
projectId: v.projectId ?? "",
|
|
65
|
+
sourceSandboxId: v.sourceSandboxId ?? "",
|
|
66
|
+
sourceSandboxName: v.sourceSandboxName ?? "",
|
|
67
|
+
sourceSandboxInstanceType: v.sourceSandboxInstanceType ?? "",
|
|
68
|
+
status: v.status ?? "",
|
|
69
|
+
sizeBytes: v.sizeBytes !== undefined && v.sizeBytes !== "" ? Number(v.sizeBytes) : 0,
|
|
70
|
+
createdAt: new Date(v.createdAt ?? ""),
|
|
71
|
+
updatedAt: new Date(v.updatedAt ?? ""),
|
|
72
|
+
expiresAt: v.expiresAt ? new Date(v.expiresAt) : null,
|
|
73
|
+
runtime: v.runtime ?? "",
|
|
74
|
+
runtimeImage: v.runtimeImage ?? "",
|
|
75
|
+
rootfsDigest: v.rootfsDigest ?? "",
|
|
76
|
+
excludes: v.tarExcludes ?? [],
|
|
77
|
+
auto: Boolean(v.sourceSandboxPersistent),
|
|
50
78
|
};
|
|
51
79
|
}
|
|
52
80
|
/**
|
|
@@ -80,13 +108,28 @@ export class Sandbox {
|
|
|
80
108
|
sandboxId;
|
|
81
109
|
name;
|
|
82
110
|
organizationId;
|
|
83
|
-
clusterId;
|
|
84
111
|
instanceType;
|
|
85
112
|
spot;
|
|
86
113
|
status;
|
|
87
|
-
cloudspaceId;
|
|
88
114
|
ports;
|
|
115
|
+
/** Cluster placement, kept internally for PTY attach. Not exposed publicly. */
|
|
116
|
+
_clusterId;
|
|
89
117
|
runtime;
|
|
118
|
+
/** Custom OCI image the sandbox was created with (`""` for a curated runtime). */
|
|
119
|
+
image;
|
|
120
|
+
/** Project Docker-registry Secret used to pull `image` (`""` when unused). */
|
|
121
|
+
imageSecretRef;
|
|
122
|
+
/** Source snapshot this sandbox was restored from (`""` otherwise). */
|
|
123
|
+
snapshotId;
|
|
124
|
+
/** User who created the sandbox (`""` if not tracked). */
|
|
125
|
+
userId;
|
|
126
|
+
persistent;
|
|
127
|
+
projectId;
|
|
128
|
+
storageGb;
|
|
129
|
+
/** Maximum lifetime in milliseconds (0 = no timeout). */
|
|
130
|
+
timeout;
|
|
131
|
+
/** Egress firewall policy in effect for the sandbox. */
|
|
132
|
+
networkPolicy;
|
|
90
133
|
createdAt;
|
|
91
134
|
updatedAt;
|
|
92
135
|
/** Path-oriented file helpers that run commands inside the sandbox (see {@link FileSystem}). */
|
|
@@ -97,13 +140,21 @@ export class Sandbox {
|
|
|
97
140
|
this.sandboxId = data.id;
|
|
98
141
|
this.name = data.name;
|
|
99
142
|
this.organizationId = data.organizationId;
|
|
100
|
-
this.
|
|
143
|
+
this._clusterId = data.clusterId;
|
|
101
144
|
this.instanceType = data.instanceType;
|
|
102
145
|
this.spot = data.spot;
|
|
103
146
|
this.status = data.status;
|
|
104
|
-
this.cloudspaceId = data.cloudspaceId;
|
|
105
147
|
this.ports = data.ports ?? [];
|
|
106
148
|
this.runtime = data.runtime ?? "";
|
|
149
|
+
this.image = data.image ?? "";
|
|
150
|
+
this.imageSecretRef = data.imageSecretRef ?? "";
|
|
151
|
+
this.snapshotId = data.snapshotId ?? "";
|
|
152
|
+
this.userId = data.userId ?? "";
|
|
153
|
+
this.persistent = data.persistent ?? false;
|
|
154
|
+
this.projectId = data.projectId ?? "";
|
|
155
|
+
this.storageGb = data.storageGb ?? 0;
|
|
156
|
+
this.timeout = data.timeout ?? 0;
|
|
157
|
+
this.networkPolicy = fromV1NetworkPolicy(data.networkPolicy);
|
|
107
158
|
this.createdAt = new Date(data.createdAt);
|
|
108
159
|
this.updatedAt = new Date(data.updatedAt);
|
|
109
160
|
this.fs = new FileSystem(this);
|
|
@@ -115,7 +166,6 @@ export class Sandbox {
|
|
|
115
166
|
* ```ts
|
|
116
167
|
* const pty = await sandbox.process.createPty({
|
|
117
168
|
* sessionName: "shell",
|
|
118
|
-
* clusterId: sandbox.clusterId,
|
|
119
169
|
* onData: (chunk) => process.stdout.write(chunk),
|
|
120
170
|
* });
|
|
121
171
|
* await pty.sendInput("ls -la\n");
|
|
@@ -126,6 +176,7 @@ export class Sandbox {
|
|
|
126
176
|
this._process = new SandboxProcess({
|
|
127
177
|
sandboxId: this.sandboxId,
|
|
128
178
|
organizationId: this.organizationId,
|
|
179
|
+
clusterId: this._clusterId,
|
|
129
180
|
getApiKey: () => getApiKey(),
|
|
130
181
|
getBaseUrl: () => getBaseUrl(),
|
|
131
182
|
runCommand: (opts) => this.runCommand(opts),
|
|
@@ -146,6 +197,12 @@ export class Sandbox {
|
|
|
146
197
|
// Static CRUD methods
|
|
147
198
|
// ---------------------------------------------------------------------------
|
|
148
199
|
static async create(params) {
|
|
200
|
+
if (params.runtime && params.image) {
|
|
201
|
+
throw new Error("Pass only one of 'runtime' and 'image' (they are mutually exclusive).");
|
|
202
|
+
}
|
|
203
|
+
if (params.imageSecretRef && !params.image) {
|
|
204
|
+
throw new Error("'imageSecretRef' is only valid together with 'image'.");
|
|
205
|
+
}
|
|
149
206
|
const now = new Date();
|
|
150
207
|
const pad = (n) => String(n).padStart(2, "0");
|
|
151
208
|
const defaultName = `sandbox-${now.getUTCFullYear()}${pad(now.getUTCMonth() + 1)}${pad(now.getUTCDate())}-${pad(now.getUTCHours())}${pad(now.getUTCMinutes())}${pad(now.getUTCSeconds())}`;
|
|
@@ -155,17 +212,33 @@ export class Sandbox {
|
|
|
155
212
|
spot: params.spot ?? false,
|
|
156
213
|
ports: (params.ports ?? []).map(String),
|
|
157
214
|
};
|
|
158
|
-
const orgId = resolveOrgId(params.organizationId);
|
|
159
|
-
if (orgId)
|
|
160
|
-
body.organizationId = orgId;
|
|
161
|
-
if (params.clusterId)
|
|
162
|
-
body.clusterId = params.clusterId;
|
|
163
|
-
if (params.cloudspaceId)
|
|
164
|
-
body.cloudspaceId = params.cloudspaceId;
|
|
165
215
|
if (params.runtime)
|
|
166
216
|
body.runtime = params.runtime;
|
|
217
|
+
if (params.image)
|
|
218
|
+
body.image = params.image;
|
|
219
|
+
if (params.imageSecretRef)
|
|
220
|
+
body.imageSecretRef = params.imageSecretRef;
|
|
221
|
+
if (params.persistent !== undefined)
|
|
222
|
+
body.persistent = params.persistent;
|
|
223
|
+
if (params.snapshotId)
|
|
224
|
+
body.snapshotId = params.snapshotId;
|
|
225
|
+
if (params.timeout !== undefined)
|
|
226
|
+
body.timeout = String(params.timeout);
|
|
227
|
+
if (params.storageGb !== undefined)
|
|
228
|
+
body.storageGb = String(params.storageGb);
|
|
229
|
+
const policy = toV1NetworkPolicy(params.networkPolicy);
|
|
230
|
+
if (policy !== undefined)
|
|
231
|
+
body.networkPolicy = policy;
|
|
167
232
|
const data = await request("POST", "/v1/core/sandboxes", body);
|
|
168
|
-
|
|
233
|
+
return Sandbox.waitForRunning(new Sandbox(toSandboxData(data)));
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Poll {@link Sandbox.get} until the sandbox reports `running`, throwing if
|
|
237
|
+
* it enters a terminal state or the readiness deadline elapses. Shared by
|
|
238
|
+
* {@link Sandbox.create} and {@link Sandbox.resume}.
|
|
239
|
+
*/
|
|
240
|
+
static async waitForRunning(initial) {
|
|
241
|
+
let sandbox = initial;
|
|
169
242
|
const start = Date.now();
|
|
170
243
|
const deadline = start + 300_000;
|
|
171
244
|
while (sandbox.status !== "running") {
|
|
@@ -180,23 +253,16 @@ export class Sandbox {
|
|
|
180
253
|
const elapsed = Date.now() - start;
|
|
181
254
|
const pollMs = elapsed < 5_000 ? 100 : 1_000;
|
|
182
255
|
await new Promise((r) => setTimeout(r, pollMs));
|
|
183
|
-
sandbox = await Sandbox.get({
|
|
184
|
-
sandboxId: sandbox.sandboxId,
|
|
185
|
-
organizationId: sandbox.organizationId || undefined,
|
|
186
|
-
});
|
|
256
|
+
sandbox = await Sandbox.get({ sandboxId: sandbox.sandboxId });
|
|
187
257
|
}
|
|
188
258
|
return sandbox;
|
|
189
259
|
}
|
|
190
260
|
static async get(params) {
|
|
191
|
-
const
|
|
192
|
-
const qs = buildQuery({ organizationId: orgId });
|
|
193
|
-
const data = await request("GET", `/v1/core/sandboxes/${encodeURIComponent(params.sandboxId)}${qs}`);
|
|
261
|
+
const data = await request("GET", `/v1/core/sandboxes/${encodeURIComponent(params.sandboxId)}`);
|
|
194
262
|
return new Sandbox(toSandboxData(data));
|
|
195
263
|
}
|
|
196
264
|
static async list(params = {}) {
|
|
197
|
-
const orgId = resolveOrgId(params.organizationId);
|
|
198
265
|
const qs = buildQuery({
|
|
199
|
-
organizationId: orgId,
|
|
200
266
|
pageToken: params.pageToken,
|
|
201
267
|
limit: params.limit !== undefined ? String(params.limit) : undefined,
|
|
202
268
|
});
|
|
@@ -216,6 +282,43 @@ export class Sandbox {
|
|
|
216
282
|
totalSize: raw.totalSize ?? 0,
|
|
217
283
|
};
|
|
218
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Resume a previously stopped/paused persistent sandbox from its most
|
|
287
|
+
* recent auto-snapshot, preserving the sandbox id. Blocks until the sandbox
|
|
288
|
+
* is `running` again. A no-op (returns the running sandbox) when it is
|
|
289
|
+
* already running; errors when the sandbox is not persistent or has no
|
|
290
|
+
* resumable auto-snapshot.
|
|
291
|
+
*/
|
|
292
|
+
static async resume(params) {
|
|
293
|
+
const body = { resume: true };
|
|
294
|
+
const data = await request("PATCH", `/v1/core/sandboxes/${encodeURIComponent(params.sandboxId)}`, body);
|
|
295
|
+
return Sandbox.waitForRunning(new Sandbox(toSandboxData(data)));
|
|
296
|
+
}
|
|
297
|
+
// ---------------------------------------------------------------------------
|
|
298
|
+
// Static methods — snapshots
|
|
299
|
+
// ---------------------------------------------------------------------------
|
|
300
|
+
static async listSnapshots(params = {}) {
|
|
301
|
+
const qs = buildQuery({
|
|
302
|
+
name: params.name,
|
|
303
|
+
pageToken: params.pageToken,
|
|
304
|
+
limit: params.limit !== undefined ? String(params.limit) : undefined,
|
|
305
|
+
sortOrder: params.sortOrder,
|
|
306
|
+
});
|
|
307
|
+
const data = await request("GET", `/v1/core/sandboxes/snapshots${qs}`);
|
|
308
|
+
return {
|
|
309
|
+
snapshots: (data.snapshots ?? []).map(toSnapshotData),
|
|
310
|
+
nextPageToken: data.nextPageToken ?? "",
|
|
311
|
+
previousPageToken: data.previousPageToken ?? "",
|
|
312
|
+
totalSize: data.totalSize !== undefined && data.totalSize !== "" ? Number(data.totalSize) : 0,
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
static async getSnapshot(snapshotId) {
|
|
316
|
+
const data = await request("GET", `/v1/core/sandboxes/snapshots/${encodeURIComponent(snapshotId)}`);
|
|
317
|
+
return toSnapshotData(data);
|
|
318
|
+
}
|
|
319
|
+
static async deleteSnapshot(snapshotId) {
|
|
320
|
+
await request("DELETE", `/v1/core/sandboxes/snapshots/${encodeURIComponent(snapshotId)}`);
|
|
321
|
+
}
|
|
219
322
|
// ---------------------------------------------------------------------------
|
|
220
323
|
// Instance methods — lifecycle
|
|
221
324
|
// ---------------------------------------------------------------------------
|
|
@@ -225,6 +328,87 @@ export class Sandbox {
|
|
|
225
328
|
});
|
|
226
329
|
await request("DELETE", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}${qs}`);
|
|
227
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Stop the sandbox. For persistent sandboxes the controlplane first
|
|
333
|
+
* captures an auto-snapshot keyed to the sandbox id (returned as
|
|
334
|
+
* `autoSnapshotId`) so it can later be brought back via {@link Sandbox.resume}
|
|
335
|
+
* without losing filesystem state. For non-persistent sandboxes the server
|
|
336
|
+
* is simply stopped and no snapshot is taken.
|
|
337
|
+
*/
|
|
338
|
+
async stop() {
|
|
339
|
+
const body = {
|
|
340
|
+
organizationId: this.organizationId || undefined,
|
|
341
|
+
};
|
|
342
|
+
if (this.projectId) {
|
|
343
|
+
body.projectId = this.projectId;
|
|
344
|
+
}
|
|
345
|
+
const data = await request("POST", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}/stop`, body);
|
|
346
|
+
return { autoSnapshotId: data.autoSnapshotId ?? "" };
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Resume this sandbox by id (see {@link Sandbox.resume}). Returns a fresh
|
|
350
|
+
* running {@link Sandbox} instance; the original handle is left unchanged.
|
|
351
|
+
*/
|
|
352
|
+
async resume() {
|
|
353
|
+
return Sandbox.resume({ sandboxId: this.sandboxId });
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Push out this sandbox's auto-stop deadline by `timeoutMs` milliseconds.
|
|
357
|
+
*
|
|
358
|
+
* The create-time `timeout` sets the *initial* deadline and is fixed once the
|
|
359
|
+
* sandbox exists; this is the only way to move it afterward. Call it
|
|
360
|
+
* repeatedly (e.g. as a heartbeat) to keep a long-running sandbox alive.
|
|
361
|
+
* `timeoutMs` is the number of milliseconds to **add** to the current
|
|
362
|
+
* deadline and must be at least 1000 (1 second).
|
|
363
|
+
*
|
|
364
|
+
* The control plane returns no payload, so the local `timeout` field is left
|
|
365
|
+
* unchanged; call {@link Sandbox.get} if you need fresh state.
|
|
366
|
+
*/
|
|
367
|
+
async extendTimeout(timeoutMs) {
|
|
368
|
+
if (timeoutMs < 1000) {
|
|
369
|
+
throw new Error("extendTimeout requires timeoutMs >= 1000 (milliseconds).");
|
|
370
|
+
}
|
|
371
|
+
const body = {
|
|
372
|
+
timeout: String(timeoutMs),
|
|
373
|
+
organizationId: this.organizationId || undefined,
|
|
374
|
+
};
|
|
375
|
+
await request("POST", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}/extend-timeout`, body);
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Capture a user-initiated snapshot of this sandbox's filesystem. The
|
|
379
|
+
* returned snapshot starts in `saving` and flips to `ready` once the
|
|
380
|
+
* in-sandbox agent finishes uploading; use {@link Sandbox.getSnapshot} to
|
|
381
|
+
* poll for `ready`, and {@link CreateSandboxParams.snapshotId} to boot a new
|
|
382
|
+
* sandbox from it.
|
|
383
|
+
*/
|
|
384
|
+
async createSnapshot(params = {}) {
|
|
385
|
+
const body = {
|
|
386
|
+
organizationId: this.organizationId || undefined,
|
|
387
|
+
};
|
|
388
|
+
if (this.projectId)
|
|
389
|
+
body.projectId = this.projectId;
|
|
390
|
+
if (params.excludes)
|
|
391
|
+
body.excludes = params.excludes;
|
|
392
|
+
if (params.expiration !== undefined)
|
|
393
|
+
body.expiration = String(params.expiration);
|
|
394
|
+
const data = await request("POST", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}/snapshot`, body);
|
|
395
|
+
let snapshot = toSnapshotData(data);
|
|
396
|
+
if (params.wait === false || snapshot.status === "ready") {
|
|
397
|
+
return snapshot;
|
|
398
|
+
}
|
|
399
|
+
const deadline = Date.now() + (params.waitTimeoutMs ?? 600_000);
|
|
400
|
+
while (snapshot.status !== "ready") {
|
|
401
|
+
if (snapshot.status === "failed") {
|
|
402
|
+
throw new Error(`Snapshot ${snapshot.id} failed to capture`);
|
|
403
|
+
}
|
|
404
|
+
if (Date.now() >= deadline) {
|
|
405
|
+
throw new Error(`Snapshot ${snapshot.id} did not become ready (current status: ${snapshot.status})`);
|
|
406
|
+
}
|
|
407
|
+
await new Promise((r) => setTimeout(r, 1_000));
|
|
408
|
+
snapshot = await Sandbox.getSnapshot(snapshot.id);
|
|
409
|
+
}
|
|
410
|
+
return snapshot;
|
|
411
|
+
}
|
|
228
412
|
async runCommand(commandOrOpts, args) {
|
|
229
413
|
const body = {
|
|
230
414
|
organizationId: this.organizationId || undefined,
|
|
@@ -241,8 +425,6 @@ export class Sandbox {
|
|
|
241
425
|
body.cwd = commandOrOpts.cwd;
|
|
242
426
|
if (commandOrOpts.env)
|
|
243
427
|
body.env = commandOrOpts.env;
|
|
244
|
-
if (commandOrOpts.sudo !== undefined)
|
|
245
|
-
body.sudo = commandOrOpts.sudo;
|
|
246
428
|
if (commandOrOpts.detached !== undefined) {
|
|
247
429
|
body.detached = commandOrOpts.detached;
|
|
248
430
|
detached = commandOrOpts.detached;
|
|
@@ -283,6 +465,29 @@ export class Sandbox {
|
|
|
283
465
|
running: data.running ?? false,
|
|
284
466
|
};
|
|
285
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* List commands the server has recorded for this sandbox. Each returned
|
|
470
|
+
* {@link Command} handle carries the recorded command line plus `startedAt` /
|
|
471
|
+
* `updatedAt` timestamps, and supports {@link Command.getStatus},
|
|
472
|
+
* {@link Command.wait}, {@link Command.kill}, and {@link Command.logs}.
|
|
473
|
+
*/
|
|
474
|
+
async listCommands() {
|
|
475
|
+
const qs = buildQuery({
|
|
476
|
+
organizationId: this.organizationId || undefined,
|
|
477
|
+
});
|
|
478
|
+
const data = await request("GET", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}/commands${qs}`);
|
|
479
|
+
return (data.commands ?? []).map((c) => {
|
|
480
|
+
const running = c.running ?? false;
|
|
481
|
+
return new Command(this, {
|
|
482
|
+
cmdId: c.id ?? "",
|
|
483
|
+
output: c.output ?? "",
|
|
484
|
+
exitCode: running ? null : (c.exitCode ?? 0),
|
|
485
|
+
command: c.command ?? "",
|
|
486
|
+
startedAt: c.createdAt ?? null,
|
|
487
|
+
updatedAt: c.updatedAt ?? null,
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
}
|
|
286
491
|
/**
|
|
287
492
|
* Poll {@link getCommand} until the command exits and return its final status.
|
|
288
493
|
*
|
|
@@ -349,5 +554,13 @@ export class Sandbox {
|
|
|
349
554
|
};
|
|
350
555
|
await request("POST", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}/directories`, body);
|
|
351
556
|
}
|
|
557
|
+
/**
|
|
558
|
+
* Create a single directory via the directories API. Convenience alias for
|
|
559
|
+
* {@link createDirectory} that takes a bare path. For nested creation
|
|
560
|
+
* (`mkdir -p`), use the shell-based {@link FileSystem.mkdir} via `sandbox.fs`.
|
|
561
|
+
*/
|
|
562
|
+
async mkdir(path) {
|
|
563
|
+
return this.createDirectory({ path });
|
|
564
|
+
}
|
|
352
565
|
}
|
|
353
566
|
//# sourceMappingURL=sandbox.js.map
|
package/dist/sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|