@lightningai/sdk 2026.6.8 → 2026.6.25

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.
Files changed (44) hide show
  1. package/README.md +2 -97
  2. package/dist/command.d.ts +27 -1
  3. package/dist/command.d.ts.map +1 -1
  4. package/dist/command.js +29 -0
  5. package/dist/command.js.map +1 -1
  6. package/dist/config.d.ts +0 -2
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +5 -8
  9. package/dist/config.js.map +1 -1
  10. package/dist/filesystem.d.ts +3 -0
  11. package/dist/filesystem.d.ts.map +1 -1
  12. package/dist/filesystem.js +5 -0
  13. package/dist/filesystem.js.map +1 -1
  14. package/dist/index.d.ts +3 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/lightning_cloud/openapi/SandboxesService.d.ts +10 -49
  19. package/dist/lightning_cloud/openapi/SandboxesService.d.ts.map +1 -1
  20. package/dist/lightning_cloud/openapi/SandboxesService.js +14 -51
  21. package/dist/lightning_cloud/openapi/SandboxesService.js.map +1 -1
  22. package/dist/lightning_cloud/openapi/data-contracts.d.ts +90 -77
  23. package/dist/lightning_cloud/openapi/data-contracts.d.ts.map +1 -1
  24. package/dist/network-policy.d.ts +49 -0
  25. package/dist/network-policy.d.ts.map +1 -0
  26. package/dist/network-policy.js +61 -0
  27. package/dist/network-policy.js.map +1 -0
  28. package/dist/process.d.ts +4 -3
  29. package/dist/process.d.ts.map +1 -1
  30. package/dist/process.js +3 -5
  31. package/dist/process.js.map +1 -1
  32. package/dist/pty.d.ts +5 -0
  33. package/dist/pty.d.ts.map +1 -1
  34. package/dist/pty.js +5 -0
  35. package/dist/pty.js.map +1 -1
  36. package/dist/sandbox.d.ts +90 -4
  37. package/dist/sandbox.d.ts.map +1 -1
  38. package/dist/sandbox.js +240 -27
  39. package/dist/sandbox.js.map +1 -1
  40. package/dist/types.d.ts +129 -15
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +0 -3
  43. package/dist/types.js.map +1 -1
  44. 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
@@ -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
@@ -1,7 +1,8 @@
1
1
  import { Command } from "./command.js";
2
- import { getApiKey, getBaseUrl, mergeSandboxConfig, resolveOrgId } from "./config.js";
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.clusterId = data.clusterId;
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
- let sandbox = new Sandbox(toSandboxData(data));
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 orgId = resolveOrgId(params.organizationId);
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
@@ -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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"}