@mastra/daytona 0.5.2 → 0.6.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.
@@ -8,7 +8,7 @@
8
8
  * @see https://www.daytona.io/docs
9
9
  */
10
10
  import type { Sandbox, VolumeMount } from '@daytonaio/sdk';
11
- import type { SandboxInfo, ProviderStatus, MastraSandboxOptions, WorkspaceFilesystem, MountResult, MountManager, CommandResult, ExecuteCommandOptions } from '@mastra/core/workspace';
11
+ import type { SandboxInfo, ProviderStatus, MastraSandboxOptions, WorkspaceFilesystem, MountResult, MountManager, CommandResult, ExecuteCommandOptions, SandboxNetworking, SandboxFileInput, SandboxCloneOptions } from '@mastra/core/workspace';
12
12
  import { MastraSandbox } from '@mastra/core/workspace';
13
13
  import type { DaytonaResources } from './types.js';
14
14
  /**
@@ -123,6 +123,18 @@ export declare class DaytonaSandbox extends MastraSandbox {
123
123
  readonly name = "DaytonaSandbox";
124
124
  readonly provider = "daytona";
125
125
  readonly mounts: MountManager;
126
+ /**
127
+ * Networking capability: public HTTPS URLs for sandbox ports.
128
+ * Daytona exposes ports through preview links (`getPreviewLink(port)`) —
129
+ * if the port is closed it is opened automatically. Private sandboxes
130
+ * require the preview token; pass `public: true` for tokenless URLs
131
+ * (required for sandbox deploys).
132
+ *
133
+ * When not attached in this process, the sandbox is looked up by identity
134
+ * (`daytona.get()` does not start it), so other processes can resolve
135
+ * deployments without waking a stopped sandbox.
136
+ */
137
+ readonly networking: SandboxNetworking;
126
138
  status: ProviderStatus;
127
139
  private _daytona;
128
140
  private _sandbox;
@@ -148,8 +160,24 @@ export declare class DaytonaSandbox extends MastraSandbox {
148
160
  private readonly networkBlockAll?;
149
161
  private readonly networkAllowList?;
150
162
  private readonly connectionOpts;
163
+ private readonly _constructorOptions;
151
164
  constructor(options?: DaytonaSandboxOptions);
152
165
  private generateId;
166
+ /**
167
+ * Construct a sibling `DaytonaSandbox` that inherits this sandbox's
168
+ * configuration (credentials, snapshot/image, resources, network policy)
169
+ * with per-instance overrides.
170
+ *
171
+ * Performs no I/O — the sandbox clone provisions (or reconnects to an
172
+ * existing Daytona sandbox with the same logical `id`) on its own `start()`.
173
+ * Use it when one configured sandbox acts as the template for a fleet of
174
+ * independent sandboxes (e.g. one per project).
175
+ *
176
+ * `options.idleTimeoutMinutes` maps to Daytona's `autoStopInterval`
177
+ * (minutes); `options.sandboxId` is ignored because Daytona reconnects by
178
+ * logical `id`.
179
+ */
180
+ clone(options?: SandboxCloneOptions): DaytonaSandbox;
153
181
  /**
154
182
  * Get the underlying Daytona Sandbox instance for direct access to Daytona APIs.
155
183
  *
@@ -201,6 +229,10 @@ export declare class DaytonaSandbox extends MastraSandbox {
201
229
  * Execute a command in the sandbox and return the result.
202
230
  */
203
231
  executeCommand(command: string, args?: string[], options?: ExecuteCommandOptions): Promise<CommandResult>;
232
+ /**
233
+ * Bulk-write files into the sandbox filesystem via the SDK's native upload.
234
+ */
235
+ writeFiles(files: SandboxFileInput[]): Promise<void>;
204
236
  /**
205
237
  * Mount a filesystem at a path in the sandbox.
206
238
  * Uses FUSE tools (s3fs, gcsfuse) to mount cloud storage.
@@ -235,6 +267,12 @@ export declare class DaytonaSandbox extends MastraSandbox {
235
267
  * be created.
236
268
  */
237
269
  private detectWorkingDir;
270
+ /**
271
+ * Look up the existing Daytona sandbox by identity WITHOUT starting it.
272
+ * Used for detached (cross-process) networking/stop/destroy so those
273
+ * operations never wake a stopped sandbox. Returns null when not found.
274
+ */
275
+ private lookupDetachedSandbox;
238
276
  private findExistingSandbox;
239
277
  /**
240
278
  * Transitional states where the Daytona API will reject start() with
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"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"}
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/daytona",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "description": "Daytona cloud sandbox provider for Mastra workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,20 +23,20 @@
23
23
  "@daytonaio/sdk": "^0.143.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@types/node": "22.19.21",
27
- "@vitest/coverage-v8": "4.1.9",
28
- "@vitest/ui": "4.1.9",
26
+ "@types/node": "22.20.1",
27
+ "@vitest/coverage-v8": "4.1.10",
28
+ "@vitest/ui": "4.1.10",
29
29
  "dotenv": "^17.4.2",
30
- "eslint": "^10.4.1",
30
+ "eslint": "^10.7.0",
31
31
  "tsup": "^8.5.1",
32
32
  "typescript": "^6.0.3",
33
- "vitest": "4.1.9",
34
- "@internal/lint": "0.0.113",
35
- "@internal/types-builder": "0.0.88",
36
- "@internal/workspace-test-utils": "0.0.57",
37
- "@mastra/core": "1.50.1",
38
- "@mastra/gcs": "0.3.0",
39
- "@mastra/s3": "0.6.0"
33
+ "vitest": "4.1.10",
34
+ "@internal/types-builder": "0.0.90",
35
+ "@mastra/gcs": "0.3.1",
36
+ "@mastra/s3": "0.6.0",
37
+ "@internal/lint": "0.0.115",
38
+ "@mastra/core": "1.52.0",
39
+ "@internal/workspace-test-utils": "0.0.59"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "@mastra/core": ">=1.12.0-0 <2.0.0-0"