@banata-boxes/sdk 0.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/dist/index.d.ts +561 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +476 -0
- package/package.json +51 -0
- package/src/index.ts +1219 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
export interface BrowserConfig {
|
|
2
|
+
/** Session weight: light (512MB, default), medium (1GB), heavy (2GB — Pro+) */
|
|
3
|
+
weight?: 'light' | 'medium' | 'heavy';
|
|
4
|
+
/** Isolation mode: shared (default) or dedicated (Pro+) */
|
|
5
|
+
isolation?: 'shared' | 'dedicated';
|
|
6
|
+
/** Outbound egress profile for the session */
|
|
7
|
+
egressProfile?: 'shared-dc' | 'dedicated-dc' | 'rotating-residential' | 'static-residential' | 'byo-proxy';
|
|
8
|
+
/** Enable anti-detection stealth (Builder+, default: false) */
|
|
9
|
+
stealth?: boolean;
|
|
10
|
+
/** Customer-provided proxy (BYOP) */
|
|
11
|
+
proxy?: {
|
|
12
|
+
protocol: 'http' | 'https' | 'socks5';
|
|
13
|
+
host: string;
|
|
14
|
+
port: number;
|
|
15
|
+
username?: string;
|
|
16
|
+
password?: string;
|
|
17
|
+
};
|
|
18
|
+
/** Enable MP4 session recording (Pro+, default: false) */
|
|
19
|
+
recording?: boolean;
|
|
20
|
+
/** Enable auto CAPTCHA solving (reCAPTCHA, hCaptcha, Turnstile) */
|
|
21
|
+
captcha?: boolean;
|
|
22
|
+
/** Max session duration in ms (capped by your plan limit) */
|
|
23
|
+
maxDurationMs?: number;
|
|
24
|
+
/** R2 key for a saved browser profile (cookies, localStorage) */
|
|
25
|
+
profileKey?: string;
|
|
26
|
+
/** Preferred Fly.io region code (e.g. 'iad', 'lhr') */
|
|
27
|
+
region?: string;
|
|
28
|
+
/** Ask the API to wait briefly for the session to become ready before returning */
|
|
29
|
+
waitUntilReady?: boolean;
|
|
30
|
+
/** Max time in ms for the API to wait before falling back to a queued response */
|
|
31
|
+
waitTimeoutMs?: number;
|
|
32
|
+
/** Timeout in ms to wait for session to become ready (default: 30000) */
|
|
33
|
+
timeout?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface BrowserSession {
|
|
36
|
+
id: string;
|
|
37
|
+
status: 'queued' | 'assigning' | 'ready' | 'active' | 'ending' | 'ended' | 'failed';
|
|
38
|
+
waitTimedOut?: boolean;
|
|
39
|
+
cdpUrl: string | null;
|
|
40
|
+
weight: string;
|
|
41
|
+
isolation: string;
|
|
42
|
+
egressProfile: string;
|
|
43
|
+
artifacts: {
|
|
44
|
+
screenshots?: string[];
|
|
45
|
+
har?: string;
|
|
46
|
+
recording?: string;
|
|
47
|
+
} | null;
|
|
48
|
+
duration: number | null;
|
|
49
|
+
}
|
|
50
|
+
export interface UsageInfo {
|
|
51
|
+
totalSessions: number;
|
|
52
|
+
totalBrowserHours: number;
|
|
53
|
+
weightBreakdown: {
|
|
54
|
+
light: number;
|
|
55
|
+
medium: number;
|
|
56
|
+
heavy: number;
|
|
57
|
+
};
|
|
58
|
+
periodStart: number | null;
|
|
59
|
+
}
|
|
60
|
+
export interface BillingInfo {
|
|
61
|
+
plan: string;
|
|
62
|
+
polarCustomerId: string | null;
|
|
63
|
+
currentPeriod: {
|
|
64
|
+
totalSessions: number;
|
|
65
|
+
totalBrowserHours: number;
|
|
66
|
+
weightBreakdown: {
|
|
67
|
+
light: number;
|
|
68
|
+
medium: number;
|
|
69
|
+
heavy: number;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export type WebhookEventType = "session.created" | "session.assigned" | "session.ready" | "session.ending" | "session.ended" | "session.failed" | "sandbox.created" | "sandbox.assigned" | "sandbox.ready" | "sandbox.ending" | "sandbox.ended" | "sandbox.failed" | "sandbox.paused" | "sandbox.resumed" | "sandbox.opencode.updated" | "sandbox.browser_preview.updated" | "sandbox.handoff.requested" | "sandbox.handoff.accepted" | "sandbox.handoff.completed" | "sandbox.artifacts.updated" | "machine.created" | "machine.woken" | "machine.registered" | "machine.suspended";
|
|
74
|
+
export interface WebhookEndpoint {
|
|
75
|
+
id: string;
|
|
76
|
+
url: string;
|
|
77
|
+
description?: string;
|
|
78
|
+
eventTypes: WebhookEventType[];
|
|
79
|
+
enabled: boolean;
|
|
80
|
+
createdAt: number;
|
|
81
|
+
updatedAt?: number;
|
|
82
|
+
lastDeliveredAt?: number;
|
|
83
|
+
lastFailureAt?: number;
|
|
84
|
+
lastFailureMessage?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface WebhookDelivery {
|
|
87
|
+
id: string;
|
|
88
|
+
webhookId: string;
|
|
89
|
+
eventId: string;
|
|
90
|
+
eventType: WebhookEventType;
|
|
91
|
+
resourceType?: string;
|
|
92
|
+
resourceId?: string;
|
|
93
|
+
targetUrl: string;
|
|
94
|
+
status: "pending" | "delivered" | "failed";
|
|
95
|
+
attemptCount: number;
|
|
96
|
+
responseStatus?: number;
|
|
97
|
+
responseBody?: string;
|
|
98
|
+
errorMessage?: string;
|
|
99
|
+
nextAttemptAt?: number;
|
|
100
|
+
lastAttemptAt: number;
|
|
101
|
+
deliveredAt?: number;
|
|
102
|
+
createdAt: number;
|
|
103
|
+
updatedAt: number;
|
|
104
|
+
}
|
|
105
|
+
export interface RetryConfig {
|
|
106
|
+
/** Max number of retries (default: 3) */
|
|
107
|
+
maxRetries?: number;
|
|
108
|
+
/** Base delay in ms for exponential backoff (default: 500) */
|
|
109
|
+
baseDelayMs?: number;
|
|
110
|
+
/** Max delay in ms (default: 10000) */
|
|
111
|
+
maxDelayMs?: number;
|
|
112
|
+
}
|
|
113
|
+
export declare class BanataError extends Error {
|
|
114
|
+
/** HTTP status code (0 for network errors) */
|
|
115
|
+
status: number;
|
|
116
|
+
/** Machine-readable error code (e.g. PLAN_FEATURE_UNAVAILABLE, PLAN_LIMIT_EXCEEDED) */
|
|
117
|
+
code: string | undefined;
|
|
118
|
+
/** The plan required to use this feature, if applicable */
|
|
119
|
+
requiredPlan: string | undefined;
|
|
120
|
+
/** Your current plan, if returned by the API */
|
|
121
|
+
currentPlan: string | undefined;
|
|
122
|
+
constructor(message: string, status: number, details?: {
|
|
123
|
+
code?: string;
|
|
124
|
+
requiredPlan?: string;
|
|
125
|
+
currentPlan?: string;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/** @deprecated Use BanataError instead */
|
|
129
|
+
export declare const BrowserServiceError: typeof BanataError;
|
|
130
|
+
export declare class BrowserCloud {
|
|
131
|
+
private apiKey;
|
|
132
|
+
private baseUrl;
|
|
133
|
+
private retryConfig;
|
|
134
|
+
constructor(config: {
|
|
135
|
+
apiKey: string;
|
|
136
|
+
baseUrl?: string;
|
|
137
|
+
retry?: RetryConfig;
|
|
138
|
+
});
|
|
139
|
+
private get headers();
|
|
140
|
+
private request;
|
|
141
|
+
/** Create a new browser session */
|
|
142
|
+
createBrowser(config?: BrowserConfig): Promise<BrowserSession>;
|
|
143
|
+
/** Get session status */
|
|
144
|
+
getBrowser(sessionId: string): Promise<BrowserSession>;
|
|
145
|
+
/** End a session */
|
|
146
|
+
closeBrowser(sessionId: string): Promise<void>;
|
|
147
|
+
/** Wait until session is ready and return CDP URL */
|
|
148
|
+
waitForReady(sessionId: string, timeoutMs?: number): Promise<string>;
|
|
149
|
+
/**
|
|
150
|
+
* Convenience: Create a session, wait for it to be ready, and return
|
|
151
|
+
* the CDP URL + a close function.
|
|
152
|
+
*
|
|
153
|
+
* Usage with Puppeteer:
|
|
154
|
+
* ```ts
|
|
155
|
+
* const { cdpUrl, close } = await cloud.launch({ weight: 'heavy' });
|
|
156
|
+
* const browser = await puppeteer.connect({ browserWSEndpoint: cdpUrl });
|
|
157
|
+
* // ... use browser ...
|
|
158
|
+
* await browser.disconnect();
|
|
159
|
+
* await close();
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
launch(config?: BrowserConfig): Promise<{
|
|
163
|
+
cdpUrl: string;
|
|
164
|
+
sessionId: string;
|
|
165
|
+
close: () => Promise<void>;
|
|
166
|
+
}>;
|
|
167
|
+
/** Get current period usage */
|
|
168
|
+
getUsage(): Promise<UsageInfo>;
|
|
169
|
+
/** Get billing info (plan, usage) */
|
|
170
|
+
getBilling(): Promise<BillingInfo>;
|
|
171
|
+
/** Create a checkout session for plan upgrade (returns Polar checkout URL) */
|
|
172
|
+
createCheckout(params: {
|
|
173
|
+
plan: 'builder' | 'pro' | 'scale';
|
|
174
|
+
successUrl?: string;
|
|
175
|
+
}): Promise<{
|
|
176
|
+
checkoutUrl: string;
|
|
177
|
+
checkoutId: string;
|
|
178
|
+
}>;
|
|
179
|
+
listWebhooks(): Promise<WebhookEndpoint[]>;
|
|
180
|
+
createWebhook(params: {
|
|
181
|
+
url: string;
|
|
182
|
+
description?: string;
|
|
183
|
+
eventTypes?: WebhookEventType[];
|
|
184
|
+
signingSecret?: string;
|
|
185
|
+
}): Promise<WebhookEndpoint & {
|
|
186
|
+
signingSecret: string;
|
|
187
|
+
}>;
|
|
188
|
+
deleteWebhook(id: string): Promise<void>;
|
|
189
|
+
listWebhookDeliveries(limit?: number): Promise<WebhookDelivery[]>;
|
|
190
|
+
testWebhook(id: string): Promise<{
|
|
191
|
+
eventId: string;
|
|
192
|
+
}>;
|
|
193
|
+
}
|
|
194
|
+
export interface SandboxConfig {
|
|
195
|
+
/** Sandbox runtime: bun, python, or base shell */
|
|
196
|
+
runtime?: 'bun' | 'python' | 'base';
|
|
197
|
+
/** Sandbox size: small (512MB), medium (1GB), large (2GB) */
|
|
198
|
+
size?: 'small' | 'medium' | 'large';
|
|
199
|
+
/** Environment variables to inject into the sandbox */
|
|
200
|
+
env?: Record<string, string>;
|
|
201
|
+
/** Whether sandbox is ephemeral (destroyed on kill). Default: true */
|
|
202
|
+
ephemeral?: boolean;
|
|
203
|
+
/** Max session duration in ms */
|
|
204
|
+
maxDurationMs?: number;
|
|
205
|
+
/** Preferred region for sandbox placement */
|
|
206
|
+
region?: string;
|
|
207
|
+
/** Optional powerhouse capabilities to prelaunch inside the sandbox */
|
|
208
|
+
capabilities?: SandboxCapabilities;
|
|
209
|
+
/** Ask the API to wait briefly for the sandbox to become ready before returning */
|
|
210
|
+
waitUntilReady?: boolean;
|
|
211
|
+
/** Max time in ms for the API to wait before falling back to a queued response */
|
|
212
|
+
waitTimeoutMs?: number;
|
|
213
|
+
/** Timeout in ms to wait for sandbox to become ready (default: 30000) */
|
|
214
|
+
timeout?: number;
|
|
215
|
+
}
|
|
216
|
+
export interface SandboxCapabilities {
|
|
217
|
+
opencode?: {
|
|
218
|
+
enabled: boolean;
|
|
219
|
+
defaultAgent?: "build" | "plan";
|
|
220
|
+
allowPromptApi?: boolean;
|
|
221
|
+
};
|
|
222
|
+
browser?: {
|
|
223
|
+
mode?: "none" | "paired-banata-browser" | "local-chromium";
|
|
224
|
+
recording?: boolean;
|
|
225
|
+
persistentProfile?: boolean;
|
|
226
|
+
streamPreview?: boolean;
|
|
227
|
+
humanInLoop?: boolean;
|
|
228
|
+
};
|
|
229
|
+
documents?: {
|
|
230
|
+
libreofficeHeadless?: boolean;
|
|
231
|
+
};
|
|
232
|
+
storage?: {
|
|
233
|
+
workspace?: "ephemeral" | "checkpointed";
|
|
234
|
+
artifactPrefix?: string;
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
export interface SandboxCredentialDescriptor {
|
|
238
|
+
name: string;
|
|
239
|
+
kind: string;
|
|
240
|
+
target: string;
|
|
241
|
+
lastInjectedAt?: number;
|
|
242
|
+
}
|
|
243
|
+
export interface SandboxArtifactItem {
|
|
244
|
+
key: string;
|
|
245
|
+
path: string;
|
|
246
|
+
kind: string;
|
|
247
|
+
createdAt: number;
|
|
248
|
+
contentType?: string;
|
|
249
|
+
sizeBytes?: number;
|
|
250
|
+
}
|
|
251
|
+
export interface SandboxArtifacts {
|
|
252
|
+
workspaceKey?: string;
|
|
253
|
+
checkpointKey?: string;
|
|
254
|
+
manifestKey?: string;
|
|
255
|
+
outputLogKey?: string;
|
|
256
|
+
items?: SandboxArtifactItem[];
|
|
257
|
+
updatedAt?: number;
|
|
258
|
+
}
|
|
259
|
+
export interface SandboxPairedBrowser {
|
|
260
|
+
sessionId?: string;
|
|
261
|
+
cdpUrl?: string;
|
|
262
|
+
previewUrl?: string;
|
|
263
|
+
recording?: boolean;
|
|
264
|
+
persistentProfile?: boolean;
|
|
265
|
+
controlMode?: "ai" | "human" | "shared";
|
|
266
|
+
controller?: string;
|
|
267
|
+
handoffRequestedAt?: number;
|
|
268
|
+
updatedAt?: number;
|
|
269
|
+
}
|
|
270
|
+
export interface SandboxOpencodeState {
|
|
271
|
+
status: "disabled" | "booting" | "ready" | "failed";
|
|
272
|
+
serverBaseUrl?: string;
|
|
273
|
+
sessionId?: string;
|
|
274
|
+
defaultAgent?: "build" | "plan";
|
|
275
|
+
lastPromptAt?: number;
|
|
276
|
+
lastError?: string;
|
|
277
|
+
}
|
|
278
|
+
export interface SandboxBrowserPreviewState {
|
|
279
|
+
status: "disabled" | "provisioning" | "ready" | "active" | "handoff_requested" | "released" | "failed";
|
|
280
|
+
publicUrl?: string;
|
|
281
|
+
websocketUrl?: string;
|
|
282
|
+
controlMode?: "ai" | "human" | "shared";
|
|
283
|
+
controller?: string;
|
|
284
|
+
leaseExpiresAt?: number;
|
|
285
|
+
updatedAt?: number;
|
|
286
|
+
}
|
|
287
|
+
export type SandboxHumanHandoffReason = "mfa" | "captcha" | "approval" | "login_failed" | "ambiguous_ui" | "file_download" | "custom";
|
|
288
|
+
export type SandboxHumanHandoffStatus = "pending" | "accepted" | "completed" | "cancelled" | "expired";
|
|
289
|
+
export interface SandboxHumanHandoffState {
|
|
290
|
+
requestId: string;
|
|
291
|
+
status: SandboxHumanHandoffStatus;
|
|
292
|
+
reason: SandboxHumanHandoffReason;
|
|
293
|
+
message: string;
|
|
294
|
+
requestedBy: "opencode" | "worker" | "sdk" | "dashboard";
|
|
295
|
+
controller?: string;
|
|
296
|
+
resumePrompt?: string;
|
|
297
|
+
note?: string;
|
|
298
|
+
requestedAt: number;
|
|
299
|
+
acceptedAt?: number;
|
|
300
|
+
completedAt?: number;
|
|
301
|
+
expiresAt?: number;
|
|
302
|
+
updatedAt: number;
|
|
303
|
+
}
|
|
304
|
+
export interface SandboxSession {
|
|
305
|
+
id: string;
|
|
306
|
+
status: 'queued' | 'assigning' | 'ready' | 'active' | 'ending' | 'ended' | 'failed' | 'pausing' | 'paused';
|
|
307
|
+
waitTimedOut?: boolean;
|
|
308
|
+
runtime: 'bun' | 'python' | 'base';
|
|
309
|
+
size: 'small' | 'medium' | 'large';
|
|
310
|
+
region?: string | null;
|
|
311
|
+
terminalUrl: string | null;
|
|
312
|
+
previewBaseUrl?: string | null;
|
|
313
|
+
capabilities?: SandboxCapabilities | null;
|
|
314
|
+
credentialDescriptors?: SandboxCredentialDescriptor[] | null;
|
|
315
|
+
pairedBrowser?: SandboxPairedBrowser | null;
|
|
316
|
+
opencode?: SandboxOpencodeState | null;
|
|
317
|
+
browserPreview?: SandboxBrowserPreviewState | null;
|
|
318
|
+
humanHandoff?: SandboxHumanHandoffState | null;
|
|
319
|
+
artifacts?: SandboxArtifacts | null;
|
|
320
|
+
createdAt: number;
|
|
321
|
+
duration: number | null;
|
|
322
|
+
}
|
|
323
|
+
export interface SandboxListResponse {
|
|
324
|
+
items: SandboxSession[];
|
|
325
|
+
}
|
|
326
|
+
export interface SandboxWorkerRuntimeState {
|
|
327
|
+
sessionId: string | null;
|
|
328
|
+
hasSession: boolean;
|
|
329
|
+
opencode: SandboxOpencodeState | null;
|
|
330
|
+
browserPreview: SandboxBrowserPreviewState | null;
|
|
331
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
332
|
+
artifacts: SandboxArtifacts | null;
|
|
333
|
+
humanHandoff: SandboxHumanHandoffState | null;
|
|
334
|
+
}
|
|
335
|
+
export interface SandboxOpencodePromptResponse {
|
|
336
|
+
ok: boolean;
|
|
337
|
+
sessionId?: string;
|
|
338
|
+
response?: Record<string, unknown> | null;
|
|
339
|
+
error?: string;
|
|
340
|
+
}
|
|
341
|
+
export interface SandboxCheckpointResponse {
|
|
342
|
+
ok: boolean;
|
|
343
|
+
artifacts?: SandboxArtifacts;
|
|
344
|
+
}
|
|
345
|
+
export interface SandboxArtifactDownload {
|
|
346
|
+
id: string;
|
|
347
|
+
key: string;
|
|
348
|
+
url: string;
|
|
349
|
+
expiresInSeconds: number;
|
|
350
|
+
}
|
|
351
|
+
export interface SandboxBrowserControlResponse {
|
|
352
|
+
ok: boolean;
|
|
353
|
+
preview: SandboxBrowserPreviewState;
|
|
354
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
355
|
+
}
|
|
356
|
+
export interface SandboxHumanHandoffResponse {
|
|
357
|
+
ok: boolean;
|
|
358
|
+
handoff: SandboxHumanHandoffState;
|
|
359
|
+
preview: SandboxBrowserPreviewState | null;
|
|
360
|
+
pairedBrowser?: SandboxPairedBrowser | null;
|
|
361
|
+
}
|
|
362
|
+
export interface SandboxHumanHandoffCompleteResponse {
|
|
363
|
+
ok: boolean;
|
|
364
|
+
handoff: SandboxHumanHandoffState;
|
|
365
|
+
preview: SandboxBrowserPreviewState | null;
|
|
366
|
+
pairedBrowser?: SandboxPairedBrowser | null;
|
|
367
|
+
resume?: SandboxOpencodePromptResponse;
|
|
368
|
+
}
|
|
369
|
+
export interface ExecResult {
|
|
370
|
+
stdout: string;
|
|
371
|
+
stderr: string;
|
|
372
|
+
exitCode: number;
|
|
373
|
+
durationMs: number;
|
|
374
|
+
}
|
|
375
|
+
export interface FsEntry {
|
|
376
|
+
name: string;
|
|
377
|
+
type: 'file' | 'directory';
|
|
378
|
+
size: number;
|
|
379
|
+
mtime: number;
|
|
380
|
+
}
|
|
381
|
+
export interface LaunchedSandbox {
|
|
382
|
+
sessionId: string;
|
|
383
|
+
terminalUrl: string;
|
|
384
|
+
exec: (command: string, args?: string[]) => Promise<ExecResult>;
|
|
385
|
+
runCode: (code: string) => Promise<ExecResult>;
|
|
386
|
+
prompt: (prompt: string, options?: {
|
|
387
|
+
agent?: "build" | "plan";
|
|
388
|
+
sessionId?: string;
|
|
389
|
+
noReply?: boolean;
|
|
390
|
+
}) => Promise<SandboxOpencodePromptResponse>;
|
|
391
|
+
checkpoint: () => Promise<SandboxCheckpointResponse>;
|
|
392
|
+
getRuntime: () => Promise<SandboxRuntimeState>;
|
|
393
|
+
getPreview: () => Promise<SandboxBrowserPreviewInfo>;
|
|
394
|
+
getHandoff: () => Promise<SandboxHumanHandoffInfo>;
|
|
395
|
+
browserPreviewUrl: string | null;
|
|
396
|
+
setControl: (mode: "ai" | "human" | "shared", options?: {
|
|
397
|
+
controller?: string;
|
|
398
|
+
leaseMs?: number;
|
|
399
|
+
}) => Promise<SandboxBrowserControlResponse>;
|
|
400
|
+
takeControl: (options?: {
|
|
401
|
+
controller?: string;
|
|
402
|
+
leaseMs?: number;
|
|
403
|
+
}) => Promise<SandboxBrowserControlResponse>;
|
|
404
|
+
returnControl: (options?: {
|
|
405
|
+
controller?: string;
|
|
406
|
+
leaseMs?: number;
|
|
407
|
+
}) => Promise<SandboxBrowserControlResponse>;
|
|
408
|
+
requestHumanHandoff: (options: {
|
|
409
|
+
reason: SandboxHumanHandoffReason;
|
|
410
|
+
message: string;
|
|
411
|
+
resumePrompt?: string;
|
|
412
|
+
expiresInMs?: number;
|
|
413
|
+
}) => Promise<SandboxHumanHandoffResponse>;
|
|
414
|
+
acceptHumanHandoff: (options: {
|
|
415
|
+
controller: string;
|
|
416
|
+
leaseMs?: number;
|
|
417
|
+
}) => Promise<SandboxHumanHandoffResponse>;
|
|
418
|
+
completeHumanHandoff: (options?: {
|
|
419
|
+
controller?: string;
|
|
420
|
+
note?: string;
|
|
421
|
+
returnControlTo?: "ai" | "shared";
|
|
422
|
+
runResumePrompt?: boolean;
|
|
423
|
+
}) => Promise<SandboxHumanHandoffCompleteResponse>;
|
|
424
|
+
fs: {
|
|
425
|
+
read: (path: string) => Promise<string>;
|
|
426
|
+
write: (path: string, content: string) => Promise<void>;
|
|
427
|
+
list: (path?: string) => Promise<FsEntry[]>;
|
|
428
|
+
};
|
|
429
|
+
kill: () => Promise<void>;
|
|
430
|
+
}
|
|
431
|
+
export interface SandboxRuntimeState {
|
|
432
|
+
id: string;
|
|
433
|
+
status: SandboxSession["status"];
|
|
434
|
+
capabilities: SandboxCapabilities | null;
|
|
435
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
436
|
+
opencode: SandboxOpencodeState | null;
|
|
437
|
+
browserPreview: SandboxBrowserPreviewState | null;
|
|
438
|
+
humanHandoff: SandboxHumanHandoffState | null;
|
|
439
|
+
artifacts: SandboxArtifacts | null;
|
|
440
|
+
runtime: SandboxWorkerRuntimeState | null;
|
|
441
|
+
}
|
|
442
|
+
export interface SandboxBrowserPreviewInfo {
|
|
443
|
+
id: string;
|
|
444
|
+
browserPreviewUrl: string | null;
|
|
445
|
+
previewBaseUrl: string | null;
|
|
446
|
+
browserPreview: SandboxBrowserPreviewState | null;
|
|
447
|
+
humanHandoff: SandboxHumanHandoffState | null;
|
|
448
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
449
|
+
runtime: {
|
|
450
|
+
preview: SandboxBrowserPreviewState | null;
|
|
451
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
452
|
+
websocketUrl: string | null;
|
|
453
|
+
humanHandoff: SandboxHumanHandoffState | null;
|
|
454
|
+
} | null;
|
|
455
|
+
}
|
|
456
|
+
export interface SandboxHumanHandoffInfo {
|
|
457
|
+
id: string;
|
|
458
|
+
humanHandoff: SandboxHumanHandoffState | null;
|
|
459
|
+
browserPreview: SandboxBrowserPreviewState | null;
|
|
460
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
461
|
+
runtime: {
|
|
462
|
+
handoff: SandboxHumanHandoffState | null;
|
|
463
|
+
preview: SandboxBrowserPreviewState | null;
|
|
464
|
+
pairedBrowser: SandboxPairedBrowser | null;
|
|
465
|
+
} | null;
|
|
466
|
+
}
|
|
467
|
+
export declare class BanataSandbox {
|
|
468
|
+
private apiKey;
|
|
469
|
+
private baseUrl;
|
|
470
|
+
private retryConfig;
|
|
471
|
+
constructor(config: {
|
|
472
|
+
apiKey: string;
|
|
473
|
+
baseUrl?: string;
|
|
474
|
+
retry?: RetryConfig;
|
|
475
|
+
});
|
|
476
|
+
private get headers();
|
|
477
|
+
private request;
|
|
478
|
+
/** Create a new sandbox session */
|
|
479
|
+
create(config?: SandboxConfig): Promise<SandboxSession>;
|
|
480
|
+
/** Get sandbox session status */
|
|
481
|
+
get(id: string): Promise<SandboxSession>;
|
|
482
|
+
/** List sandbox sessions available to the API key's organization */
|
|
483
|
+
list(): Promise<SandboxSession[]>;
|
|
484
|
+
/** Kill (destroy) a sandbox session */
|
|
485
|
+
kill(id: string): Promise<void>;
|
|
486
|
+
/** Wait until sandbox is ready and return the session */
|
|
487
|
+
waitForReady(id: string, timeoutMs?: number): Promise<SandboxSession>;
|
|
488
|
+
/** Execute a command in the sandbox */
|
|
489
|
+
exec(id: string, command: string, args?: string[]): Promise<ExecResult>;
|
|
490
|
+
/** Run code in the sandbox using its configured runtime */
|
|
491
|
+
runCode(id: string, code: string): Promise<ExecResult>;
|
|
492
|
+
/** Pause a sandbox (preserves state, stops billing) */
|
|
493
|
+
pause(id: string): Promise<void>;
|
|
494
|
+
/** Resume a paused sandbox */
|
|
495
|
+
resume(id: string): Promise<void>;
|
|
496
|
+
readonly fs: {
|
|
497
|
+
/** Read a file from the sandbox */
|
|
498
|
+
read: (id: string, path: string) => Promise<string>;
|
|
499
|
+
/** Write a file to the sandbox */
|
|
500
|
+
write: (id: string, path: string, content: string) => Promise<void>;
|
|
501
|
+
/** List files in a directory in the sandbox */
|
|
502
|
+
list: (id: string, path?: string) => Promise<FsEntry[]>;
|
|
503
|
+
};
|
|
504
|
+
/** Get terminal connection info for a sandbox */
|
|
505
|
+
terminal(id: string): Promise<{
|
|
506
|
+
terminalUrl: string | null;
|
|
507
|
+
token: string | null;
|
|
508
|
+
}>;
|
|
509
|
+
getRuntime(id: string): Promise<SandboxRuntimeState>;
|
|
510
|
+
prompt(id: string, prompt: string, options?: {
|
|
511
|
+
agent?: "build" | "plan";
|
|
512
|
+
sessionId?: string;
|
|
513
|
+
noReply?: boolean;
|
|
514
|
+
}): Promise<SandboxOpencodePromptResponse>;
|
|
515
|
+
checkpoint(id: string): Promise<SandboxCheckpointResponse>;
|
|
516
|
+
getArtifacts(id: string): Promise<{
|
|
517
|
+
id: string;
|
|
518
|
+
artifacts: SandboxArtifacts | null;
|
|
519
|
+
}>;
|
|
520
|
+
getArtifactDownloadUrl(id: string, key: string, expiresInSeconds?: number): Promise<SandboxArtifactDownload>;
|
|
521
|
+
getPreview(id: string): Promise<SandboxBrowserPreviewInfo>;
|
|
522
|
+
getHandoff(id: string): Promise<SandboxHumanHandoffInfo>;
|
|
523
|
+
requestHumanHandoff(id: string, options: {
|
|
524
|
+
reason: SandboxHumanHandoffReason;
|
|
525
|
+
message: string;
|
|
526
|
+
resumePrompt?: string;
|
|
527
|
+
expiresInMs?: number;
|
|
528
|
+
}): Promise<SandboxHumanHandoffResponse>;
|
|
529
|
+
acceptHumanHandoff(id: string, options: {
|
|
530
|
+
controller: string;
|
|
531
|
+
leaseMs?: number;
|
|
532
|
+
}): Promise<SandboxHumanHandoffResponse>;
|
|
533
|
+
completeHumanHandoff(id: string, options?: {
|
|
534
|
+
controller?: string;
|
|
535
|
+
note?: string;
|
|
536
|
+
returnControlTo?: "ai" | "shared";
|
|
537
|
+
runResumePrompt?: boolean;
|
|
538
|
+
}): Promise<SandboxHumanHandoffCompleteResponse>;
|
|
539
|
+
setControl(id: string, mode: "ai" | "human" | "shared", options?: {
|
|
540
|
+
controller?: string;
|
|
541
|
+
leaseMs?: number;
|
|
542
|
+
}): Promise<SandboxBrowserControlResponse>;
|
|
543
|
+
/**
|
|
544
|
+
* Convenience: Create a sandbox, wait for it to be ready, and return
|
|
545
|
+
* a rich object with exec/fs/kill methods bound to this session.
|
|
546
|
+
*
|
|
547
|
+
* Usage:
|
|
548
|
+
* ```ts
|
|
549
|
+
* const sandbox = new BanataSandbox({ apiKey: '...' });
|
|
550
|
+
* const session = await sandbox.launch({ runtime: 'bun', size: 'small' });
|
|
551
|
+
*
|
|
552
|
+
* const result = await session.exec('echo', ['Hello!']);
|
|
553
|
+
* console.log(result.stdout);
|
|
554
|
+
*
|
|
555
|
+
* await session.kill();
|
|
556
|
+
* ```
|
|
557
|
+
*/
|
|
558
|
+
launch(config?: SandboxConfig): Promise<LaunchedSandbox>;
|
|
559
|
+
}
|
|
560
|
+
export default BrowserCloud;
|
|
561
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|