@mastra/e2b 0.10.0-alpha.2 → 0.10.0-alpha.4
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/CHANGELOG.md +46 -0
- package/dist/index.cjs +95 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +95 -28
- package/dist/index.js.map +1 -1
- package/dist/sandbox/index.d.ts +54 -7
- package/dist/sandbox/index.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/sandbox/index.d.ts
CHANGED
|
@@ -26,6 +26,17 @@ import { E2BProcessManager } from './process-manager.js';
|
|
|
26
26
|
export interface E2BSandboxOptions extends Omit<MastraSandboxOptions, 'processes'> {
|
|
27
27
|
/** Unique identifier for this sandbox instance */
|
|
28
28
|
id?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Persisted E2B provider sandbox ID to reattach to deterministically.
|
|
31
|
+
*
|
|
32
|
+
* When set, `start()` first queries this exact sandbox and connects to it
|
|
33
|
+
* (resuming it if paused) instead of discovering by logical `id` metadata.
|
|
34
|
+
* Only a typed "sandbox gone" error (not found / killed / not running)
|
|
35
|
+
* falls through to the usual logical-id lookup and create ladder;
|
|
36
|
+
* auth, quota, rate-limit, timeout, and network errors propagate without
|
|
37
|
+
* creating a new sandbox.
|
|
38
|
+
*/
|
|
39
|
+
sandboxId?: string;
|
|
29
40
|
/**
|
|
30
41
|
* Sandbox template specification.
|
|
31
42
|
*
|
|
@@ -120,7 +131,7 @@ export interface E2BSandboxOptions extends Omit<MastraSandboxOptions, 'processes
|
|
|
120
131
|
*
|
|
121
132
|
* ```
|
|
122
133
|
*/
|
|
123
|
-
export declare class E2BSandbox extends MastraSandbox {
|
|
134
|
+
export declare class E2BSandbox extends MastraSandbox<Sandbox> {
|
|
124
135
|
readonly id: string;
|
|
125
136
|
readonly name = "E2BSandbox";
|
|
126
137
|
readonly provider = "e2b";
|
|
@@ -142,11 +153,11 @@ export declare class E2BSandbox extends MastraSandbox {
|
|
|
142
153
|
private _isRetrying;
|
|
143
154
|
private readonly timeout;
|
|
144
155
|
private readonly templateSpec?;
|
|
145
|
-
private readonly env;
|
|
146
156
|
private readonly metadata;
|
|
147
157
|
private readonly network?;
|
|
148
158
|
private readonly lifecycle;
|
|
149
159
|
private readonly connectionOpts;
|
|
160
|
+
private readonly _preferredSandboxId?;
|
|
150
161
|
private readonly _instructionsOverride?;
|
|
151
162
|
private readonly _constructorOptions;
|
|
152
163
|
/** Resolved template ID after building (if needed) */
|
|
@@ -165,7 +176,9 @@ export declare class E2BSandbox extends MastraSandbox {
|
|
|
165
176
|
* independent sandboxes (e.g. one per project).
|
|
166
177
|
*
|
|
167
178
|
* `options.idleTimeoutMinutes` maps to the E2B sandbox `timeout` (ms);
|
|
168
|
-
* `options.sandboxId`
|
|
179
|
+
* `options.sandboxId` reattaches the clone to that exact E2B sandbox on
|
|
180
|
+
* `start()`. The parent's own preferred provider sandbox ID is never
|
|
181
|
+
* inherited — physical identity is per-instance.
|
|
169
182
|
*/
|
|
170
183
|
clone(options?: SandboxCloneOptions): E2BSandbox;
|
|
171
184
|
/**
|
|
@@ -192,12 +205,28 @@ export declare class E2BSandbox extends MastraSandbox {
|
|
|
192
205
|
*/
|
|
193
206
|
get e2b(): Sandbox;
|
|
194
207
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
208
|
+
* The E2B provider sandbox ID resolved after connect or create.
|
|
209
|
+
*
|
|
210
|
+
* Persist this to reattach deterministically later via the `sandboxId`
|
|
211
|
+
* option (or `clone({ sandboxId })`). Undefined until the sandbox has been
|
|
212
|
+
* started (attached) in this process.
|
|
213
|
+
*/
|
|
214
|
+
get sandboxId(): string | undefined;
|
|
215
|
+
/**
|
|
216
|
+
* Acquisition primitives (base-orchestrated start): the base derives
|
|
217
|
+
* `outcome: 'created'` only when a brand-new sandbox VM was created;
|
|
218
|
+
* reconnecting (including resuming a paused sandbox) is `outcome: 'connected'`.
|
|
197
219
|
*
|
|
198
|
-
*
|
|
220
|
+
* `find` returns an already-connected E2B handle: `Sandbox.connect`
|
|
221
|
+
* resumes paused sandboxes, and its failures are deliberately swallowed
|
|
222
|
+
* (unusable handle → create fresh) — that forgiveness is this provider's
|
|
223
|
+
* policy, so it lives here rather than in `connect`. The exception is the
|
|
224
|
+
* `sandboxId` reattach inside {@link acquireExistingSandbox}, which is
|
|
225
|
+
* fail-closed: only a "sandbox gone" error falls through to discovery.
|
|
199
226
|
*/
|
|
200
|
-
|
|
227
|
+
protected find(): Promise<Sandbox | undefined>;
|
|
228
|
+
protected connect(existingSandbox: Sandbox): Promise<void>;
|
|
229
|
+
protected create(): Promise<void>;
|
|
201
230
|
/**
|
|
202
231
|
* Stop the E2B sandbox by pausing it (snapshot-stop).
|
|
203
232
|
*
|
|
@@ -255,6 +284,24 @@ export declare class E2BSandbox extends MastraSandbox {
|
|
|
255
284
|
* WITHOUT connecting or resuming it. Returns its list info or null.
|
|
256
285
|
*/
|
|
257
286
|
private lookupExistingSandboxInfo;
|
|
287
|
+
/**
|
|
288
|
+
* Acquire an existing sandbox: try the preferred provider sandbox ID first
|
|
289
|
+
* (deterministic reattach), then fall back to logical-id metadata discovery.
|
|
290
|
+
*/
|
|
291
|
+
private acquireExistingSandbox;
|
|
292
|
+
/**
|
|
293
|
+
* Deterministically reattach to a sandbox by its E2B provider ID.
|
|
294
|
+
*
|
|
295
|
+
* Fail-closed: only a typed "sandbox gone" error (not found / killed /
|
|
296
|
+
* not running) returns null so the caller can fall through to logical-id
|
|
297
|
+
* discovery or creation. Any other error (auth, quota, rate limit,
|
|
298
|
+
* timeout, network) propagates so a duplicate sandbox is never created.
|
|
299
|
+
*
|
|
300
|
+
* Ownership is validated before connecting: a sandbox tagged with a
|
|
301
|
+
* different `mastra-sandbox-id` is refused (without resuming it).
|
|
302
|
+
* Sandboxes without the tag (created outside Mastra) are attachable.
|
|
303
|
+
*/
|
|
304
|
+
private connectToPreferredSandbox;
|
|
258
305
|
/**
|
|
259
306
|
* Find an existing sandbox with matching mastra-sandbox-id metadata.
|
|
260
307
|
* Returns the connected sandbox if found, null otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EAEX,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/e2b",
|
|
3
|
-
"version": "0.10.0-alpha.
|
|
3
|
+
"version": "0.10.0-alpha.4",
|
|
4
4
|
"description": "E2B cloud sandbox provider for Mastra workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"typescript": "^6.0.3",
|
|
34
34
|
"vitest": "4.1.10",
|
|
35
35
|
"@internal/lint": "0.0.125",
|
|
36
|
+
"@internal/types-builder": "0.0.100",
|
|
36
37
|
"@internal/workspace-test-utils": "0.0.69",
|
|
37
38
|
"@mastra/gcs": "0.3.2",
|
|
38
|
-
"@internal/types-builder": "0.0.100",
|
|
39
39
|
"@mastra/s3": "0.6.1",
|
|
40
|
-
"@mastra/core": "1.62.0-alpha.
|
|
40
|
+
"@mastra/core": "1.62.0-alpha.11"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"@mastra/core": ">=1.55.0-0 <2.0.0-0"
|