@lightningai/sdk 2026.5.5 → 2026.5.12
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/command.d.ts +63 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +85 -0
- package/dist/command.js.map +1 -0
- package/dist/filesystem.d.ts +19 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +66 -0
- package/dist/filesystem.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lightning_cloud/openapi/data-contracts.d.ts +35 -0
- package/dist/lightning_cloud/openapi/data-contracts.d.ts.map +1 -1
- package/dist/sandbox.d.ts +39 -3
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +48 -4
- package/dist/sandbox.js.map +1 -1
- package/dist/types.d.ts +23 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Sandbox } from "./sandbox.js";
|
|
2
|
+
import type { CommandStatus, WaitForCommandOptions } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Handle for a command running (or finished) inside a sandbox.
|
|
5
|
+
*
|
|
6
|
+
* - When {@link Sandbox.runCommand} is awaited *without* `detached: true`, the
|
|
7
|
+
* server has already waited for the process to exit, so `exitCode` is a
|
|
8
|
+
* number and `running` is `false` immediately.
|
|
9
|
+
* - When `detached: true` is passed, the call returns immediately with
|
|
10
|
+
* `exitCode === null` and `running === true`. Call {@link wait} to block
|
|
11
|
+
* until the process exits, or {@link kill} to terminate it.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const detachedCmd = await sandbox.runCommand({
|
|
15
|
+
* cmd: "sleep",
|
|
16
|
+
* args: ["5"],
|
|
17
|
+
* detached: true,
|
|
18
|
+
* });
|
|
19
|
+
* const result = await detachedCmd.wait();
|
|
20
|
+
* if (result.exitCode !== 0) {
|
|
21
|
+
* console.error("Something went wrong...");
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare class Command {
|
|
26
|
+
readonly cmdId: string;
|
|
27
|
+
/** Captured combined stdout/stderr seen so far. Updated by {@link wait} and {@link getStatus}. */
|
|
28
|
+
output: string;
|
|
29
|
+
/** Exit code; `null` while the command is still running. */
|
|
30
|
+
exitCode: number | null;
|
|
31
|
+
protected readonly sandbox: Sandbox;
|
|
32
|
+
constructor(sandbox: Sandbox, data: {
|
|
33
|
+
cmdId: string;
|
|
34
|
+
output: string;
|
|
35
|
+
exitCode: number | null;
|
|
36
|
+
});
|
|
37
|
+
/** `true` while the command is still executing (i.e. {@link exitCode} is `null`). */
|
|
38
|
+
get running(): boolean;
|
|
39
|
+
/** Returns the captured combined stdout/stderr buffered on the handle. */
|
|
40
|
+
stdout(): string;
|
|
41
|
+
/** Alias for {@link stdout}; the API exposes a single combined output stream. */
|
|
42
|
+
stderr(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Refresh status from the server, updating {@link output} and {@link exitCode}.
|
|
45
|
+
*
|
|
46
|
+
* The returned {@link CommandStatus} is the raw server response and is also
|
|
47
|
+
* useful for inspecting `running` directly.
|
|
48
|
+
*/
|
|
49
|
+
getStatus(): Promise<CommandStatus>;
|
|
50
|
+
/**
|
|
51
|
+
* Block until the command exits, then return this handle with `exitCode`
|
|
52
|
+
* populated. Essential for detached commands where you need to know when
|
|
53
|
+
* execution completes; for non-detached commands, {@link Sandbox.runCommand}
|
|
54
|
+
* already waits automatically and `wait()` returns immediately.
|
|
55
|
+
*
|
|
56
|
+
* Resolves immediately if the command has already exited. Otherwise polls
|
|
57
|
+
* {@link Sandbox.getCommand} until `running` becomes `false`.
|
|
58
|
+
*/
|
|
59
|
+
wait(opts?: WaitForCommandOptions): Promise<Command>;
|
|
60
|
+
/** Terminate the command (best effort) via {@link Sandbox.killCommand}. */
|
|
61
|
+
kill(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAGlC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAQlE,qFAAqF;IACrF,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,0EAA0E;IAC1E,MAAM,IAAI,MAAM;IAIhB,iFAAiF;IACjF,MAAM,IAAI,MAAM;IAIhB;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IASzC;;;;;;;;OAQG;IACG,IAAI,CAAC,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IAU9D,2EAA2E;IACrE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
package/dist/command.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handle for a command running (or finished) inside a sandbox.
|
|
3
|
+
*
|
|
4
|
+
* - When {@link Sandbox.runCommand} is awaited *without* `detached: true`, the
|
|
5
|
+
* server has already waited for the process to exit, so `exitCode` is a
|
|
6
|
+
* number and `running` is `false` immediately.
|
|
7
|
+
* - When `detached: true` is passed, the call returns immediately with
|
|
8
|
+
* `exitCode === null` and `running === true`. Call {@link wait} to block
|
|
9
|
+
* until the process exits, or {@link kill} to terminate it.
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* const detachedCmd = await sandbox.runCommand({
|
|
13
|
+
* cmd: "sleep",
|
|
14
|
+
* args: ["5"],
|
|
15
|
+
* detached: true,
|
|
16
|
+
* });
|
|
17
|
+
* const result = await detachedCmd.wait();
|
|
18
|
+
* if (result.exitCode !== 0) {
|
|
19
|
+
* console.error("Something went wrong...");
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class Command {
|
|
24
|
+
cmdId;
|
|
25
|
+
/** Captured combined stdout/stderr seen so far. Updated by {@link wait} and {@link getStatus}. */
|
|
26
|
+
output;
|
|
27
|
+
/** Exit code; `null` while the command is still running. */
|
|
28
|
+
exitCode;
|
|
29
|
+
sandbox;
|
|
30
|
+
constructor(sandbox, data) {
|
|
31
|
+
this.sandbox = sandbox;
|
|
32
|
+
this.cmdId = data.cmdId;
|
|
33
|
+
this.output = data.output;
|
|
34
|
+
this.exitCode = data.exitCode;
|
|
35
|
+
}
|
|
36
|
+
/** `true` while the command is still executing (i.e. {@link exitCode} is `null`). */
|
|
37
|
+
get running() {
|
|
38
|
+
return this.exitCode === null;
|
|
39
|
+
}
|
|
40
|
+
/** Returns the captured combined stdout/stderr buffered on the handle. */
|
|
41
|
+
stdout() {
|
|
42
|
+
return this.output;
|
|
43
|
+
}
|
|
44
|
+
/** Alias for {@link stdout}; the API exposes a single combined output stream. */
|
|
45
|
+
stderr() {
|
|
46
|
+
return this.output;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Refresh status from the server, updating {@link output} and {@link exitCode}.
|
|
50
|
+
*
|
|
51
|
+
* The returned {@link CommandStatus} is the raw server response and is also
|
|
52
|
+
* useful for inspecting `running` directly.
|
|
53
|
+
*/
|
|
54
|
+
async getStatus() {
|
|
55
|
+
const status = await this.sandbox.getCommand(this.cmdId);
|
|
56
|
+
this.output = status.output;
|
|
57
|
+
if (!status.running) {
|
|
58
|
+
this.exitCode = status.exitCode;
|
|
59
|
+
}
|
|
60
|
+
return status;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Block until the command exits, then return this handle with `exitCode`
|
|
64
|
+
* populated. Essential for detached commands where you need to know when
|
|
65
|
+
* execution completes; for non-detached commands, {@link Sandbox.runCommand}
|
|
66
|
+
* already waits automatically and `wait()` returns immediately.
|
|
67
|
+
*
|
|
68
|
+
* Resolves immediately if the command has already exited. Otherwise polls
|
|
69
|
+
* {@link Sandbox.getCommand} until `running` becomes `false`.
|
|
70
|
+
*/
|
|
71
|
+
async wait(opts = {}) {
|
|
72
|
+
if (this.exitCode !== null) {
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
const final = await this.sandbox.waitForCommand(this.cmdId, opts);
|
|
76
|
+
this.output = final.output;
|
|
77
|
+
this.exitCode = final.exitCode;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/** Terminate the command (best effort) via {@link Sandbox.killCommand}. */
|
|
81
|
+
async kill() {
|
|
82
|
+
await this.sandbox.killCommand(this.cmdId);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,OAAO;IACT,KAAK,CAAS;IACvB,kGAAkG;IAClG,MAAM,CAAS;IACf,4DAA4D;IAC5D,QAAQ,CAAgB;IAEL,OAAO,CAAU;IAEpC,YACE,OAAgB,EAChB,IAAgE;QAEhE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,qFAAqF;IACrF,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChC,CAAC;IAED,0EAA0E;IAC1E,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,iFAAiF;IACjF,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAA8B,EAAE;QACzC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Sandbox } from "./sandbox.js";
|
|
2
|
+
import type { FileStat, WriteFileParams } from "./types.js";
|
|
3
|
+
export declare class FileSystem {
|
|
4
|
+
private readonly sandbox;
|
|
5
|
+
constructor(sandbox: Sandbox);
|
|
6
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
7
|
+
writeFile(params: WriteFileParams): Promise<void>;
|
|
8
|
+
exists(path: string): Promise<boolean>;
|
|
9
|
+
stat(path: string): Promise<FileStat>;
|
|
10
|
+
readdir(path: string): Promise<string[]>;
|
|
11
|
+
rm(path: string, opts?: {
|
|
12
|
+
recursive?: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
rename(oldPath: string, newPath: string): Promise<void>;
|
|
15
|
+
copyFile(src: string, dest: string): Promise<void>;
|
|
16
|
+
chmod(path: string, mode: string | number): Promise<void>;
|
|
17
|
+
symlink(target: string, path: string): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ5D,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAEvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiBrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMxC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI3D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
function assertCommandOk(r, what) {
|
|
2
|
+
if (r.exitCode === 0)
|
|
3
|
+
return;
|
|
4
|
+
const tail = r.output.trim();
|
|
5
|
+
throw new Error(`${what} failed (exit ${r.exitCode})${tail ? `: ${tail}` : ""}`);
|
|
6
|
+
}
|
|
7
|
+
export class FileSystem {
|
|
8
|
+
sandbox;
|
|
9
|
+
constructor(sandbox) {
|
|
10
|
+
this.sandbox = sandbox;
|
|
11
|
+
}
|
|
12
|
+
async writeFile(pathOrParams, content) {
|
|
13
|
+
const params = typeof pathOrParams === "string"
|
|
14
|
+
? { path: pathOrParams, content: content ?? "" }
|
|
15
|
+
: pathOrParams;
|
|
16
|
+
return this.sandbox.writeFile(params);
|
|
17
|
+
}
|
|
18
|
+
async exists(path) {
|
|
19
|
+
const r = await this.sandbox.runCommand("test", ["-e", path]);
|
|
20
|
+
return r.exitCode === 0;
|
|
21
|
+
}
|
|
22
|
+
async stat(path) {
|
|
23
|
+
const r = await this.sandbox.runCommand("stat", ["--format=%F|%s|%Y|%a", path]);
|
|
24
|
+
assertCommandOk(r, `stat ${path}`);
|
|
25
|
+
const line = r.output.trim();
|
|
26
|
+
const parts = line.split("|");
|
|
27
|
+
if (parts.length < 4) {
|
|
28
|
+
throw new Error(`unexpected stat output for ${path}: ${line}`);
|
|
29
|
+
}
|
|
30
|
+
const [fileType, sizeStr, mtimeSecStr, mode] = parts;
|
|
31
|
+
return {
|
|
32
|
+
fileType,
|
|
33
|
+
size: Number(sizeStr),
|
|
34
|
+
mtime: new Date(Number(mtimeSecStr) * 1000),
|
|
35
|
+
mode,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async readdir(path) {
|
|
39
|
+
const r = await this.sandbox.runCommand("ls", ["-1A", path]);
|
|
40
|
+
assertCommandOk(r, `readdir ${path}`);
|
|
41
|
+
return r.output.split("\n").filter(Boolean);
|
|
42
|
+
}
|
|
43
|
+
async rm(path, opts) {
|
|
44
|
+
const args = opts?.recursive ? ["-rf", path] : [path];
|
|
45
|
+
const r = await this.sandbox.runCommand("rm", args);
|
|
46
|
+
assertCommandOk(r, `rm ${path}`);
|
|
47
|
+
}
|
|
48
|
+
async rename(oldPath, newPath) {
|
|
49
|
+
const r = await this.sandbox.runCommand("mv", [oldPath, newPath]);
|
|
50
|
+
assertCommandOk(r, `rename ${oldPath} -> ${newPath}`);
|
|
51
|
+
}
|
|
52
|
+
async copyFile(src, dest) {
|
|
53
|
+
const r = await this.sandbox.runCommand("cp", [src, dest]);
|
|
54
|
+
assertCommandOk(r, `copyFile ${src} -> ${dest}`);
|
|
55
|
+
}
|
|
56
|
+
async chmod(path, mode) {
|
|
57
|
+
const m = typeof mode === "number" ? mode.toString(8) : mode;
|
|
58
|
+
const r = await this.sandbox.runCommand("chmod", [m, path]);
|
|
59
|
+
assertCommandOk(r, `chmod ${path}`);
|
|
60
|
+
}
|
|
61
|
+
async symlink(target, path) {
|
|
62
|
+
const r = await this.sandbox.runCommand("ln", ["-s", target, path]);
|
|
63
|
+
assertCommandOk(r, `symlink ${path}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { Sandbox } from "./sandbox.js";
|
|
2
|
-
export
|
|
2
|
+
export { FileSystem } from "./filesystem.js";
|
|
3
|
+
export { Command } from "./command.js";
|
|
4
|
+
export type { SandboxConfig, SandboxData, CreateSandboxParams, GetSandboxParams, ListSandboxesParams, ListSandboxesResponse, RunCommandOpts, CommandStatus, CommandLog, WaitForCommandOptions, WriteFileParams, ReadFileParams, CreateDirectoryParams, FileStat, } from "./types.js";
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,QAAQ,GACT,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -191,6 +191,12 @@ export interface V1CreateSandboxRequest {
|
|
|
191
191
|
* @format uint64
|
|
192
192
|
*/
|
|
193
193
|
timeout?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Network access policy for the sandbox. Controls which external hosts the
|
|
196
|
+
* sandbox can communicate with. When unset, the sandbox inherits the default
|
|
197
|
+
* network policy.
|
|
198
|
+
*/
|
|
199
|
+
networkPolicy?: V1NetworkPolicy;
|
|
194
200
|
}
|
|
195
201
|
export type V1DeleteSandboxResponse = object;
|
|
196
202
|
export type V1ExtendSandboxTimeoutResponse = object;
|
|
@@ -202,6 +208,7 @@ export interface V1GetSandboxCommandResponse {
|
|
|
202
208
|
output?: string;
|
|
203
209
|
/** @format int32 */
|
|
204
210
|
exitCode?: number;
|
|
211
|
+
running?: boolean;
|
|
205
212
|
}
|
|
206
213
|
export interface V1GetSandboxFileResponse {
|
|
207
214
|
content?: string;
|
|
@@ -218,6 +225,34 @@ export interface V1LogMessage {
|
|
|
218
225
|
timestamp?: string;
|
|
219
226
|
message?: string;
|
|
220
227
|
}
|
|
228
|
+
/** NetworkPolicy controls outbound network access for a sandbox. */
|
|
229
|
+
export interface V1NetworkPolicy {
|
|
230
|
+
/**
|
|
231
|
+
* The network access policy mode.
|
|
232
|
+
* - "allow-all": permit all outbound traffic.
|
|
233
|
+
* - "deny-all": block all outbound traffic.
|
|
234
|
+
* - "custom": specify explicit allow/deny rules via the fields below.
|
|
235
|
+
* - "default-allow": allow all traffic except for explicit deny rules.
|
|
236
|
+
* - "default-deny": deny all traffic except for explicit allow rules.
|
|
237
|
+
*/
|
|
238
|
+
mode?: string;
|
|
239
|
+
/**
|
|
240
|
+
* List of domain names the sandbox is allowed to connect to. Only applies
|
|
241
|
+
* when mode is "custom". Supports wildcard patterns (e.g., "*.example.com"
|
|
242
|
+
* matches all subdomains).
|
|
243
|
+
*/
|
|
244
|
+
allowedDomains?: string[];
|
|
245
|
+
/**
|
|
246
|
+
* List of IP address ranges (in CIDR notation) the sandbox is allowed to
|
|
247
|
+
* connect to. Traffic to these addresses bypasses domain-based restrictions.
|
|
248
|
+
*/
|
|
249
|
+
allowedCidrs?: string[];
|
|
250
|
+
/**
|
|
251
|
+
* List of IP address ranges (in CIDR notation) the sandbox is blocked from
|
|
252
|
+
* connecting to. These rules take precedence over all allowed rules.
|
|
253
|
+
*/
|
|
254
|
+
deniedCidrs?: string[];
|
|
255
|
+
}
|
|
221
256
|
export interface V1RunSandboxCommandResponse {
|
|
222
257
|
cmdId?: string;
|
|
223
258
|
output?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-contracts.d.ts","sourceRoot":"","sources":["../../../src/lightning_cloud/openapi/data-contracts.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,0CAA0C;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wCAAwC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qCAAqC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oCAAoC;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"data-contracts.d.ts","sourceRoot":"","sources":["../../../src/lightning_cloud/openapi/data-contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { SandboxConfig, CreateSandboxParams, GetSandboxParams, ListSandboxesParams, RunCommandOpts,
|
|
1
|
+
import type { SandboxConfig, CreateSandboxParams, GetSandboxParams, ListSandboxesParams, RunCommandOpts, CommandStatus, CommandLog, WaitForCommandOptions, WriteFileParams, ReadFileParams, CreateDirectoryParams } from "./types.js";
|
|
2
|
+
import { Command } from "./command.js";
|
|
3
|
+
import { FileSystem } from "./filesystem.js";
|
|
2
4
|
/**
|
|
3
5
|
* A sandbox is an isolated Linux environment you can create on demand.
|
|
4
6
|
* Use it to run commands, read/write files, and manage the sandbox lifecycle.
|
|
@@ -14,6 +16,15 @@ import type { SandboxConfig, CreateSandboxParams, GetSandboxParams, ListSandboxe
|
|
|
14
16
|
* const result = await sandbox.runCommand("echo", ["hello"]);
|
|
15
17
|
* console.log(result.output);
|
|
16
18
|
*
|
|
19
|
+
* // Detached execution: returns immediately, await `wait()` to block until done.
|
|
20
|
+
* const detachedCmd = await sandbox.runCommand({
|
|
21
|
+
* cmd: "sleep",
|
|
22
|
+
* args: ["5"],
|
|
23
|
+
* detached: true,
|
|
24
|
+
* });
|
|
25
|
+
* const finished = await detachedCmd.wait();
|
|
26
|
+
* if (finished.exitCode !== 0) console.error("Something went wrong...");
|
|
27
|
+
*
|
|
17
28
|
* await sandbox.delete();
|
|
18
29
|
* ```
|
|
19
30
|
*/
|
|
@@ -30,6 +41,8 @@ export declare class Sandbox {
|
|
|
30
41
|
readonly runtime: string;
|
|
31
42
|
readonly createdAt: Date;
|
|
32
43
|
readonly updatedAt: Date;
|
|
44
|
+
/** Path-oriented file helpers that run commands inside the sandbox (see {@link FileSystem}). */
|
|
45
|
+
readonly fs: FileSystem;
|
|
33
46
|
private constructor();
|
|
34
47
|
/**
|
|
35
48
|
* Set global defaults used by all subsequent SDK calls.
|
|
@@ -44,13 +57,36 @@ export declare class Sandbox {
|
|
|
44
57
|
totalSize: number;
|
|
45
58
|
}>;
|
|
46
59
|
delete(): Promise<void>;
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Run a command inside the sandbox.
|
|
62
|
+
*
|
|
63
|
+
* When called without `detached: true`, the server waits for the process to
|
|
64
|
+
* exit and the returned {@link Command} has `exitCode` populated. When
|
|
65
|
+
* `detached: true` is passed, the call returns immediately with `exitCode`
|
|
66
|
+
* equal to `null`; await {@link Command.wait} to block until completion.
|
|
67
|
+
*/
|
|
68
|
+
runCommand(command: string, args?: string[]): Promise<Command>;
|
|
69
|
+
runCommand(opts: RunCommandOpts): Promise<Command>;
|
|
49
70
|
getCommandLogs(cmdId: string): Promise<{
|
|
50
71
|
logs: CommandLog[];
|
|
51
72
|
}>;
|
|
52
73
|
killCommand(cmdId: string): Promise<void>;
|
|
53
74
|
getCommand(cmdId: string): Promise<CommandStatus>;
|
|
75
|
+
/**
|
|
76
|
+
* Poll {@link getCommand} until the command exits and return its final status.
|
|
77
|
+
*
|
|
78
|
+
* Useful after launching a background command with `detached: true`:
|
|
79
|
+
*
|
|
80
|
+
* ```ts
|
|
81
|
+
* const r = await sandbox.runCommand({ cmd: "long-task", detached: true });
|
|
82
|
+
* const status = await sandbox.getCommand(r.cmdId);
|
|
83
|
+
* if (status.running) {
|
|
84
|
+
* const final = await sandbox.waitForCommand(r.cmdId);
|
|
85
|
+
* console.log(final.exitCode);
|
|
86
|
+
* }
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
waitForCommand(cmdId: string, opts?: WaitForCommandOptions): Promise<CommandStatus>;
|
|
54
90
|
writeFile(params: WriteFileParams): Promise<void>;
|
|
55
91
|
readFile(params: ReadFileParams): Promise<string | null>;
|
|
56
92
|
writeFiles(files: WriteFileParams[]): Promise<void>;
|
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,
|
|
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,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAevC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0D7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAExB,OAAO;IAoBP;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;WAQhC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;WA6CrD,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;WAU/C,IAAI,CACf,MAAM,GAAE,mBAAwB,GAC/B,OAAO,CAAC;QACT,SAAS,EAAE,OAAO,EAAE,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IA6BI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAc7B;;;;;;;OAOG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9D,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAsClD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAe9D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAevD;;;;;;;;;;;;;OAaG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBvF,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAajD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBxD,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAWpE"}
|
package/dist/sandbox.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Command } from "./command.js";
|
|
1
2
|
import { getApiKey, getBaseUrl, mergeSandboxConfig, resolveOrgId } from "./config.js";
|
|
3
|
+
import { FileSystem } from "./filesystem.js";
|
|
2
4
|
function buildQuery(params) {
|
|
3
5
|
const qs = new URLSearchParams();
|
|
4
6
|
for (const [k, v] of Object.entries(params)) {
|
|
@@ -60,6 +62,15 @@ function toSandboxData(v) {
|
|
|
60
62
|
* const result = await sandbox.runCommand("echo", ["hello"]);
|
|
61
63
|
* console.log(result.output);
|
|
62
64
|
*
|
|
65
|
+
* // Detached execution: returns immediately, await `wait()` to block until done.
|
|
66
|
+
* const detachedCmd = await sandbox.runCommand({
|
|
67
|
+
* cmd: "sleep",
|
|
68
|
+
* args: ["5"],
|
|
69
|
+
* detached: true,
|
|
70
|
+
* });
|
|
71
|
+
* const finished = await detachedCmd.wait();
|
|
72
|
+
* if (finished.exitCode !== 0) console.error("Something went wrong...");
|
|
73
|
+
*
|
|
63
74
|
* await sandbox.delete();
|
|
64
75
|
* ```
|
|
65
76
|
*/
|
|
@@ -76,6 +87,8 @@ export class Sandbox {
|
|
|
76
87
|
runtime;
|
|
77
88
|
createdAt;
|
|
78
89
|
updatedAt;
|
|
90
|
+
/** Path-oriented file helpers that run commands inside the sandbox (see {@link FileSystem}). */
|
|
91
|
+
fs;
|
|
79
92
|
constructor(data) {
|
|
80
93
|
this.sandboxId = data.id;
|
|
81
94
|
this.name = data.name;
|
|
@@ -89,6 +102,7 @@ export class Sandbox {
|
|
|
89
102
|
this.runtime = data.runtime ?? "";
|
|
90
103
|
this.createdAt = new Date(data.createdAt);
|
|
91
104
|
this.updatedAt = new Date(data.updatedAt);
|
|
105
|
+
this.fs = new FileSystem(this);
|
|
92
106
|
}
|
|
93
107
|
// ---------------------------------------------------------------------------
|
|
94
108
|
// Global configuration
|
|
@@ -186,6 +200,7 @@ export class Sandbox {
|
|
|
186
200
|
const body = {
|
|
187
201
|
organizationId: this.organizationId || undefined,
|
|
188
202
|
};
|
|
203
|
+
let detached = false;
|
|
189
204
|
if (typeof commandOrOpts === "string") {
|
|
190
205
|
body.command = commandOrOpts;
|
|
191
206
|
body.args = args ?? [];
|
|
@@ -199,15 +214,17 @@ export class Sandbox {
|
|
|
199
214
|
body.env = commandOrOpts.env;
|
|
200
215
|
if (commandOrOpts.sudo !== undefined)
|
|
201
216
|
body.sudo = commandOrOpts.sudo;
|
|
202
|
-
if (commandOrOpts.detached !== undefined)
|
|
217
|
+
if (commandOrOpts.detached !== undefined) {
|
|
203
218
|
body.detached = commandOrOpts.detached;
|
|
219
|
+
detached = commandOrOpts.detached;
|
|
220
|
+
}
|
|
204
221
|
}
|
|
205
222
|
const data = await request("POST", `/v1/core/sandboxes/${encodeURIComponent(this.sandboxId)}/commands`, body);
|
|
206
|
-
return {
|
|
223
|
+
return new Command(this, {
|
|
207
224
|
cmdId: data.cmdId ?? "",
|
|
208
225
|
output: data.output ?? "",
|
|
209
|
-
exitCode: data.exitCode ?? 0,
|
|
210
|
-
};
|
|
226
|
+
exitCode: detached ? null : (data.exitCode ?? 0),
|
|
227
|
+
});
|
|
211
228
|
}
|
|
212
229
|
async getCommandLogs(cmdId) {
|
|
213
230
|
const qs = buildQuery({
|
|
@@ -237,6 +254,33 @@ export class Sandbox {
|
|
|
237
254
|
running: data.running ?? false,
|
|
238
255
|
};
|
|
239
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* Poll {@link getCommand} until the command exits and return its final status.
|
|
259
|
+
*
|
|
260
|
+
* Useful after launching a background command with `detached: true`:
|
|
261
|
+
*
|
|
262
|
+
* ```ts
|
|
263
|
+
* const r = await sandbox.runCommand({ cmd: "long-task", detached: true });
|
|
264
|
+
* const status = await sandbox.getCommand(r.cmdId);
|
|
265
|
+
* if (status.running) {
|
|
266
|
+
* const final = await sandbox.waitForCommand(r.cmdId);
|
|
267
|
+
* console.log(final.exitCode);
|
|
268
|
+
* }
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
async waitForCommand(cmdId, opts = {}) {
|
|
272
|
+
const pollIntervalMs = opts.pollIntervalMs ?? 500;
|
|
273
|
+
const deadline = opts.timeoutMs !== undefined ? Date.now() + opts.timeoutMs : undefined;
|
|
274
|
+
while (true) {
|
|
275
|
+
const status = await this.getCommand(cmdId);
|
|
276
|
+
if (!status.running)
|
|
277
|
+
return status;
|
|
278
|
+
if (deadline !== undefined && Date.now() >= deadline) {
|
|
279
|
+
throw new Error(`Timed out waiting for command ${cmdId} to finish`);
|
|
280
|
+
}
|
|
281
|
+
await new Promise((r) => setTimeout(r, pollIntervalMs));
|
|
282
|
+
}
|
|
283
|
+
}
|
|
240
284
|
// ---------------------------------------------------------------------------
|
|
241
285
|
// Instance methods — files
|
|
242
286
|
// ---------------------------------------------------------------------------
|
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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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface SandboxData {
|
|
|
25
25
|
updatedAt: string;
|
|
26
26
|
}
|
|
27
27
|
export interface CreateSandboxParams {
|
|
28
|
-
name
|
|
28
|
+
name?: string;
|
|
29
29
|
instanceType: string;
|
|
30
30
|
spot?: boolean;
|
|
31
31
|
ports?: number[];
|
|
@@ -57,16 +57,25 @@ export interface RunCommandOpts {
|
|
|
57
57
|
sudo?: boolean;
|
|
58
58
|
detached?: boolean;
|
|
59
59
|
}
|
|
60
|
-
export interface CommandResult {
|
|
61
|
-
cmdId: string;
|
|
62
|
-
output: string;
|
|
63
|
-
exitCode: number;
|
|
64
|
-
}
|
|
65
60
|
export interface CommandStatus {
|
|
66
61
|
output: string;
|
|
67
62
|
exitCode: number;
|
|
63
|
+
/**
|
|
64
|
+
* `true` while the command is still executing; `false` once it has exited.
|
|
65
|
+
*
|
|
66
|
+
* Synchronous (non-`detached`) commands return ``false`` here once
|
|
67
|
+
* {@link Sandbox.runCommand} resolves. To check whether a `detached` command
|
|
68
|
+
* is still running, fetch its status via {@link Sandbox.getCommand} (or block
|
|
69
|
+
* until completion with {@link Sandbox.waitForCommand}).
|
|
70
|
+
*/
|
|
68
71
|
running: boolean;
|
|
69
72
|
}
|
|
73
|
+
export interface WaitForCommandOptions {
|
|
74
|
+
/** Maximum time to wait in milliseconds. Defaults to no timeout. */
|
|
75
|
+
timeoutMs?: number;
|
|
76
|
+
/** Time between polls in milliseconds. Defaults to 500ms. */
|
|
77
|
+
pollIntervalMs?: number;
|
|
78
|
+
}
|
|
70
79
|
export interface CommandLog {
|
|
71
80
|
timestamp: string;
|
|
72
81
|
message: string;
|
|
@@ -81,4 +90,12 @@ export interface ReadFileParams {
|
|
|
81
90
|
export interface CreateDirectoryParams {
|
|
82
91
|
path: string;
|
|
83
92
|
}
|
|
93
|
+
export interface FileStat {
|
|
94
|
+
/** File type from `%F` (e.g. `regular file`, `directory`, `symbolic link`). */
|
|
95
|
+
fileType: string;
|
|
96
|
+
size: number;
|
|
97
|
+
mtime: Date;
|
|
98
|
+
/** Permission bits as an octal string (e.g. `644`). */
|
|
99
|
+
mode: string;
|
|
100
|
+
}
|
|
84
101
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightningai/sdk",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.12",
|
|
4
4
|
"description": "Lightning AI Sandbox SDK — create and manage sandboxes, run commands, read/write files",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"clean": "rm -rf dist",
|
|
23
23
|
"build": "tsc",
|
|
24
24
|
"prepublishOnly": "npm run clean && npm run build",
|
|
25
|
-
"test": "node --test --import tsx tests/config.test.ts tests/sandbox.test.ts"
|
|
25
|
+
"test": "node --test --import tsx tests/config.test.ts tests/sandbox.test.ts tests/filesystem.test.ts"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"axios": "^1.7.0"
|
|
@@ -34,5 +34,10 @@
|
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
|
+
},
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "https://github.com/gridai/lightning-sdk.git",
|
|
41
|
+
"directory": "js"
|
|
37
42
|
}
|
|
38
43
|
}
|