@labring/devbox-sdk 1.1.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.
- package/README.md +478 -0
- package/dist/index.cjs +2691 -0
- package/dist/index.d.cts +875 -0
- package/dist/index.d.ts +875 -0
- package/dist/index.mjs +2665 -0
- package/package.json +76 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,875 @@
|
|
|
1
|
+
import { ListFilesResponse } from 'devbox-shared/types';
|
|
2
|
+
|
|
3
|
+
declare enum DevboxRuntime {
|
|
4
|
+
NUXT3 = "nuxt3",
|
|
5
|
+
ANGULAR = "angular",
|
|
6
|
+
QUARKUS = "quarkus",
|
|
7
|
+
UBUNTU = "ubuntu",
|
|
8
|
+
FLASK = "flask",
|
|
9
|
+
JAVA = "java",
|
|
10
|
+
CHI = "chi",
|
|
11
|
+
NET = "net",
|
|
12
|
+
IRIS = "iris",
|
|
13
|
+
HEXO = "hexo",
|
|
14
|
+
PYTHON = "python",
|
|
15
|
+
DOCUSAURUS = "docusaurus",
|
|
16
|
+
VITEPRESS = "vitepress",
|
|
17
|
+
CPP = "cpp",
|
|
18
|
+
VUE = "vue",
|
|
19
|
+
NGINX = "nginx",
|
|
20
|
+
ROCKET = "rocket",
|
|
21
|
+
DEBIAN_SSH = "debian-ssh",
|
|
22
|
+
VERT_X = "vert.x",
|
|
23
|
+
EXPRESS_JS = "express.js",
|
|
24
|
+
DJANGO = "django",
|
|
25
|
+
NEXT_JS = "next.js",
|
|
26
|
+
SEALAF = "sealaf",
|
|
27
|
+
GO = "go",
|
|
28
|
+
REACT = "react",
|
|
29
|
+
PHP = "php",
|
|
30
|
+
SVELTE = "svelte",
|
|
31
|
+
C = "c",
|
|
32
|
+
ASTRO = "astro",
|
|
33
|
+
UMI = "umi",
|
|
34
|
+
GIN = "gin",
|
|
35
|
+
NODE_JS = "node.js",
|
|
36
|
+
ECHO = "echo",
|
|
37
|
+
RUST = "rust",
|
|
38
|
+
TEST_AGENT = "node-expt-agent"
|
|
39
|
+
}
|
|
40
|
+
interface APIClientConfig {
|
|
41
|
+
kubeconfig: string;
|
|
42
|
+
baseUrl?: string;
|
|
43
|
+
timeout?: number;
|
|
44
|
+
retries?: number;
|
|
45
|
+
rejectUnauthorized?: boolean;
|
|
46
|
+
}
|
|
47
|
+
interface APIResponse<T = unknown> {
|
|
48
|
+
data: T;
|
|
49
|
+
status: number;
|
|
50
|
+
statusText: string;
|
|
51
|
+
headers: Record<string, string>;
|
|
52
|
+
}
|
|
53
|
+
interface PortConfig$1 {
|
|
54
|
+
number: number;
|
|
55
|
+
protocol?: 'HTTP' | 'GRPC' | 'WS';
|
|
56
|
+
exposesPublicDomain?: boolean;
|
|
57
|
+
customDomain?: string;
|
|
58
|
+
portName?: string;
|
|
59
|
+
}
|
|
60
|
+
interface EnvVar {
|
|
61
|
+
name: string;
|
|
62
|
+
value?: string;
|
|
63
|
+
valueFrom?: {
|
|
64
|
+
secretKeyRef: {
|
|
65
|
+
name: string;
|
|
66
|
+
key: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
interface CreateDevboxRequest {
|
|
71
|
+
name: string;
|
|
72
|
+
runtime: DevboxRuntime;
|
|
73
|
+
resource: {
|
|
74
|
+
cpu: number;
|
|
75
|
+
memory: number;
|
|
76
|
+
};
|
|
77
|
+
ports?: PortConfig$1[];
|
|
78
|
+
env?: EnvVar[];
|
|
79
|
+
autostart?: boolean;
|
|
80
|
+
}
|
|
81
|
+
interface UpdateDevboxRequest {
|
|
82
|
+
resource?: {
|
|
83
|
+
cpu: number;
|
|
84
|
+
memory: number;
|
|
85
|
+
};
|
|
86
|
+
ports?: PortConfig$1[];
|
|
87
|
+
}
|
|
88
|
+
interface DevboxListItem {
|
|
89
|
+
name: string;
|
|
90
|
+
uid: string;
|
|
91
|
+
resourceType: 'devbox';
|
|
92
|
+
runtime: DevboxRuntime;
|
|
93
|
+
status: string;
|
|
94
|
+
resources: {
|
|
95
|
+
cpu: number;
|
|
96
|
+
memory: number;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
interface DevboxListApiResponse {
|
|
100
|
+
data: DevboxListItem[];
|
|
101
|
+
}
|
|
102
|
+
interface AgentServer {
|
|
103
|
+
url: string;
|
|
104
|
+
token: string;
|
|
105
|
+
}
|
|
106
|
+
interface DevboxDetail {
|
|
107
|
+
name: string;
|
|
108
|
+
uid: string;
|
|
109
|
+
resourceType: 'devbox';
|
|
110
|
+
runtime: string | DevboxRuntime;
|
|
111
|
+
image: string;
|
|
112
|
+
status: string;
|
|
113
|
+
resources: {
|
|
114
|
+
cpu: number;
|
|
115
|
+
memory: number;
|
|
116
|
+
};
|
|
117
|
+
ssh: {
|
|
118
|
+
host: string;
|
|
119
|
+
port: number;
|
|
120
|
+
user: string;
|
|
121
|
+
workingDir: string;
|
|
122
|
+
privateKey?: string;
|
|
123
|
+
};
|
|
124
|
+
env?: EnvVar[];
|
|
125
|
+
ports: Array<{
|
|
126
|
+
number: number;
|
|
127
|
+
portName: string;
|
|
128
|
+
protocol: string;
|
|
129
|
+
serviceName: string;
|
|
130
|
+
privateAddress: string;
|
|
131
|
+
privateHost: string;
|
|
132
|
+
networkName: string;
|
|
133
|
+
publicHost?: string;
|
|
134
|
+
publicAddress?: string;
|
|
135
|
+
customDomain?: string;
|
|
136
|
+
}>;
|
|
137
|
+
pods?: Array<{
|
|
138
|
+
name: string;
|
|
139
|
+
status: string;
|
|
140
|
+
}>;
|
|
141
|
+
agentServer?: AgentServer;
|
|
142
|
+
}
|
|
143
|
+
interface DevboxDetailApiResponse {
|
|
144
|
+
data: DevboxDetail;
|
|
145
|
+
}
|
|
146
|
+
interface RuntimeTemplate {
|
|
147
|
+
uid: string;
|
|
148
|
+
iconId: string | null;
|
|
149
|
+
name: string;
|
|
150
|
+
kind: 'FRAMEWORK' | 'OS' | 'LANGUAGE' | 'SERVICE' | 'CUSTOM';
|
|
151
|
+
description: string | null;
|
|
152
|
+
isPublic: boolean;
|
|
153
|
+
}
|
|
154
|
+
interface TemplateConfig {
|
|
155
|
+
templateUid: string;
|
|
156
|
+
templateName: string;
|
|
157
|
+
runtimeUid: string;
|
|
158
|
+
runtime: DevboxRuntime | null;
|
|
159
|
+
config: {
|
|
160
|
+
appPorts?: Array<{
|
|
161
|
+
name: string;
|
|
162
|
+
port: number;
|
|
163
|
+
protocol: string;
|
|
164
|
+
}>;
|
|
165
|
+
ports?: Array<{
|
|
166
|
+
containerPort: number;
|
|
167
|
+
name: string;
|
|
168
|
+
protocol: string;
|
|
169
|
+
}>;
|
|
170
|
+
releaseCommand?: string[];
|
|
171
|
+
releaseArgs?: string[];
|
|
172
|
+
user?: string;
|
|
173
|
+
workingDir?: string;
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
interface TemplatesApiResponse {
|
|
177
|
+
data: {
|
|
178
|
+
runtime: RuntimeTemplate[];
|
|
179
|
+
config: TemplateConfig[];
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
interface ReleaseStatus {
|
|
183
|
+
value: string;
|
|
184
|
+
label: string;
|
|
185
|
+
}
|
|
186
|
+
interface Release {
|
|
187
|
+
id: string;
|
|
188
|
+
name: string;
|
|
189
|
+
devboxName: string;
|
|
190
|
+
createTime: string;
|
|
191
|
+
tag: string;
|
|
192
|
+
status: ReleaseStatus;
|
|
193
|
+
description: string;
|
|
194
|
+
image: string;
|
|
195
|
+
}
|
|
196
|
+
interface ReleaseListApiResponse {
|
|
197
|
+
data: Release[];
|
|
198
|
+
}
|
|
199
|
+
interface MonitorDataApiPoint {
|
|
200
|
+
timestamp: number;
|
|
201
|
+
readableTime: string;
|
|
202
|
+
cpu: number;
|
|
203
|
+
memory: number;
|
|
204
|
+
}
|
|
205
|
+
interface MonitorDataApiResponse {
|
|
206
|
+
code: 200;
|
|
207
|
+
data: MonitorDataApiPoint[];
|
|
208
|
+
}
|
|
209
|
+
interface CreateReleaseRequest {
|
|
210
|
+
tag: string;
|
|
211
|
+
releaseDes?: string;
|
|
212
|
+
}
|
|
213
|
+
interface ConfigureAutostartRequest {
|
|
214
|
+
execCommand?: string;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
interface DevboxSDKConfig {
|
|
218
|
+
kubeconfig: string;
|
|
219
|
+
baseUrl?: string;
|
|
220
|
+
mockServerUrl?: string;
|
|
221
|
+
http?: HttpClientConfig;
|
|
222
|
+
}
|
|
223
|
+
interface HttpClientConfig {
|
|
224
|
+
timeout?: number;
|
|
225
|
+
retries?: number;
|
|
226
|
+
proxy?: string;
|
|
227
|
+
rejectUnauthorized?: boolean;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
interface DevboxCreateConfig {
|
|
231
|
+
name: string;
|
|
232
|
+
runtime: DevboxRuntime;
|
|
233
|
+
resource: ResourceInfo;
|
|
234
|
+
ports?: PortConfig[];
|
|
235
|
+
env?: Record<string, string>;
|
|
236
|
+
}
|
|
237
|
+
interface DevboxCreateOptions {
|
|
238
|
+
waitUntilReady?: boolean;
|
|
239
|
+
timeout?: number;
|
|
240
|
+
checkInterval?: number;
|
|
241
|
+
useExponentialBackoff?: boolean;
|
|
242
|
+
initialCheckInterval?: number;
|
|
243
|
+
maxCheckInterval?: number;
|
|
244
|
+
backoffMultiplier?: number;
|
|
245
|
+
}
|
|
246
|
+
interface WaitForReadyOptions {
|
|
247
|
+
timeout?: number;
|
|
248
|
+
checkInterval?: number;
|
|
249
|
+
useExponentialBackoff?: boolean;
|
|
250
|
+
initialCheckInterval?: number;
|
|
251
|
+
maxCheckInterval?: number;
|
|
252
|
+
backoffMultiplier?: number;
|
|
253
|
+
}
|
|
254
|
+
interface ResourceInfo {
|
|
255
|
+
cpu: number;
|
|
256
|
+
memory: number;
|
|
257
|
+
}
|
|
258
|
+
interface PortConfig {
|
|
259
|
+
number: number;
|
|
260
|
+
protocol: string;
|
|
261
|
+
}
|
|
262
|
+
interface DevboxInfo {
|
|
263
|
+
name: string;
|
|
264
|
+
status: string;
|
|
265
|
+
runtime: DevboxRuntime;
|
|
266
|
+
resources: ResourceInfo;
|
|
267
|
+
podIP?: string;
|
|
268
|
+
ssh?: SSHInfo;
|
|
269
|
+
ports?: Array<{
|
|
270
|
+
number: number;
|
|
271
|
+
portName: string;
|
|
272
|
+
protocol: string;
|
|
273
|
+
serviceName: string;
|
|
274
|
+
privateAddress: string;
|
|
275
|
+
privateHost: string;
|
|
276
|
+
networkName: string;
|
|
277
|
+
publicHost?: string;
|
|
278
|
+
publicAddress?: string;
|
|
279
|
+
customDomain?: string;
|
|
280
|
+
}>;
|
|
281
|
+
agentServer?: {
|
|
282
|
+
url: string;
|
|
283
|
+
token: string;
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
interface SSHInfo {
|
|
287
|
+
host: string;
|
|
288
|
+
port: number;
|
|
289
|
+
user: string;
|
|
290
|
+
privateKey: string;
|
|
291
|
+
}
|
|
292
|
+
interface FileMap {
|
|
293
|
+
[path: string]: Buffer | string;
|
|
294
|
+
}
|
|
295
|
+
interface WriteOptions {
|
|
296
|
+
encoding?: string;
|
|
297
|
+
mode?: number;
|
|
298
|
+
createDirs?: boolean;
|
|
299
|
+
}
|
|
300
|
+
interface ReadOptions {
|
|
301
|
+
encoding?: string;
|
|
302
|
+
offset?: number;
|
|
303
|
+
length?: number;
|
|
304
|
+
}
|
|
305
|
+
interface BatchUploadOptions {
|
|
306
|
+
concurrency?: number;
|
|
307
|
+
chunkSize?: number;
|
|
308
|
+
onProgress?: (progress: TransferProgress) => void;
|
|
309
|
+
}
|
|
310
|
+
interface TransferProgress {
|
|
311
|
+
processed: number;
|
|
312
|
+
total: number;
|
|
313
|
+
bytesTransferred: number;
|
|
314
|
+
totalBytes: number;
|
|
315
|
+
progress: number;
|
|
316
|
+
}
|
|
317
|
+
interface TransferResult {
|
|
318
|
+
success: boolean;
|
|
319
|
+
results: Array<{
|
|
320
|
+
path: string;
|
|
321
|
+
success: boolean;
|
|
322
|
+
size?: number;
|
|
323
|
+
error?: string;
|
|
324
|
+
}>;
|
|
325
|
+
totalFiles: number;
|
|
326
|
+
successCount: number;
|
|
327
|
+
}
|
|
328
|
+
interface TransferError {
|
|
329
|
+
path: string;
|
|
330
|
+
error: string;
|
|
331
|
+
code: string;
|
|
332
|
+
}
|
|
333
|
+
interface MoveFileOptions {
|
|
334
|
+
source: string;
|
|
335
|
+
destination: string;
|
|
336
|
+
overwrite?: boolean;
|
|
337
|
+
}
|
|
338
|
+
type MoveFileResponse = Record<string, never>;
|
|
339
|
+
interface RenameFileOptions {
|
|
340
|
+
oldPath: string;
|
|
341
|
+
newPath: string;
|
|
342
|
+
}
|
|
343
|
+
type RenameFileResponse = Record<string, never>;
|
|
344
|
+
interface DownloadFileOptions {
|
|
345
|
+
paths: string[];
|
|
346
|
+
format?: 'tar.gz' | 'tar' | 'multipart' | 'direct';
|
|
347
|
+
}
|
|
348
|
+
interface SearchFilesOptions {
|
|
349
|
+
dir?: string;
|
|
350
|
+
pattern: string;
|
|
351
|
+
}
|
|
352
|
+
interface SearchFilesResponse {
|
|
353
|
+
files: string[];
|
|
354
|
+
}
|
|
355
|
+
interface FindInFilesOptions {
|
|
356
|
+
dir?: string;
|
|
357
|
+
keyword: string;
|
|
358
|
+
}
|
|
359
|
+
interface FindInFilesResponse {
|
|
360
|
+
files: string[];
|
|
361
|
+
}
|
|
362
|
+
interface ReplaceInFilesOptions {
|
|
363
|
+
files: string[];
|
|
364
|
+
from: string;
|
|
365
|
+
to: string;
|
|
366
|
+
}
|
|
367
|
+
interface ReplaceResult {
|
|
368
|
+
file: string;
|
|
369
|
+
status: 'success' | 'error' | 'skipped';
|
|
370
|
+
replacements: number;
|
|
371
|
+
error?: string;
|
|
372
|
+
}
|
|
373
|
+
interface ReplaceInFilesResponse {
|
|
374
|
+
results: ReplaceResult[];
|
|
375
|
+
}
|
|
376
|
+
interface PortsResponse {
|
|
377
|
+
ports: number[];
|
|
378
|
+
lastUpdatedAt: number;
|
|
379
|
+
}
|
|
380
|
+
interface PortPreviewUrl {
|
|
381
|
+
url: string;
|
|
382
|
+
port: number;
|
|
383
|
+
protocol: string;
|
|
384
|
+
}
|
|
385
|
+
interface TimeRange {
|
|
386
|
+
start: number;
|
|
387
|
+
end: number;
|
|
388
|
+
step?: string;
|
|
389
|
+
}
|
|
390
|
+
interface MonitorData {
|
|
391
|
+
cpu: number;
|
|
392
|
+
memory: number;
|
|
393
|
+
network: {
|
|
394
|
+
bytesIn: number;
|
|
395
|
+
bytesOut: number;
|
|
396
|
+
};
|
|
397
|
+
disk: {
|
|
398
|
+
used: number;
|
|
399
|
+
total: number;
|
|
400
|
+
};
|
|
401
|
+
timestamp: number;
|
|
402
|
+
}
|
|
403
|
+
interface ProcessExecOptions {
|
|
404
|
+
command: string;
|
|
405
|
+
args?: string[];
|
|
406
|
+
cwd?: string;
|
|
407
|
+
env?: Record<string, string>;
|
|
408
|
+
shell?: string;
|
|
409
|
+
timeout?: number;
|
|
410
|
+
}
|
|
411
|
+
interface CodeRunOptions {
|
|
412
|
+
language?: 'node' | 'python';
|
|
413
|
+
argv?: string[];
|
|
414
|
+
env?: Record<string, string>;
|
|
415
|
+
cwd?: string;
|
|
416
|
+
timeout?: number;
|
|
417
|
+
}
|
|
418
|
+
interface ProcessExecResponse {
|
|
419
|
+
success: boolean;
|
|
420
|
+
processId: string;
|
|
421
|
+
pid: number;
|
|
422
|
+
processStatus: string;
|
|
423
|
+
exitCode?: number;
|
|
424
|
+
}
|
|
425
|
+
interface SyncExecutionResponse {
|
|
426
|
+
success: boolean;
|
|
427
|
+
stdout: string;
|
|
428
|
+
stderr: string;
|
|
429
|
+
exitCode?: number;
|
|
430
|
+
durationMs: number;
|
|
431
|
+
startTime: number;
|
|
432
|
+
endTime: number;
|
|
433
|
+
}
|
|
434
|
+
interface ProcessInfo {
|
|
435
|
+
processId: string;
|
|
436
|
+
pid: number;
|
|
437
|
+
command: string;
|
|
438
|
+
processStatus: string;
|
|
439
|
+
startTime: number;
|
|
440
|
+
endTime?: number;
|
|
441
|
+
exitCode?: number;
|
|
442
|
+
}
|
|
443
|
+
interface ListProcessesResponse {
|
|
444
|
+
success: boolean;
|
|
445
|
+
processes: ProcessInfo[];
|
|
446
|
+
}
|
|
447
|
+
interface GetProcessStatusResponse {
|
|
448
|
+
success: boolean;
|
|
449
|
+
processId: string;
|
|
450
|
+
pid: number;
|
|
451
|
+
processStatus: string;
|
|
452
|
+
}
|
|
453
|
+
interface GetProcessLogsResponse {
|
|
454
|
+
success: boolean;
|
|
455
|
+
processId: string;
|
|
456
|
+
logs: string[];
|
|
457
|
+
}
|
|
458
|
+
interface KillProcessOptions {
|
|
459
|
+
signal?: 'SIGTERM' | 'SIGKILL' | 'SIGINT';
|
|
460
|
+
}
|
|
461
|
+
interface CommandResult {
|
|
462
|
+
exitCode: number;
|
|
463
|
+
stdout: string;
|
|
464
|
+
stderr: string;
|
|
465
|
+
duration: number;
|
|
466
|
+
pid?: number;
|
|
467
|
+
}
|
|
468
|
+
interface ProcessStatus {
|
|
469
|
+
pid: number;
|
|
470
|
+
state: 'running' | 'completed' | 'failed' | 'unknown';
|
|
471
|
+
exitCode?: number;
|
|
472
|
+
cpu?: number;
|
|
473
|
+
memory?: number;
|
|
474
|
+
startTime: number;
|
|
475
|
+
runningTime: number;
|
|
476
|
+
}
|
|
477
|
+
type DevboxStatus = 'Creating' | 'Running' | 'Stopped' | 'Error' | 'Deleting' | 'Unknown';
|
|
478
|
+
interface GitAuth {
|
|
479
|
+
username?: string;
|
|
480
|
+
password?: string;
|
|
481
|
+
token?: string;
|
|
482
|
+
sshKey?: string;
|
|
483
|
+
}
|
|
484
|
+
interface GitCloneOptions {
|
|
485
|
+
url: string;
|
|
486
|
+
targetDir?: string;
|
|
487
|
+
branch?: string;
|
|
488
|
+
commit?: string;
|
|
489
|
+
depth?: number;
|
|
490
|
+
auth?: GitAuth;
|
|
491
|
+
}
|
|
492
|
+
interface GitPullOptions {
|
|
493
|
+
remote?: string;
|
|
494
|
+
branch?: string;
|
|
495
|
+
auth?: GitAuth;
|
|
496
|
+
}
|
|
497
|
+
interface GitPushOptions {
|
|
498
|
+
remote?: string;
|
|
499
|
+
branch?: string;
|
|
500
|
+
auth?: GitAuth;
|
|
501
|
+
force?: boolean;
|
|
502
|
+
}
|
|
503
|
+
interface GitBranchInfo {
|
|
504
|
+
name: string;
|
|
505
|
+
isCurrent: boolean;
|
|
506
|
+
isRemote: boolean;
|
|
507
|
+
commit: string;
|
|
508
|
+
ahead?: number;
|
|
509
|
+
behind?: number;
|
|
510
|
+
}
|
|
511
|
+
interface GitStatus {
|
|
512
|
+
currentBranch: string;
|
|
513
|
+
isClean: boolean;
|
|
514
|
+
ahead: number;
|
|
515
|
+
behind: number;
|
|
516
|
+
staged: string[];
|
|
517
|
+
modified: string[];
|
|
518
|
+
untracked: string[];
|
|
519
|
+
deleted: string[];
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
declare class DevboxAPI {
|
|
523
|
+
private httpClient;
|
|
524
|
+
private authenticator;
|
|
525
|
+
private endpoints;
|
|
526
|
+
constructor(config: APIClientConfig);
|
|
527
|
+
createDevbox(config: DevboxCreateConfig): Promise<DevboxInfo>;
|
|
528
|
+
getDevbox(name: string): Promise<DevboxInfo>;
|
|
529
|
+
listDevboxes(): Promise<DevboxInfo[]>;
|
|
530
|
+
startDevbox(name: string): Promise<void>;
|
|
531
|
+
pauseDevbox(name: string): Promise<void>;
|
|
532
|
+
restartDevbox(name: string): Promise<void>;
|
|
533
|
+
deleteDevbox(name: string): Promise<void>;
|
|
534
|
+
updateDevbox(name: string, config: UpdateDevboxRequest): Promise<void>;
|
|
535
|
+
shutdownDevbox(name: string): Promise<void>;
|
|
536
|
+
getTemplates(): Promise<TemplatesApiResponse['data']>;
|
|
537
|
+
updatePorts(name: string, ports: PortConfig$1[]): Promise<void>;
|
|
538
|
+
configureAutostart(name: string, config?: ConfigureAutostartRequest): Promise<void>;
|
|
539
|
+
listReleases(name: string): Promise<Release[]>;
|
|
540
|
+
createRelease(name: string, config: CreateReleaseRequest): Promise<void>;
|
|
541
|
+
deleteRelease(name: string, tag: string): Promise<void>;
|
|
542
|
+
deployRelease(name: string, tag: string): Promise<void>;
|
|
543
|
+
getMonitorData(name: string, timeRange?: TimeRange): Promise<MonitorData[]>;
|
|
544
|
+
testAuth(): Promise<boolean>;
|
|
545
|
+
private transformSSHInfoToDevboxInfo;
|
|
546
|
+
private transformListItemToDevboxInfo;
|
|
547
|
+
private stringToRuntime;
|
|
548
|
+
private transformCreateResponseToDevboxInfo;
|
|
549
|
+
private transformDetailToDevboxInfo;
|
|
550
|
+
private transformGetResponseToDevboxInfo;
|
|
551
|
+
private transformMonitorData;
|
|
552
|
+
private handleAPIError;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
interface RequestOptions {
|
|
556
|
+
headers?: Record<string, string>;
|
|
557
|
+
body?: unknown;
|
|
558
|
+
params?: Record<string, string | number | boolean | undefined>;
|
|
559
|
+
timeout?: number;
|
|
560
|
+
signal?: AbortSignal;
|
|
561
|
+
}
|
|
562
|
+
interface HTTPResponse<T = unknown> {
|
|
563
|
+
data: T;
|
|
564
|
+
status: number;
|
|
565
|
+
headers: Record<string, string>;
|
|
566
|
+
url: string;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
declare class DevboxContainerClient {
|
|
570
|
+
private baseUrl;
|
|
571
|
+
private timeout;
|
|
572
|
+
private token;
|
|
573
|
+
constructor(baseUrl: string, timeout: number, token: string);
|
|
574
|
+
get<T = unknown>(path: string, options?: RequestOptions): Promise<HTTPResponse<T>>;
|
|
575
|
+
post<T = unknown>(path: string, options?: RequestOptions): Promise<HTTPResponse<T>>;
|
|
576
|
+
put<T = unknown>(path: string, options?: RequestOptions): Promise<HTTPResponse<T>>;
|
|
577
|
+
delete<T = unknown>(path: string, options?: RequestOptions): Promise<HTTPResponse<T>>;
|
|
578
|
+
private request;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
interface IDevboxAPIClient {
|
|
582
|
+
getDevbox(name: string): Promise<DevboxInfo>;
|
|
583
|
+
}
|
|
584
|
+
declare class ContainerUrlResolver {
|
|
585
|
+
private apiClient?;
|
|
586
|
+
private cache;
|
|
587
|
+
private readonly CACHE_TTL;
|
|
588
|
+
private mockServerUrl?;
|
|
589
|
+
readonly baseUrl: string;
|
|
590
|
+
private timeout;
|
|
591
|
+
constructor(config: DevboxSDKConfig);
|
|
592
|
+
setAPIClient(apiClient: IDevboxAPIClient): void;
|
|
593
|
+
executeWithConnection<T>(devboxName: string, operation: (client: DevboxContainerClient) => Promise<T>): Promise<T>;
|
|
594
|
+
getServerUrl(devboxName: string): Promise<string>;
|
|
595
|
+
private getConfiguredServerUrl;
|
|
596
|
+
private resolveServerUrlFromAPI;
|
|
597
|
+
private extractUrlFromDevboxInfo;
|
|
598
|
+
private getDevboxInfo;
|
|
599
|
+
private getFromCache;
|
|
600
|
+
private setCache;
|
|
601
|
+
clearCache(): void;
|
|
602
|
+
closeAllConnections(): Promise<void>;
|
|
603
|
+
checkDevboxHealth(devboxName: string): Promise<boolean>;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
interface GitDependencies {
|
|
607
|
+
execSync: (options: ProcessExecOptions) => Promise<SyncExecutionResponse>;
|
|
608
|
+
}
|
|
609
|
+
declare class Git {
|
|
610
|
+
private deps;
|
|
611
|
+
constructor(deps: GitDependencies);
|
|
612
|
+
private buildAuthUrl;
|
|
613
|
+
private setupGitAuth;
|
|
614
|
+
private parseGitBranches;
|
|
615
|
+
private parseGitStatus;
|
|
616
|
+
clone(options: GitCloneOptions): Promise<void>;
|
|
617
|
+
pull(repoPath: string, options?: GitPullOptions): Promise<void>;
|
|
618
|
+
push(repoPath: string, options?: GitPushOptions): Promise<void>;
|
|
619
|
+
branches(repoPath: string): Promise<GitBranchInfo[]>;
|
|
620
|
+
createBranch(repoPath: string, branchName: string, checkout?: boolean): Promise<void>;
|
|
621
|
+
deleteBranch(repoPath: string, branchName: string, force?: boolean, remote?: boolean): Promise<void>;
|
|
622
|
+
checkoutBranch(repoPath: string, branchName: string, create?: boolean): Promise<void>;
|
|
623
|
+
private normalizePath;
|
|
624
|
+
add(repoPath: string, files?: string | string[]): Promise<void>;
|
|
625
|
+
commit(repoPath: string, message: string, author: string, email: string, allowEmpty?: boolean): Promise<void>;
|
|
626
|
+
status(repoPath: string): Promise<GitStatus>;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
declare class DevboxInstance {
|
|
630
|
+
private info;
|
|
631
|
+
private sdk;
|
|
632
|
+
readonly git: Git;
|
|
633
|
+
constructor(info: DevboxInfo, sdk: DevboxSDK);
|
|
634
|
+
get name(): string;
|
|
635
|
+
get status(): string;
|
|
636
|
+
get runtime(): DevboxRuntime;
|
|
637
|
+
get resources(): ResourceInfo;
|
|
638
|
+
get serverUrl(): string;
|
|
639
|
+
start(): Promise<void>;
|
|
640
|
+
pause(): Promise<void>;
|
|
641
|
+
restart(): Promise<void>;
|
|
642
|
+
shutdown(): Promise<void>;
|
|
643
|
+
delete(): Promise<void>;
|
|
644
|
+
refreshInfo(): Promise<void>;
|
|
645
|
+
writeFile(path: string, content: string | Buffer, options?: WriteOptions): Promise<void>;
|
|
646
|
+
readFile(path: string, options?: ReadOptions): Promise<Buffer>;
|
|
647
|
+
private validatePath;
|
|
648
|
+
deleteFile(path: string): Promise<void>;
|
|
649
|
+
listFiles(path: string): Promise<ListFilesResponse>;
|
|
650
|
+
uploadFiles(files: FileMap, options?: BatchUploadOptions & {
|
|
651
|
+
targetDir?: string;
|
|
652
|
+
}): Promise<TransferResult>;
|
|
653
|
+
moveFile(source: string, destination: string, overwrite?: boolean): Promise<MoveFileResponse>;
|
|
654
|
+
renameFile(oldPath: string, newPath: string): Promise<RenameFileResponse>;
|
|
655
|
+
searchFiles(options: SearchFilesOptions): Promise<SearchFilesResponse>;
|
|
656
|
+
findInFiles(options: FindInFilesOptions): Promise<FindInFilesResponse>;
|
|
657
|
+
replaceInFiles(options: ReplaceInFilesOptions): Promise<ReplaceInFilesResponse>;
|
|
658
|
+
downloadFile(path: string): Promise<Buffer>;
|
|
659
|
+
downloadFiles(paths: string[], options?: {
|
|
660
|
+
format?: 'tar.gz' | 'tar' | 'multipart' | 'direct';
|
|
661
|
+
}): Promise<Buffer>;
|
|
662
|
+
getPorts(): Promise<PortsResponse>;
|
|
663
|
+
getPreviewLink(port: number): Promise<PortPreviewUrl>;
|
|
664
|
+
executeCommand(options: ProcessExecOptions): Promise<ProcessExecResponse>;
|
|
665
|
+
execSync(options: ProcessExecOptions): Promise<SyncExecutionResponse>;
|
|
666
|
+
codeRun(code: string, options?: CodeRunOptions): Promise<SyncExecutionResponse>;
|
|
667
|
+
private detectLanguage;
|
|
668
|
+
private buildCodeCommand;
|
|
669
|
+
execSyncStream(options: ProcessExecOptions): Promise<ReadableStream>;
|
|
670
|
+
listProcesses(): Promise<ListProcessesResponse>;
|
|
671
|
+
getProcessStatus(processId: string): Promise<GetProcessStatusResponse>;
|
|
672
|
+
killProcess(processId: string, options?: KillProcessOptions): Promise<void>;
|
|
673
|
+
getProcessLogs(processId: string, stream?: boolean): Promise<GetProcessLogsResponse>;
|
|
674
|
+
getMonitorData(timeRange?: TimeRange): Promise<MonitorData[]>;
|
|
675
|
+
isHealthy(): Promise<boolean>;
|
|
676
|
+
waitForReady(timeoutOrOptions?: number | WaitForReadyOptions, checkInterval?: number): Promise<void>;
|
|
677
|
+
getDetailedInfo(): Promise<DevboxInfo>;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
declare class DevboxSDK {
|
|
681
|
+
private apiClient;
|
|
682
|
+
private urlResolver;
|
|
683
|
+
constructor(config: DevboxSDKConfig);
|
|
684
|
+
createDevboxAsync(config: DevboxCreateConfig): Promise<DevboxInstance>;
|
|
685
|
+
createDevbox(config: DevboxCreateConfig, options?: DevboxCreateOptions): Promise<DevboxInstance>;
|
|
686
|
+
getDevbox(name: string): Promise<DevboxInstance>;
|
|
687
|
+
listDevboxes(): Promise<DevboxInstance[]>;
|
|
688
|
+
getMonitorData(devboxName: string, timeRange?: TimeRange): Promise<MonitorData[]>;
|
|
689
|
+
close(): Promise<void>;
|
|
690
|
+
getAPIClient(): DevboxAPI;
|
|
691
|
+
getUrlResolver(): ContainerUrlResolver;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
declare const DEFAULT_CONFIG: {
|
|
695
|
+
readonly BASE_URL: "https://devbox.usw.sealos.io/v1";
|
|
696
|
+
readonly CONTAINER_HTTP_PORT: 3000;
|
|
697
|
+
readonly MOCK_SERVER: {
|
|
698
|
+
readonly DEFAULT_URL: "http://localhost:9757";
|
|
699
|
+
readonly ENV_VAR: "MOCK_SERVER_URL";
|
|
700
|
+
};
|
|
701
|
+
readonly HTTP_CLIENT: {
|
|
702
|
+
readonly TIMEOUT: 30000;
|
|
703
|
+
readonly RETRIES: 3;
|
|
704
|
+
};
|
|
705
|
+
readonly FILE_LIMITS: {
|
|
706
|
+
readonly MAX_FILE_SIZE: number;
|
|
707
|
+
readonly MAX_BATCH_SIZE: 50;
|
|
708
|
+
readonly CHUNK_SIZE: number;
|
|
709
|
+
};
|
|
710
|
+
readonly PERFORMANCE: {
|
|
711
|
+
readonly SMALL_FILE_LATENCY_MS: 50;
|
|
712
|
+
readonly LARGE_FILE_THROUGHPUT_MBPS: 15;
|
|
713
|
+
readonly CONNECTION_REUSE_RATE: 0.98;
|
|
714
|
+
readonly STARTUP_TIME_MS: 100;
|
|
715
|
+
};
|
|
716
|
+
};
|
|
717
|
+
declare const API_ENDPOINTS: {
|
|
718
|
+
readonly DEVBOX: {
|
|
719
|
+
readonly LIST: "/api/v1/devbox";
|
|
720
|
+
readonly CREATE: "/api/v1/devbox";
|
|
721
|
+
readonly GET: "/api/v1/devbox/{name}";
|
|
722
|
+
readonly UPDATE: "/api/v1/devbox/{name}";
|
|
723
|
+
readonly DELETE: "/api/v1/devbox/{name}/delete";
|
|
724
|
+
readonly START: "/api/v1/devbox/{name}/start";
|
|
725
|
+
readonly PAUSE: "/api/v1/devbox/{name}/pause";
|
|
726
|
+
readonly RESTART: "/api/v1/devbox/{name}/restart";
|
|
727
|
+
readonly SHUTDOWN: "/api/v1/devbox/{name}/shutdown";
|
|
728
|
+
readonly MONITOR: "/api/v1/devbox/{name}/monitor";
|
|
729
|
+
readonly TEMPLATES: "/api/v1/devbox/templates";
|
|
730
|
+
readonly PORTS: "/api/v1/devbox/{name}/ports";
|
|
731
|
+
readonly AUTOSTART: "/api/v1/devbox/{name}/autostart";
|
|
732
|
+
readonly RELEASE: {
|
|
733
|
+
readonly LIST: "/api/v1/devbox/{name}/release";
|
|
734
|
+
readonly CREATE: "/api/v1/devbox/{name}/release";
|
|
735
|
+
readonly DELETE: "/api/v1/devbox/{name}/release/{tag}";
|
|
736
|
+
readonly DEPLOY: "/api/v1/devbox/{name}/release/{tag}/deploy";
|
|
737
|
+
};
|
|
738
|
+
};
|
|
739
|
+
readonly CONTAINER: {
|
|
740
|
+
readonly HEALTH: "/health";
|
|
741
|
+
readonly FILES: {
|
|
742
|
+
readonly WRITE: "/api/v1/files/write";
|
|
743
|
+
readonly READ: "/api/v1/files/read";
|
|
744
|
+
readonly LIST: "/api/v1/files/list";
|
|
745
|
+
readonly DELETE: "/api/v1/files/delete";
|
|
746
|
+
readonly MOVE: "/api/v1/files/move";
|
|
747
|
+
readonly RENAME: "/api/v1/files/rename";
|
|
748
|
+
readonly DOWNLOAD: "/api/v1/files/download";
|
|
749
|
+
readonly BATCH_UPLOAD: "/api/v1/files/batch-upload";
|
|
750
|
+
readonly BATCH_DOWNLOAD: "/api/v1/files/batch-download";
|
|
751
|
+
readonly SEARCH: "/api/v1/files/search";
|
|
752
|
+
readonly FIND: "/api/v1/files/find";
|
|
753
|
+
readonly REPLACE: "/api/v1/files/replace";
|
|
754
|
+
};
|
|
755
|
+
readonly PROCESS: {
|
|
756
|
+
readonly EXEC: "/api/v1/process/exec";
|
|
757
|
+
readonly EXEC_SYNC: "/api/v1/process/exec-sync";
|
|
758
|
+
readonly EXEC_SYNC_STREAM: "/api/v1/process/sync-stream";
|
|
759
|
+
readonly LIST: "/api/v1/process/list";
|
|
760
|
+
readonly STATUS: "/api/v1/process/{process_id}/status";
|
|
761
|
+
readonly KILL: "/api/v1/process/{process_id}/kill";
|
|
762
|
+
readonly LOGS: "/api/v1/process/{process_id}/logs";
|
|
763
|
+
};
|
|
764
|
+
readonly PORTS: "/api/v1/ports";
|
|
765
|
+
};
|
|
766
|
+
};
|
|
767
|
+
declare const ERROR_CODES: {
|
|
768
|
+
readonly AUTHENTICATION_FAILED: "AUTHENTICATION_FAILED";
|
|
769
|
+
readonly INVALID_KUBECONFIG: "INVALID_KUBECONFIG";
|
|
770
|
+
readonly UNAUTHORIZED: "UNAUTHORIZED";
|
|
771
|
+
readonly INVALID_TOKEN: "INVALID_TOKEN";
|
|
772
|
+
readonly TOKEN_EXPIRED: "TOKEN_EXPIRED";
|
|
773
|
+
readonly INSUFFICIENT_PERMISSIONS: "INSUFFICIENT_PERMISSIONS";
|
|
774
|
+
readonly CONNECTION_FAILED: "CONNECTION_FAILED";
|
|
775
|
+
readonly CONNECTION_TIMEOUT: "CONNECTION_TIMEOUT";
|
|
776
|
+
readonly DEVBOX_NOT_FOUND: "DEVBOX_NOT_FOUND";
|
|
777
|
+
readonly DEVBOX_NOT_READY: "DEVBOX_NOT_READY";
|
|
778
|
+
readonly DEVBOX_CREATION_FAILED: "DEVBOX_CREATION_FAILED";
|
|
779
|
+
readonly DEVBOX_OPERATION_FAILED: "DEVBOX_OPERATION_FAILED";
|
|
780
|
+
readonly INVALID_REQUEST: "INVALID_REQUEST";
|
|
781
|
+
readonly MISSING_REQUIRED_FIELD: "MISSING_REQUIRED_FIELD";
|
|
782
|
+
readonly INVALID_FIELD_VALUE: "INVALID_FIELD_VALUE";
|
|
783
|
+
readonly INVALID_JSON_FORMAT: "INVALID_JSON_FORMAT";
|
|
784
|
+
readonly INVALID_PATH: "INVALID_PATH";
|
|
785
|
+
readonly VALIDATION_ERROR: "VALIDATION_ERROR";
|
|
786
|
+
readonly NOT_FOUND: "NOT_FOUND";
|
|
787
|
+
readonly PROCESS_NOT_FOUND: "PROCESS_NOT_FOUND";
|
|
788
|
+
readonly SESSION_NOT_FOUND: "SESSION_NOT_FOUND";
|
|
789
|
+
readonly FILE_NOT_FOUND: "FILE_NOT_FOUND";
|
|
790
|
+
readonly DIRECTORY_NOT_FOUND: "DIRECTORY_NOT_FOUND";
|
|
791
|
+
readonly CONFLICT: "CONFLICT";
|
|
792
|
+
readonly PROCESS_ALREADY_RUNNING: "PROCESS_ALREADY_RUNNING";
|
|
793
|
+
readonly PROCESS_NOT_RUNNING: "PROCESS_NOT_RUNNING";
|
|
794
|
+
readonly SESSION_INACTIVE: "SESSION_INACTIVE";
|
|
795
|
+
readonly RESOURCE_LOCKED: "RESOURCE_LOCKED";
|
|
796
|
+
readonly PROCESS_ALREADY_TERMINATED: "PROCESS_ALREADY_TERMINATED";
|
|
797
|
+
readonly OPERATION_TIMEOUT: "OPERATION_TIMEOUT";
|
|
798
|
+
readonly OPERATION_FAILED: "OPERATION_FAILED";
|
|
799
|
+
readonly EXECUTION_FAILED: "EXECUTION_FAILED";
|
|
800
|
+
readonly SIGNAL_FAILED: "SIGNAL_FAILED";
|
|
801
|
+
readonly FILE_OPERATION_ERROR: "FILE_OPERATION_ERROR";
|
|
802
|
+
readonly FILE_TOO_LARGE: "FILE_TOO_LARGE";
|
|
803
|
+
readonly FILE_TRANSFER_FAILED: "FILE_TRANSFER_FAILED";
|
|
804
|
+
readonly PATH_TRAVERSAL_DETECTED: "PATH_TRAVERSAL_DETECTED";
|
|
805
|
+
readonly DIRECTORY_NOT_EMPTY: "DIRECTORY_NOT_EMPTY";
|
|
806
|
+
readonly DISK_FULL: "DISK_FULL";
|
|
807
|
+
readonly FILE_LOCKED: "FILE_LOCKED";
|
|
808
|
+
readonly PROCESS_START_FAILED: "PROCESS_START_FAILED";
|
|
809
|
+
readonly INVALID_SIGNAL: "INVALID_SIGNAL";
|
|
810
|
+
readonly PROCESS_LIMIT_EXCEEDED: "PROCESS_LIMIT_EXCEEDED";
|
|
811
|
+
readonly SESSION_CREATION_FAILED: "SESSION_CREATION_FAILED";
|
|
812
|
+
readonly SESSION_LIMIT_EXCEEDED: "SESSION_LIMIT_EXCEEDED";
|
|
813
|
+
readonly SESSION_TIMEOUT: "SESSION_TIMEOUT";
|
|
814
|
+
readonly SHELL_NOT_FOUND: "SHELL_NOT_FOUND";
|
|
815
|
+
readonly SERVER_UNAVAILABLE: "SERVER_UNAVAILABLE";
|
|
816
|
+
readonly HEALTH_CHECK_FAILED: "HEALTH_CHECK_FAILED";
|
|
817
|
+
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
818
|
+
readonly SERVICE_UNAVAILABLE: "SERVICE_UNAVAILABLE";
|
|
819
|
+
readonly MAINTENANCE_MODE: "MAINTENANCE_MODE";
|
|
820
|
+
};
|
|
821
|
+
declare const HTTP_STATUS: {
|
|
822
|
+
readonly OK: 200;
|
|
823
|
+
readonly CREATED: 201;
|
|
824
|
+
readonly ACCEPTED: 202;
|
|
825
|
+
readonly NO_CONTENT: 204;
|
|
826
|
+
readonly BAD_REQUEST: 400;
|
|
827
|
+
readonly UNAUTHORIZED: 401;
|
|
828
|
+
readonly FORBIDDEN: 403;
|
|
829
|
+
readonly NOT_FOUND: 404;
|
|
830
|
+
readonly METHOD_NOT_ALLOWED: 405;
|
|
831
|
+
readonly TIMEOUT: 408;
|
|
832
|
+
readonly CONFLICT: 409;
|
|
833
|
+
readonly GONE: 410;
|
|
834
|
+
readonly TOO_MANY_REQUESTS: 429;
|
|
835
|
+
readonly INTERNAL_SERVER_ERROR: 500;
|
|
836
|
+
readonly BAD_GATEWAY: 502;
|
|
837
|
+
readonly SERVICE_UNAVAILABLE: 503;
|
|
838
|
+
readonly GATEWAY_TIMEOUT: 504;
|
|
839
|
+
};
|
|
840
|
+
|
|
841
|
+
interface ErrorContext {
|
|
842
|
+
status?: number;
|
|
843
|
+
statusText?: string;
|
|
844
|
+
timestamp?: number;
|
|
845
|
+
serverErrorCode?: string;
|
|
846
|
+
originalError?: unknown;
|
|
847
|
+
[key: string]: unknown;
|
|
848
|
+
}
|
|
849
|
+
declare class DevboxSDKError extends Error {
|
|
850
|
+
code: string;
|
|
851
|
+
context?: ErrorContext | undefined;
|
|
852
|
+
constructor(message: string, code: string, context?: ErrorContext | undefined);
|
|
853
|
+
}
|
|
854
|
+
declare class AuthenticationError extends DevboxSDKError {
|
|
855
|
+
constructor(message: string, context?: ErrorContext);
|
|
856
|
+
}
|
|
857
|
+
declare class ConnectionError extends DevboxSDKError {
|
|
858
|
+
constructor(message: string, context?: ErrorContext);
|
|
859
|
+
}
|
|
860
|
+
declare class FileOperationError extends DevboxSDKError {
|
|
861
|
+
constructor(message: string, context?: ErrorContext, code?: string);
|
|
862
|
+
}
|
|
863
|
+
declare class DevboxNotFoundError extends DevboxSDKError {
|
|
864
|
+
constructor(devboxName: string, context?: ErrorContext);
|
|
865
|
+
}
|
|
866
|
+
declare class DevboxNotReadyError extends DevboxSDKError {
|
|
867
|
+
constructor(devboxName: string, currentStatus?: string, context?: ErrorContext);
|
|
868
|
+
}
|
|
869
|
+
declare class ValidationError extends DevboxSDKError {
|
|
870
|
+
constructor(message: string, context?: ErrorContext);
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
declare const VERSION = "1.0.0";
|
|
874
|
+
|
|
875
|
+
export { type PortConfig$1 as APIPortConfig, type APIResponse, API_ENDPOINTS, AuthenticationError, type BatchUploadOptions, type CodeRunOptions, type CommandResult, ConnectionError, ContainerUrlResolver, type CreateDevboxRequest, DEFAULT_CONFIG, DevboxAPI, DevboxContainerClient, type DevboxCreateConfig, type DevboxCreateOptions, type DevboxDetailApiResponse, type DevboxInfo, DevboxInstance, type DevboxListApiResponse, DevboxNotFoundError, DevboxNotReadyError, DevboxRuntime, DevboxSDK, type DevboxSDKConfig, DevboxSDKError, type DevboxStatus, type DownloadFileOptions, ERROR_CODES, type EnvVar, type FileMap, FileOperationError, type FindInFilesOptions, type FindInFilesResponse, type GetProcessLogsResponse, type GetProcessStatusResponse, type GitAuth, type GitBranchInfo, type GitCloneOptions, type GitPullOptions, type GitPushOptions, type GitStatus, HTTP_STATUS, type HttpClientConfig, type KillProcessOptions, type ListProcessesResponse, type MonitorData, type MonitorDataApiResponse, type MoveFileOptions, type MoveFileResponse, type PortConfig, type PortPreviewUrl, type PortsResponse, type ProcessExecOptions, type ProcessExecResponse, type ProcessInfo, type ProcessStatus, type ReadOptions, type ReleaseListApiResponse, type RenameFileOptions, type RenameFileResponse, type ReplaceInFilesOptions, type ReplaceInFilesResponse, type ReplaceResult, type ResourceInfo, type SSHInfo, type SearchFilesOptions, type SearchFilesResponse, type SyncExecutionResponse, type TemplatesApiResponse, type TimeRange, type TransferError, type TransferProgress, type TransferResult, type UpdateDevboxRequest, VERSION, ValidationError, type WriteOptions, DevboxSDK as default };
|