inngest 4.19.0 → 4.20.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/components/realtime/types.d.cts +3 -3
  3. package/components/realtime/types.d.cts.map +1 -1
  4. package/components/realtime/types.d.ts +3 -3
  5. package/components/realtime/types.d.ts.map +1 -1
  6. package/components/sandbox/client.cjs +243 -29
  7. package/components/sandbox/client.cjs.map +1 -1
  8. package/components/sandbox/client.js +239 -31
  9. package/components/sandbox/client.js.map +1 -1
  10. package/components/sandbox/durable.cjs +158 -1
  11. package/components/sandbox/durable.cjs.map +1 -1
  12. package/components/sandbox/durable.js +160 -3
  13. package/components/sandbox/durable.js.map +1 -1
  14. package/components/sandbox/middleware.cjs +1 -0
  15. package/components/sandbox/middleware.cjs.map +1 -1
  16. package/components/sandbox/middleware.d.cts.map +1 -1
  17. package/components/sandbox/middleware.d.ts.map +1 -1
  18. package/components/sandbox/middleware.js +1 -0
  19. package/components/sandbox/middleware.js.map +1 -1
  20. package/components/sandbox/protocol.cjs +100 -4
  21. package/components/sandbox/protocol.cjs.map +1 -1
  22. package/components/sandbox/protocol.js +101 -5
  23. package/components/sandbox/protocol.js.map +1 -1
  24. package/components/sandbox/types.cjs +2 -0
  25. package/components/sandbox/types.cjs.map +1 -1
  26. package/components/sandbox/types.d.cts +100 -15
  27. package/components/sandbox/types.d.cts.map +1 -1
  28. package/components/sandbox/types.d.ts +100 -15
  29. package/components/sandbox/types.d.ts.map +1 -1
  30. package/components/sandbox/types.js +2 -0
  31. package/components/sandbox/types.js.map +1 -1
  32. package/components/sandbox/validation.cjs +75 -3
  33. package/components/sandbox/validation.cjs.map +1 -1
  34. package/components/sandbox/validation.js +71 -4
  35. package/components/sandbox/validation.js.map +1 -1
  36. package/experimental.d.cts +2 -2
  37. package/experimental.d.ts +2 -2
  38. package/package.json +1 -1
  39. package/react.d.cts +1 -1
  40. package/react.d.ts +1 -1
  41. package/types.d.cts +8 -8
  42. package/types.d.ts +8 -8
  43. package/version.cjs +1 -1
  44. package/version.cjs.map +1 -1
  45. package/version.d.cts +1 -1
  46. package/version.d.ts +1 -1
  47. package/version.js +1 -1
  48. package/version.js.map +1 -1
@@ -3,7 +3,7 @@ import { StepOptionsOrId } from "../../types.js";
3
3
 
4
4
  //#region src/components/sandbox/types.d.ts
5
5
  type SandboxDuration = number | string | DurationLike;
6
- type SandboxStatus = "PENDING" | "STARTING" | "RUNNING" | "PAUSED" | "TERMINATING" | "TERMINATED" | "FAILED";
6
+ type SandboxStatus = "PENDING" | "STARTING" | "PAUSING" | "RUNNING" | "PAUSED" | "RESUMING" | "TERMINATING" | "TERMINATED" | "FAILED";
7
7
  interface SandboxResources {
8
8
  readonly vcpu: number;
9
9
  readonly memoryMb: number;
@@ -24,22 +24,13 @@ interface SandboxRef extends SandboxResource {
24
24
  kind: "inngest/sandbox";
25
25
  version: 1;
26
26
  }
27
- interface SandboxCreateOptions {
27
+ interface SandboxCreateBaseOptions {
28
28
  /**
29
29
  * Stable identity for an active sandbox. Creating the same name again with
30
30
  * the same configuration returns the existing sandbox. Names are
31
31
  * case-sensitive and may contain up to 255 characters.
32
32
  */
33
33
  name: string;
34
- vcpu: number;
35
- memoryMb: number;
36
- /**
37
- * Environment inherited by commands and managed processes. Values are
38
- * persisted as literal sandbox configuration; this is not a secrets
39
- * mechanism, so do not use this field for secrets. Guest defaults are
40
- * retained, and operation-specific values override matching keys.
41
- */
42
- environment?: Record<string, string>;
43
34
  /**
44
35
  * How long to wait for the sandbox to reach RUNNING after Create succeeds.
45
36
  *
@@ -64,6 +55,25 @@ interface SandboxCreateOptions {
64
55
  */
65
56
  runningTimeout?: SandboxDuration | false;
66
57
  }
58
+ interface SandboxCreateFreshOptions extends SandboxCreateBaseOptions {
59
+ vcpu: number;
60
+ memoryMb: number;
61
+ /**
62
+ * Environment inherited by commands and managed processes. Values are
63
+ * persisted as literal sandbox configuration; this is not a secrets
64
+ * mechanism, so do not use this field for secrets. Guest defaults are
65
+ * retained, and operation-specific values override matching keys.
66
+ */
67
+ environment?: Record<string, string>;
68
+ snapshotId?: never;
69
+ }
70
+ interface SandboxCreateFromSnapshotOptions extends SandboxCreateBaseOptions {
71
+ snapshotId: string;
72
+ vcpu?: never;
73
+ memoryMb?: never;
74
+ environment?: never;
75
+ }
76
+ type SandboxCreateOptions = SandboxCreateFreshOptions | SandboxCreateFromSnapshotOptions;
67
77
  interface SandboxWaitUntilRunningOptions {
68
78
  timeout: SandboxDuration;
69
79
  }
@@ -198,8 +208,41 @@ interface SandboxFileUploadResult {
198
208
  interface SandboxFileDownloadOptions {
199
209
  path: string;
200
210
  }
201
- type SandboxAction = "create" | "list" | "get" | "waitUntilRunning" | "exec" | "destroy" | "process.start" | "process.list" | "process.get" | "process.signal" | "process.wait" | "process.output" | "process.stream" | "logs.stream" | "file.upload" | "file.download";
202
- type SandboxErrorCode = "access_denied" | "compute_unavailable" | "internal_error" | "invalid_field_format" | "invalid_request" | "missing_field" | "operation_ambiguous" | "rate_limited" | "sandbox_exec_output_too_large" | "sandbox_exec_timed_out" | "sandbox_name_taken" | "sandbox_not_found" | "sandbox_start_failed" | "sandbox_start_timed_out" | "sandbox_process_not_found" | "sandbox_process_output_not_retained" | "sandbox_process_wait_timed_out" | (string & {});
211
+ type SandboxSnapshotStatus = "CREATING" | "READY" | "DELETING" | "DELETED" | "FAILED" | "LOST";
212
+ interface SandboxSnapshotResource {
213
+ id: string;
214
+ sourceImageId: string;
215
+ status: SandboxSnapshotStatus;
216
+ compatibilityId?: string;
217
+ resources: SandboxResources;
218
+ memoryPackCount: number;
219
+ diskPackCount: number;
220
+ storedBytes: number;
221
+ createdAt: string;
222
+ updatedAt: string;
223
+ expiresAt: string;
224
+ error?: string;
225
+ }
226
+ interface SandboxSnapshotRef extends SandboxSnapshotResource {
227
+ kind: "inngest/sandbox.snapshot";
228
+ version: 1;
229
+ }
230
+ interface SandboxSnapshotWaitOptions {
231
+ timeout: SandboxDuration;
232
+ }
233
+ interface SandboxLifecycleOptions {
234
+ timeout?: SandboxDuration;
235
+ signal?: AbortSignal;
236
+ }
237
+ type SandboxSnapshotCreateOptions = Record<string, never>;
238
+ interface SandboxSnapshotCloneOptions {
239
+ name: string;
240
+ runningTimeout?: SandboxDuration;
241
+ }
242
+ type SandboxSnapshotListOptions = SandboxListOptions;
243
+ type SandboxSnapshotListResult<TSnapshot = SandboxSnapshotRef> = SandboxListResult<TSnapshot>;
244
+ type SandboxAction = "create" | "list" | "get" | "waitUntilRunning" | "exec" | "destroy" | "pause" | "resume" | "process.start" | "process.list" | "process.get" | "process.signal" | "process.wait" | "process.output" | "process.stream" | "logs.stream" | "file.upload" | "file.download" | "snapshot.create" | "snapshot.list" | "snapshot.get" | "snapshot.waitUntilReady" | "snapshot.delete";
245
+ type SandboxErrorCode = "access_denied" | "compute_unavailable" | "internal_error" | "invalid_field_format" | "invalid_request" | "missing_field" | "operation_ambiguous" | "rate_limited" | "sandbox_exec_output_too_large" | "sandbox_exec_timed_out" | "sandbox_name_taken" | "sandbox_not_found" | "sandbox_start_failed" | "sandbox_start_timed_out" | "sandbox_process_not_found" | "sandbox_process_output_not_retained" | "sandbox_process_wait_timed_out" | "sandbox_snapshot_limit_exceeded" | "sandbox_snapshot_not_found" | "sandbox_snapshot_not_ready" | "sandbox_snapshot_wait_timed_out" | (string & {});
203
246
  type SandboxErrorDetail = Record<string, unknown>;
204
247
  interface SandboxErrorOptions {
205
248
  action: SandboxAction;
@@ -208,6 +251,7 @@ interface SandboxErrorOptions {
208
251
  status?: number;
209
252
  sandboxId?: string;
210
253
  processId?: string;
254
+ snapshotId?: string;
211
255
  ambiguous?: boolean;
212
256
  retryable?: boolean;
213
257
  requestId?: string;
@@ -227,6 +271,7 @@ declare class SandboxError extends Error {
227
271
  readonly status?: number;
228
272
  readonly sandboxId?: string;
229
273
  readonly processId?: string;
274
+ readonly snapshotId?: string;
230
275
  readonly ambiguous: boolean;
231
276
  readonly retryable: boolean;
232
277
  readonly requestId?: string;
@@ -263,6 +308,9 @@ interface Sandbox {
263
308
  get(processId: string): Promise<SandboxProcess | null>;
264
309
  };
265
310
  waitUntilRunning(options: SandboxWaitUntilRunningOptions): Promise<Sandbox>;
311
+ pause(options?: SandboxLifecycleOptions): Promise<Sandbox>;
312
+ resume(options?: SandboxLifecycleOptions): Promise<Sandbox>;
313
+ snapshot(options?: SandboxSnapshotCreateOptions, waitOptions?: SandboxLifecycleOptions): Promise<SandboxSnapshot>;
266
314
  destroy(): Promise<SandboxDestroyResult>;
267
315
  }
268
316
  interface SandboxProcess {
@@ -282,10 +330,18 @@ interface SandboxProcess {
282
330
  getOutput(options?: SandboxProcessOutputOptions): Promise<SandboxProcessOutput>;
283
331
  streamOutput(options?: SandboxProcessOutputOptions): Promise<ReadableStream<SandboxOutputChunk>>;
284
332
  }
333
+ interface SandboxSnapshot extends Readonly<SandboxSnapshotRef> {
334
+ clone(options: SandboxSnapshotCloneOptions, waitOptions?: SandboxLifecycleOptions): Promise<Sandbox>;
335
+ delete(): Promise<void>;
336
+ }
285
337
  interface SandboxClient {
286
- create(options: SandboxCreateOptions): Promise<Sandbox>;
338
+ create(options: SandboxCreateFreshOptions): Promise<Sandbox>;
287
339
  list(options?: SandboxListOptions): Promise<SandboxListResult<Sandbox>>;
288
340
  get(sandboxId: string): Promise<Sandbox | null>;
341
+ readonly snapshots: {
342
+ list(options?: SandboxSnapshotListOptions): Promise<SandboxSnapshotListResult<SandboxSnapshot>>;
343
+ get(snapshotId: string): Promise<SandboxSnapshot | null>;
344
+ };
289
345
  }
290
346
  interface DurableSandbox {
291
347
  readonly kind: "inngest/sandbox";
@@ -308,9 +364,34 @@ interface DurableSandbox {
308
364
  list(idOrOptions: StepOptionsOrId, options?: SandboxProcessListOptions): Promise<SandboxProcessListResult<DurableSandboxProcess>>;
309
365
  get(idOrOptions: StepOptionsOrId, processId: string): Promise<DurableSandboxProcess | null>;
310
366
  };
367
+ readonly snapshots: {
368
+ create(idOrOptions: StepOptionsOrId, options?: SandboxSnapshotCreateOptions, waitOptions?: SandboxLifecycleOptions): Promise<DurableSandboxSnapshot>;
369
+ };
370
+ snapshot(idOrOptions: StepOptionsOrId, options?: SandboxSnapshotCreateOptions, waitOptions?: SandboxLifecycleOptions): Promise<DurableSandboxSnapshot>;
371
+ pause(idOrOptions: StepOptionsOrId, options?: SandboxLifecycleOptions): Promise<DurableSandbox>;
372
+ resume(idOrOptions: StepOptionsOrId, options?: SandboxLifecycleOptions): Promise<DurableSandbox>;
311
373
  waitUntilRunning(idOrOptions: StepOptionsOrId, options: SandboxWaitUntilRunningOptions): Promise<DurableSandbox>;
312
374
  destroy(idOrOptions: StepOptionsOrId): Promise<SandboxDestroyResult>;
313
375
  }
376
+ interface DurableSandboxSnapshot {
377
+ readonly kind: "inngest/sandbox.snapshot";
378
+ readonly version: 1;
379
+ readonly id: string;
380
+ readonly sourceImageId: string;
381
+ readonly status: SandboxSnapshotStatus;
382
+ readonly compatibilityId?: string;
383
+ readonly resources: SandboxResources;
384
+ readonly memoryPackCount: number;
385
+ readonly diskPackCount: number;
386
+ readonly storedBytes: number;
387
+ readonly createdAt: string;
388
+ readonly updatedAt: string;
389
+ readonly expiresAt: string;
390
+ readonly error?: string;
391
+ waitUntilReady(idOrOptions: StepOptionsOrId, options: SandboxSnapshotWaitOptions): Promise<DurableSandboxSnapshot>;
392
+ delete(idOrOptions: StepOptionsOrId): Promise<void>;
393
+ clone(idOrOptions: StepOptionsOrId, options: SandboxSnapshotCloneOptions, waitOptions?: SandboxLifecycleOptions): Promise<DurableSandbox>;
394
+ }
314
395
  interface DurableSandboxProcess {
315
396
  readonly kind: "inngest/sandbox.process";
316
397
  readonly version: 1;
@@ -331,7 +412,11 @@ interface DurableSandboxTools {
331
412
  create(idOrOptions: StepOptionsOrId, options: SandboxCreateOptions): Promise<DurableSandbox>;
332
413
  list(idOrOptions: StepOptionsOrId, options?: SandboxListOptions): Promise<SandboxListResult<DurableSandbox>>;
333
414
  get(idOrOptions: StepOptionsOrId, sandboxId: string): Promise<DurableSandbox | null>;
415
+ readonly snapshots: {
416
+ list(idOrOptions: StepOptionsOrId, options?: SandboxSnapshotListOptions): Promise<SandboxSnapshotListResult<DurableSandboxSnapshot>>;
417
+ get(idOrOptions: StepOptionsOrId, snapshotId: string): Promise<DurableSandboxSnapshot | null>;
418
+ };
334
419
  }
335
420
  //#endregion
336
- export { DurableSandbox, DurableSandboxProcess, DurableSandboxTools, Sandbox, SandboxAction, SandboxClient, SandboxCommand, SandboxCommandOptions, SandboxCommandOutputMetadata, SandboxCommandResult, SandboxCreateOptions, SandboxDestroyResult, SandboxDuration, SandboxError, SandboxErrorCode, SandboxErrorDetail, SandboxFileDownloadOptions, SandboxFileUploadOptions, SandboxFileUploadResult, SandboxListOptions, SandboxListResult, SandboxLogStreamOptions, SandboxOutputChunk, SandboxPageInfo, SandboxProcess, SandboxProcessListOptions, SandboxProcessListResult, SandboxProcessOutput, SandboxProcessOutputOptions, SandboxProcessRef, SandboxProcessResource, SandboxProcessSignalOptions, SandboxProcessStartOptions, SandboxProcessState, SandboxProcessWaitOptions, SandboxRef, SandboxResource, SandboxResources, SandboxStatus, SandboxValidationError, SandboxWaitUntilRunningOptions };
421
+ export { DurableSandbox, DurableSandboxProcess, DurableSandboxSnapshot, DurableSandboxTools, Sandbox, SandboxAction, SandboxClient, SandboxCommand, SandboxCommandOptions, SandboxCommandOutputMetadata, SandboxCommandResult, SandboxCreateFreshOptions, SandboxCreateFromSnapshotOptions, SandboxCreateOptions, SandboxDestroyResult, SandboxDuration, SandboxError, SandboxErrorCode, SandboxErrorDetail, SandboxFileDownloadOptions, SandboxFileUploadOptions, SandboxFileUploadResult, SandboxLifecycleOptions, SandboxListOptions, SandboxListResult, SandboxLogStreamOptions, SandboxOutputChunk, SandboxPageInfo, SandboxProcess, SandboxProcessListOptions, SandboxProcessListResult, SandboxProcessOutput, SandboxProcessOutputOptions, SandboxProcessRef, SandboxProcessResource, SandboxProcessSignalOptions, SandboxProcessStartOptions, SandboxProcessState, SandboxProcessWaitOptions, SandboxRef, SandboxResource, SandboxResources, SandboxSnapshot, SandboxSnapshotCloneOptions, SandboxSnapshotCreateOptions, SandboxSnapshotListOptions, SandboxSnapshotListResult, SandboxSnapshotRef, SandboxSnapshotResource, SandboxSnapshotStatus, SandboxSnapshotWaitOptions, SandboxStatus, SandboxValidationError, SandboxWaitUntilRunningOptions };
337
422
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/components/sandbox/types.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/components/sandbox/types.ts"],"sourcesContent":[],"mappings":";;;;KAKY,eAAA,qBAAoC;AAApC,KAEA,aAAA,GAFe,SAAqB,GAAA,UAAY,GAAA,SAAA,GAAA,SAAA,GAAA,QAAA,GAAA,UAAA,GAAA,aAAA,GAAA,YAAA,GAAA,QAAA;AAEhD,UAWK,gBAAA,CAXQ;EAWR,SAAA,IAAA,EAAA,MAAgB;EAKhB,SAAA,QAAA,EAAe,MAAA;;AAGtB,UAHO,eAAA,CAGP;MAGG,MAAA;EAAgB,IAAA,EAAA,MAAA;EAOZ,MAAA,EAVP,aAUkB;EAKlB,KAAA,EAAA,MAAA;EAiCO,QAAA,EAAA,MAAA;EAA0B,SAAA,EA7C9B,gBA6C8B;WAU3B,EAAA,MAAA;WAVmC,CAAA,EAAA,MAAA;EAAwB,OAAA,CAAA,EAAA,MAAA;EAe1D,KAAA,CAAA,EAAA,MAAA;AAQjB;AAAgC,UA7Df,UAAA,SAAmB,eA6DJ,CAAA;MAC5B,EAAA,iBAAA;SACA,EAAA,CAAA;;AAEJ,UA5DU,wBAAA,CA4DO;EAIA;AAKjB;AAMA;;;MACS,EAAA,MAAA;;;AAaT;AAEA;;;;;AAUA;AAiBA;AAeA;AAUA;AAQA;AAWA;AAMA;;;;;AAWA;AASA;AAIA;EAIY,cAAA,CAAA,EAtKO,eAsKkB,GAAA,KAAG;AACxC;AAAoC,UApKnB,yBAAA,SAAkC,wBAoKf,CAAA;MAAY,EAAA,MAAA;UAC5B,EAAA,MAAA;;;AAEpB;AAMA;AAIA;AAIA;EAMiB,WAAA,CAAA,EAjLD,MAiLC,CAAA,MAAuB,EAAA,MAAA,CAAA;EAKvB,UAAA,CAAA,EAAA,KAAA;AAIjB;AAQiB,UA7LA,gCAAA,SACP,wBA4L8B,CAAA;EAAA,UAAA,EAAA,MAAA;MAG9B,CAAA,EAAA,KAAA;UAEG,CAAA,EAAA,KAAA;EAAgB,WAAA,CAAA,EAAA,KAAA;AAU7B;AAKiB,KAzML,oBAAA,GACR,yBAyMO,GAxMP,gCAwMsB;AAGT,UAzMA,8BAAA,CAyMuB;EAAA,OAAA,EAxM7B,eAwM6B;;AAE7B,UAvMM,kBAAA,CAuMN;EAAW,MAAA,CAAA,EAAA,MAAA;EAGV,KAAA,CAAA,EAAA,MAAA;AACZ;AAKY,UA3MK,eAAA,CA2MqB;EAC1B,MAAA,CAAA,EAAA,MAAA;EAAyB,OAAA,EAAA,OAAA;OAAa,EAAA,MAAA;;AAChD,UAvMe,iBAuMf,CAAA,WAvM4C,UAuM5C,CAAA,CAAA;EAAiB,KAAA,EAtMV,QAsMU,EAAA;EAEP,IAAA,EAvMJ,eAuMiB;EAyBb,SAAA,EAAA,MAAA;AAwBZ;AAEA;;;;;;AAeA;AAUA;AAA0B,KAvQd,cAAA,GAuQc,MAAA,GAAA,SAAA,MAAA,EAAA;AAEA,UAvQT,qBAAA,CAuQS;;;;;EAFa,WAAA,CAAA,EAhQvB,MAgQuB,CAAA,MAAA,EAAA,MAAA,CAAA;EAgCtB,GAAA,CAAA,EAAA,MAAO;EAAA,OAAA,CAAA,EA9RZ,eA8RY;;AAQF,KAnSV,4BAAA,GAmSU;WAOP,EAAA,KAAA;;WAEA,EAAA,IAAA;UAAR,EAAA,MAAA;eAIS,EAAA;IACc,MAAA,EAAA,MAAA;IAAf,MAAA,EAAA,MAAA;;eAGK,EAAA;IAAmC,MAAA,EAAA,MAAA;IAAR,MAAA,EAAA,MAAA;;;AACI,UApSlC,oBAAA,CAoSkC;;;;;QAMX,EAAA,MAAA;;;;;QAGZ,EAAA,MAAA;UAAyC,EAAA,MAAA;QAAR,EAjSnD,4BAiSmD;;AACT,KA/RxC,oBAAA,GA+RwC;QAAR,EAAA,aAAA;SACzB,EA7RJ,UA6RI;;QAA0B,EAAA,YAAA;SAE/B,EAAA,IAAA;;AAED,KA1RD,mBAAA,GA0RC,UAAA,GAAA,SAAA,GAAA,QAAA,GAAA,QAAA,GAAA,QAAA,GAAA,MAAA;AAAR,UAlRY,sBAAA,CAkRZ;MACgB,MAAA;SAAR,EAAA,SAAA,MAAA,EAAA;EAAO,GAAA,CAAA,EAAA,MAAA;EAGH,KAAA,EAlRR,mBAkRsB;EAAA,QAAA,CAAA,EAAA,MAAA;mBAOb,CAAA,EAAA,MAAA;WAKA,CAAA,EAAA,MAAA;SAA8B,CAAA,EAAA,MAAA;;AACK,UAxRpC,iBAAA,SAA0B,sBAwRU,CAAA;MAAR,EAAA,yBAAA;SAE/B,EAAA,CAAA;WACD,EAAA,MAAA;;AAEC,UAvRG,0BAAA,CAuRH;SACc,EAvRjB,cAuRiB;;;;AAG5B;EAAiC,WAAA,CAAA,EApRjB,MAoRiB,CAAA,MAAA,EAAA,MAAA,CAAA;KAAiB,CAAA,EAAA,MAAA;;AAGhC,UAnRD,2BAAA,CAmRC;QACL,EAAA,MAAA;;;;;EAII,eAAA,CAAa,EAAA,OAAA;;AACZ,UAhRD,yBAAA,CAgRC;SAAoC,CAAA,EA/Q1C,eA+Q0C;;AACrC,UA7QA,2BAAA,CA6QA;WAA+C,CAAA,EAAA,MAAA;;AAA1B,KAzQ1B,yBAAA,GAA4B,kBAyQF;AACJ,KAzQtB,wBAyQsB,CAAA,WAzQc,iBAyQd,CAAA,GAxQhC,iBAwQgC,CAxQd,QAwQc,CAAA;AAAR,UAtQT,kBAAA,CAsQS;QAGV,EAAA,QAAA,GAAA,QAAA;MACyB,EAxQjC,UAwQiC;KAA1B,EAAA,MAAA;;AACsB,UArQpB,oBAAA,CAqQoB;QAAR,EApQnB,kBAoQmB,EAAA;;AAIZ,UArQA,uBAAA,CAqQc;EAAA,MAAA,CAAA,EAAA,OAAA;;AAQT,UAzQL,wBAAA,CAyQK;MAOH,EAAA,MAAA;MACJ,EA/QP,QA+QO;MACC,CAAA,EAAA,MAAA;;AACT,UA7QU,uBAAA,CA6QV;MAIY,EAAA,MAAA;cACJ,EAAA,MAAA;;AACR,UA9QU,0BAAA,CA8QV;MAEY,EAAA,MAAA;;AAEqB,KA9Q5B,qBAAA,GA8Q4B,UAAA,GAAA,OAAA,GAAA,UAAA,GAAA,SAAA,GAAA,QAAA,GAAA,MAAA;AAAzB,UAtQE,uBAAA,CAsQF;MAAR,MAAA;eAEY,EAAA,MAAA;QAEJ,EAvQL,qBAuQK;iBAAR,CAAA,EAAA,MAAA;WAIY,EAzQN,gBAyQM;iBACH,EAAA,MAAA;eACI,EAAA,MAAA;aACL,EAAA,MAAA;WAAR,EAAA,MAAA;WAGU,EAAA,MAAA;WACH,EAAA,MAAA;OACI,CAAA,EAAA,MAAA;;AACb,UAxQY,kBAAA,SAA2B,uBAwQvC,CAAA;MAEY,EAAA,0BAAA;SACH,EAAA,CAAA;;AACT,UAvQY,0BAAA,CAuQZ;SAEY,EAxQN,eAwQM;;AAEJ,UAvQI,uBAAA,CAuQJ;SAAR,CAAA,EAtQO,eAsQP;QAEY,CAAA,EAvQN,WAuQM;;AAEJ,KAtQD,4BAAA,GAA+B,MAsQ9B,CAAA,MAAA,EAAA,KAAA,CAAA;AAAR,UArQY,2BAAA,CAqQZ;MACkB,EAAA,MAAA;gBAA0B,CAAA,EApQ9B,eAoQ8B;;AAAD,KAjQpC,0BAAA,GAA6B,kBAiQO;AAG/B,KAnQL,yBAmQ2B,CAAA,YAnQW,kBAmQX,CAAA,GAlQrC,iBAkQqC,CAlQnB,SAkQmB,CAAA;AAAA,KAhQ3B,aAAA,GAgQ2B,QAAA,GAAA,MAAA,GAAA,KAAA,GAAA,kBAAA,GAAA,MAAA,GAAA,SAAA,GAAA,OAAA,GAAA,QAAA,GAAA,eAAA,GAAA,cAAA,GAAA,aAAA,GAAA,gBAAA,GAAA,cAAA,GAAA,gBAAA,GAAA,gBAAA,GAAA,aAAA,GAAA,aAAA,GAAA,eAAA,GAAA,iBAAA,GAAA,eAAA,GAAA,cAAA,GAAA,yBAAA,GAAA,iBAAA;AAKpB,KA5OP,gBAAA,GA4OO,eAAA,GAAA,qBAAA,GAAA,gBAAA,GAAA,sBAAA,GAAA,iBAAA,GAAA,eAAA,GAAA,qBAAA,GAAA,cAAA,GAAA,+BAAA,GAAA,wBAAA,GAAA,oBAAA,GAAA,mBAAA,GAAA,sBAAA,GAAA,yBAAA,GAAA,2BAAA,GAAA,qCAAA,GAAA,gCAAA,GAAA,iCAAA,GAAA,4BAAA,GAAA,4BAAA,GAAA,iCAAA,GAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA;AAEG,KAtNV,kBAAA,GAAqB,MAsNX,CAAA,MAAA,EAAA,OAAA,CAAA;AASL,UA7NA,mBAAA,CA6NA;QACJ,EA7NH,aA6NG;MACA,EA7NL,gBA6NK;SAAR,EAAA,MAAA;QACiB,CAAA,EAAA,MAAA;WAAkB,CAAA,EAAA,MAAA;WAEvB,CAAA,EAAA,MAAA;YACJ,CAAA,EAAA,MAAA;WACK,CAAA,EAAA,OAAA;WACL,CAAA,EAAA,OAAA;WAAR,CAAA,EAAA,MAAA;EAAO,OAAA,CAAA,EAAA,SA1NS,kBA0NT,EAAA;EAGK,KAAA,CAAA,EAAA,OAAA;;AAOC,cAhOL,sBAAA,SAA+B,KAAA,CAgO1B;WAMD,KAAA,CAAA,EAAA,OAAA;aACJ,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA;IACR,KAAA,CAAA,EAAA,OAAA;;;AAIQ,cAlOA,YAAA,SAAqB,KAAA,CAkOrB;WAAR,eAAA,EAAA,CAAA;WAEY,MAAA,EAlOS,aAkOT;WACH,IAAA,EAlOU,gBAkOV;WACD,MAAA,CAAA,EAAA,MAAA;WAAR,SAAA,CAAA,EAAA,MAAA;EAAO,SAAA,SAAA,CAAA,EAAA,MAAA;EAGK,SAAA,UAAA,CAAA,EAAmB,MAAA;EAAA,SAAA,SAAA,EAAA,OAAA;WAEnB,SAAA,EAAA,OAAA;WACJ,SAAA,CAAA,EAAA,MAAA;WACA,OAAA,EAAA,SAlOuB,kBAkOvB,EAAA;WAAR,KAAA,CAAA,EAAA,OAAA;aAEY,CAAA,OAAA,EAjOM,mBAiON;;AAEc,UAjNd,OAAA,CAiNc;WAAlB,IAAA,EAAA,iBAAA;WAAR,OAAA,EAAA,CAAA;WAEY,EAAA,EAAA,MAAA;WAEJ,IAAA,EAAA,MAAA;WAAR,MAAA,EAhNc,aAgNd;WAGc,KAAA,EAAA,MAAA;WACH,QAAA,EAAA,MAAA;WACyB,SAAA,EAlNnB,gBAkNmB;WAA1B,SAAA,EAAA,MAAA;WAAR,SAAA,CAAA,EAAA,MAAA;WAEY,OAAA,CAAA,EAAA,MAAA;WAEJ,KAAA,CAAA,EAAA,MAAA;WAAR,QAAA,EAAA;IAAO,GAAA,CAAA,OAAA,EA/MC,cA+MD,EAAA,OAAA,CAAA,EA9ME,qBA8MF,CAAA,EA7MP,OA6MO,CA7MC,oBA6MD,CAAA;;;qBAzME,0BACT,QAAQ,eAAe;;;oBAGV,2BAA2B,QAAQ;sBACjC,6BAA6B,QAAQ;;;mBAGxC,6BAA6B,QAAQ;mBAExC,4BACT,QAAQ,yBAAyB;4BACZ,QAAQ;;4BAER,iCAAiC,QAAQ;kBACnD,0BAA0B,QAAQ;mBACjC,0BAA0B,QAAQ;qBAEvC,4CACI,0BACb,QAAQ;aACA,QAAQ;;UAGJ,cAAA;;;;;;;kBAOC;;;;;kBAKA,8BAA8B;iBAC/B,4BAA4B,QAAQ;sBAEvC,8BACT,QAAQ;yBAEC,8BACT,QAAQ,eAAe;;UAGX,eAAA,SAAwB,SAAS;iBAErC,2CACK,0BACb,QAAQ;YACD;;UAGK,aAAA;kBACC,4BAA4B,QAAQ;iBACrC,qBAAqB,QAAQ,kBAAkB;0BACtC,QAAQ;;mBAGlB,6BACT,QAAQ,0BAA0B;6BACZ,QAAQ;;;UAIpB,cAAA;;;;;mBAKE;;;sBAGG;;;;;;qBAOH,0BACJ,0BACC,wBACT,QAAQ;;;uBAII,0BACJ,6BACR,QAAQ;sBAEI,2BACH,4BACT,QAAQ,yBAAyB;qBAErB,qCAEZ,QAAQ;;;wBAII,2BACH,4CACI,0BACb,QAAQ;;wBAGE,2BACH,4CACI,0BACb,QAAQ;qBAEI,2BACH,0BACT,QAAQ;sBAEI,2BACH,0BACT,QAAQ;gCAEI,0BACJ,iCACR,QAAQ;uBACU,kBAAkB,QAAQ;;UAGhC,sBAAA;;;;;mBAKE;;sBAEG;;;;;;;;8BASL,0BACJ,6BACR,QAAQ;sBACS,kBAAkB;qBAEvB,0BACJ,2CACK,0BACb,QAAQ;;UAGI,qBAAA;;;;;;;kBAOC;;;;;sBAMD,0BACJ,8BACR;oBAEY,2BACH,4BACT,QAAQ;yBAEI,2BACH,8BACT,QAAQ;;UAGI,mBAAA;sBAEA,0BACJ,uBACR,QAAQ;oBAEI,2BACH,qBACT,QAAQ,kBAAkB;mBAEd,qCAEZ,QAAQ;;sBAGM,2BACH,6BACT,QAAQ,0BAA0B;qBAEtB,sCAEZ,QAAQ"}
@@ -15,6 +15,7 @@ var SandboxError = class extends Error {
15
15
  status;
16
16
  sandboxId;
17
17
  processId;
18
+ snapshotId;
18
19
  ambiguous;
19
20
  retryable;
20
21
  requestId;
@@ -28,6 +29,7 @@ var SandboxError = class extends Error {
28
29
  this.status = options.status;
29
30
  this.sandboxId = options.sandboxId;
30
31
  this.processId = options.processId;
32
+ this.snapshotId = options.snapshotId;
31
33
  this.ambiguous = options.ambiguous ?? options.code === "operation_ambiguous";
32
34
  this.retryable = options.retryable ?? false;
33
35
  this.requestId = options.requestId;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/components/sandbox/types.ts"],"sourcesContent":["import type { DurationLike } from \"../../helpers/temporal.ts\";\nimport type { StepOptionsOrId } from \"../../types.ts\";\n\nexport const sandboxProtocolVersion = 1 as const;\n\nexport type SandboxDuration = number | string | DurationLike;\n\nexport type SandboxStatus =\n | \"PENDING\"\n | \"STARTING\"\n | \"RUNNING\"\n | \"PAUSED\"\n | \"TERMINATING\"\n | \"TERMINATED\"\n | \"FAILED\";\n\nexport interface SandboxResources {\n readonly vcpu: number;\n readonly memoryMb: number;\n}\n\nexport interface SandboxResource {\n id: string;\n name: string;\n status: SandboxStatus;\n vpcId: string;\n imageRef: string;\n resources: SandboxResources;\n createdAt: string;\n startedAt?: string;\n endedAt?: string;\n error?: string;\n}\n\nexport interface SandboxRef extends SandboxResource {\n kind: \"inngest/sandbox\";\n version: 1;\n}\n\nexport interface SandboxCreateOptions {\n /**\n * Stable identity for an active sandbox. Creating the same name again with\n * the same configuration returns the existing sandbox. Names are\n * case-sensitive and may contain up to 255 characters.\n */\n name: string;\n vcpu: number;\n memoryMb: number;\n\n /**\n * Environment inherited by commands and managed processes. Values are\n * persisted as literal sandbox configuration; this is not a secrets\n * mechanism, so do not use this field for secrets. Guest defaults are\n * retained, and operation-specific values override matching keys.\n */\n environment?: Record<string, string>;\n\n /**\n * How long to wait for the sandbox to reach RUNNING after Create succeeds.\n *\n * Defaults to 120 seconds. Set this to `false` to return as soon as Create is\n * accepted, with either STARTING or RUNNING status.\n *\n * @example\n * ```ts\n * const sandbox = await inngest.sandboxes.create({\n * ...options,\n * runningTimeout: \"30s\",\n * });\n * ```\n *\n * @example Return immediately without waiting\n * ```ts\n * const sandbox = await inngest.sandboxes.create({\n * ...options,\n * runningTimeout: false,\n * });\n * ```\n */\n runningTimeout?: SandboxDuration | false;\n}\n\nexport interface SandboxWaitUntilRunningOptions {\n timeout: SandboxDuration;\n}\n\nexport interface SandboxListOptions {\n cursor?: string;\n limit?: number;\n}\n\nexport interface SandboxPageInfo {\n cursor?: string;\n hasMore: boolean;\n limit: number;\n}\n\nexport interface SandboxListResult<TSandbox = SandboxRef> {\n items: TSandbox[];\n page: SandboxPageInfo;\n fetchedAt: string;\n}\n\n/**\n * A shell command string or an argv array for direct execution.\n *\n * Strings run as `[\"/bin/sh\", \"-c\", command]`. They are passed to the shell\n * unchanged, so normal shell quoting, variables, pipes, redirects, and\n * chaining apply. Arrays bypass the shell and must begin with an absolute\n * executable path.\n */\nexport type SandboxCommand = string | readonly string[];\n\nexport interface SandboxCommandOptions {\n /**\n * Overrides matching sandbox environment values for this command.\n * Omitted or empty inherits the sandbox environment unchanged.\n */\n environment?: Record<string, string>;\n cwd?: string;\n timeout?: SandboxDuration;\n}\n\nexport type SandboxCommandOutputMetadata =\n | {\n truncated: false;\n }\n | {\n truncated: true;\n strategy: \"tail\";\n originalBytes: {\n stdout: number;\n stderr: number;\n };\n retainedBytes: {\n stdout: number;\n stderr: number;\n };\n };\n\nexport interface SandboxCommandResult {\n /**\n * Captured stdout decoded as UTF-8. Invalid or truncated byte sequences are\n * represented by the Unicode replacement character.\n */\n stdout: string;\n /**\n * Captured stderr decoded as UTF-8. Invalid or truncated byte sequences are\n * represented by the Unicode replacement character.\n */\n stderr: string;\n exitCode: number;\n output: SandboxCommandOutputMetadata;\n}\n\nexport type SandboxDestroyResult =\n | {\n status: \"TERMINATING\";\n sandbox: SandboxRef;\n }\n | {\n status: \"TERMINATED\";\n sandbox: null;\n };\n\nexport type SandboxProcessState =\n | \"STARTING\"\n | \"RUNNING\"\n | \"EXITED\"\n | \"KILLED\"\n | \"FAILED\"\n | \"LOST\";\n\nexport interface SandboxProcessResource {\n id: string;\n command: readonly string[];\n pid?: number;\n state: SandboxProcessState;\n exitCode?: number;\n terminationSignal?: number;\n startedAt?: string;\n endedAt?: string;\n}\n\nexport interface SandboxProcessRef extends SandboxProcessResource {\n kind: \"inngest/sandbox.process\";\n version: 1;\n sandboxId: string;\n}\n\nexport interface SandboxProcessStartOptions {\n command: SandboxCommand;\n\n /**\n * Overrides matching sandbox environment values for this process.\n * Omitted or empty inherits the sandbox environment unchanged.\n */\n environment?: Record<string, string>;\n cwd?: string;\n}\n\nexport interface SandboxProcessSignalOptions {\n signal: number;\n /**\n * Also signal the process's descendants. Defaults to `true` so shell-backed\n * commands do not leave their child processes running.\n */\n includeChildren?: boolean;\n}\n\nexport interface SandboxProcessWaitOptions {\n timeout?: SandboxDuration;\n}\n\nexport interface SandboxProcessOutputOptions {\n tailBytes?: number;\n}\n\nexport type SandboxProcessListOptions = SandboxListOptions;\nexport type SandboxProcessListResult<TProcess = SandboxProcessRef> =\n SandboxListResult<TProcess>;\n\nexport interface SandboxOutputChunk {\n stream: \"STDOUT\" | \"STDERR\";\n data: Uint8Array;\n at?: string;\n}\n\nexport interface SandboxProcessOutput {\n chunks: SandboxOutputChunk[];\n}\n\nexport interface SandboxLogStreamOptions {\n follow?: boolean;\n}\n\nexport interface SandboxFileUploadOptions {\n path: string;\n data: BodyInit;\n mode?: number;\n}\n\nexport interface SandboxFileUploadResult {\n path: string;\n bytesWritten: number;\n}\n\nexport interface SandboxFileDownloadOptions {\n path: string;\n}\n\nexport type SandboxAction =\n | \"create\"\n | \"list\"\n | \"get\"\n | \"waitUntilRunning\"\n | \"exec\"\n | \"destroy\"\n | \"process.start\"\n | \"process.list\"\n | \"process.get\"\n | \"process.signal\"\n | \"process.wait\"\n | \"process.output\"\n | \"process.stream\"\n | \"logs.stream\"\n | \"file.upload\"\n | \"file.download\";\n\nexport type SandboxErrorCode =\n | \"access_denied\"\n | \"compute_unavailable\"\n | \"internal_error\"\n | \"invalid_field_format\"\n | \"invalid_request\"\n | \"missing_field\"\n | \"operation_ambiguous\"\n | \"rate_limited\"\n | \"sandbox_exec_output_too_large\"\n | \"sandbox_exec_timed_out\"\n | \"sandbox_name_taken\"\n | \"sandbox_not_found\"\n | \"sandbox_start_failed\"\n | \"sandbox_start_timed_out\"\n | \"sandbox_process_not_found\"\n | \"sandbox_process_output_not_retained\"\n | \"sandbox_process_wait_timed_out\"\n | (string & {});\n\nexport type SandboxErrorDetail = Record<string, unknown>;\n\nexport interface SandboxErrorOptions {\n action: SandboxAction;\n code: SandboxErrorCode;\n message: string;\n status?: number;\n sandboxId?: string;\n processId?: string;\n ambiguous?: boolean;\n retryable?: boolean;\n requestId?: string;\n details?: readonly SandboxErrorDetail[];\n cause?: unknown;\n}\n\nexport class SandboxValidationError extends Error {\n public override readonly cause?: unknown;\n\n constructor(message: string, options?: { cause?: unknown }) {\n super(message);\n this.name = \"SandboxValidationError\";\n this.cause = options?.cause;\n }\n}\n\nexport class SandboxError extends Error {\n public readonly protocolVersion = sandboxProtocolVersion;\n public readonly action: SandboxAction;\n public readonly code: SandboxErrorCode;\n public readonly status?: number;\n public readonly sandboxId?: string;\n public readonly processId?: string;\n public readonly ambiguous: boolean;\n public readonly retryable: boolean;\n public readonly requestId?: string;\n public readonly details: readonly SandboxErrorDetail[];\n public override readonly cause?: unknown;\n\n constructor(options: SandboxErrorOptions) {\n super(options.message);\n this.name = \"SandboxError\";\n this.action = options.action;\n this.code = options.code;\n this.status = options.status;\n this.sandboxId = options.sandboxId;\n this.processId = options.processId;\n this.ambiguous =\n options.ambiguous ?? options.code === \"operation_ambiguous\";\n this.retryable = options.retryable ?? false;\n this.requestId = options.requestId;\n this.details = options.details ?? [];\n this.cause = options.cause;\n }\n}\n\nexport interface Sandbox {\n readonly kind: \"inngest/sandbox\";\n readonly version: 1;\n readonly id: string;\n readonly name: string;\n readonly status: SandboxStatus;\n readonly vpcId: string;\n readonly imageRef: string;\n readonly resources: SandboxResources;\n readonly createdAt: string;\n readonly startedAt?: string;\n readonly endedAt?: string;\n readonly error?: string;\n readonly commands: {\n run(\n command: SandboxCommand,\n options?: SandboxCommandOptions,\n ): Promise<SandboxCommandResult>;\n };\n readonly logs: {\n stream(\n options?: SandboxLogStreamOptions,\n ): Promise<ReadableStream<SandboxOutputChunk>>;\n };\n readonly files: {\n upload(options: SandboxFileUploadOptions): Promise<SandboxFileUploadResult>;\n download(options: SandboxFileDownloadOptions): Promise<Response>;\n };\n readonly processes: {\n start(options: SandboxProcessStartOptions): Promise<SandboxProcess>;\n list(\n options?: SandboxProcessListOptions,\n ): Promise<SandboxProcessListResult<SandboxProcess>>;\n get(processId: string): Promise<SandboxProcess | null>;\n };\n waitUntilRunning(options: SandboxWaitUntilRunningOptions): Promise<Sandbox>;\n destroy(): Promise<SandboxDestroyResult>;\n}\n\nexport interface SandboxProcess {\n readonly kind: \"inngest/sandbox.process\";\n readonly version: 1;\n readonly sandboxId: string;\n readonly id: string;\n readonly command: readonly string[];\n readonly pid?: number;\n readonly state: SandboxProcessState;\n readonly exitCode?: number;\n readonly terminationSignal?: number;\n readonly startedAt?: string;\n readonly endedAt?: string;\n signal(options: SandboxProcessSignalOptions): Promise<void>;\n wait(options?: SandboxProcessWaitOptions): Promise<SandboxProcess>;\n getOutput(\n options?: SandboxProcessOutputOptions,\n ): Promise<SandboxProcessOutput>;\n streamOutput(\n options?: SandboxProcessOutputOptions,\n ): Promise<ReadableStream<SandboxOutputChunk>>;\n}\n\nexport interface SandboxClient {\n create(options: SandboxCreateOptions): Promise<Sandbox>;\n list(options?: SandboxListOptions): Promise<SandboxListResult<Sandbox>>;\n get(sandboxId: string): Promise<Sandbox | null>;\n}\n\nexport interface DurableSandbox {\n readonly kind: \"inngest/sandbox\";\n readonly version: 1;\n readonly id: string;\n readonly name: string;\n readonly status: SandboxStatus;\n readonly vpcId: string;\n readonly imageRef: string;\n readonly resources: SandboxResources;\n readonly createdAt: string;\n readonly startedAt?: string;\n readonly endedAt?: string;\n readonly error?: string;\n readonly commands: {\n run(\n idOrOptions: StepOptionsOrId,\n command: SandboxCommand,\n options?: SandboxCommandOptions,\n ): Promise<SandboxCommandResult>;\n };\n readonly processes: {\n start(\n idOrOptions: StepOptionsOrId,\n options: SandboxProcessStartOptions,\n ): Promise<DurableSandboxProcess>;\n list(\n idOrOptions: StepOptionsOrId,\n options?: SandboxProcessListOptions,\n ): Promise<SandboxProcessListResult<DurableSandboxProcess>>;\n get(\n idOrOptions: StepOptionsOrId,\n processId: string,\n ): Promise<DurableSandboxProcess | null>;\n };\n waitUntilRunning(\n idOrOptions: StepOptionsOrId,\n options: SandboxWaitUntilRunningOptions,\n ): Promise<DurableSandbox>;\n destroy(idOrOptions: StepOptionsOrId): Promise<SandboxDestroyResult>;\n}\n\nexport interface DurableSandboxProcess {\n readonly kind: \"inngest/sandbox.process\";\n readonly version: 1;\n readonly sandboxId: string;\n readonly id: string;\n readonly command: readonly string[];\n readonly pid?: number;\n readonly state: SandboxProcessState;\n readonly exitCode?: number;\n readonly terminationSignal?: number;\n readonly startedAt?: string;\n readonly endedAt?: string;\n signal(\n idOrOptions: StepOptionsOrId,\n options: SandboxProcessSignalOptions,\n ): Promise<void>;\n wait(\n idOrOptions: StepOptionsOrId,\n options?: SandboxProcessWaitOptions,\n ): Promise<DurableSandboxProcess>;\n getOutput(\n idOrOptions: StepOptionsOrId,\n options?: SandboxProcessOutputOptions,\n ): Promise<SandboxProcessOutput>;\n}\n\nexport interface DurableSandboxTools {\n create(\n idOrOptions: StepOptionsOrId,\n options: SandboxCreateOptions,\n ): Promise<DurableSandbox>;\n list(\n idOrOptions: StepOptionsOrId,\n options?: SandboxListOptions,\n ): Promise<SandboxListResult<DurableSandbox>>;\n get(\n idOrOptions: StepOptionsOrId,\n sandboxId: string,\n ): Promise<DurableSandbox | null>;\n}\n"],"mappings":";AAGA,MAAa,yBAAyB;AA8StC,IAAa,yBAAb,cAA4C,MAAM;CAChD,AAAyB;CAEzB,YAAY,SAAiB,SAA+B;AAC1D,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,QAAQ,SAAS;;;AAI1B,IAAa,eAAb,cAAkC,MAAM;CACtC,AAAgB,kBAAkB;CAClC,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAyB;CAEzB,YAAY,SAA8B;AACxC,QAAM,QAAQ,QAAQ;AACtB,OAAK,OAAO;AACZ,OAAK,SAAS,QAAQ;AACtB,OAAK,OAAO,QAAQ;AACpB,OAAK,SAAS,QAAQ;AACtB,OAAK,YAAY,QAAQ;AACzB,OAAK,YAAY,QAAQ;AACzB,OAAK,YACH,QAAQ,aAAa,QAAQ,SAAS;AACxC,OAAK,YAAY,QAAQ,aAAa;AACtC,OAAK,YAAY,QAAQ;AACzB,OAAK,UAAU,QAAQ,WAAW,EAAE;AACpC,OAAK,QAAQ,QAAQ"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/components/sandbox/types.ts"],"sourcesContent":["import type { DurationLike } from \"../../helpers/temporal.ts\";\nimport type { StepOptionsOrId } from \"../../types.ts\";\n\nexport const sandboxProtocolVersion = 1 as const;\n\nexport type SandboxDuration = number | string | DurationLike;\n\nexport type SandboxStatus =\n | \"PENDING\"\n | \"STARTING\"\n | \"PAUSING\"\n | \"RUNNING\"\n | \"PAUSED\"\n | \"RESUMING\"\n | \"TERMINATING\"\n | \"TERMINATED\"\n | \"FAILED\";\n\nexport interface SandboxResources {\n readonly vcpu: number;\n readonly memoryMb: number;\n}\n\nexport interface SandboxResource {\n id: string;\n name: string;\n status: SandboxStatus;\n vpcId: string;\n imageRef: string;\n resources: SandboxResources;\n createdAt: string;\n startedAt?: string;\n endedAt?: string;\n error?: string;\n}\n\nexport interface SandboxRef extends SandboxResource {\n kind: \"inngest/sandbox\";\n version: 1;\n}\n\ninterface SandboxCreateBaseOptions {\n /**\n * Stable identity for an active sandbox. Creating the same name again with\n * the same configuration returns the existing sandbox. Names are\n * case-sensitive and may contain up to 255 characters.\n */\n name: string;\n\n /**\n * How long to wait for the sandbox to reach RUNNING after Create succeeds.\n *\n * Defaults to 120 seconds. Set this to `false` to return as soon as Create is\n * accepted, with either STARTING or RUNNING status.\n *\n * @example\n * ```ts\n * const sandbox = await inngest.sandboxes.create({\n * ...options,\n * runningTimeout: \"30s\",\n * });\n * ```\n *\n * @example Return immediately without waiting\n * ```ts\n * const sandbox = await inngest.sandboxes.create({\n * ...options,\n * runningTimeout: false,\n * });\n * ```\n */\n runningTimeout?: SandboxDuration | false;\n}\n\nexport interface SandboxCreateFreshOptions extends SandboxCreateBaseOptions {\n vcpu: number;\n memoryMb: number;\n\n /**\n * Environment inherited by commands and managed processes. Values are\n * persisted as literal sandbox configuration; this is not a secrets\n * mechanism, so do not use this field for secrets. Guest defaults are\n * retained, and operation-specific values override matching keys.\n */\n environment?: Record<string, string>;\n\n snapshotId?: never;\n}\n\nexport interface SandboxCreateFromSnapshotOptions\n extends SandboxCreateBaseOptions {\n snapshotId: string;\n vcpu?: never;\n memoryMb?: never;\n environment?: never;\n}\n\nexport type SandboxCreateOptions =\n | SandboxCreateFreshOptions\n | SandboxCreateFromSnapshotOptions;\n\nexport interface SandboxWaitUntilRunningOptions {\n timeout: SandboxDuration;\n}\n\nexport interface SandboxListOptions {\n cursor?: string;\n limit?: number;\n}\n\nexport interface SandboxPageInfo {\n cursor?: string;\n hasMore: boolean;\n limit: number;\n}\n\nexport interface SandboxListResult<TSandbox = SandboxRef> {\n items: TSandbox[];\n page: SandboxPageInfo;\n fetchedAt: string;\n}\n\n/**\n * A shell command string or an argv array for direct execution.\n *\n * Strings run as `[\"/bin/sh\", \"-c\", command]`. They are passed to the shell\n * unchanged, so normal shell quoting, variables, pipes, redirects, and\n * chaining apply. Arrays bypass the shell and must begin with an absolute\n * executable path.\n */\nexport type SandboxCommand = string | readonly string[];\n\nexport interface SandboxCommandOptions {\n /**\n * Overrides matching sandbox environment values for this command.\n * Omitted or empty inherits the sandbox environment unchanged.\n */\n environment?: Record<string, string>;\n cwd?: string;\n timeout?: SandboxDuration;\n}\n\nexport type SandboxCommandOutputMetadata =\n | {\n truncated: false;\n }\n | {\n truncated: true;\n strategy: \"tail\";\n originalBytes: {\n stdout: number;\n stderr: number;\n };\n retainedBytes: {\n stdout: number;\n stderr: number;\n };\n };\n\nexport interface SandboxCommandResult {\n /**\n * Captured stdout decoded as UTF-8. Invalid or truncated byte sequences are\n * represented by the Unicode replacement character.\n */\n stdout: string;\n /**\n * Captured stderr decoded as UTF-8. Invalid or truncated byte sequences are\n * represented by the Unicode replacement character.\n */\n stderr: string;\n exitCode: number;\n output: SandboxCommandOutputMetadata;\n}\n\nexport type SandboxDestroyResult =\n | {\n status: \"TERMINATING\";\n sandbox: SandboxRef;\n }\n | {\n status: \"TERMINATED\";\n sandbox: null;\n };\n\nexport type SandboxProcessState =\n | \"STARTING\"\n | \"RUNNING\"\n | \"EXITED\"\n | \"KILLED\"\n | \"FAILED\"\n | \"LOST\";\n\nexport interface SandboxProcessResource {\n id: string;\n command: readonly string[];\n pid?: number;\n state: SandboxProcessState;\n exitCode?: number;\n terminationSignal?: number;\n startedAt?: string;\n endedAt?: string;\n}\n\nexport interface SandboxProcessRef extends SandboxProcessResource {\n kind: \"inngest/sandbox.process\";\n version: 1;\n sandboxId: string;\n}\n\nexport interface SandboxProcessStartOptions {\n command: SandboxCommand;\n\n /**\n * Overrides matching sandbox environment values for this process.\n * Omitted or empty inherits the sandbox environment unchanged.\n */\n environment?: Record<string, string>;\n cwd?: string;\n}\n\nexport interface SandboxProcessSignalOptions {\n signal: number;\n /**\n * Also signal the process's descendants. Defaults to `true` so shell-backed\n * commands do not leave their child processes running.\n */\n includeChildren?: boolean;\n}\n\nexport interface SandboxProcessWaitOptions {\n timeout?: SandboxDuration;\n}\n\nexport interface SandboxProcessOutputOptions {\n tailBytes?: number;\n}\n\nexport type SandboxProcessListOptions = SandboxListOptions;\nexport type SandboxProcessListResult<TProcess = SandboxProcessRef> =\n SandboxListResult<TProcess>;\n\nexport interface SandboxOutputChunk {\n stream: \"STDOUT\" | \"STDERR\";\n data: Uint8Array;\n at?: string;\n}\n\nexport interface SandboxProcessOutput {\n chunks: SandboxOutputChunk[];\n}\n\nexport interface SandboxLogStreamOptions {\n follow?: boolean;\n}\n\nexport interface SandboxFileUploadOptions {\n path: string;\n data: BodyInit;\n mode?: number;\n}\n\nexport interface SandboxFileUploadResult {\n path: string;\n bytesWritten: number;\n}\n\nexport interface SandboxFileDownloadOptions {\n path: string;\n}\n\nexport type SandboxSnapshotStatus =\n | \"CREATING\"\n | \"READY\"\n | \"DELETING\"\n | \"DELETED\"\n | \"FAILED\"\n | \"LOST\";\n\nexport interface SandboxSnapshotResource {\n id: string;\n sourceImageId: string;\n status: SandboxSnapshotStatus;\n compatibilityId?: string;\n resources: SandboxResources;\n memoryPackCount: number;\n diskPackCount: number;\n storedBytes: number;\n createdAt: string;\n updatedAt: string;\n expiresAt: string;\n error?: string;\n}\n\nexport interface SandboxSnapshotRef extends SandboxSnapshotResource {\n kind: \"inngest/sandbox.snapshot\";\n version: 1;\n}\n\nexport interface SandboxSnapshotWaitOptions {\n timeout: SandboxDuration;\n}\n\nexport interface SandboxLifecycleOptions {\n timeout?: SandboxDuration;\n signal?: AbortSignal;\n}\n\nexport type SandboxSnapshotCreateOptions = Record<string, never>;\nexport interface SandboxSnapshotCloneOptions {\n name: string;\n runningTimeout?: SandboxDuration;\n}\n\nexport type SandboxSnapshotListOptions = SandboxListOptions;\nexport type SandboxSnapshotListResult<TSnapshot = SandboxSnapshotRef> =\n SandboxListResult<TSnapshot>;\n\nexport type SandboxAction =\n | \"create\"\n | \"list\"\n | \"get\"\n | \"waitUntilRunning\"\n | \"exec\"\n | \"destroy\"\n | \"pause\"\n | \"resume\"\n | \"process.start\"\n | \"process.list\"\n | \"process.get\"\n | \"process.signal\"\n | \"process.wait\"\n | \"process.output\"\n | \"process.stream\"\n | \"logs.stream\"\n | \"file.upload\"\n | \"file.download\"\n | \"snapshot.create\"\n | \"snapshot.list\"\n | \"snapshot.get\"\n | \"snapshot.waitUntilReady\"\n | \"snapshot.delete\";\n\nexport type SandboxErrorCode =\n | \"access_denied\"\n | \"compute_unavailable\"\n | \"internal_error\"\n | \"invalid_field_format\"\n | \"invalid_request\"\n | \"missing_field\"\n | \"operation_ambiguous\"\n | \"rate_limited\"\n | \"sandbox_exec_output_too_large\"\n | \"sandbox_exec_timed_out\"\n | \"sandbox_name_taken\"\n | \"sandbox_not_found\"\n | \"sandbox_start_failed\"\n | \"sandbox_start_timed_out\"\n | \"sandbox_process_not_found\"\n | \"sandbox_process_output_not_retained\"\n | \"sandbox_process_wait_timed_out\"\n | \"sandbox_snapshot_limit_exceeded\"\n | \"sandbox_snapshot_not_found\"\n | \"sandbox_snapshot_not_ready\"\n | \"sandbox_snapshot_wait_timed_out\"\n | (string & {});\n\nexport type SandboxErrorDetail = Record<string, unknown>;\n\nexport interface SandboxErrorOptions {\n action: SandboxAction;\n code: SandboxErrorCode;\n message: string;\n status?: number;\n sandboxId?: string;\n processId?: string;\n snapshotId?: string;\n ambiguous?: boolean;\n retryable?: boolean;\n requestId?: string;\n details?: readonly SandboxErrorDetail[];\n cause?: unknown;\n}\n\nexport class SandboxValidationError extends Error {\n public override readonly cause?: unknown;\n\n constructor(message: string, options?: { cause?: unknown }) {\n super(message);\n this.name = \"SandboxValidationError\";\n this.cause = options?.cause;\n }\n}\n\nexport class SandboxError extends Error {\n public readonly protocolVersion = sandboxProtocolVersion;\n public readonly action: SandboxAction;\n public readonly code: SandboxErrorCode;\n public readonly status?: number;\n public readonly sandboxId?: string;\n public readonly processId?: string;\n public readonly snapshotId?: string;\n public readonly ambiguous: boolean;\n public readonly retryable: boolean;\n public readonly requestId?: string;\n public readonly details: readonly SandboxErrorDetail[];\n public override readonly cause?: unknown;\n\n constructor(options: SandboxErrorOptions) {\n super(options.message);\n this.name = \"SandboxError\";\n this.action = options.action;\n this.code = options.code;\n this.status = options.status;\n this.sandboxId = options.sandboxId;\n this.processId = options.processId;\n this.snapshotId = options.snapshotId;\n this.ambiguous =\n options.ambiguous ?? options.code === \"operation_ambiguous\";\n this.retryable = options.retryable ?? false;\n this.requestId = options.requestId;\n this.details = options.details ?? [];\n this.cause = options.cause;\n }\n}\n\nexport interface Sandbox {\n readonly kind: \"inngest/sandbox\";\n readonly version: 1;\n readonly id: string;\n readonly name: string;\n readonly status: SandboxStatus;\n readonly vpcId: string;\n readonly imageRef: string;\n readonly resources: SandboxResources;\n readonly createdAt: string;\n readonly startedAt?: string;\n readonly endedAt?: string;\n readonly error?: string;\n readonly commands: {\n run(\n command: SandboxCommand,\n options?: SandboxCommandOptions,\n ): Promise<SandboxCommandResult>;\n };\n readonly logs: {\n stream(\n options?: SandboxLogStreamOptions,\n ): Promise<ReadableStream<SandboxOutputChunk>>;\n };\n readonly files: {\n upload(options: SandboxFileUploadOptions): Promise<SandboxFileUploadResult>;\n download(options: SandboxFileDownloadOptions): Promise<Response>;\n };\n readonly processes: {\n start(options: SandboxProcessStartOptions): Promise<SandboxProcess>;\n list(\n options?: SandboxProcessListOptions,\n ): Promise<SandboxProcessListResult<SandboxProcess>>;\n get(processId: string): Promise<SandboxProcess | null>;\n };\n waitUntilRunning(options: SandboxWaitUntilRunningOptions): Promise<Sandbox>;\n pause(options?: SandboxLifecycleOptions): Promise<Sandbox>;\n resume(options?: SandboxLifecycleOptions): Promise<Sandbox>;\n snapshot(\n options?: SandboxSnapshotCreateOptions,\n waitOptions?: SandboxLifecycleOptions,\n ): Promise<SandboxSnapshot>;\n destroy(): Promise<SandboxDestroyResult>;\n}\n\nexport interface SandboxProcess {\n readonly kind: \"inngest/sandbox.process\";\n readonly version: 1;\n readonly sandboxId: string;\n readonly id: string;\n readonly command: readonly string[];\n readonly pid?: number;\n readonly state: SandboxProcessState;\n readonly exitCode?: number;\n readonly terminationSignal?: number;\n readonly startedAt?: string;\n readonly endedAt?: string;\n signal(options: SandboxProcessSignalOptions): Promise<void>;\n wait(options?: SandboxProcessWaitOptions): Promise<SandboxProcess>;\n getOutput(\n options?: SandboxProcessOutputOptions,\n ): Promise<SandboxProcessOutput>;\n streamOutput(\n options?: SandboxProcessOutputOptions,\n ): Promise<ReadableStream<SandboxOutputChunk>>;\n}\n\nexport interface SandboxSnapshot extends Readonly<SandboxSnapshotRef> {\n clone(\n options: SandboxSnapshotCloneOptions,\n waitOptions?: SandboxLifecycleOptions,\n ): Promise<Sandbox>;\n delete(): Promise<void>;\n}\n\nexport interface SandboxClient {\n create(options: SandboxCreateFreshOptions): Promise<Sandbox>;\n list(options?: SandboxListOptions): Promise<SandboxListResult<Sandbox>>;\n get(sandboxId: string): Promise<Sandbox | null>;\n readonly snapshots: {\n list(\n options?: SandboxSnapshotListOptions,\n ): Promise<SandboxSnapshotListResult<SandboxSnapshot>>;\n get(snapshotId: string): Promise<SandboxSnapshot | null>;\n };\n}\n\nexport interface DurableSandbox {\n readonly kind: \"inngest/sandbox\";\n readonly version: 1;\n readonly id: string;\n readonly name: string;\n readonly status: SandboxStatus;\n readonly vpcId: string;\n readonly imageRef: string;\n readonly resources: SandboxResources;\n readonly createdAt: string;\n readonly startedAt?: string;\n readonly endedAt?: string;\n readonly error?: string;\n readonly commands: {\n run(\n idOrOptions: StepOptionsOrId,\n command: SandboxCommand,\n options?: SandboxCommandOptions,\n ): Promise<SandboxCommandResult>;\n };\n readonly processes: {\n start(\n idOrOptions: StepOptionsOrId,\n options: SandboxProcessStartOptions,\n ): Promise<DurableSandboxProcess>;\n list(\n idOrOptions: StepOptionsOrId,\n options?: SandboxProcessListOptions,\n ): Promise<SandboxProcessListResult<DurableSandboxProcess>>;\n get(\n idOrOptions: StepOptionsOrId,\n processId: string,\n ): Promise<DurableSandboxProcess | null>;\n };\n readonly snapshots: {\n create(\n idOrOptions: StepOptionsOrId,\n options?: SandboxSnapshotCreateOptions,\n waitOptions?: SandboxLifecycleOptions,\n ): Promise<DurableSandboxSnapshot>;\n };\n snapshot(\n idOrOptions: StepOptionsOrId,\n options?: SandboxSnapshotCreateOptions,\n waitOptions?: SandboxLifecycleOptions,\n ): Promise<DurableSandboxSnapshot>;\n pause(\n idOrOptions: StepOptionsOrId,\n options?: SandboxLifecycleOptions,\n ): Promise<DurableSandbox>;\n resume(\n idOrOptions: StepOptionsOrId,\n options?: SandboxLifecycleOptions,\n ): Promise<DurableSandbox>;\n waitUntilRunning(\n idOrOptions: StepOptionsOrId,\n options: SandboxWaitUntilRunningOptions,\n ): Promise<DurableSandbox>;\n destroy(idOrOptions: StepOptionsOrId): Promise<SandboxDestroyResult>;\n}\n\nexport interface DurableSandboxSnapshot {\n readonly kind: \"inngest/sandbox.snapshot\";\n readonly version: 1;\n readonly id: string;\n readonly sourceImageId: string;\n readonly status: SandboxSnapshotStatus;\n readonly compatibilityId?: string;\n readonly resources: SandboxResources;\n readonly memoryPackCount: number;\n readonly diskPackCount: number;\n readonly storedBytes: number;\n readonly createdAt: string;\n readonly updatedAt: string;\n readonly expiresAt: string;\n readonly error?: string;\n waitUntilReady(\n idOrOptions: StepOptionsOrId,\n options: SandboxSnapshotWaitOptions,\n ): Promise<DurableSandboxSnapshot>;\n delete(idOrOptions: StepOptionsOrId): Promise<void>;\n clone(\n idOrOptions: StepOptionsOrId,\n options: SandboxSnapshotCloneOptions,\n waitOptions?: SandboxLifecycleOptions,\n ): Promise<DurableSandbox>;\n}\n\nexport interface DurableSandboxProcess {\n readonly kind: \"inngest/sandbox.process\";\n readonly version: 1;\n readonly sandboxId: string;\n readonly id: string;\n readonly command: readonly string[];\n readonly pid?: number;\n readonly state: SandboxProcessState;\n readonly exitCode?: number;\n readonly terminationSignal?: number;\n readonly startedAt?: string;\n readonly endedAt?: string;\n signal(\n idOrOptions: StepOptionsOrId,\n options: SandboxProcessSignalOptions,\n ): Promise<void>;\n wait(\n idOrOptions: StepOptionsOrId,\n options?: SandboxProcessWaitOptions,\n ): Promise<DurableSandboxProcess>;\n getOutput(\n idOrOptions: StepOptionsOrId,\n options?: SandboxProcessOutputOptions,\n ): Promise<SandboxProcessOutput>;\n}\n\nexport interface DurableSandboxTools {\n create(\n idOrOptions: StepOptionsOrId,\n options: SandboxCreateOptions,\n ): Promise<DurableSandbox>;\n list(\n idOrOptions: StepOptionsOrId,\n options?: SandboxListOptions,\n ): Promise<SandboxListResult<DurableSandbox>>;\n get(\n idOrOptions: StepOptionsOrId,\n sandboxId: string,\n ): Promise<DurableSandbox | null>;\n readonly snapshots: {\n list(\n idOrOptions: StepOptionsOrId,\n options?: SandboxSnapshotListOptions,\n ): Promise<SandboxSnapshotListResult<DurableSandboxSnapshot>>;\n get(\n idOrOptions: StepOptionsOrId,\n snapshotId: string,\n ): Promise<DurableSandboxSnapshot | null>;\n };\n}\n"],"mappings":";AAGA,MAAa,yBAAyB;AA4XtC,IAAa,yBAAb,cAA4C,MAAM;CAChD,AAAyB;CAEzB,YAAY,SAAiB,SAA+B;AAC1D,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,QAAQ,SAAS;;;AAI1B,IAAa,eAAb,cAAkC,MAAM;CACtC,AAAgB,kBAAkB;CAClC,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAgB;CAChB,AAAyB;CAEzB,YAAY,SAA8B;AACxC,QAAM,QAAQ,QAAQ;AACtB,OAAK,OAAO;AACZ,OAAK,SAAS,QAAQ;AACtB,OAAK,OAAO,QAAQ;AACpB,OAAK,SAAS,QAAQ;AACtB,OAAK,YAAY,QAAQ;AACzB,OAAK,YAAY,QAAQ;AACzB,OAAK,aAAa,QAAQ;AAC1B,OAAK,YACH,QAAQ,aAAa,QAAQ,SAAS;AACxC,OAAK,YAAY,QAAQ,aAAa;AACtC,OAAK,YAAY,QAAQ;AACzB,OAAK,UAAU,QAAQ,WAAW,EAAE;AACpC,OAAK,QAAQ,QAAQ"}
@@ -10,6 +10,7 @@ const maxSandboxProcessTimeoutMs = 300 * 1e3;
10
10
  const defaultSandboxProcessTimeoutMs = 30 * 1e3;
11
11
  const maxSandboxRunningTimeoutMs = 300 * 1e3;
12
12
  const defaultSandboxRunningTimeoutMs = 120 * 1e3;
13
+ const maxSandboxSnapshotWaitTimeoutMs = 300 * 1e3;
13
14
  const maxSandboxProcessTailBytes = 512 * 1024;
14
15
  const maxProcessArgvCount = 128;
15
16
  const maxProcessArgvBytes = 32 * 1024;
@@ -76,8 +77,10 @@ const timestampSchema = zod_v3.z.string().regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:
76
77
  const sandboxStatusSchema = zod_v3.z.enum([
77
78
  "PENDING",
78
79
  "STARTING",
80
+ "PAUSING",
79
81
  "RUNNING",
80
82
  "PAUSED",
83
+ "RESUMING",
81
84
  "TERMINATING",
82
85
  "TERMINATED",
83
86
  "FAILED"
@@ -113,6 +116,52 @@ const sandboxRefSchema = sandboxResourceSchema.extend({
113
116
  kind: zod_v3.z.literal("inngest/sandbox"),
114
117
  version: zod_v3.z.literal(1)
115
118
  }).strict();
119
+ const sandboxSnapshotStatusSchema = zod_v3.z.enum([
120
+ "CREATING",
121
+ "READY",
122
+ "DELETING",
123
+ "DELETED",
124
+ "FAILED",
125
+ "LOST"
126
+ ]);
127
+ const sandboxSnapshotResourceBaseSchema = zod_v3.z.object({
128
+ id: canonicalUuidSchema,
129
+ sourceImageId: zod_v3.z.string().min(1),
130
+ status: sandboxSnapshotStatusSchema,
131
+ compatibilityId: zod_v3.z.string().min(1).optional(),
132
+ resources: sandboxResourcesSchema,
133
+ memoryPackCount: zod_v3.z.number().int().nonnegative().max(4294967295),
134
+ diskPackCount: zod_v3.z.number().int().nonnegative().max(4294967295),
135
+ storedBytes: zod_v3.z.number().int().nonnegative().safe(),
136
+ createdAt: timestampSchema,
137
+ updatedAt: timestampSchema,
138
+ expiresAt: timestampSchema,
139
+ error: zod_v3.z.string().min(1).optional()
140
+ }).strict();
141
+ const validateSandboxSnapshotResource = (snapshot, ctx) => {
142
+ if (snapshot.status === "READY" && snapshot.compatibilityId === void 0) ctx.addIssue({
143
+ code: zod_v3.z.ZodIssueCode.custom,
144
+ message: "compatibilityId is required for READY snapshots",
145
+ path: ["compatibilityId"]
146
+ });
147
+ if (snapshot.status === "READY" && !/^[a-f0-9]{64}$/.test(snapshot.sourceImageId)) ctx.addIssue({
148
+ code: zod_v3.z.ZodIssueCode.custom,
149
+ message: "Source image ID must be a lowercase SHA-256 for READY snapshots",
150
+ path: ["sourceImageId"]
151
+ });
152
+ };
153
+ const sandboxSnapshotResourceSchema = sandboxSnapshotResourceBaseSchema.superRefine(validateSandboxSnapshotResource);
154
+ const wireSandboxSnapshotResourceSchema = sandboxSnapshotResourceBaseSchema.omit({
155
+ resources: true,
156
+ error: true
157
+ }).extend({
158
+ resources: sandboxResourcesSchema.strip(),
159
+ error: zod_v3.z.string().min(1).nullish()
160
+ }).strip().superRefine(validateSandboxSnapshotResource);
161
+ const sandboxSnapshotRefSchema = sandboxSnapshotResourceBaseSchema.extend({
162
+ kind: zod_v3.z.literal("inngest/sandbox.snapshot"),
163
+ version: zod_v3.z.literal(1)
164
+ }).strict().superRefine(validateSandboxSnapshotResource);
116
165
  const sandboxProcessStateSchema = zod_v3.z.enum([
117
166
  "STARTING",
118
167
  "RUNNING",
@@ -209,15 +258,28 @@ const sandboxProcessRefFromResource = (sandboxId, value) => parseWithSchema(sand
209
258
  sandboxId,
210
259
  ...parseWithSchema(wireSandboxProcessResourceSchema, value, "sandbox process resource")
211
260
  }, "sandbox process reference");
261
+ const sandboxSnapshotRefFromResource = (value) => {
262
+ const { error, ...base } = parseWithSchema(wireSandboxSnapshotResourceSchema, value, "sandbox snapshot resource");
263
+ return {
264
+ kind: "inngest/sandbox.snapshot",
265
+ version: 1,
266
+ ...base,
267
+ ...error != null && { error }
268
+ };
269
+ };
212
270
  const normalizeSandboxCreateOptions = (options) => {
213
- const parsed = parseWithSchema(zod_v3.z.object({
271
+ const parsed = parseWithSchema(zod_v3.z.union([zod_v3.z.object({
214
272
  name: sandboxNameSchema,
215
273
  vcpu: zod_v3.z.number().int().positive().max(4294967295),
216
274
  memoryMb: zod_v3.z.number().int().positive().max(4294967295),
217
275
  environment: zod_v3.z.record(zod_v3.z.string()).optional(),
218
276
  runningTimeout: zod_v3.z.unknown().optional()
219
- }).strict(), options, "sandbox create options");
220
- validateSandboxEnvironment(parsed.environment);
277
+ }).strict(), zod_v3.z.object({
278
+ name: sandboxNameSchema,
279
+ snapshotId: canonicalUuidSchema,
280
+ runningTimeout: zod_v3.z.unknown().optional()
281
+ }).strict()]), options, "sandbox create options");
282
+ if ("environment" in parsed) validateSandboxEnvironment(parsed.environment);
221
283
  const { runningTimeout, ...create } = parsed;
222
284
  return {
223
285
  ...create,
@@ -238,6 +300,11 @@ const normalizeSandboxListOptions = (options = {}) => {
238
300
  };
239
301
  };
240
302
  const normalizeSandboxProcessListOptions = normalizeSandboxListOptions;
303
+ const normalizeSandboxSnapshotListOptions = (options = {}) => normalizeSandboxListOptions(options);
304
+ const normalizeSandboxSnapshotCreateOptions = (options = {}) => parseWithSchema(zod_v3.z.object({}).strict(), options, "sandbox snapshot create options");
305
+ const normalizeSandboxSnapshotWaitOptions = (options) => {
306
+ return { timeoutMs: normalizeDurationMs(parseWithSchema(zod_v3.z.object({ timeout: zod_v3.z.unknown() }).strict(), options, "sandbox snapshot waitUntilReady options").timeout, maxSandboxSnapshotWaitTimeoutMs, "timeout") };
307
+ };
241
308
  const normalizeProcessSpec = (options, includeTimeout) => {
242
309
  const parsed = parseWithSchema(zod_v3.z.object({
243
310
  command: zod_v3.z.union([zod_v3.z.string().min(1, "command must not be empty"), zod_v3.z.array(zod_v3.z.string()).min(1).max(maxProcessArgvCount)]),
@@ -377,6 +444,9 @@ exports.normalizeSandboxProcessOutputOptions = normalizeSandboxProcessOutputOpti
377
444
  exports.normalizeSandboxProcessSignalOptions = normalizeSandboxProcessSignalOptions;
378
445
  exports.normalizeSandboxProcessStartOptions = normalizeSandboxProcessStartOptions;
379
446
  exports.normalizeSandboxProcessWaitOptions = normalizeSandboxProcessWaitOptions;
447
+ exports.normalizeSandboxSnapshotCreateOptions = normalizeSandboxSnapshotCreateOptions;
448
+ exports.normalizeSandboxSnapshotListOptions = normalizeSandboxSnapshotListOptions;
449
+ exports.normalizeSandboxSnapshotWaitOptions = normalizeSandboxSnapshotWaitOptions;
380
450
  exports.normalizeSandboxWaitUntilRunningOptions = normalizeSandboxWaitUntilRunningOptions;
381
451
  exports.parseWithSchema = parseWithSchema;
382
452
  exports.restOutputChunkSchema = restOutputChunkSchema;
@@ -385,5 +455,7 @@ exports.sandboxProcessRefFromResource = sandboxProcessRefFromResource;
385
455
  exports.sandboxProcessRefSchema = sandboxProcessRefSchema;
386
456
  exports.sandboxRefFromResource = sandboxRefFromResource;
387
457
  exports.sandboxRefSchema = sandboxRefSchema;
458
+ exports.sandboxSnapshotRefFromResource = sandboxSnapshotRefFromResource;
459
+ exports.sandboxSnapshotRefSchema = sandboxSnapshotRefSchema;
388
460
  exports.wireOutputChunkSchema = wireOutputChunkSchema;
389
461
  //# sourceMappingURL=validation.cjs.map