@solarisdk/e2b-compat 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPAT.md +88 -0
- package/LICENSE +17 -0
- package/LICENSE-E2B +9 -0
- package/NOTICE +13 -0
- package/README.md +67 -2
- package/dist/box.d.ts +28 -0
- package/dist/box.d.ts.map +1 -0
- package/dist/box.js +102 -0
- package/dist/box.js.map +1 -0
- package/dist/code-interpreter.d.ts +157 -0
- package/dist/code-interpreter.d.ts.map +1 -0
- package/dist/code-interpreter.js +357 -0
- package/dist/code-interpreter.js.map +1 -0
- package/dist/commands.d.ts +141 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +302 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +32 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +92 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +79 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +159 -0
- package/dist/errors.js.map +1 -0
- package/dist/filesystem.d.ts +99 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +245 -0
- package/dist/filesystem.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/sandbox.d.ts +190 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +431 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/template.d.ts +187 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +360 -0
- package/dist/template.js.map +1 -0
- package/package.json +52 -4
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
// `@e2b/code-interpreter` on Solari: `Sandbox` with runCode and code contexts. Python runs in Solari's persistent
|
|
2
|
+
// kernel (rich results, structured charts). `bash` runs as a one-shot command. Other languages throw (the guest
|
|
3
|
+
// ships a Python kernel only). The default template, `code-interpreter-v1`, is built into your org on first use.
|
|
4
|
+
import { Image, TemplateClient } from "@solarisdk/core";
|
|
5
|
+
import { resolveConn } from "./config.js";
|
|
6
|
+
import { CommandExitError, InvalidArgumentError, SandboxError, SolariCompatUnsupported, TimeoutError, translateError } from "./errors.js";
|
|
7
|
+
import { Sandbox as BaseSandbox } from "./sandbox.js";
|
|
8
|
+
import { resolveTemplateId } from "./template.js";
|
|
9
|
+
// --- result types (shapes follow @e2b/code-interpreter) ---------------------------------------------------------
|
|
10
|
+
export var ChartType;
|
|
11
|
+
(function (ChartType) {
|
|
12
|
+
ChartType["LINE"] = "line";
|
|
13
|
+
ChartType["SCATTER"] = "scatter";
|
|
14
|
+
ChartType["BAR"] = "bar";
|
|
15
|
+
ChartType["PIE"] = "pie";
|
|
16
|
+
ChartType["BOX_AND_WHISKER"] = "box_and_whisker";
|
|
17
|
+
ChartType["SUPERCHART"] = "superchart";
|
|
18
|
+
ChartType["UNKNOWN"] = "unknown";
|
|
19
|
+
})(ChartType || (ChartType = {}));
|
|
20
|
+
export var ScaleType;
|
|
21
|
+
(function (ScaleType) {
|
|
22
|
+
ScaleType["LINEAR"] = "linear";
|
|
23
|
+
ScaleType["DATETIME"] = "datetime";
|
|
24
|
+
ScaleType["CATEGORICAL"] = "categorical";
|
|
25
|
+
ScaleType["LOG"] = "log";
|
|
26
|
+
ScaleType["SYMLOG"] = "symlog";
|
|
27
|
+
ScaleType["LOGIT"] = "logit";
|
|
28
|
+
ScaleType["FUNCTION"] = "function";
|
|
29
|
+
ScaleType["FUNCTIONLOG"] = "functionlog";
|
|
30
|
+
ScaleType["ASINH"] = "asinh";
|
|
31
|
+
})(ScaleType || (ScaleType = {}));
|
|
32
|
+
export class OutputMessage {
|
|
33
|
+
line;
|
|
34
|
+
timestamp;
|
|
35
|
+
error;
|
|
36
|
+
constructor(line, timestamp, error) {
|
|
37
|
+
this.line = line;
|
|
38
|
+
this.timestamp = timestamp;
|
|
39
|
+
this.error = error;
|
|
40
|
+
}
|
|
41
|
+
toString() {
|
|
42
|
+
return this.line;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class ExecutionError {
|
|
46
|
+
name;
|
|
47
|
+
value;
|
|
48
|
+
traceback;
|
|
49
|
+
constructor(name, value, traceback) {
|
|
50
|
+
this.name = name;
|
|
51
|
+
this.value = value;
|
|
52
|
+
this.traceback = traceback;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export class Result {
|
|
56
|
+
raw;
|
|
57
|
+
isMainResult;
|
|
58
|
+
text;
|
|
59
|
+
html;
|
|
60
|
+
markdown;
|
|
61
|
+
svg;
|
|
62
|
+
png;
|
|
63
|
+
jpeg;
|
|
64
|
+
pdf;
|
|
65
|
+
latex;
|
|
66
|
+
json;
|
|
67
|
+
javascript;
|
|
68
|
+
data;
|
|
69
|
+
chart;
|
|
70
|
+
extra;
|
|
71
|
+
constructor(raw, isMainResult) {
|
|
72
|
+
this.raw = raw;
|
|
73
|
+
this.isMainResult = isMainResult;
|
|
74
|
+
const known = new Set(["text/plain", "text/html", "text/markdown", "image/svg+xml", "image/png", "image/jpeg", "application/pdf", "text/latex", "application/json", "application/javascript", "data", "chart", "extra"]);
|
|
75
|
+
this.text = raw["text/plain"];
|
|
76
|
+
this.html = raw["text/html"];
|
|
77
|
+
this.markdown = raw["text/markdown"];
|
|
78
|
+
this.svg = raw["image/svg+xml"];
|
|
79
|
+
this.png = raw["image/png"];
|
|
80
|
+
this.jpeg = raw["image/jpeg"];
|
|
81
|
+
this.pdf = raw["application/pdf"];
|
|
82
|
+
this.latex = raw["text/latex"];
|
|
83
|
+
this.json = raw["application/json"];
|
|
84
|
+
this.javascript = raw["application/javascript"];
|
|
85
|
+
this.data = raw.data;
|
|
86
|
+
this.chart = raw.chart;
|
|
87
|
+
const extra = Object.fromEntries(Object.entries(raw).filter(([k]) => !known.has(k)));
|
|
88
|
+
this.extra = raw.extra ?? (Object.keys(extra).length ? extra : undefined);
|
|
89
|
+
}
|
|
90
|
+
formats() {
|
|
91
|
+
const f = [];
|
|
92
|
+
for (const [k, v] of [["text", this.text], ["html", this.html], ["markdown", this.markdown], ["svg", this.svg], ["png", this.png], ["jpeg", this.jpeg], ["pdf", this.pdf], ["latex", this.latex], ["json", this.json], ["javascript", this.javascript], ["data", this.data], ["chart", this.chart]]) {
|
|
93
|
+
if (v !== undefined)
|
|
94
|
+
f.push(k);
|
|
95
|
+
}
|
|
96
|
+
return f;
|
|
97
|
+
}
|
|
98
|
+
toJSON() {
|
|
99
|
+
return {
|
|
100
|
+
...(this.extra !== undefined ? { extra: this.extra } : {}),
|
|
101
|
+
text: this.text,
|
|
102
|
+
html: this.html,
|
|
103
|
+
markdown: this.markdown,
|
|
104
|
+
svg: this.svg,
|
|
105
|
+
png: this.png,
|
|
106
|
+
jpeg: this.jpeg,
|
|
107
|
+
pdf: this.pdf,
|
|
108
|
+
latex: this.latex,
|
|
109
|
+
json: this.json,
|
|
110
|
+
javascript: this.javascript,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class Execution {
|
|
115
|
+
results;
|
|
116
|
+
logs;
|
|
117
|
+
error;
|
|
118
|
+
executionCount;
|
|
119
|
+
constructor(results = [], logs = { stdout: [], stderr: [] }, error, executionCount) {
|
|
120
|
+
this.results = results;
|
|
121
|
+
this.logs = logs;
|
|
122
|
+
this.error = error;
|
|
123
|
+
this.executionCount = executionCount;
|
|
124
|
+
}
|
|
125
|
+
get text() {
|
|
126
|
+
return this.results.find((r) => r.isMainResult)?.text;
|
|
127
|
+
}
|
|
128
|
+
toJSON() {
|
|
129
|
+
return { results: this.results, logs: this.logs, error: this.error };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// --- mapping from Solari results ------------------------------------------------------------------------------------
|
|
133
|
+
function mapChart(c) {
|
|
134
|
+
const type = c.type === "composite" ? ChartType.SUPERCHART : Object.values(ChartType).includes(c.type) ? c.type : ChartType.UNKNOWN;
|
|
135
|
+
const out = { type, title: c.title ?? "", elements: c.elements ?? [] };
|
|
136
|
+
if (c.xLabel !== undefined)
|
|
137
|
+
out.x_label = c.xLabel;
|
|
138
|
+
if (c.yLabel !== undefined)
|
|
139
|
+
out.y_label = c.yLabel;
|
|
140
|
+
if (c.x) {
|
|
141
|
+
out.x_ticks = c.x.ticks ?? [];
|
|
142
|
+
out.x_scale = c.x.scale ?? ScaleType.LINEAR;
|
|
143
|
+
out.x_tick_labels = (c.x.ticks ?? []).map(String);
|
|
144
|
+
}
|
|
145
|
+
if (c.y) {
|
|
146
|
+
out.y_ticks = c.y.ticks ?? [];
|
|
147
|
+
out.y_scale = c.y.scale ?? ScaleType.LINEAR;
|
|
148
|
+
out.y_tick_labels = (c.y.ticks ?? []).map(String);
|
|
149
|
+
}
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
function toResult(item, isMain) {
|
|
153
|
+
const raw = {};
|
|
154
|
+
if (item.text !== undefined)
|
|
155
|
+
raw["text/plain"] = item.text;
|
|
156
|
+
if (item.html !== undefined)
|
|
157
|
+
raw["text/html"] = item.html;
|
|
158
|
+
if (item.markdown !== undefined)
|
|
159
|
+
raw["text/markdown"] = item.markdown;
|
|
160
|
+
if (item.svg !== undefined)
|
|
161
|
+
raw["image/svg+xml"] = item.svg;
|
|
162
|
+
if (item.png !== undefined)
|
|
163
|
+
raw["image/png"] = item.png;
|
|
164
|
+
if (item.jpeg !== undefined)
|
|
165
|
+
raw["image/jpeg"] = item.jpeg;
|
|
166
|
+
if (item.latex !== undefined)
|
|
167
|
+
raw["text/latex"] = item.latex;
|
|
168
|
+
if (item.json !== undefined)
|
|
169
|
+
raw["application/json"] = typeof item.json === "string" ? item.json : JSON.stringify(item.json);
|
|
170
|
+
if (item.chart)
|
|
171
|
+
raw.chart = mapChart(item.chart);
|
|
172
|
+
return new Result(raw, isMain);
|
|
173
|
+
}
|
|
174
|
+
function toExecutionError(err) {
|
|
175
|
+
if (typeof err === "string") {
|
|
176
|
+
const lines = err.trim().split("\n");
|
|
177
|
+
const last = lines[lines.length - 1] ?? err;
|
|
178
|
+
const m = /^([A-Za-z_][\w.]*)(?::\s*(.*))?$/.exec(last);
|
|
179
|
+
return new ExecutionError(m?.[1] ?? "Error", m?.[2] ?? last, err);
|
|
180
|
+
}
|
|
181
|
+
const o = err;
|
|
182
|
+
return new ExecutionError(o.name ?? "Error", o.message ?? "", o.traceback ?? "");
|
|
183
|
+
}
|
|
184
|
+
// --- default template -------------------------------------------------------------------------------------------------
|
|
185
|
+
export const CODE_INTERPRETER_TEMPLATE = "code-interpreter-v1";
|
|
186
|
+
/** The data-analysis stack of E2B's default code-interpreter image, minus the very large audio/NLP/vision wheels. */
|
|
187
|
+
export const CODE_INTERPRETER_PACKAGES = [
|
|
188
|
+
"pandas", "scipy", "scikit-learn", "scikit-image", "seaborn", "plotly", "bokeh", "imageio",
|
|
189
|
+
"sympy", "xarray", "joblib", "nltk", "textblob", "requests", "aiohttp", "beautifulsoup4", "openpyxl", "xlrd", "python-docx",
|
|
190
|
+
"pytz", "pytest",
|
|
191
|
+
];
|
|
192
|
+
/**
|
|
193
|
+
* numpy, matplotlib and pillow ship in the base image as Debian packages built against numpy 1.x. Installing the
|
|
194
|
+
* data stack pulls numpy 2.x, which breaks them ("numpy.core.multiarray failed to import"), so they are reinstalled
|
|
195
|
+
* from PyPI first. The Debian matplotlib is removed so the two copies cannot mix (mixed copies lose Axes3D and the
|
|
196
|
+
* kernel's structured chart extraction).
|
|
197
|
+
*/
|
|
198
|
+
const PIP_BASE = "rm -rf /usr/lib/python3/dist-packages/matplotlib* /usr/lib/python3/dist-packages/mpl_toolkits* /usr/lib/python3/dist-packages/pylab.py && pip install --ignore-installed numpy matplotlib pillow";
|
|
199
|
+
const building = new Map();
|
|
200
|
+
/** Build `code-interpreter-v1` into your org (several minutes, once). `Sandbox.create()` calls this when it is missing. */
|
|
201
|
+
export function buildCodeInterpreterTemplate(opts = {}) {
|
|
202
|
+
const conn = resolveConn(opts);
|
|
203
|
+
const key = `${conn.apiKey}\n${conn.baseUrl}`;
|
|
204
|
+
let p = building.get(key);
|
|
205
|
+
if (!p) {
|
|
206
|
+
p = (async () => {
|
|
207
|
+
try {
|
|
208
|
+
const client = new TemplateClient({ apiKey: conn.apiKey, baseUrl: conn.baseUrl });
|
|
209
|
+
const view = await client.build(Image.fromTemplate("base").runCommands(PIP_BASE).pipInstall(CODE_INTERPRETER_PACKAGES), { name: CODE_INTERPRETER_TEMPLATE, ...(opts.onLog ? { onLog: opts.onLog } : {}) });
|
|
210
|
+
return view.templateId;
|
|
211
|
+
}
|
|
212
|
+
catch (e) {
|
|
213
|
+
throw translateError(e);
|
|
214
|
+
}
|
|
215
|
+
finally {
|
|
216
|
+
building.delete(key);
|
|
217
|
+
}
|
|
218
|
+
})();
|
|
219
|
+
building.set(key, p);
|
|
220
|
+
}
|
|
221
|
+
return p;
|
|
222
|
+
}
|
|
223
|
+
async function ensureCodeInterpreterTemplate(conn) {
|
|
224
|
+
const override = typeof process !== "undefined" ? process.env.SOLARI_CODE_INTERPRETER_TEMPLATE : undefined;
|
|
225
|
+
if (override)
|
|
226
|
+
return resolveTemplateId(conn, override);
|
|
227
|
+
try {
|
|
228
|
+
return await resolveTemplateId(conn, CODE_INTERPRETER_TEMPLATE);
|
|
229
|
+
}
|
|
230
|
+
catch (e) {
|
|
231
|
+
if (!(e instanceof Error) || !/not found/.test(e.message))
|
|
232
|
+
throw e;
|
|
233
|
+
}
|
|
234
|
+
console.warn(`@solarisdk/e2b-compat: building the "${CODE_INTERPRETER_TEMPLATE}" template into your Solari org (one time, several minutes). To prebuild, call buildCodeInterpreterTemplate().`);
|
|
235
|
+
return buildCodeInterpreterTemplate({ apiKey: conn.apiKey, apiUrl: conn.baseUrl });
|
|
236
|
+
}
|
|
237
|
+
// --- sandbox -----------------------------------------------------------------------------------------------------------
|
|
238
|
+
const contexts = new Map();
|
|
239
|
+
const ctxOf = (id) => {
|
|
240
|
+
let m = contexts.get(id);
|
|
241
|
+
if (!m)
|
|
242
|
+
contexts.set(id, (m = new Map()));
|
|
243
|
+
return m;
|
|
244
|
+
};
|
|
245
|
+
const RESET_CONTEXT = "for __n in [n for n in list(globals()) if not n.startswith('__')]:\n del globals()[__n]\ndel __n\n";
|
|
246
|
+
export class Sandbox extends BaseSandbox {
|
|
247
|
+
static defaultTemplate = CODE_INTERPRETER_TEMPLATE;
|
|
248
|
+
static resolveTemplate(conn, template) {
|
|
249
|
+
return template === CODE_INTERPRETER_TEMPLATE ? ensureCodeInterpreterTemplate(conn) : resolveTemplateId(conn, template);
|
|
250
|
+
}
|
|
251
|
+
async runCode(code, opts = {}) {
|
|
252
|
+
if (opts.language && opts.context)
|
|
253
|
+
throw new InvalidArgumentError("You can provide context or language, but not both at the same time.");
|
|
254
|
+
if (opts.envs && Object.keys(opts.envs).length > 0)
|
|
255
|
+
throw new SolariCompatUnsupported("runCode envs", "set variables with sandbox.commands or os.environ in the code");
|
|
256
|
+
const language = opts.context?.language ?? opts.language ?? "python";
|
|
257
|
+
const run = language === "bash" ? this.runBash(code) : this.runPython(code, language, opts.context);
|
|
258
|
+
const exec = await withTimeout(run, opts.timeoutMs);
|
|
259
|
+
const now = Date.now() * 1e6;
|
|
260
|
+
for (const l of exec.logs.stdout)
|
|
261
|
+
await opts.onStdout?.(new OutputMessage(l, now, false));
|
|
262
|
+
for (const l of exec.logs.stderr)
|
|
263
|
+
await opts.onStderr?.(new OutputMessage(l, now, true));
|
|
264
|
+
for (const r of exec.results)
|
|
265
|
+
await opts.onResult?.(r);
|
|
266
|
+
if (exec.error)
|
|
267
|
+
await opts.onError?.(exec.error);
|
|
268
|
+
return exec;
|
|
269
|
+
}
|
|
270
|
+
async runPython(code, language, context) {
|
|
271
|
+
if (!["python", "python3", "py", "ipython"].includes(language)) {
|
|
272
|
+
throw new SolariCompatUnsupported(`runCode language "${language}"`, "the Solari guest ships a Python kernel (and bash through language: 'bash')");
|
|
273
|
+
}
|
|
274
|
+
const r = await this.box.on((sb) => sb.runCode(code, { language: "python", ...(context ? { contextId: context.id } : {}) }));
|
|
275
|
+
const stdout = [];
|
|
276
|
+
const stderr = [];
|
|
277
|
+
const items = [];
|
|
278
|
+
for (const it of r.results) {
|
|
279
|
+
if (it.type === "stdout") {
|
|
280
|
+
if (it.text)
|
|
281
|
+
stdout.push(it.text);
|
|
282
|
+
}
|
|
283
|
+
else if (it.type === "stderr") {
|
|
284
|
+
if (it.text)
|
|
285
|
+
stderr.push(it.text);
|
|
286
|
+
}
|
|
287
|
+
else
|
|
288
|
+
items.push(it);
|
|
289
|
+
}
|
|
290
|
+
const lastText = items.map((i, n) => (i.text !== undefined ? n : -1)).filter((n) => n >= 0).pop();
|
|
291
|
+
const results = items.map((it, n) => toResult(it, n === lastText));
|
|
292
|
+
return new Execution(results, { stdout, stderr }, r.error !== undefined ? toExecutionError(r.error) : undefined);
|
|
293
|
+
}
|
|
294
|
+
async runBash(code) {
|
|
295
|
+
try {
|
|
296
|
+
const r = await this.commands.run(code, { timeoutMs: 0 });
|
|
297
|
+
return new Execution([], { stdout: r.stdout ? [r.stdout] : [], stderr: r.stderr ? [r.stderr] : [] });
|
|
298
|
+
}
|
|
299
|
+
catch (e) {
|
|
300
|
+
if (e instanceof CommandExitError) {
|
|
301
|
+
return new Execution([], { stdout: e.stdout ? [e.stdout] : [], stderr: e.stderr ? [e.stderr] : [] }, new ExecutionError("CommandExitError", `exit status ${e.exitCode}`, e.stderr));
|
|
302
|
+
}
|
|
303
|
+
throw e;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
async createCodeContext(opts = {}) {
|
|
307
|
+
const language = opts.language ?? "python";
|
|
308
|
+
if (!["python", "python3", "py", "ipython"].includes(language)) {
|
|
309
|
+
throw new SolariCompatUnsupported(`createCodeContext language "${language}"`, "the Solari guest ships a Python kernel only");
|
|
310
|
+
}
|
|
311
|
+
const id = await this.box.on((sb) => sb.createCodeContext("python"));
|
|
312
|
+
const cwd = opts.cwd ?? (await this.box.home());
|
|
313
|
+
if (opts.cwd)
|
|
314
|
+
await this.box.on((sb) => sb.runCode(`import os\nos.chdir(${JSON.stringify(opts.cwd)})\n`, { language: "python", contextId: id }));
|
|
315
|
+
const ctx = { id, language: "python", cwd };
|
|
316
|
+
ctxOf(this.sandboxId).set(id, ctx);
|
|
317
|
+
return ctx;
|
|
318
|
+
}
|
|
319
|
+
/** Contexts created through this process (Solari cannot list a sandbox's kernels). */
|
|
320
|
+
async listCodeContexts() {
|
|
321
|
+
return [...ctxOf(this.sandboxId).values()];
|
|
322
|
+
}
|
|
323
|
+
/** Forgets the context. The kernel stays alive until the sandbox ends (Solari has no kernel destroy call). */
|
|
324
|
+
async removeCodeContext(context) {
|
|
325
|
+
const id = typeof context === "string" ? context : context.id;
|
|
326
|
+
if (!ctxOf(this.sandboxId).delete(id))
|
|
327
|
+
throw new SandboxError(`Context ${id} not found`);
|
|
328
|
+
}
|
|
329
|
+
/** Clears the context's variables and working directory (the kernel process is not restarted). */
|
|
330
|
+
async restartCodeContext(context) {
|
|
331
|
+
const id = typeof context === "string" ? context : context.id;
|
|
332
|
+
const ctx = ctxOf(this.sandboxId).get(id);
|
|
333
|
+
if (!ctx)
|
|
334
|
+
throw new SandboxError(`Context ${id} not found`);
|
|
335
|
+
await this.box.on((sb) => sb.runCode(`${RESET_CONTEXT}import os\nos.chdir(${JSON.stringify(ctx.cwd)})\n`, { language: "python", contextId: id }));
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
async function withTimeout(p, ms) {
|
|
339
|
+
if (!ms || ms <= 0)
|
|
340
|
+
return p;
|
|
341
|
+
let timer;
|
|
342
|
+
try {
|
|
343
|
+
return await Promise.race([
|
|
344
|
+
p,
|
|
345
|
+
new Promise((_, rej) => {
|
|
346
|
+
timer = setTimeout(() => rej(new TimeoutError(`Execution timed out after ${ms}ms (the kernel keeps running the code)`)), ms);
|
|
347
|
+
}),
|
|
348
|
+
]);
|
|
349
|
+
}
|
|
350
|
+
finally {
|
|
351
|
+
clearTimeout(timer);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
export default Sandbox;
|
|
355
|
+
/** @internal Exposed for unit tests. */
|
|
356
|
+
export const _internal = { toResult, toExecutionError, mapChart };
|
|
357
|
+
//# sourceMappingURL=code-interpreter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-interpreter.js","sourceRoot":"","sources":["../src/code-interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { Box } from "./box.js";
|
|
2
|
+
export interface CommandResult {
|
|
3
|
+
exitCode: number;
|
|
4
|
+
error?: string;
|
|
5
|
+
stdout: string;
|
|
6
|
+
stderr: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CommandRequestOpts {
|
|
9
|
+
requestTimeoutMs?: number;
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
}
|
|
12
|
+
export interface CommandStartOpts extends CommandRequestOpts {
|
|
13
|
+
background?: boolean;
|
|
14
|
+
cwd?: string;
|
|
15
|
+
user?: string;
|
|
16
|
+
envs?: Record<string, string>;
|
|
17
|
+
onStdout?: (data: string) => void | Promise<void>;
|
|
18
|
+
onStderr?: (data: string) => void | Promise<void>;
|
|
19
|
+
stdin?: boolean;
|
|
20
|
+
timeoutMs?: number;
|
|
21
|
+
}
|
|
22
|
+
export type CommandConnectOpts = Pick<CommandStartOpts, "onStderr" | "onStdout" | "timeoutMs"> & CommandRequestOpts;
|
|
23
|
+
export interface ProcessInfo {
|
|
24
|
+
pid: number;
|
|
25
|
+
tag?: string;
|
|
26
|
+
cmd: string;
|
|
27
|
+
args: string[];
|
|
28
|
+
envs: Record<string, string>;
|
|
29
|
+
cwd?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface CommandStreamInputOpts {
|
|
32
|
+
timeoutMs?: number;
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
}
|
|
35
|
+
export interface PtyCreateOpts extends CommandRequestOpts {
|
|
36
|
+
cols: number;
|
|
37
|
+
rows: number;
|
|
38
|
+
onData: (data: Uint8Array) => void | Promise<void>;
|
|
39
|
+
timeoutMs?: number;
|
|
40
|
+
user?: string;
|
|
41
|
+
envs?: Record<string, string>;
|
|
42
|
+
cwd?: string;
|
|
43
|
+
}
|
|
44
|
+
export type PtyConnectOpts = Pick<PtyCreateOpts, "onData" | "timeoutMs"> & CommandRequestOpts;
|
|
45
|
+
/** The Solari side of one tracked process, however it was started. */
|
|
46
|
+
interface Backend {
|
|
47
|
+
kill(): Promise<void>;
|
|
48
|
+
stdin(data: Uint8Array | string): Promise<void>;
|
|
49
|
+
closeStdin?: () => Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
/** What `commands.run({ background: true })` and `pty.create` return. */
|
|
52
|
+
export declare class CommandHandle {
|
|
53
|
+
private readonly backend;
|
|
54
|
+
private readonly pty;
|
|
55
|
+
readonly pid: number;
|
|
56
|
+
private _stdout;
|
|
57
|
+
private _stderr;
|
|
58
|
+
private _exit;
|
|
59
|
+
private _error;
|
|
60
|
+
private readonly done;
|
|
61
|
+
private finish;
|
|
62
|
+
private readonly stdoutCbs;
|
|
63
|
+
private readonly stderrCbs;
|
|
64
|
+
private readonly ptyCbs;
|
|
65
|
+
/** @internal */
|
|
66
|
+
constructor(pid: number, backend: Backend, pty: boolean);
|
|
67
|
+
get stdout(): string;
|
|
68
|
+
get stderr(): string;
|
|
69
|
+
get exitCode(): number | undefined;
|
|
70
|
+
get error(): string | undefined;
|
|
71
|
+
/** @internal */
|
|
72
|
+
_data(stream: "stdout" | "stderr", data: string): void;
|
|
73
|
+
/** @internal */
|
|
74
|
+
_ptyData(data: Uint8Array): void;
|
|
75
|
+
/** @internal */
|
|
76
|
+
_onStdout(cb?: (d: string) => void | Promise<void>): void;
|
|
77
|
+
/** @internal */
|
|
78
|
+
_onStderr(cb?: (d: string) => void | Promise<void>): void;
|
|
79
|
+
/** @internal */
|
|
80
|
+
_onPty(cb?: (d: Uint8Array) => void | Promise<void>): void;
|
|
81
|
+
/** @internal */
|
|
82
|
+
_exited(code: number, error?: string): void;
|
|
83
|
+
/** Wait for the command to end. Throws {@link CommandExitError} on a non-zero exit, as E2B does. */
|
|
84
|
+
wait(): Promise<CommandResult>;
|
|
85
|
+
/** Stop receiving output; the command keeps running. */
|
|
86
|
+
disconnect(): Promise<void>;
|
|
87
|
+
/** SIGKILL. `false` when the command already ended. */
|
|
88
|
+
kill(): Promise<boolean>;
|
|
89
|
+
sendStdin(data: string | Uint8Array, _opts?: CommandRequestOpts): Promise<void>;
|
|
90
|
+
closeStdin(_opts?: CommandRequestOpts): Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
/** Ordered input stream, built over repeated writes (Solari writes are ordered per command). */
|
|
93
|
+
export declare class CommandInputHandle {
|
|
94
|
+
private readonly write;
|
|
95
|
+
private closed;
|
|
96
|
+
private queue;
|
|
97
|
+
constructor(write: (d: string | Uint8Array) => Promise<void>);
|
|
98
|
+
send(data: string | Uint8Array): Promise<void>;
|
|
99
|
+
close(): Promise<void>;
|
|
100
|
+
}
|
|
101
|
+
export declare class Commands {
|
|
102
|
+
private readonly box;
|
|
103
|
+
/** @internal */
|
|
104
|
+
constructor(box: Box);
|
|
105
|
+
get supportsStdinClose(): boolean;
|
|
106
|
+
run(cmd: string, opts?: CommandStartOpts & {
|
|
107
|
+
background?: false;
|
|
108
|
+
}): Promise<CommandResult>;
|
|
109
|
+
run(cmd: string, opts: CommandStartOpts & {
|
|
110
|
+
background: true;
|
|
111
|
+
}): Promise<CommandHandle>;
|
|
112
|
+
run(cmd: string, opts?: CommandStartOpts & {
|
|
113
|
+
background?: boolean;
|
|
114
|
+
}): Promise<CommandHandle | CommandResult>;
|
|
115
|
+
private start;
|
|
116
|
+
/** Commands and PTYs this process started on the sandbox that have not ended. */
|
|
117
|
+
list(_opts?: CommandRequestOpts): Promise<ProcessInfo[]>;
|
|
118
|
+
kill(pid: number, _opts?: CommandRequestOpts): Promise<boolean>;
|
|
119
|
+
sendStdin(pid: number, data: string | Uint8Array, opts?: CommandRequestOpts): Promise<void>;
|
|
120
|
+
streamInput(pid: number, _opts?: CommandStreamInputOpts): CommandInputHandle;
|
|
121
|
+
closeStdin(pid: number, opts?: CommandRequestOpts): Promise<void>;
|
|
122
|
+
connect(pid: number, opts?: CommandConnectOpts): Promise<CommandHandle>;
|
|
123
|
+
private known;
|
|
124
|
+
}
|
|
125
|
+
export declare class Pty {
|
|
126
|
+
private readonly box;
|
|
127
|
+
/** @internal */
|
|
128
|
+
constructor(box: Box);
|
|
129
|
+
create(opts: PtyCreateOpts): Promise<CommandHandle>;
|
|
130
|
+
connect(pid: number, opts?: PtyConnectOpts): Promise<CommandHandle>;
|
|
131
|
+
sendInput(pid: number, data: Uint8Array, _opts?: CommandRequestOpts): Promise<void>;
|
|
132
|
+
streamInput(pid: number, _opts?: CommandStreamInputOpts): CommandInputHandle;
|
|
133
|
+
resize(pid: number, size: {
|
|
134
|
+
cols: number;
|
|
135
|
+
rows: number;
|
|
136
|
+
}, _opts?: CommandRequestOpts): Promise<void>;
|
|
137
|
+
kill(pid: number, _opts?: CommandRequestOpts): Promise<boolean>;
|
|
138
|
+
private pty;
|
|
139
|
+
}
|
|
140
|
+
export {};
|
|
141
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|