@blaxel/core 0.3.13 → 0.3.18-dev.283
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/client/sdk.gen.js +105 -3
- package/dist/cjs/common/settings.js +28 -3
- package/dist/cjs/common/settings.test.js +50 -0
- package/dist/cjs/common/shell.js +18 -0
- package/dist/cjs/sandbox/filesystem/filesystem.js +31 -11
- package/dist/cjs/sandbox/filesystem/filesystem.test.js +207 -2
- package/dist/cjs/sandbox/sandbox.js +124 -0
- package/dist/cjs/types/client/sdk.gen.d.ts +31 -1
- package/dist/cjs/types/client/types.gen.d.ts +368 -7
- package/dist/cjs/types/common/settings.d.ts +15 -0
- package/dist/cjs/types/common/shell.d.ts +13 -0
- package/dist/cjs/types/sandbox/sandbox.d.ts +56 -1
- package/dist/cjs/types/sandbox/schedule.d.ts +2 -2
- package/dist/cjs-browser/.tsbuildinfo +1 -1
- package/dist/cjs-browser/client/sdk.gen.js +105 -3
- package/dist/cjs-browser/common/settings.js +28 -3
- package/dist/cjs-browser/common/settings.test.js +50 -0
- package/dist/cjs-browser/common/shell.js +18 -0
- package/dist/cjs-browser/sandbox/filesystem/filesystem.js +31 -11
- package/dist/cjs-browser/sandbox/filesystem/filesystem.test.js +207 -2
- package/dist/cjs-browser/sandbox/sandbox.js +124 -0
- package/dist/cjs-browser/types/client/sdk.gen.d.ts +31 -1
- package/dist/cjs-browser/types/client/types.gen.d.ts +368 -7
- package/dist/cjs-browser/types/common/settings.d.ts +15 -0
- package/dist/cjs-browser/types/common/shell.d.ts +13 -0
- package/dist/cjs-browser/types/sandbox/sandbox.d.ts +56 -1
- package/dist/cjs-browser/types/sandbox/schedule.d.ts +2 -2
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/client/sdk.gen.js +96 -0
- package/dist/esm/common/settings.js +28 -3
- package/dist/esm/common/settings.test.js +50 -0
- package/dist/esm/common/shell.js +15 -0
- package/dist/esm/sandbox/filesystem/filesystem.js +31 -11
- package/dist/esm/sandbox/filesystem/filesystem.test.js +208 -3
- package/dist/esm/sandbox/sandbox.js +125 -1
- package/dist/esm-browser/.tsbuildinfo +1 -1
- package/dist/esm-browser/client/sdk.gen.js +96 -0
- package/dist/esm-browser/common/settings.js +28 -3
- package/dist/esm-browser/common/settings.test.js +50 -0
- package/dist/esm-browser/common/shell.js +15 -0
- package/dist/esm-browser/sandbox/filesystem/filesystem.js +31 -11
- package/dist/esm-browser/sandbox/filesystem/filesystem.test.js +208 -3
- package/dist/esm-browser/sandbox/sandbox.js +125 -1
- package/package.json +1 -1
|
@@ -3494,6 +3494,7 @@ export type SsoDomainSpecWritable = {
|
|
|
3494
3494
|
* Lightweight virtual machine for secure AI code execution. Sandboxes resume from standby in under 25ms and automatically scale to zero after inactivity, preserving memory state including running processes and filesystem.
|
|
3495
3495
|
*/
|
|
3496
3496
|
export type Sandbox = {
|
|
3497
|
+
archive?: SandboxArchive;
|
|
3497
3498
|
/**
|
|
3498
3499
|
* Infrastructure failures recorded on the sandbox, oldest first (read-only, managed by the system)
|
|
3499
3500
|
*/
|
|
@@ -3523,6 +3524,7 @@ export type Sandbox = {
|
|
|
3523
3524
|
* Lightweight virtual machine for secure AI code execution. Sandboxes resume from standby in under 25ms and automatically scale to zero after inactivity, preserving memory state including running processes and filesystem.
|
|
3524
3525
|
*/
|
|
3525
3526
|
export type SandboxWritable = {
|
|
3527
|
+
archive?: SandboxArchiveWritable;
|
|
3526
3528
|
events?: CoreEventsWritable;
|
|
3527
3529
|
metadata: MetadataWritable;
|
|
3528
3530
|
spec: SandboxSpec;
|
|
@@ -3532,6 +3534,72 @@ export type SandboxWritable = {
|
|
|
3532
3534
|
state?: 'RUNNING' | 'STANDBY';
|
|
3533
3535
|
status?: Status;
|
|
3534
3536
|
};
|
|
3537
|
+
/**
|
|
3538
|
+
* State of the filesystem archive of a sandbox. An archive holds the writable filesystem changes and the process configurations of the sandbox, not its memory, so restoring it produces a sandbox with the same disk state and freshly started processes.
|
|
3539
|
+
*/
|
|
3540
|
+
export type SandboxArchive = {
|
|
3541
|
+
/**
|
|
3542
|
+
* When the archive was created (read-only)
|
|
3543
|
+
*/
|
|
3544
|
+
readonly createdAt?: string;
|
|
3545
|
+
/**
|
|
3546
|
+
* Infrastructure generation the archive was taken from (read-only)
|
|
3547
|
+
*/
|
|
3548
|
+
readonly generation?: string;
|
|
3549
|
+
/**
|
|
3550
|
+
* Storage key of the archive (read-only)
|
|
3551
|
+
*/
|
|
3552
|
+
readonly key?: string;
|
|
3553
|
+
restore?: SandboxArchiveRestore;
|
|
3554
|
+
/**
|
|
3555
|
+
* When the restore of the archive started, while the sandbox is being unarchived (read-only)
|
|
3556
|
+
*/
|
|
3557
|
+
readonly restoreStartedAt?: string;
|
|
3558
|
+
/**
|
|
3559
|
+
* Size of the archive in bytes (read-only)
|
|
3560
|
+
*/
|
|
3561
|
+
readonly size?: number;
|
|
3562
|
+
/**
|
|
3563
|
+
* When the archive was started, while the filesystem of the sandbox is still being uploaded (read-only)
|
|
3564
|
+
*/
|
|
3565
|
+
readonly startedAt?: string;
|
|
3566
|
+
};
|
|
3567
|
+
/**
|
|
3568
|
+
* State of the filesystem archive of a sandbox. An archive holds the writable filesystem changes and the process configurations of the sandbox, not its memory, so restoring it produces a sandbox with the same disk state and freshly started processes.
|
|
3569
|
+
*/
|
|
3570
|
+
export type SandboxArchiveWritable = {
|
|
3571
|
+
restore?: SandboxArchiveRestoreWritable;
|
|
3572
|
+
};
|
|
3573
|
+
/**
|
|
3574
|
+
* Progress of the restore of a sandbox archive. A restore writes the archived filesystem over the image the sandbox booted from, which takes as long as the archive is big; the sandbox answers and its terminal is reachable throughout, but nothing may write to its filesystem until the restore is done.
|
|
3575
|
+
*/
|
|
3576
|
+
export type SandboxArchiveRestore = {
|
|
3577
|
+
/**
|
|
3578
|
+
* Number of files restored so far (read-only)
|
|
3579
|
+
*/
|
|
3580
|
+
readonly files?: number;
|
|
3581
|
+
/**
|
|
3582
|
+
* Bytes of the archive restored so far (read-only)
|
|
3583
|
+
*/
|
|
3584
|
+
readonly restoredBytes?: number;
|
|
3585
|
+
/**
|
|
3586
|
+
* Phase of the restore (read-only)
|
|
3587
|
+
*/
|
|
3588
|
+
state?: 'downloading' | 'extracting' | 'relaunching' | 'succeeded' | 'failed';
|
|
3589
|
+
/**
|
|
3590
|
+
* Total size of the archive being restored in bytes, absent when the store did not announce it (read-only)
|
|
3591
|
+
*/
|
|
3592
|
+
readonly totalBytes?: number;
|
|
3593
|
+
};
|
|
3594
|
+
/**
|
|
3595
|
+
* Progress of the restore of a sandbox archive. A restore writes the archived filesystem over the image the sandbox booted from, which takes as long as the archive is big; the sandbox answers and its terminal is reachable throughout, but nothing may write to its filesystem until the restore is done.
|
|
3596
|
+
*/
|
|
3597
|
+
export type SandboxArchiveRestoreWritable = {
|
|
3598
|
+
/**
|
|
3599
|
+
* Phase of the restore (read-only)
|
|
3600
|
+
*/
|
|
3601
|
+
state?: 'downloading' | 'extracting' | 'relaunching' | 'succeeded' | 'failed';
|
|
3602
|
+
};
|
|
3535
3603
|
/**
|
|
3536
3604
|
* Pre-configured sandbox template available in the Sandbox Hub for quick deployment with predefined tools and configurations
|
|
3537
3605
|
*/
|
|
@@ -3759,6 +3827,19 @@ export type SandboxNetwork = {
|
|
|
3759
3827
|
*/
|
|
3760
3828
|
subnet?: string;
|
|
3761
3829
|
};
|
|
3830
|
+
/**
|
|
3831
|
+
* Result of restoring a sandbox to one of its snapshots. The sandbox keeps its name and URLs; everything it held since the snapshot was taken is gone.
|
|
3832
|
+
*/
|
|
3833
|
+
export type SandboxRestoreResponse = {
|
|
3834
|
+
/**
|
|
3835
|
+
* Name of the restored sandbox
|
|
3836
|
+
*/
|
|
3837
|
+
name: string;
|
|
3838
|
+
/**
|
|
3839
|
+
* Snapshot the sandbox was restored from
|
|
3840
|
+
*/
|
|
3841
|
+
snapshotId: string;
|
|
3842
|
+
};
|
|
3762
3843
|
/**
|
|
3763
3844
|
* Runtime configuration defining how the sandbox VM is provisioned and its resource limits
|
|
3764
3845
|
*/
|
|
@@ -3812,6 +3893,10 @@ export type SandboxScheduleEntry = {
|
|
|
3812
3893
|
* Maximum number of execution records kept for this schedule. Once reached, recording a new execution deletes the oldest. Defaults to 100.
|
|
3813
3894
|
*/
|
|
3814
3895
|
maxExecutions?: number;
|
|
3896
|
+
/**
|
|
3897
|
+
* Name of the sandbox this schedule belongs to.
|
|
3898
|
+
*/
|
|
3899
|
+
readonly sandbox?: string;
|
|
3815
3900
|
/**
|
|
3816
3901
|
* Type of schedule timing. 'cron' for recurring (5-field expression), 'at' for a specific RFC 3339 datetime, 'sleep' for a duration from now (resolved to 'at' on creation).
|
|
3817
3902
|
*/
|
|
@@ -3864,7 +3949,7 @@ export type SandboxScheduleEntryListWritable = {
|
|
|
3864
3949
|
meta?: PaginationMeta;
|
|
3865
3950
|
};
|
|
3866
3951
|
/**
|
|
3867
|
-
* One recorded execution of a sandbox schedule.
|
|
3952
|
+
* One recorded execution of a sandbox schedule. status and statusCode describe whether the scheduler's process submission was accepted; the scheduler does not wait for the process to finish. Stored in the dedicated scheduleexecutions table.
|
|
3868
3953
|
*/
|
|
3869
3954
|
export type SandboxScheduleExecution = {
|
|
3870
3955
|
/**
|
|
@@ -3887,10 +3972,18 @@ export type SandboxScheduleExecution = {
|
|
|
3887
3972
|
* Name of the process started in the sandbox for this execution, used to look up its logs.
|
|
3888
3973
|
*/
|
|
3889
3974
|
processName?: string;
|
|
3975
|
+
/**
|
|
3976
|
+
* Name of the sandbox this execution belongs to.
|
|
3977
|
+
*/
|
|
3978
|
+
readonly sandbox?: string;
|
|
3890
3979
|
/**
|
|
3891
3980
|
* Id of the schedule this execution belongs to.
|
|
3892
3981
|
*/
|
|
3893
3982
|
scheduleId?: string;
|
|
3983
|
+
/**
|
|
3984
|
+
* Whether submitting the process request was accepted. This is not the process completion status.
|
|
3985
|
+
*/
|
|
3986
|
+
status?: 'succeeded' | 'failed';
|
|
3894
3987
|
/**
|
|
3895
3988
|
* HTTP status code returned when the scheduled command was submitted to the sandbox (0 if the sandbox could not be reached). 2xx/3xx means the command was accepted.
|
|
3896
3989
|
*/
|
|
@@ -3901,7 +3994,7 @@ export type SandboxScheduleExecution = {
|
|
|
3901
3994
|
timeout?: number;
|
|
3902
3995
|
};
|
|
3903
3996
|
/**
|
|
3904
|
-
* One recorded execution of a sandbox schedule.
|
|
3997
|
+
* One recorded execution of a sandbox schedule. status and statusCode describe whether the scheduler's process submission was accepted; the scheduler does not wait for the process to finish. Stored in the dedicated scheduleexecutions table.
|
|
3905
3998
|
*/
|
|
3906
3999
|
export type SandboxScheduleExecutionWritable = {
|
|
3907
4000
|
/**
|
|
@@ -3924,6 +4017,10 @@ export type SandboxScheduleExecutionWritable = {
|
|
|
3924
4017
|
* Id of the schedule this execution belongs to.
|
|
3925
4018
|
*/
|
|
3926
4019
|
scheduleId?: string;
|
|
4020
|
+
/**
|
|
4021
|
+
* Whether submitting the process request was accepted. This is not the process completion status.
|
|
4022
|
+
*/
|
|
4023
|
+
status?: 'succeeded' | 'failed';
|
|
3927
4024
|
/**
|
|
3928
4025
|
* HTTP status code returned when the scheduled command was submitted to the sandbox (0 if the sandbox could not be reached). 2xx/3xx means the command was accepted.
|
|
3929
4026
|
*/
|
|
@@ -3953,6 +4050,19 @@ export type SandboxScheduleExecutionListWritable = {
|
|
|
3953
4050
|
data?: Array<SandboxScheduleExecutionWritable>;
|
|
3954
4051
|
meta?: PaginationMeta;
|
|
3955
4052
|
};
|
|
4053
|
+
/**
|
|
4054
|
+
* Schedule execution counts grouped by submission acceptance status.
|
|
4055
|
+
*/
|
|
4056
|
+
export type SandboxScheduleExecutionStatusMetrics = {
|
|
4057
|
+
/**
|
|
4058
|
+
* Number of process submissions that were not accepted.
|
|
4059
|
+
*/
|
|
4060
|
+
failed?: number;
|
|
4061
|
+
/**
|
|
4062
|
+
* Number of process submissions accepted by the sandbox.
|
|
4063
|
+
*/
|
|
4064
|
+
succeeded?: number;
|
|
4065
|
+
};
|
|
3956
4066
|
/**
|
|
3957
4067
|
* Process execution configuration for a scheduled sandbox task
|
|
3958
4068
|
*/
|
|
@@ -3984,6 +4094,32 @@ export type SandboxScheduleInput = {
|
|
|
3984
4094
|
*/
|
|
3985
4095
|
workingDir?: string;
|
|
3986
4096
|
};
|
|
4097
|
+
/**
|
|
4098
|
+
* Workspace sandbox scheduling metrics for a UTC minute window. since is inclusive and until is exclusive.
|
|
4099
|
+
*/
|
|
4100
|
+
export type SandboxScheduleMetrics = {
|
|
4101
|
+
/**
|
|
4102
|
+
* Number of schedule execution submissions in the selected window.
|
|
4103
|
+
*/
|
|
4104
|
+
executions?: number;
|
|
4105
|
+
executionsByStatus?: SandboxScheduleExecutionStatusMetrics;
|
|
4106
|
+
/**
|
|
4107
|
+
* Number of active sandboxes in the workspace.
|
|
4108
|
+
*/
|
|
4109
|
+
sandboxes?: number;
|
|
4110
|
+
/**
|
|
4111
|
+
* Number of schedules in the workspace.
|
|
4112
|
+
*/
|
|
4113
|
+
schedules?: number;
|
|
4114
|
+
/**
|
|
4115
|
+
* Inclusive beginning of the metrics window, normalized to a UTC minute.
|
|
4116
|
+
*/
|
|
4117
|
+
since?: string;
|
|
4118
|
+
/**
|
|
4119
|
+
* Exclusive end of the metrics window, normalized to a UTC minute.
|
|
4120
|
+
*/
|
|
4121
|
+
until?: string;
|
|
4122
|
+
};
|
|
3987
4123
|
/**
|
|
3988
4124
|
* A point-in-time snapshot of a sandbox that can be used for forking into a new sandbox or application.
|
|
3989
4125
|
*/
|
|
@@ -4051,7 +4187,7 @@ export type SandboxSpec = {
|
|
|
4051
4187
|
/**
|
|
4052
4188
|
* Deployment status of a resource deployed on Blaxel
|
|
4053
4189
|
*/
|
|
4054
|
-
export type Status = 'DELETING' | 'TERMINATED' | 'FAILED' | 'DEACTIVATED' | 'DEACTIVATING' | 'UPLOADING' | 'BUILDING' | 'DEPLOYING' | 'DEPLOYED' | 'BUILT';
|
|
4190
|
+
export type Status = 'DELETING' | 'TERMINATED' | 'FAILED' | 'DEACTIVATED' | 'DEACTIVATING' | 'UPLOADING' | 'BUILDING' | 'DEPLOYING' | 'DEPLOYED' | 'BUILT' | 'ARCHIVING' | 'ARCHIVED' | 'UNARCHIVING';
|
|
4055
4191
|
/**
|
|
4056
4192
|
* Blaxel template
|
|
4057
4193
|
*/
|
|
@@ -7582,6 +7718,47 @@ export type UpdateSandboxResponses = {
|
|
|
7582
7718
|
200: Sandbox;
|
|
7583
7719
|
};
|
|
7584
7720
|
export type UpdateSandboxResponse = UpdateSandboxResponses[keyof UpdateSandboxResponses];
|
|
7721
|
+
export type ArchiveSandboxData = {
|
|
7722
|
+
body?: never;
|
|
7723
|
+
path: {
|
|
7724
|
+
/**
|
|
7725
|
+
* Name of the sandbox to archive
|
|
7726
|
+
*/
|
|
7727
|
+
sandboxName: string;
|
|
7728
|
+
};
|
|
7729
|
+
query?: never;
|
|
7730
|
+
url: '/sandboxes/{sandboxName}/archive';
|
|
7731
|
+
};
|
|
7732
|
+
export type ArchiveSandboxErrors = {
|
|
7733
|
+
/**
|
|
7734
|
+
* Unauthorized - Invalid or missing authentication credentials
|
|
7735
|
+
*/
|
|
7736
|
+
401: _Error;
|
|
7737
|
+
/**
|
|
7738
|
+
* Forbidden - Insufficient permissions to archive this sandbox
|
|
7739
|
+
*/
|
|
7740
|
+
403: _Error;
|
|
7741
|
+
/**
|
|
7742
|
+
* Not found - Sandbox does not exist
|
|
7743
|
+
*/
|
|
7744
|
+
404: _Error;
|
|
7745
|
+
/**
|
|
7746
|
+
* Conflict - The sandbox is already archived or is not running
|
|
7747
|
+
*/
|
|
7748
|
+
409: _Error;
|
|
7749
|
+
/**
|
|
7750
|
+
* Internal server error
|
|
7751
|
+
*/
|
|
7752
|
+
500: _Error;
|
|
7753
|
+
};
|
|
7754
|
+
export type ArchiveSandboxError = ArchiveSandboxErrors[keyof ArchiveSandboxErrors];
|
|
7755
|
+
export type ArchiveSandboxResponses = {
|
|
7756
|
+
/**
|
|
7757
|
+
* Sandbox archived successfully
|
|
7758
|
+
*/
|
|
7759
|
+
200: Sandbox;
|
|
7760
|
+
};
|
|
7761
|
+
export type ArchiveSandboxResponse = ArchiveSandboxResponses[keyof ArchiveSandboxResponses];
|
|
7585
7762
|
export type ForkSandboxData = {
|
|
7586
7763
|
body: SandboxForkRequest;
|
|
7587
7764
|
path: {
|
|
@@ -7819,9 +7996,9 @@ export type ListSandboxScheduleExecutionsData = {
|
|
|
7819
7996
|
*/
|
|
7820
7997
|
cursor?: string;
|
|
7821
7998
|
/**
|
|
7822
|
-
* Sort
|
|
7999
|
+
* Sort by creation time. Defaults to newest first.
|
|
7823
8000
|
*/
|
|
7824
|
-
sort?: 'createdAt:desc' | 'createdAt:asc'
|
|
8001
|
+
sort?: 'createdAt:desc' | 'createdAt:asc';
|
|
7825
8002
|
/**
|
|
7826
8003
|
* Substring search across `metadata.name`, `metadata.displayName` and labels (keys + values). Trimmed and lowercased server-side; queries shorter than 2 characters fall back to the unfiltered listing. Bound into the cursor fingerprint so a cursor opened with one query cannot be reused with another. Only honoured starting on Blaxel-Version 2026-04-28.
|
|
7827
8004
|
*/
|
|
@@ -7854,9 +8031,9 @@ export type ListSandboxSchedulesData = {
|
|
|
7854
8031
|
*/
|
|
7855
8032
|
cursor?: string;
|
|
7856
8033
|
/**
|
|
7857
|
-
* Sort
|
|
8034
|
+
* Sort by creation time. Defaults to newest first.
|
|
7858
8035
|
*/
|
|
7859
|
-
sort?: 'createdAt:desc' | 'createdAt:asc'
|
|
8036
|
+
sort?: 'createdAt:desc' | 'createdAt:asc';
|
|
7860
8037
|
/**
|
|
7861
8038
|
* Substring search across `metadata.name`, `metadata.displayName` and labels (keys + values). Trimmed and lowercased server-side; queries shorter than 2 characters fall back to the unfiltered listing. Bound into the cursor fingerprint so a cursor opened with one query cannot be reused with another. Only honoured starting on Blaxel-Version 2026-04-28.
|
|
7862
8039
|
*/
|
|
@@ -8046,6 +8223,80 @@ export type DeleteSandboxSnapshotResponses = {
|
|
|
8046
8223
|
204: void;
|
|
8047
8224
|
};
|
|
8048
8225
|
export type DeleteSandboxSnapshotResponse = DeleteSandboxSnapshotResponses[keyof DeleteSandboxSnapshotResponses];
|
|
8226
|
+
export type RestoreSandboxSnapshotData = {
|
|
8227
|
+
body?: never;
|
|
8228
|
+
path: {
|
|
8229
|
+
/**
|
|
8230
|
+
* Name of the sandbox to restore
|
|
8231
|
+
*/
|
|
8232
|
+
sandboxName: string;
|
|
8233
|
+
/**
|
|
8234
|
+
* ID of the snapshot to restore the sandbox to
|
|
8235
|
+
*/
|
|
8236
|
+
snapshotId: string;
|
|
8237
|
+
};
|
|
8238
|
+
query?: never;
|
|
8239
|
+
url: '/sandboxes/{sandboxName}/snapshots/{snapshotId}/restore';
|
|
8240
|
+
};
|
|
8241
|
+
export type RestoreSandboxSnapshotErrors = {
|
|
8242
|
+
/**
|
|
8243
|
+
* Not found - Sandbox or snapshot does not exist
|
|
8244
|
+
*/
|
|
8245
|
+
404: _Error;
|
|
8246
|
+
/**
|
|
8247
|
+
* Internal server error
|
|
8248
|
+
*/
|
|
8249
|
+
500: _Error;
|
|
8250
|
+
};
|
|
8251
|
+
export type RestoreSandboxSnapshotError = RestoreSandboxSnapshotErrors[keyof RestoreSandboxSnapshotErrors];
|
|
8252
|
+
export type RestoreSandboxSnapshotResponses = {
|
|
8253
|
+
/**
|
|
8254
|
+
* Sandbox restored successfully
|
|
8255
|
+
*/
|
|
8256
|
+
200: SandboxRestoreResponse;
|
|
8257
|
+
};
|
|
8258
|
+
export type RestoreSandboxSnapshotResponse = RestoreSandboxSnapshotResponses[keyof RestoreSandboxSnapshotResponses];
|
|
8259
|
+
export type UnarchiveSandboxData = {
|
|
8260
|
+
body?: never;
|
|
8261
|
+
path: {
|
|
8262
|
+
/**
|
|
8263
|
+
* Name of the sandbox to unarchive
|
|
8264
|
+
*/
|
|
8265
|
+
sandboxName: string;
|
|
8266
|
+
};
|
|
8267
|
+
query?: never;
|
|
8268
|
+
url: '/sandboxes/{sandboxName}/unarchive';
|
|
8269
|
+
};
|
|
8270
|
+
export type UnarchiveSandboxErrors = {
|
|
8271
|
+
/**
|
|
8272
|
+
* Unauthorized - Invalid or missing authentication credentials
|
|
8273
|
+
*/
|
|
8274
|
+
401: _Error;
|
|
8275
|
+
/**
|
|
8276
|
+
* Forbidden - Insufficient permissions to unarchive this sandbox
|
|
8277
|
+
*/
|
|
8278
|
+
403: _Error;
|
|
8279
|
+
/**
|
|
8280
|
+
* Not found - Sandbox does not exist
|
|
8281
|
+
*/
|
|
8282
|
+
404: _Error;
|
|
8283
|
+
/**
|
|
8284
|
+
* Conflict - The sandbox is not archived
|
|
8285
|
+
*/
|
|
8286
|
+
409: _Error;
|
|
8287
|
+
/**
|
|
8288
|
+
* Internal server error
|
|
8289
|
+
*/
|
|
8290
|
+
500: _Error;
|
|
8291
|
+
};
|
|
8292
|
+
export type UnarchiveSandboxError = UnarchiveSandboxErrors[keyof UnarchiveSandboxErrors];
|
|
8293
|
+
export type UnarchiveSandboxResponses = {
|
|
8294
|
+
/**
|
|
8295
|
+
* Sandbox recreated successfully
|
|
8296
|
+
*/
|
|
8297
|
+
200: Sandbox;
|
|
8298
|
+
};
|
|
8299
|
+
export type UnarchiveSandboxResponse = UnarchiveSandboxResponses[keyof UnarchiveSandboxResponses];
|
|
8049
8300
|
export type GetSandboxByExternalIdData = {
|
|
8050
8301
|
body?: never;
|
|
8051
8302
|
path: {
|
|
@@ -8083,6 +8334,116 @@ export type GetSandboxByExternalIdResponses = {
|
|
|
8083
8334
|
200: Sandbox;
|
|
8084
8335
|
};
|
|
8085
8336
|
export type GetSandboxByExternalIdResponse = GetSandboxByExternalIdResponses[keyof GetSandboxByExternalIdResponses];
|
|
8337
|
+
export type ListScheduleExecutionsData = {
|
|
8338
|
+
body?: never;
|
|
8339
|
+
path?: never;
|
|
8340
|
+
query?: {
|
|
8341
|
+
/**
|
|
8342
|
+
* Number of items per page
|
|
8343
|
+
*/
|
|
8344
|
+
limit?: number;
|
|
8345
|
+
/**
|
|
8346
|
+
* Opaque cursor returned by a previous response's meta.nextCursor. Only valid for the same query (workspace + filters); the server rejects cursors bound to a different query or older than 24h. Omit on the first page.
|
|
8347
|
+
*/
|
|
8348
|
+
cursor?: string;
|
|
8349
|
+
/**
|
|
8350
|
+
* Sort by creation time. Defaults to newest first.
|
|
8351
|
+
*/
|
|
8352
|
+
sort?: 'createdAt:desc' | 'createdAt:asc';
|
|
8353
|
+
/**
|
|
8354
|
+
* Substring search across `metadata.name`, `metadata.displayName` and labels (keys + values). Trimmed and lowercased server-side; queries shorter than 2 characters fall back to the unfiltered listing. Bound into the cursor fingerprint so a cursor opened with one query cannot be reused with another. Only honoured starting on Blaxel-Version 2026-04-28.
|
|
8355
|
+
*/
|
|
8356
|
+
q?: string;
|
|
8357
|
+
/**
|
|
8358
|
+
* Filter by process submission acceptance status. Historical rows without status do not match this filter.
|
|
8359
|
+
*/
|
|
8360
|
+
status?: 'succeeded' | 'failed';
|
|
8361
|
+
/**
|
|
8362
|
+
* Filter by sandbox name.
|
|
8363
|
+
*/
|
|
8364
|
+
sandbox?: string;
|
|
8365
|
+
/**
|
|
8366
|
+
* Filter by schedule id.
|
|
8367
|
+
*/
|
|
8368
|
+
schedule?: string;
|
|
8369
|
+
/**
|
|
8370
|
+
* Inclusive beginning of the createdAt window, as RFC 3339.
|
|
8371
|
+
*/
|
|
8372
|
+
since?: string;
|
|
8373
|
+
/**
|
|
8374
|
+
* Inclusive end of the createdAt window, as RFC 3339.
|
|
8375
|
+
*/
|
|
8376
|
+
until?: string;
|
|
8377
|
+
};
|
|
8378
|
+
url: '/schedule-executions';
|
|
8379
|
+
};
|
|
8380
|
+
export type ListScheduleExecutionsResponses = {
|
|
8381
|
+
/**
|
|
8382
|
+
* successful operation
|
|
8383
|
+
*/
|
|
8384
|
+
200: SandboxScheduleExecutionList;
|
|
8385
|
+
};
|
|
8386
|
+
export type ListScheduleExecutionsResponse = ListScheduleExecutionsResponses[keyof ListScheduleExecutionsResponses];
|
|
8387
|
+
export type ListSchedulesData = {
|
|
8388
|
+
body?: never;
|
|
8389
|
+
path?: never;
|
|
8390
|
+
query?: {
|
|
8391
|
+
/**
|
|
8392
|
+
* Number of items per page
|
|
8393
|
+
*/
|
|
8394
|
+
limit?: number;
|
|
8395
|
+
/**
|
|
8396
|
+
* Opaque cursor returned by a previous response's meta.nextCursor. Only valid for the same query (workspace + filters); the server rejects cursors bound to a different query or older than 24h. Omit on the first page.
|
|
8397
|
+
*/
|
|
8398
|
+
cursor?: string;
|
|
8399
|
+
/**
|
|
8400
|
+
* Sort by creation time. Defaults to newest first.
|
|
8401
|
+
*/
|
|
8402
|
+
sort?: 'createdAt:desc' | 'createdAt:asc';
|
|
8403
|
+
/**
|
|
8404
|
+
* Substring search across `metadata.name`, `metadata.displayName` and labels (keys + values). Trimmed and lowercased server-side; queries shorter than 2 characters fall back to the unfiltered listing. Bound into the cursor fingerprint so a cursor opened with one query cannot be reused with another. Only honoured starting on Blaxel-Version 2026-04-28.
|
|
8405
|
+
*/
|
|
8406
|
+
q?: string;
|
|
8407
|
+
/**
|
|
8408
|
+
* Filter by sandbox name.
|
|
8409
|
+
*/
|
|
8410
|
+
sandbox?: string;
|
|
8411
|
+
/**
|
|
8412
|
+
* Filter schedules by stored timing type. sleep resolves to at before persistence.
|
|
8413
|
+
*/
|
|
8414
|
+
type?: 'cron' | 'at';
|
|
8415
|
+
};
|
|
8416
|
+
url: '/schedules';
|
|
8417
|
+
};
|
|
8418
|
+
export type ListSchedulesResponses = {
|
|
8419
|
+
/**
|
|
8420
|
+
* successful operation
|
|
8421
|
+
*/
|
|
8422
|
+
200: SandboxScheduleEntryList;
|
|
8423
|
+
};
|
|
8424
|
+
export type ListSchedulesResponse = ListSchedulesResponses[keyof ListSchedulesResponses];
|
|
8425
|
+
export type GetSandboxScheduleMetricsData = {
|
|
8426
|
+
body?: never;
|
|
8427
|
+
path?: never;
|
|
8428
|
+
query?: {
|
|
8429
|
+
/**
|
|
8430
|
+
* Inclusive beginning of the metrics window, as RFC 3339. Normalized down to a UTC minute, must be within the last 7 days, and defaults to 24 hours before until.
|
|
8431
|
+
*/
|
|
8432
|
+
since?: string;
|
|
8433
|
+
/**
|
|
8434
|
+
* Exclusive end of the metrics window, as RFC 3339. Normalized down to a UTC minute and defaults to the current minute.
|
|
8435
|
+
*/
|
|
8436
|
+
until?: string;
|
|
8437
|
+
};
|
|
8438
|
+
url: '/schedules/metrics';
|
|
8439
|
+
};
|
|
8440
|
+
export type GetSandboxScheduleMetricsResponses = {
|
|
8441
|
+
/**
|
|
8442
|
+
* successful operation
|
|
8443
|
+
*/
|
|
8444
|
+
200: SandboxScheduleMetrics;
|
|
8445
|
+
};
|
|
8446
|
+
export type GetSandboxScheduleMetricsResponse = GetSandboxScheduleMetricsResponses[keyof GetSandboxScheduleMetricsResponses];
|
|
8086
8447
|
export type GetWorkspaceServiceAccountsData = {
|
|
8087
8448
|
body?: never;
|
|
8088
8449
|
path?: never;
|
|
@@ -11,6 +11,15 @@ export type Config = {
|
|
|
11
11
|
proxy?: string;
|
|
12
12
|
apikey?: string;
|
|
13
13
|
workspace?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Product token identifying the integration built on this SDK, appended to
|
|
16
|
+
* the `User-Agent` so Blaxel can attribute traffic to it. Format
|
|
17
|
+
* `<name>/<semver>` with a lowercase name, e.g.
|
|
18
|
+
* `"deepseek-harness-blaxel-sandbox/0.1.2"`. Also settable through
|
|
19
|
+
* `BL_INTEGRATION` or `settings.integration`. An invalid value is ignored
|
|
20
|
+
* with a warning.
|
|
21
|
+
*/
|
|
22
|
+
integration?: string;
|
|
14
23
|
/**
|
|
15
24
|
* Disables the SDK-managed HTTP/2 transport. Defaults to `false` (H2 on);
|
|
16
25
|
* set this to `true` (or `BL_DISABLE_H2=1`) to opt out of H2. Note that H2 is
|
|
@@ -104,6 +113,12 @@ declare class Settings {
|
|
|
104
113
|
get commit(): string;
|
|
105
114
|
get sentryDsn(): string;
|
|
106
115
|
get apiVersion(): string;
|
|
116
|
+
/**
|
|
117
|
+
* Product token identifying the integration built on this SDK, or `""`.
|
|
118
|
+
* Resolved from `config.integration`, then `BL_INTEGRATION`. See `Config.integration`.
|
|
119
|
+
*/
|
|
120
|
+
get integration(): string;
|
|
121
|
+
set integration(value: string | undefined);
|
|
107
122
|
get headers(): Record<string, string>;
|
|
108
123
|
get name(): string;
|
|
109
124
|
get type(): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quote a string so a POSIX shell reads it as one literal argument.
|
|
3
|
+
*
|
|
4
|
+
* The sandbox process API accepts a single command string, which the server
|
|
5
|
+
* runs as `sh -c <command>`. Any value interpolated into that string is parsed
|
|
6
|
+
* by the shell, so an unquoted path containing `;`, `|`, `&&`, `$()`, backticks
|
|
7
|
+
* or `>` would execute as its own command. Single quotes suppress every form of
|
|
8
|
+
* shell expansion; the only character they cannot contain is a single quote
|
|
9
|
+
* itself, which is closed, escaped, and reopened.
|
|
10
|
+
*
|
|
11
|
+
* This is the TypeScript equivalent of Python's `shlex.quote`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function shellQuote(value: string): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type http2 from "http2";
|
|
2
|
-
import { type ListSandboxesData, type SandboxForkResponse, type SandboxLifecycle, type Sandbox as SandboxModel, type SandboxSnapshot, type SandboxSnapshots } from "../client/index.js";
|
|
2
|
+
import { type ListSandboxesData, type SandboxForkResponse, type SandboxLifecycle, type Sandbox as SandboxModel, type SandboxRestoreResponse, type SandboxSnapshot, type SandboxSnapshots } from "../client/index.js";
|
|
3
3
|
import { SandboxCodegen } from "./codegen/index.js";
|
|
4
4
|
import { SandboxDrive } from "./drive/index.js";
|
|
5
5
|
import { SandboxFileSystem } from "./filesystem/index.js";
|
|
@@ -29,6 +29,15 @@ export type SandboxForkOptions = {
|
|
|
29
29
|
*/
|
|
30
30
|
snapshotId?: string;
|
|
31
31
|
};
|
|
32
|
+
/** How long to wait for an archive, or its restore, to finish. */
|
|
33
|
+
export type SandboxArchiveOptions = {
|
|
34
|
+
/** Wait for the archive/restore to finish. Defaults to true. */
|
|
35
|
+
wait?: boolean;
|
|
36
|
+
/** Give up after this many milliseconds. Defaults to 30 minutes. */
|
|
37
|
+
maxWait?: number;
|
|
38
|
+
/** Milliseconds between two reads of the sandbox. Defaults to 2 seconds. */
|
|
39
|
+
interval?: number;
|
|
40
|
+
};
|
|
32
41
|
export declare class SandboxInstance {
|
|
33
42
|
private sandbox;
|
|
34
43
|
fs: SandboxFileSystem;
|
|
@@ -85,6 +94,18 @@ export declare class SandboxInstance {
|
|
|
85
94
|
* Delete a snapshot of this sandbox by its ID.
|
|
86
95
|
*/
|
|
87
96
|
deleteSnapshot(snapshotId: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Restore this sandbox to one of its own snapshots. The sandbox keeps its
|
|
99
|
+
* name, its URLs and its previews: the running instance is torn down and
|
|
100
|
+
* rebuilt from the snapshot, so everything written since it was taken is
|
|
101
|
+
* lost unless it was snapshotted too.
|
|
102
|
+
*
|
|
103
|
+
* The restore is asked for without waiting on the guest, the same way a fork
|
|
104
|
+
* is: connections to a sandbox still resuming are retried by the gateway.
|
|
105
|
+
*
|
|
106
|
+
* @param snapshotId - ID of the snapshot to restore this sandbox to.
|
|
107
|
+
*/
|
|
108
|
+
restore(snapshotId: string): Promise<SandboxRestoreResponse>;
|
|
88
109
|
/**
|
|
89
110
|
* Fork this sandbox into a new sandbox or application.
|
|
90
111
|
*
|
|
@@ -103,6 +124,40 @@ export declare class SandboxInstance {
|
|
|
103
124
|
safe?: boolean;
|
|
104
125
|
createIfNotExist?: boolean;
|
|
105
126
|
}): Promise<SandboxInstance>;
|
|
127
|
+
/**
|
|
128
|
+
* Archive a sandbox: keep its filesystem, stop the sandbox.
|
|
129
|
+
*
|
|
130
|
+
* The filesystem changes made over the image are exported to the archive store
|
|
131
|
+
* and the sandbox is shut down; memory and running processes are lost, and the
|
|
132
|
+
* saved processes start again from their configuration when the sandbox is
|
|
133
|
+
* unarchived. The export runs in the background: this waits until the sandbox
|
|
134
|
+
* is ARCHIVED, pass `{ wait: false }` to return as soon as it is launched.
|
|
135
|
+
*/
|
|
136
|
+
static archive(sandboxName: string, options?: SandboxArchiveOptions): Promise<SandboxInstance>;
|
|
137
|
+
/**
|
|
138
|
+
* Archive this sandbox: keep its filesystem, stop the sandbox.
|
|
139
|
+
*
|
|
140
|
+
* @see SandboxInstance.archive
|
|
141
|
+
*/
|
|
142
|
+
archive(options?: SandboxArchiveOptions): Promise<this>;
|
|
143
|
+
/**
|
|
144
|
+
* Recreate an archived sandbox from its archive.
|
|
145
|
+
*
|
|
146
|
+
* The sandbox is started again from its image, and the archived filesystem is
|
|
147
|
+
* written back over it. The sandbox answers, and its terminal is reachable, while the archived
|
|
148
|
+
* filesystem is written back over its image. This waits until the restore is
|
|
149
|
+
* done and the saved processes are running again; pass `{ wait: false }` to
|
|
150
|
+
* return while the sandbox is still UNARCHIVING.
|
|
151
|
+
*/
|
|
152
|
+
static unarchive(sandboxName: string, options?: SandboxArchiveOptions): Promise<SandboxInstance>;
|
|
153
|
+
/**
|
|
154
|
+
* Recreate this sandbox from its archive.
|
|
155
|
+
*
|
|
156
|
+
* @see SandboxInstance.unarchive
|
|
157
|
+
*/
|
|
158
|
+
unarchive(options?: SandboxArchiveOptions): Promise<this>;
|
|
159
|
+
private refreshFrom;
|
|
160
|
+
private static waitForArchiveStatus;
|
|
106
161
|
static get(sandboxName: string): Promise<SandboxInstance>;
|
|
107
162
|
static getByExternalId(externalId: string): Promise<SandboxInstance>;
|
|
108
163
|
/**
|
|
@@ -25,7 +25,7 @@ export declare class SandboxSchedules {
|
|
|
25
25
|
list(options?: SandboxScheduleListOptions): Promise<import("../common/pagination.js").PaginatedList<SandboxScheduleEntry, {
|
|
26
26
|
limit?: number;
|
|
27
27
|
cursor?: string;
|
|
28
|
-
sort?: "createdAt:desc" | "createdAt:asc"
|
|
28
|
+
sort?: "createdAt:desc" | "createdAt:asc";
|
|
29
29
|
q?: string;
|
|
30
30
|
type?: "cron" | "at";
|
|
31
31
|
}>>;
|
|
@@ -43,7 +43,7 @@ export declare class SandboxSchedules {
|
|
|
43
43
|
executions(options?: SandboxScheduleExecutionListOptions): Promise<import("../common/pagination.js").PaginatedList<SandboxScheduleExecution, {
|
|
44
44
|
limit?: number;
|
|
45
45
|
cursor?: string;
|
|
46
|
-
sort?: "createdAt:desc" | "createdAt:asc"
|
|
46
|
+
sort?: "createdAt:desc" | "createdAt:asc";
|
|
47
47
|
q?: string;
|
|
48
48
|
}>>;
|
|
49
49
|
}
|