@inquir/compute 0.4.2 → 0.4.5
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/README.md +60 -1
- package/dist/apps.d.ts +270 -12
- package/dist/apps.d.ts.map +1 -1
- package/dist/apps.js +30 -2
- package/dist/apps.js.map +1 -1
- package/dist/compose.d.ts +51 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +13 -0
- package/dist/compose.js.map +1 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +2 -8
- package/dist/discovery.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/local-runner.d.ts.map +1 -1
- package/dist/local-runner.js +2 -8
- package/dist/local-runner.js.map +1 -1
- package/dist/replica-roles.d.ts +51 -0
- package/dist/replica-roles.d.ts.map +1 -0
- package/dist/replica-roles.js +8 -0
- package/dist/replica-roles.js.map +1 -0
- package/dist/sandboxes.d.ts +434 -0
- package/dist/sandboxes.d.ts.map +1 -0
- package/dist/sandboxes.js +359 -0
- package/dist/sandboxes.js.map +1 -0
- package/dist/system-packages.d.ts +2592 -0
- package/dist/system-packages.d.ts.map +1 -0
- package/dist/system-packages.js +605 -0
- package/dist/system-packages.js.map +1 -0
- package/dist/transport.d.ts +43 -5
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +13 -1
- package/dist/transport.js.map +1 -1
- package/dist/tsx-loader.d.ts +9 -0
- package/dist/tsx-loader.d.ts.map +1 -0
- package/dist/tsx-loader.js +26 -0
- package/dist/tsx-loader.js.map +1 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `client.sandboxes`: isolated, short-lived Linux environments for agents,
|
|
3
|
+
* builds and untrusted code (docs/roadmap/SANDBOXES.md §5, §6.3).
|
|
4
|
+
*
|
|
5
|
+
* The spec is the one `SandboxSpec` every surface speaks (REST body, CLI
|
|
6
|
+
* flags, MCP tool input, dashboard form): no SDK-only shape. Every call maps
|
|
7
|
+
* onto one /v1/sandboxes endpoint:
|
|
8
|
+
*
|
|
9
|
+
* create POST /v1/sandboxes (?wait=running, Idempotency-Key)
|
|
10
|
+
* list GET /v1/sandboxes (?status=all, ?limit, ?cursor)
|
|
11
|
+
* get GET /v1/sandboxes/:id
|
|
12
|
+
* exec POST /v1/sandboxes/:id/exec (NDJSON stream: start, stdout/stderr, exit | error)
|
|
13
|
+
* files.* PUT/GET /v1/sandboxes/:id/files?path= (a file, or a directory as tar)
|
|
14
|
+
* keepAlive POST /v1/sandboxes/:id/keepalive
|
|
15
|
+
* destroy DELETE /v1/sandboxes/:id
|
|
16
|
+
*
|
|
17
|
+
* `create` and `get` return a {@link Sandbox} handle bound to one sandbox;
|
|
18
|
+
* with `await using` it is destroyed when the block exits.
|
|
19
|
+
*/
|
|
20
|
+
import { type TransportClient } from './transport.js';
|
|
21
|
+
/** The SandboxSpec (§5.1). Every field is optional; the plan supplies defaults. */
|
|
22
|
+
export interface SandboxSpec {
|
|
23
|
+
/** Unique among the workspace's live sandboxes: lowercase letters, digits and dashes, 1-63. */
|
|
24
|
+
name?: string;
|
|
25
|
+
/** An image alias configured on the platform (default: the platform image). */
|
|
26
|
+
image?: string;
|
|
27
|
+
region?: 'auto' | 'ru' | 'nl';
|
|
28
|
+
resources?: {
|
|
29
|
+
vcpu?: number;
|
|
30
|
+
memoryMb?: number;
|
|
31
|
+
diskGb?: number;
|
|
32
|
+
};
|
|
33
|
+
/** `none` (default): no network. `proxy`: fetch-only access to `allow` (presets such as npm, pypi, github, or hostnames). */
|
|
34
|
+
network?: {
|
|
35
|
+
mode?: 'none' | 'proxy' | 'open';
|
|
36
|
+
allow?: string[];
|
|
37
|
+
};
|
|
38
|
+
/** Plain values. Never pass platform credentials or secrets. */
|
|
39
|
+
env?: Record<string, string>;
|
|
40
|
+
/** Seconds, or `90s`, `15m`, `1h`, `1h30m`. */
|
|
41
|
+
lifetime?: {
|
|
42
|
+
idle?: number | string;
|
|
43
|
+
max?: number | string;
|
|
44
|
+
};
|
|
45
|
+
project?: string;
|
|
46
|
+
}
|
|
47
|
+
export type SandboxStatus = 'PENDING' | 'STARTING' | 'RUNNING' | 'STOPPING' | 'DESTROYED' | 'FAILED';
|
|
48
|
+
/** A sandbox as the API reports it (env values never leave the control plane: only `envKeys`). */
|
|
49
|
+
export interface SandboxInfo {
|
|
50
|
+
id: string;
|
|
51
|
+
name: string | null;
|
|
52
|
+
status: SandboxStatus;
|
|
53
|
+
image: string;
|
|
54
|
+
imageRef?: string;
|
|
55
|
+
region: string;
|
|
56
|
+
resources: {
|
|
57
|
+
vcpu: number;
|
|
58
|
+
memoryMb: number;
|
|
59
|
+
diskGb: number;
|
|
60
|
+
};
|
|
61
|
+
network: {
|
|
62
|
+
mode: string;
|
|
63
|
+
allow: string[];
|
|
64
|
+
};
|
|
65
|
+
envKeys: string[];
|
|
66
|
+
lifetime: {
|
|
67
|
+
idleSeconds: number;
|
|
68
|
+
maxSeconds: number;
|
|
69
|
+
};
|
|
70
|
+
project?: string | null;
|
|
71
|
+
createdAt: string;
|
|
72
|
+
startedAt: string | null;
|
|
73
|
+
lastActivityAt?: string;
|
|
74
|
+
idleExpiresAt: string;
|
|
75
|
+
expiresAt: string;
|
|
76
|
+
endedAt: string | null;
|
|
77
|
+
endReason: string | null;
|
|
78
|
+
failureCode: string | null;
|
|
79
|
+
execCount: number;
|
|
80
|
+
/** What this sandbox has used so far (recorded for billing, not charged). */
|
|
81
|
+
usage?: SandboxUsage;
|
|
82
|
+
}
|
|
83
|
+
export interface SandboxUsage {
|
|
84
|
+
seconds: number;
|
|
85
|
+
vcpuSeconds: number;
|
|
86
|
+
memoryGibSeconds: number;
|
|
87
|
+
diskGibSeconds: number;
|
|
88
|
+
}
|
|
89
|
+
/** GET /v1/sandboxes/usage: this calendar month (UTC) next to the plan's allowance. */
|
|
90
|
+
export interface SandboxUsageReport {
|
|
91
|
+
period: {
|
|
92
|
+
start: string;
|
|
93
|
+
end: string;
|
|
94
|
+
};
|
|
95
|
+
plan: string | null;
|
|
96
|
+
limits: {
|
|
97
|
+
concurrent: number;
|
|
98
|
+
hoursPerMonth: number;
|
|
99
|
+
maxVcpu: number;
|
|
100
|
+
maxMemoryMb: number;
|
|
101
|
+
maxDiskGb: number;
|
|
102
|
+
maxLifetimeSeconds: number;
|
|
103
|
+
networkModes: string[];
|
|
104
|
+
};
|
|
105
|
+
live: number;
|
|
106
|
+
usage: SandboxUsage & {
|
|
107
|
+
hours: number;
|
|
108
|
+
};
|
|
109
|
+
/** null: the plan has no monthly allowance. */
|
|
110
|
+
remainingSeconds: number | null;
|
|
111
|
+
}
|
|
112
|
+
/** A one-use, 60 s shell ticket: open `shellUrl(id)` offering `protocol` as the WebSocket subprotocol. */
|
|
113
|
+
export interface SandboxShellTicket {
|
|
114
|
+
ticket: string;
|
|
115
|
+
protocol: string;
|
|
116
|
+
expiresAt: string;
|
|
117
|
+
}
|
|
118
|
+
/** Client frames of the shell WebSocket. */
|
|
119
|
+
export type SandboxShellClientFrame = {
|
|
120
|
+
type: 'input';
|
|
121
|
+
data: string;
|
|
122
|
+
} | {
|
|
123
|
+
type: 'input';
|
|
124
|
+
dataBase64: string;
|
|
125
|
+
} | {
|
|
126
|
+
type: 'resize';
|
|
127
|
+
cols: number;
|
|
128
|
+
rows: number;
|
|
129
|
+
} | {
|
|
130
|
+
type: 'close';
|
|
131
|
+
};
|
|
132
|
+
/** Server frames of the shell WebSocket. */
|
|
133
|
+
export type SandboxShellServerFrame = {
|
|
134
|
+
type: 'ready';
|
|
135
|
+
sandboxId: string;
|
|
136
|
+
shellId: string;
|
|
137
|
+
shell: string;
|
|
138
|
+
} | {
|
|
139
|
+
type: 'output';
|
|
140
|
+
dataBase64: string;
|
|
141
|
+
} | {
|
|
142
|
+
type: 'exit';
|
|
143
|
+
exitCode: number | null;
|
|
144
|
+
} | {
|
|
145
|
+
type: 'error';
|
|
146
|
+
error: {
|
|
147
|
+
code: string;
|
|
148
|
+
message: string;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
/** GET /v1/sandboxes/:id/exec/:execId: the recorded outcome, and for a detached exec the tail of its output. */
|
|
152
|
+
export interface SandboxExecRecord {
|
|
153
|
+
id: string;
|
|
154
|
+
sandboxId: string;
|
|
155
|
+
status: string;
|
|
156
|
+
exitCode: number | null;
|
|
157
|
+
timedOut: boolean;
|
|
158
|
+
truncated: boolean;
|
|
159
|
+
stdoutBytes: number;
|
|
160
|
+
stderrBytes: number;
|
|
161
|
+
durationMs: number | null;
|
|
162
|
+
errorCode: string | null;
|
|
163
|
+
createdAt: string;
|
|
164
|
+
completedAt: string | null;
|
|
165
|
+
/** null for a streamed exec, or once the process that ran it no longer keeps it (10 min). */
|
|
166
|
+
output?: {
|
|
167
|
+
encoding: 'utf8' | 'base64';
|
|
168
|
+
stdout: string;
|
|
169
|
+
stderr: string;
|
|
170
|
+
droppedBytes: {
|
|
171
|
+
stdout: number;
|
|
172
|
+
stderr: number;
|
|
173
|
+
};
|
|
174
|
+
} | null;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Machine-readable refusals of the sandbox API (`ApiError.code`). Not
|
|
178
|
+
* exhaustive: a newer server may send a code this list does not have yet.
|
|
179
|
+
* `SANDBOX_PLAN_REQUIRED` (402): the workspace's plan does not include
|
|
180
|
+
* sandboxes (Pro and Enterprise only); `ApiError.payload.error.details` is
|
|
181
|
+
* {@link SandboxPlanRequiredDetails}.
|
|
182
|
+
*/
|
|
183
|
+
export type SandboxErrorCode = 'SANDBOXES_NOT_ENABLED' | 'SANDBOX_PLAN_REQUIRED' | 'SANDBOX_SCOPE_REQUIRED' | 'SANDBOX_QUOTA_EXCEEDED' | 'SANDBOX_NETWORK_MODE_UNAVAILABLE' | 'SANDBOX_IMAGE_UNAVAILABLE' | 'SANDBOX_CAPACITY_UNAVAILABLE' | 'SANDBOXES_DRAINING' | 'SANDBOX_NOT_FOUND' | 'SANDBOX_NOT_RUNNING' | 'SANDBOX_NAME_TAKEN' | 'IDEMPOTENCY_KEY_REUSED' | 'SANDBOX_RATE_LIMITED' | 'SANDBOX_RUNNER_UNAVAILABLE' | 'SANDBOX_FILE_TOO_LARGE' | 'SANDBOX_SHELL_UNAVAILABLE' | 'SANDBOX_SHELL_TICKET_INVALID' | 'SANDBOX_SHELL_TICKET_MISMATCH' | 'SANDBOX_SHELL_LIMIT' | 'SANDBOX_SHELL_IDLE_TIMEOUT' | 'SANDBOX_SHELL_OUTPUT_LIMIT' | 'SANDBOX_ENV_ENCRYPTION_UNAVAILABLE' | 'SANDBOX_DETACHED_LIMIT' | 'PLAN_CAPACITY_EXCEEDED';
|
|
184
|
+
/** `error.details` of a 402 SANDBOX_PLAN_REQUIRED. */
|
|
185
|
+
export interface SandboxPlanRequiredDetails {
|
|
186
|
+
/** Plan codes that include sandboxes, e.g. ["pro", "enterprise"]. */
|
|
187
|
+
requiredPlans: string[];
|
|
188
|
+
/** The console's plan page, relative to the console origin ("/billing"). */
|
|
189
|
+
billingPath: string;
|
|
190
|
+
}
|
|
191
|
+
export interface SandboxPage {
|
|
192
|
+
items: SandboxInfo[];
|
|
193
|
+
nextCursor: string | null;
|
|
194
|
+
}
|
|
195
|
+
/** S/M/L, the same presets as `inquir sandbox create --size` and the dashboard form. */
|
|
196
|
+
export declare const SANDBOX_SIZES: Readonly<Record<'s' | 'm' | 'l', {
|
|
197
|
+
vcpu: number;
|
|
198
|
+
memoryMb: number;
|
|
199
|
+
diskGb: number;
|
|
200
|
+
}>>;
|
|
201
|
+
export declare const LIVE_SANDBOX_STATUSES: readonly SandboxStatus[];
|
|
202
|
+
export interface SandboxExecOptions {
|
|
203
|
+
/** Working directory inside the sandbox (default: the image's, `/workspace`). */
|
|
204
|
+
cwd?: string;
|
|
205
|
+
env?: Record<string, string>;
|
|
206
|
+
/** 1 s to 15 min. */
|
|
207
|
+
timeoutMs?: number;
|
|
208
|
+
/** UTF-8 text fed to stdin, then EOF (at most 256 KiB). */
|
|
209
|
+
stdin?: string;
|
|
210
|
+
/** Aborting closes the stream, which cancels the exec on the server. */
|
|
211
|
+
signal?: AbortSignal;
|
|
212
|
+
}
|
|
213
|
+
export interface SandboxRunOptions extends SandboxExecOptions {
|
|
214
|
+
onStdout?: (text: string) => void;
|
|
215
|
+
onStderr?: (text: string) => void;
|
|
216
|
+
/**
|
|
217
|
+
* Keep stdout/stderr in the result (default true). Kept text is capped at
|
|
218
|
+
* `maxBufferedBytes` of UTF-8 per stream (default 16 MiB, the server's own
|
|
219
|
+
* cap), cut between characters; the callbacks still see everything.
|
|
220
|
+
*/
|
|
221
|
+
buffer?: boolean;
|
|
222
|
+
maxBufferedBytes?: number;
|
|
223
|
+
}
|
|
224
|
+
/** One frame of the exec stream. */
|
|
225
|
+
export type SandboxExecFrame = {
|
|
226
|
+
type: 'start';
|
|
227
|
+
execId: string;
|
|
228
|
+
} | {
|
|
229
|
+
type: 'stdout';
|
|
230
|
+
data: string;
|
|
231
|
+
} | {
|
|
232
|
+
type: 'stderr';
|
|
233
|
+
data: string;
|
|
234
|
+
} | {
|
|
235
|
+
type: 'exit';
|
|
236
|
+
exitCode: number | null;
|
|
237
|
+
timedOut: boolean;
|
|
238
|
+
truncated: boolean;
|
|
239
|
+
durationMs: number;
|
|
240
|
+
stdoutBytes: number;
|
|
241
|
+
stderrBytes: number;
|
|
242
|
+
} | {
|
|
243
|
+
type: 'error';
|
|
244
|
+
code: string;
|
|
245
|
+
message: string;
|
|
246
|
+
};
|
|
247
|
+
export interface SandboxExecResult {
|
|
248
|
+
execId: string | null;
|
|
249
|
+
/** null when the process was killed by a signal (timeout, cancel, output cap) or never reported a status. */
|
|
250
|
+
exitCode: number | null;
|
|
251
|
+
timedOut: boolean;
|
|
252
|
+
truncated: boolean;
|
|
253
|
+
durationMs: number;
|
|
254
|
+
stdout: string;
|
|
255
|
+
stderr: string;
|
|
256
|
+
/** Set when the exec ended without an exit status (`error` frame, or the stream ended early). */
|
|
257
|
+
errorCode?: string;
|
|
258
|
+
errorMessage?: string;
|
|
259
|
+
}
|
|
260
|
+
export type SandboxFileData = string | Uint8Array | ArrayBuffer | Blob;
|
|
261
|
+
/** What the dashboard reads before it shows the Sandboxes page; see `client.sandboxes.capabilities()`. */
|
|
262
|
+
export type SandboxCapabilities =
|
|
263
|
+
/** One reason for every "no": the platform's mode is not disclosed. */
|
|
264
|
+
{
|
|
265
|
+
enabled: false;
|
|
266
|
+
reason: 'unavailable';
|
|
267
|
+
}
|
|
268
|
+
/** The platform serves the workspace, its plan does not include sandboxes: nothing else is disclosed. */
|
|
269
|
+
| {
|
|
270
|
+
enabled: true;
|
|
271
|
+
planEligible: false;
|
|
272
|
+
requiredPlans: string[];
|
|
273
|
+
} | {
|
|
274
|
+
enabled: true;
|
|
275
|
+
/** Absent from servers before the plan gate. */
|
|
276
|
+
planEligible?: true;
|
|
277
|
+
draining: boolean;
|
|
278
|
+
canWrite: boolean;
|
|
279
|
+
images: string[];
|
|
280
|
+
networkModes: Array<'none' | 'proxy'>;
|
|
281
|
+
proxyPresets: string[];
|
|
282
|
+
limits: {
|
|
283
|
+
concurrent: number;
|
|
284
|
+
minVcpu: number;
|
|
285
|
+
maxVcpu: number;
|
|
286
|
+
maxMemoryMb: number;
|
|
287
|
+
maxDiskGb: number;
|
|
288
|
+
idleDefaultSeconds: number;
|
|
289
|
+
idleMaxSeconds: number;
|
|
290
|
+
lifetimeDefaultSeconds: number;
|
|
291
|
+
lifetimeMaxSeconds: number;
|
|
292
|
+
hoursPerMonth: number;
|
|
293
|
+
maxFileBytes: number;
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
export interface SandboxFilesApi {
|
|
297
|
+
/** Write one file (parents must exist; `/workspace` does). */
|
|
298
|
+
write(path: string, data: SandboxFileData, options?: {
|
|
299
|
+
signal?: AbortSignal;
|
|
300
|
+
}): Promise<{
|
|
301
|
+
path: string;
|
|
302
|
+
bytes: number;
|
|
303
|
+
}>;
|
|
304
|
+
read(path: string, options?: {
|
|
305
|
+
signal?: AbortSignal;
|
|
306
|
+
}): Promise<Uint8Array>;
|
|
307
|
+
readText(path: string, options?: {
|
|
308
|
+
signal?: AbortSignal;
|
|
309
|
+
}): Promise<string>;
|
|
310
|
+
/** Unpack a tar into a directory (no links, devices, absolute names or `..`). */
|
|
311
|
+
upload(directory: string, tar: SandboxFileData, options?: {
|
|
312
|
+
signal?: AbortSignal;
|
|
313
|
+
}): Promise<{
|
|
314
|
+
path: string;
|
|
315
|
+
bytes: number;
|
|
316
|
+
}>;
|
|
317
|
+
/** A directory as a tar. */
|
|
318
|
+
download(directory: string, options?: {
|
|
319
|
+
signal?: AbortSignal;
|
|
320
|
+
}): Promise<Uint8Array>;
|
|
321
|
+
}
|
|
322
|
+
/** One sandbox: its last known state and every operation on it. */
|
|
323
|
+
export interface Sandbox extends AsyncDisposable {
|
|
324
|
+
readonly id: string;
|
|
325
|
+
/** The state as of the last call that returned it (create, get, refresh, keepAlive, destroy). */
|
|
326
|
+
readonly info: SandboxInfo;
|
|
327
|
+
refresh(): Promise<SandboxInfo>;
|
|
328
|
+
/** Run a command and wait for it: `cmd` as argv, or a string for `sh -c`. */
|
|
329
|
+
exec(cmd: string | string[], options?: SandboxRunOptions): Promise<SandboxExecResult>;
|
|
330
|
+
/** The raw frames, as they arrive. Leaving the loop early cancels the exec. */
|
|
331
|
+
stream(cmd: string | string[], options?: SandboxExecOptions): AsyncGenerator<SandboxExecFrame, void, undefined>;
|
|
332
|
+
readonly files: SandboxFilesApi;
|
|
333
|
+
keepAlive(): Promise<SandboxInfo>;
|
|
334
|
+
/** Start a command nobody streams; read its outcome with `getExec`. */
|
|
335
|
+
execDetached(cmd: string | string[], options?: Omit<SandboxExecOptions, 'signal'>): Promise<{
|
|
336
|
+
execId: string;
|
|
337
|
+
status: string;
|
|
338
|
+
}>;
|
|
339
|
+
getExec(execId: string, options?: {
|
|
340
|
+
encoding?: 'utf8' | 'base64';
|
|
341
|
+
}): Promise<SandboxExecRecord>;
|
|
342
|
+
/** A one-use ticket for the shell WebSocket at `shellUrl`. */
|
|
343
|
+
shellTicket(size?: {
|
|
344
|
+
cols?: number;
|
|
345
|
+
rows?: number;
|
|
346
|
+
}): Promise<SandboxShellTicket>;
|
|
347
|
+
readonly shellUrl: string;
|
|
348
|
+
/** Idempotent; the sandbox goes STOPPING, then DESTROYED. */
|
|
349
|
+
destroy(): Promise<SandboxInfo>;
|
|
350
|
+
}
|
|
351
|
+
export interface SandboxCreateOptions {
|
|
352
|
+
/** Wait (up to 30 s on the server) until the sandbox runs. Default true. */
|
|
353
|
+
wait?: boolean;
|
|
354
|
+
/** Repeat-safe create: the same key with the same spec returns the same sandbox. Default: a random UUID. */
|
|
355
|
+
idempotencyKey?: string;
|
|
356
|
+
signal?: AbortSignal;
|
|
357
|
+
}
|
|
358
|
+
export interface SandboxListOptions {
|
|
359
|
+
/** Ended sandboxes too (DESTROYED, FAILED). */
|
|
360
|
+
all?: boolean;
|
|
361
|
+
limit?: number;
|
|
362
|
+
cursor?: string;
|
|
363
|
+
signal?: AbortSignal;
|
|
364
|
+
}
|
|
365
|
+
export interface SandboxesClient {
|
|
366
|
+
create(spec?: SandboxSpec, options?: SandboxCreateOptions): Promise<Sandbox>;
|
|
367
|
+
get(id: string, options?: {
|
|
368
|
+
signal?: AbortSignal;
|
|
369
|
+
}): Promise<Sandbox>;
|
|
370
|
+
/** One page. */
|
|
371
|
+
list(options?: SandboxListOptions): Promise<SandboxPage>;
|
|
372
|
+
/** Every sandbox, page after page. */
|
|
373
|
+
iterate(options?: Omit<SandboxListOptions, 'cursor'>): AsyncGenerator<SandboxInfo, void, undefined>;
|
|
374
|
+
exec(id: string, cmd: string | string[], options?: SandboxRunOptions): Promise<SandboxExecResult>;
|
|
375
|
+
stream(id: string, cmd: string | string[], options?: SandboxExecOptions): AsyncGenerator<SandboxExecFrame, void, undefined>;
|
|
376
|
+
files: {
|
|
377
|
+
write(id: string, path: string, data: SandboxFileData, options?: {
|
|
378
|
+
signal?: AbortSignal;
|
|
379
|
+
}): Promise<{
|
|
380
|
+
path: string;
|
|
381
|
+
bytes: number;
|
|
382
|
+
}>;
|
|
383
|
+
read(id: string, path: string, options?: {
|
|
384
|
+
signal?: AbortSignal;
|
|
385
|
+
}): Promise<Uint8Array>;
|
|
386
|
+
readText(id: string, path: string, options?: {
|
|
387
|
+
signal?: AbortSignal;
|
|
388
|
+
}): Promise<string>;
|
|
389
|
+
upload(id: string, directory: string, tar: SandboxFileData, options?: {
|
|
390
|
+
signal?: AbortSignal;
|
|
391
|
+
}): Promise<{
|
|
392
|
+
path: string;
|
|
393
|
+
bytes: number;
|
|
394
|
+
}>;
|
|
395
|
+
download(id: string, directory: string, options?: {
|
|
396
|
+
signal?: AbortSignal;
|
|
397
|
+
}): Promise<Uint8Array>;
|
|
398
|
+
};
|
|
399
|
+
keepAlive(id: string, options?: {
|
|
400
|
+
signal?: AbortSignal;
|
|
401
|
+
}): Promise<SandboxInfo>;
|
|
402
|
+
destroy(id: string, options?: {
|
|
403
|
+
signal?: AbortSignal;
|
|
404
|
+
}): Promise<SandboxInfo>;
|
|
405
|
+
/** `?detach=1`: 202 at once; the exec runs to its own end (at most 15 min). */
|
|
406
|
+
execDetached(id: string, cmd: string | string[], options?: Omit<SandboxExecOptions, 'signal'>): Promise<{
|
|
407
|
+
execId: string;
|
|
408
|
+
status: string;
|
|
409
|
+
}>;
|
|
410
|
+
getExec(id: string, execId: string, options?: {
|
|
411
|
+
encoding?: 'utf8' | 'base64';
|
|
412
|
+
signal?: AbortSignal;
|
|
413
|
+
}): Promise<SandboxExecRecord>;
|
|
414
|
+
/** POST /v1/sandboxes/:id/shell-ticket (cols/rows 1-1000, default 80x24). */
|
|
415
|
+
shellTicket(id: string, size?: {
|
|
416
|
+
cols?: number;
|
|
417
|
+
rows?: number;
|
|
418
|
+
}, options?: {
|
|
419
|
+
signal?: AbortSignal;
|
|
420
|
+
}): Promise<SandboxShellTicket>;
|
|
421
|
+
/** The shell WebSocket URL (ws/wss of the client's base URL); offer the ticket's `protocol`. */
|
|
422
|
+
shellUrl(id: string): string;
|
|
423
|
+
/** This month's usage next to the plan's allowance. */
|
|
424
|
+
usage(options?: {
|
|
425
|
+
signal?: AbortSignal;
|
|
426
|
+
}): Promise<SandboxUsageReport>;
|
|
427
|
+
/** Whether this workspace may use sandboxes, and the plan's figures. */
|
|
428
|
+
capabilities(options?: {
|
|
429
|
+
signal?: AbortSignal;
|
|
430
|
+
}): Promise<SandboxCapabilities>;
|
|
431
|
+
}
|
|
432
|
+
/** The sandboxes API on a transport client; `createClient()` exposes it as `client.sandboxes`. */
|
|
433
|
+
export declare function createSandboxesClient(client: TransportClient): SandboxesClient;
|
|
434
|
+
//# sourceMappingURL=sandboxes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandboxes.d.ts","sourceRoot":"","sources":["../src/sandboxes.ts"],"names":[],"mappings":"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"}
|