@agentuity/sandbox 3.0.12 → 3.1.1

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 (122) hide show
  1. package/AGENTS.md +3 -3
  2. package/dist/api-reference.d.ts +1221 -0
  3. package/dist/api-reference.d.ts.map +1 -0
  4. package/dist/api-reference.js +1046 -0
  5. package/dist/api-reference.js.map +1 -0
  6. package/dist/base64.d.ts +2 -0
  7. package/dist/base64.d.ts.map +1 -0
  8. package/dist/base64.js +14 -0
  9. package/dist/base64.js.map +1 -0
  10. package/dist/client.d.ts +431 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +632 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/create.d.ts +203 -0
  15. package/dist/create.d.ts.map +1 -0
  16. package/dist/create.js +235 -0
  17. package/dist/create.js.map +1 -0
  18. package/dist/destroy.d.ts +23 -0
  19. package/dist/destroy.d.ts.map +1 -0
  20. package/dist/destroy.js +30 -0
  21. package/dist/destroy.js.map +1 -0
  22. package/dist/disk-checkpoint.d.ts +108 -0
  23. package/dist/disk-checkpoint.d.ts.map +1 -0
  24. package/dist/disk-checkpoint.js +124 -0
  25. package/dist/disk-checkpoint.js.map +1 -0
  26. package/dist/events.d.ts +56 -0
  27. package/dist/events.d.ts.map +1 -0
  28. package/dist/events.js +54 -0
  29. package/dist/events.js.map +1 -0
  30. package/dist/execute.d.ts +99 -0
  31. package/dist/execute.d.ts.map +1 -0
  32. package/dist/execute.js +138 -0
  33. package/dist/execute.js.map +1 -0
  34. package/dist/execution.d.ts +150 -0
  35. package/dist/execution.d.ts.map +1 -0
  36. package/dist/execution.js +120 -0
  37. package/dist/execution.js.map +1 -0
  38. package/dist/files.d.ts +283 -0
  39. package/dist/files.d.ts.map +1 -0
  40. package/dist/files.js +471 -0
  41. package/dist/files.js.map +1 -0
  42. package/dist/get.d.ts +288 -0
  43. package/dist/get.d.ts.map +1 -0
  44. package/dist/get.js +256 -0
  45. package/dist/get.js.map +1 -0
  46. package/dist/getStatus.d.ts +23 -0
  47. package/dist/getStatus.d.ts.map +1 -0
  48. package/dist/getStatus.js +53 -0
  49. package/dist/getStatus.js.map +1 -0
  50. package/dist/index.d.ts +42 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +22 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/job.d.ts +227 -0
  55. package/dist/job.d.ts.map +1 -0
  56. package/dist/job.js +109 -0
  57. package/dist/job.js.map +1 -0
  58. package/dist/list.d.ts +330 -0
  59. package/dist/list.d.ts.map +1 -0
  60. package/dist/list.js +209 -0
  61. package/dist/list.js.map +1 -0
  62. package/dist/pause.d.ts +39 -0
  63. package/dist/pause.d.ts.map +1 -0
  64. package/dist/pause.js +48 -0
  65. package/dist/pause.js.map +1 -0
  66. package/dist/resolve.d.ts +75 -0
  67. package/dist/resolve.d.ts.map +1 -0
  68. package/dist/resolve.js +76 -0
  69. package/dist/resolve.js.map +1 -0
  70. package/dist/resume.d.ts +23 -0
  71. package/dist/resume.d.ts.map +1 -0
  72. package/dist/resume.js +30 -0
  73. package/dist/resume.js.map +1 -0
  74. package/dist/run.d.ts +73 -0
  75. package/dist/run.d.ts.map +1 -0
  76. package/dist/run.js +568 -0
  77. package/dist/run.js.map +1 -0
  78. package/dist/runtime.d.ts +94 -0
  79. package/dist/runtime.d.ts.map +1 -0
  80. package/dist/runtime.js +82 -0
  81. package/dist/runtime.js.map +1 -0
  82. package/dist/snapshot-build.d.ts +48 -0
  83. package/dist/snapshot-build.d.ts.map +1 -0
  84. package/dist/snapshot-build.js +72 -0
  85. package/dist/snapshot-build.js.map +1 -0
  86. package/dist/snapshot.d.ts +596 -0
  87. package/dist/snapshot.d.ts.map +1 -0
  88. package/dist/snapshot.js +612 -0
  89. package/dist/snapshot.js.map +1 -0
  90. package/dist/types.d.ts +1010 -0
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +853 -0
  93. package/dist/types.js.map +1 -0
  94. package/dist/util.d.ts +296 -0
  95. package/dist/util.d.ts.map +1 -0
  96. package/dist/util.js +234 -0
  97. package/dist/util.js.map +1 -0
  98. package/package.json +7 -2
  99. package/src/api-reference.ts +1094 -0
  100. package/src/base64.ts +14 -0
  101. package/src/client.ts +998 -0
  102. package/src/create.ts +273 -0
  103. package/src/destroy.ts +43 -0
  104. package/src/disk-checkpoint.ts +184 -0
  105. package/src/events.ts +72 -0
  106. package/src/execute.ts +167 -0
  107. package/src/execution.ts +152 -0
  108. package/src/files.ts +637 -0
  109. package/src/get.ts +291 -0
  110. package/src/getStatus.ts +72 -0
  111. package/src/index.ts +252 -18
  112. package/src/job.ts +161 -0
  113. package/src/list.ts +239 -0
  114. package/src/pause.ts +75 -0
  115. package/src/resolve.ts +96 -0
  116. package/src/resume.ts +41 -0
  117. package/src/run.ts +783 -0
  118. package/src/runtime.ts +106 -0
  119. package/src/snapshot-build.ts +94 -0
  120. package/src/snapshot.ts +791 -0
  121. package/src/types.ts +1033 -0
  122. package/src/util.ts +280 -0
package/dist/files.js ADDED
@@ -0,0 +1,471 @@
1
+ import { z } from 'zod';
2
+ import { SandboxResponseError, throwSandboxError } from './util.js';
3
+ import { base64Encode } from './base64.js';
4
+ export const FileToWriteSchema = z.object({
5
+ path: z.string().describe('Path to the file relative to the sandbox workspace'),
6
+ content: z.string().describe('Base64-encoded file content'),
7
+ });
8
+ export const WriteFilesRequestSchema = z
9
+ .object({
10
+ files: z.array(FileToWriteSchema).describe('Array of files to write'),
11
+ })
12
+ .describe('Request body for writing files to a sandbox');
13
+ export const WriteFilesDataSchema = z
14
+ .object({
15
+ filesWritten: z.number().describe('Number of files successfully written'),
16
+ })
17
+ .describe('Response data from writing files');
18
+ export const WriteFilesResponseSchema = z.discriminatedUnion('success', [
19
+ z.object({
20
+ success: z.literal(false),
21
+ message: z.string().describe('the error message'),
22
+ }),
23
+ z.object({
24
+ success: z.literal(true),
25
+ data: WriteFilesDataSchema.optional(),
26
+ filesWritten: z.number().optional(),
27
+ }),
28
+ ]);
29
+ export const WriteFilesParamsSchema = z.object({
30
+ sandboxId: z.string().describe('Sandbox ID to write files into'),
31
+ files: z.array(z.custom()).describe('Files to write to the sandbox workspace'),
32
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
33
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
34
+ });
35
+ /**
36
+ * Writes files to a sandbox workspace.
37
+ *
38
+ * @param client - The API client to use for the request
39
+ * @param params - Parameters including sandbox ID and files to write
40
+ * @returns The result including number of files written
41
+ * @throws {SandboxResponseError} If the write request fails
42
+ */
43
+ export async function sandboxWriteFiles(client, params) {
44
+ const { sandboxId, files, orgId, signal } = params;
45
+ const body = {
46
+ files: files.map((f) => ({
47
+ path: f.path,
48
+ content: base64Encode(f.content),
49
+ })),
50
+ };
51
+ const queryParams = new URLSearchParams();
52
+ if (orgId) {
53
+ queryParams.set('orgId', orgId);
54
+ }
55
+ const queryString = queryParams.toString();
56
+ const url = `/fs/${sandboxId}${queryString ? `?${queryString}` : ''}`;
57
+ const resp = await client.post(url, body, WriteFilesResponseSchema, WriteFilesRequestSchema, signal);
58
+ if (resp.success) {
59
+ return {
60
+ filesWritten: resp.data?.filesWritten ?? resp.filesWritten ?? 0,
61
+ };
62
+ }
63
+ throwSandboxError(resp, { sandboxId });
64
+ }
65
+ export const ReadFileParamsSchema = z.object({
66
+ sandboxId: z.string().describe('Sandbox ID to read a file from'),
67
+ path: z.string().describe('Path to the file to read'),
68
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
69
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
70
+ });
71
+ /**
72
+ * Reads a file from a sandbox workspace.
73
+ *
74
+ * @param client - The API client to use for the request
75
+ * @param params - Parameters including sandbox ID and file path
76
+ * @returns A ReadableStream of the file contents
77
+ * @throws {SandboxResponseError} If the read request fails
78
+ */
79
+ export async function sandboxReadFile(client, params) {
80
+ const { sandboxId, path, orgId, signal } = params;
81
+ const queryParams = new URLSearchParams();
82
+ queryParams.set('path', path);
83
+ if (orgId) {
84
+ queryParams.set('orgId', orgId);
85
+ }
86
+ const queryString = queryParams.toString();
87
+ const url = `/fs/${sandboxId}?${queryString}`;
88
+ const response = await client.rawGet(url, signal);
89
+ const sessionId = response.headers.get('x-session-id');
90
+ if (!response.ok) {
91
+ const text = await response.text().catch(() => 'Unknown error');
92
+ throw new SandboxResponseError({
93
+ message: `Failed to read file "${path}": ${response.status} ${text}`,
94
+ sandboxId,
95
+ sessionId,
96
+ });
97
+ }
98
+ if (!response.body) {
99
+ throw new SandboxResponseError({
100
+ message: 'No response body',
101
+ sandboxId,
102
+ sessionId,
103
+ });
104
+ }
105
+ return response.body;
106
+ }
107
+ export const MkDirRequestSchema = z
108
+ .object({
109
+ path: z.string().describe('Path to the directory to create'),
110
+ recursive: z.boolean().optional().describe('Create parent directories if needed'),
111
+ })
112
+ .describe('Request body for creating a directory');
113
+ export const MkDirResponseSchema = z.discriminatedUnion('success', [
114
+ z.object({
115
+ success: z.literal(false),
116
+ message: z.string().describe('the error message'),
117
+ }),
118
+ z.object({
119
+ success: z.literal(true),
120
+ }),
121
+ ]);
122
+ export const MkDirParamsSchema = z.object({
123
+ sandboxId: z.string().describe('Sandbox ID where directory should be created'),
124
+ path: z.string().describe('Directory path to create'),
125
+ recursive: z.boolean().optional().describe('Create parent directories when true'),
126
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
127
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
128
+ });
129
+ /**
130
+ * Creates a directory in a sandbox workspace.
131
+ *
132
+ * @param client - The API client to use for the request
133
+ * @param params - Parameters including sandbox ID, path, and recursive flag
134
+ * @throws {SandboxResponseError} If the mkdir request fails
135
+ */
136
+ export async function sandboxMkDir(client, params) {
137
+ const { sandboxId, path, recursive, orgId, signal } = params;
138
+ const body = {
139
+ path,
140
+ recursive: recursive ?? false,
141
+ };
142
+ const queryParams = new URLSearchParams();
143
+ if (orgId) {
144
+ queryParams.set('orgId', orgId);
145
+ }
146
+ const queryString = queryParams.toString();
147
+ const url = `/fs/mkdir/${sandboxId}${queryString ? `?${queryString}` : ''}`;
148
+ const resp = await client.post(url, body, MkDirResponseSchema, MkDirRequestSchema, signal);
149
+ if (!resp.success) {
150
+ throwSandboxError(resp, { sandboxId });
151
+ }
152
+ }
153
+ export const RmDirRequestSchema = z
154
+ .object({
155
+ path: z.string().describe('Path to the directory to remove'),
156
+ recursive: z.boolean().optional().describe('Remove directory and all contents'),
157
+ })
158
+ .describe('Request body for removing a directory');
159
+ export const RmDirResponseSchema = z.discriminatedUnion('success', [
160
+ z.object({
161
+ success: z.literal(false),
162
+ message: z.string().describe('the error message'),
163
+ }),
164
+ z.object({
165
+ success: z.literal(true),
166
+ found: z
167
+ .boolean()
168
+ .optional()
169
+ .default(true)
170
+ .describe('Whether the directory existed before removal. False when already removed (idempotent).'),
171
+ }),
172
+ ]);
173
+ export const RmDirParamsSchema = z.object({
174
+ sandboxId: z.string().describe('Sandbox ID containing the directory to remove'),
175
+ path: z.string().describe('Directory path to remove'),
176
+ recursive: z.boolean().optional().describe('Remove directory contents recursively when true'),
177
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
178
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
179
+ });
180
+ /**
181
+ * Removes a directory from a sandbox workspace.
182
+ *
183
+ * @param client - The API client to use for the request
184
+ * @param params - Parameters including sandbox ID, path, and recursive flag
185
+ * @returns Object with `found` indicating whether the directory existed before removal
186
+ * @throws {SandboxResponseError} If the rmdir request fails
187
+ */
188
+ export async function sandboxRmDir(client, params) {
189
+ const { sandboxId, path, recursive, orgId, signal } = params;
190
+ const body = {
191
+ path,
192
+ recursive: recursive ?? false,
193
+ };
194
+ const queryParams = new URLSearchParams();
195
+ if (orgId) {
196
+ queryParams.set('orgId', orgId);
197
+ }
198
+ const queryString = queryParams.toString();
199
+ const url = `/fs/rmdir/${sandboxId}${queryString ? `?${queryString}` : ''}`;
200
+ const resp = await client.post(url, body, RmDirResponseSchema, RmDirRequestSchema, signal);
201
+ if (!resp.success) {
202
+ throwSandboxError(resp, { sandboxId });
203
+ }
204
+ return { found: resp.found };
205
+ }
206
+ export const RmFileRequestSchema = z
207
+ .object({
208
+ path: z.string().describe('Path to the file to remove'),
209
+ })
210
+ .describe('Request body for removing a file');
211
+ export const RmFileResponseSchema = z.discriminatedUnion('success', [
212
+ z.object({
213
+ success: z.literal(false),
214
+ message: z.string().describe('the error message'),
215
+ }),
216
+ z.object({
217
+ success: z.literal(true),
218
+ found: z
219
+ .boolean()
220
+ .optional()
221
+ .default(true)
222
+ .describe('Whether the file existed before removal. False when already removed (idempotent).'),
223
+ }),
224
+ ]);
225
+ export const RmFileParamsSchema = z.object({
226
+ sandboxId: z.string().describe('Sandbox ID containing the file to remove'),
227
+ path: z.string().describe('File path to remove'),
228
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
229
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
230
+ });
231
+ /**
232
+ * Removes a file from a sandbox workspace.
233
+ *
234
+ * @param client - The API client to use for the request
235
+ * @param params - Parameters including sandbox ID and path
236
+ * @returns Object with `found` indicating whether the file existed before removal
237
+ * @throws {SandboxResponseError} If the rm request fails
238
+ */
239
+ export async function sandboxRmFile(client, params) {
240
+ const { sandboxId, path, orgId, signal } = params;
241
+ const body = {
242
+ path,
243
+ };
244
+ const queryParams = new URLSearchParams();
245
+ if (orgId) {
246
+ queryParams.set('orgId', orgId);
247
+ }
248
+ const queryString = queryParams.toString();
249
+ const url = `/fs/rm/${sandboxId}${queryString ? `?${queryString}` : ''}`;
250
+ const resp = await client.post(url, body, RmFileResponseSchema, RmFileRequestSchema, signal);
251
+ if (!resp.success) {
252
+ throwSandboxError(resp, { sandboxId });
253
+ }
254
+ return { found: resp.found };
255
+ }
256
+ export const FileInfoSchema = z.object({
257
+ path: z.string().describe('File path relative to the listed directory'),
258
+ size: z.number().describe('File size in bytes'),
259
+ isDir: z.boolean().describe('Whether the entry is a directory'),
260
+ isSymlink: z.boolean().optional().describe('Whether the entry is a symbolic link'),
261
+ linkTarget: z.string().optional().describe('Target path of the symbolic link'),
262
+ mode: z.string().describe('Unix permissions as octal string (e.g., "0644")'),
263
+ modTime: z.string().describe('Modification time in RFC3339 format'),
264
+ });
265
+ export const ListFilesDataSchema = z.object({
266
+ files: z.array(FileInfoSchema).describe('Array of file information'),
267
+ });
268
+ export const ListFilesResponseSchema = z.discriminatedUnion('success', [
269
+ z.object({
270
+ success: z.literal(false),
271
+ message: z.string().describe('the error message'),
272
+ }),
273
+ z.object({
274
+ success: z.literal(true),
275
+ data: ListFilesDataSchema,
276
+ }),
277
+ ]);
278
+ export const ListFilesParamsSchema = z.object({
279
+ sandboxId: z.string().describe('Sandbox ID to list files from'),
280
+ path: z.string().optional().describe('Optional directory path to list'),
281
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
282
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
283
+ });
284
+ /**
285
+ * Lists files in a sandbox workspace directory.
286
+ *
287
+ * @param client - The API client to use for the request
288
+ * @param params - Parameters including sandbox ID and optional path
289
+ * @returns The list of files and directories
290
+ * @throws {SandboxResponseError} If the list request fails
291
+ */
292
+ export async function sandboxListFiles(client, params) {
293
+ const { sandboxId, path, orgId, signal } = params;
294
+ const queryParams = new URLSearchParams();
295
+ if (path) {
296
+ queryParams.set('path', path);
297
+ }
298
+ if (orgId) {
299
+ queryParams.set('orgId', orgId);
300
+ }
301
+ const queryString = queryParams.toString();
302
+ const url = `/fs/list/${sandboxId}${queryString ? `?${queryString}` : ''}`;
303
+ const resp = await client.get(url, ListFilesResponseSchema, signal);
304
+ if (resp.success) {
305
+ return {
306
+ files: resp.data.files,
307
+ };
308
+ }
309
+ throwSandboxError(resp, { sandboxId });
310
+ }
311
+ export const DownloadArchiveParamsSchema = z.object({
312
+ sandboxId: z.string().describe('Sandbox ID to download archive contents from'),
313
+ path: z.string().optional().describe('Optional path inside sandbox workspace to archive'),
314
+ format: z.enum(['zip', 'tar.gz']).optional().describe('Archive format to return'),
315
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
316
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
317
+ });
318
+ /**
319
+ * Downloads files from a sandbox as a compressed archive.
320
+ *
321
+ * @param client - The API client to use for the request
322
+ * @param params - Parameters including sandbox ID, path, and format
323
+ * @returns A ReadableStream of the archive contents
324
+ * @throws {SandboxResponseError} If the download request fails
325
+ */
326
+ export async function sandboxDownloadArchive(client, params) {
327
+ const { sandboxId, path, format, orgId, signal } = params;
328
+ const queryParams = new URLSearchParams();
329
+ if (path) {
330
+ queryParams.set('path', path);
331
+ }
332
+ if (format) {
333
+ queryParams.set('format', format);
334
+ }
335
+ if (orgId) {
336
+ queryParams.set('orgId', orgId);
337
+ }
338
+ const queryString = queryParams.toString();
339
+ const url = `/fs/download/${sandboxId}${queryString ? `?${queryString}` : ''}`;
340
+ const response = await client.rawGet(url, signal);
341
+ const sessionId = response.headers.get('x-session-id');
342
+ if (!response.ok) {
343
+ const text = await response.text().catch(() => 'Unknown error');
344
+ throw new SandboxResponseError({
345
+ message: `Failed to download archive: ${response.status} ${text}`,
346
+ sandboxId,
347
+ sessionId,
348
+ });
349
+ }
350
+ if (!response.body) {
351
+ throw new SandboxResponseError({
352
+ message: 'No response body',
353
+ sandboxId,
354
+ sessionId,
355
+ });
356
+ }
357
+ return response.body;
358
+ }
359
+ export const UploadArchiveParamsSchema = z.object({
360
+ sandboxId: z.string().describe('Sandbox ID to upload archive contents to'),
361
+ archive: z
362
+ .union([
363
+ z.custom((v) => v instanceof Uint8Array),
364
+ z.instanceof(ArrayBuffer),
365
+ z.custom((v) => v instanceof ReadableStream),
366
+ ])
367
+ .describe('Archive bytes or stream to upload'),
368
+ path: z.string().optional().describe('Optional destination path for archive extraction'),
369
+ format: z
370
+ .union([z.enum(['zip', 'tar.gz']), z.literal('')])
371
+ .optional()
372
+ .describe('Optional archive format hint'),
373
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
374
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
375
+ });
376
+ export const UploadArchiveResponseSchema = z.discriminatedUnion('success', [
377
+ z.object({
378
+ success: z.literal(false),
379
+ message: z.string().describe('the error message'),
380
+ }),
381
+ z.object({
382
+ success: z.literal(true),
383
+ }),
384
+ ]);
385
+ /**
386
+ * Uploads a compressed archive to a sandbox and extracts it.
387
+ *
388
+ * @param client - The API client to use for the request
389
+ * @param params - Parameters including sandbox ID, archive data, path, and optional format
390
+ * @throws {SandboxResponseError} If the upload request fails
391
+ */
392
+ export async function sandboxUploadArchive(client, params) {
393
+ const { sandboxId, archive, path, format, orgId, signal } = params;
394
+ const queryParams = new URLSearchParams();
395
+ if (path) {
396
+ queryParams.set('path', path);
397
+ }
398
+ if (format) {
399
+ queryParams.set('format', format);
400
+ }
401
+ if (orgId) {
402
+ queryParams.set('orgId', orgId);
403
+ }
404
+ const queryString = queryParams.toString();
405
+ const url = `/fs/upload/${sandboxId}${queryString ? `?${queryString}` : ''}`;
406
+ const response = await client.rawPost(url, archive, 'application/octet-stream', signal);
407
+ const sessionId = response.headers.get('x-session-id');
408
+ if (!response.ok) {
409
+ const text = await response.text().catch(() => 'Unknown error');
410
+ throw new SandboxResponseError({
411
+ message: `Failed to upload archive: ${response.status} ${text}`,
412
+ sandboxId,
413
+ sessionId,
414
+ });
415
+ }
416
+ const body = await response.json();
417
+ const result = UploadArchiveResponseSchema.parse(body);
418
+ if (!result.success) {
419
+ throwSandboxError(result, { sandboxId, sessionId });
420
+ }
421
+ }
422
+ export const SetEnvRequestSchema = z.object({
423
+ env: z
424
+ .record(z.string(), z.string().nullable())
425
+ .describe('Environment variables to set (null to delete)'),
426
+ });
427
+ export const SetEnvDataSchema = z.object({
428
+ env: z.record(z.string(), z.string()).describe('Current environment variables after update'),
429
+ });
430
+ export const SetEnvResponseSchema = z.discriminatedUnion('success', [
431
+ z.object({
432
+ success: z.literal(false),
433
+ message: z.string().describe('the error message'),
434
+ }),
435
+ z.object({
436
+ success: z.literal(true),
437
+ data: SetEnvDataSchema,
438
+ }),
439
+ ]);
440
+ export const SetEnvParamsSchema = z.object({
441
+ sandboxId: z.string().describe('Sandbox ID where environment should be updated'),
442
+ env: z.record(z.string(), z.string().nullable()).describe('Environment variable updates'),
443
+ orgId: z.string().optional().describe('Optional org id for CLI auth context'),
444
+ signal: z.custom().optional().describe('Optional abort signal for cancellation'),
445
+ });
446
+ /**
447
+ * Sets environment variables on a sandbox. Pass null to delete a variable.
448
+ *
449
+ * @param client - The API client to use for the request
450
+ * @param params - Parameters including sandbox ID and env key/value pairs
451
+ * @returns The current environment variables after the update
452
+ * @throws {SandboxResponseError} If the request fails
453
+ */
454
+ export async function sandboxSetEnv(client, params) {
455
+ const { sandboxId, env, orgId, signal } = params;
456
+ const body = { env };
457
+ const queryParams = new URLSearchParams();
458
+ if (orgId) {
459
+ queryParams.set('orgId', orgId);
460
+ }
461
+ const queryString = queryParams.toString();
462
+ const url = `/sandbox/env/${sandboxId}${queryString ? `?${queryString}` : ''}`;
463
+ const resp = await client.patch(url, body, SetEnvResponseSchema, SetEnvRequestSchema, signal);
464
+ if (resp.success) {
465
+ return {
466
+ env: resp.data.env,
467
+ };
468
+ }
469
+ throwSandboxError(resp, { sandboxId });
470
+ }
471
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}