withruntime 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/COMPATIBILITY.md +145 -0
  2. package/E2B.md +23 -13
  3. package/README.md +8 -5
  4. package/README.src.md +8 -5
  5. package/compatibility-lock.json +281 -0
  6. package/dist/ai-harness/index.js +2 -2
  7. package/dist/api-defaults.d.ts +17 -0
  8. package/dist/api-defaults.js +22 -0
  9. package/dist/blaxel/preview.d.ts +1 -1
  10. package/dist/blaxel/preview.js +1 -1
  11. package/dist/blaxel/process.d.ts +1 -1
  12. package/dist/blaxel/process.js +11 -2
  13. package/dist/cli-words.d.ts +27 -0
  14. package/dist/cli-words.js +135 -0
  15. package/dist/cli.js +162 -31
  16. package/dist/client.d.ts +4 -1
  17. package/dist/client.js +8 -2
  18. package/dist/cloudflare/index.d.ts +294 -0
  19. package/dist/cloudflare/index.js +554 -0
  20. package/dist/cloudflare/worker.d.ts +415 -0
  21. package/dist/cloudflare/worker.js +297 -0
  22. package/dist/codesandbox/guest-service.d.ts +31 -0
  23. package/dist/codesandbox/guest-service.js +453 -0
  24. package/dist/codesandbox/index.d.ts +386 -0
  25. package/dist/codesandbox/index.js +1313 -0
  26. package/dist/compat/core.d.ts +39 -0
  27. package/dist/compat/core.js +199 -0
  28. package/dist/compat/files.d.ts +26 -0
  29. package/dist/compat/files.js +115 -0
  30. package/dist/compat/shell.d.ts +4 -0
  31. package/dist/compat/shell.js +165 -0
  32. package/dist/daytona/context.js +2 -1
  33. package/dist/daytona/process.d.ts +1 -1
  34. package/dist/daytona/process.js +27 -4
  35. package/dist/e2b/code-interpreter.d.ts +4 -5
  36. package/dist/e2b/code-interpreter.js +54 -56
  37. package/dist/e2b/commands.d.ts +5 -4
  38. package/dist/e2b/commands.js +37 -29
  39. package/dist/e2b/errors.js +1 -1
  40. package/dist/e2b/filesystem.d.ts +8 -6
  41. package/dist/e2b/filesystem.js +127 -28
  42. package/dist/e2b/sandbox.d.ts +4 -3
  43. package/dist/e2b/sandbox.js +10 -10
  44. package/dist/errors.d.ts +8 -0
  45. package/dist/errors.js +15 -2
  46. package/dist/freestyle/index.d.ts +301 -0
  47. package/dist/freestyle/index.js +310 -0
  48. package/dist/index.d.ts +1 -0
  49. package/dist/mcp.js +2 -2
  50. package/dist/modal/index.d.ts +205 -0
  51. package/dist/modal/index.js +485 -0
  52. package/dist/network-cli.js +1 -1
  53. package/dist/openai-agents/index.js +9 -26
  54. package/dist/products/audit.d.ts +3 -0
  55. package/dist/products/index.d.ts +2 -0
  56. package/dist/products/index.js +2 -0
  57. package/dist/products/interpreter.d.ts +11 -4
  58. package/dist/products/interpreter.js +33 -9
  59. package/dist/products/jobs.js +3 -2
  60. package/dist/products/limits.d.ts +10 -0
  61. package/dist/products/previews.d.ts +10 -2
  62. package/dist/products/previews.js +3 -2
  63. package/dist/products/tailscale.d.ts +57 -0
  64. package/dist/products/tailscale.js +17 -0
  65. package/dist/products/watch.d.ts +25 -4
  66. package/dist/products/watch.js +75 -14
  67. package/dist/runloop/index.d.ts +340 -0
  68. package/dist/runloop/index.js +438 -0
  69. package/dist/runloop/pagination.d.ts +46 -0
  70. package/dist/runloop/pagination.js +82 -0
  71. package/dist/runloop/snapshots.d.ts +52 -0
  72. package/dist/runloop/snapshots.js +244 -0
  73. package/dist/sandbox.d.ts +40 -9
  74. package/dist/sandbox.js +273 -76
  75. package/dist/snapshots.d.ts +11 -1
  76. package/dist/snapshots.js +11 -1
  77. package/dist/sprites/index.d.ts +251 -0
  78. package/dist/sprites/index.js +552 -0
  79. package/dist/tar.d.ts +8 -1
  80. package/dist/tar.js +185 -35
  81. package/dist/tools/index.js +2 -1
  82. package/dist/transport.d.ts +20 -2
  83. package/dist/transport.js +48 -11
  84. package/dist/types.d.ts +52 -3
  85. package/dist/vercel/command.js +12 -1
  86. package/dist/vercel/errors.d.ts +2 -2
  87. package/dist/vercel/errors.js +12 -1
  88. package/dist/vercel/filesystem.d.ts +21 -18
  89. package/dist/vercel/filesystem.js +95 -48
  90. package/dist/vercel/sandbox.js +5 -5
  91. package/package.json +45 -3
@@ -0,0 +1,386 @@
1
+ import type { Runtime } from "../client.js";
2
+ import type { Sandbox as NativeSandbox, Process } from "../sandbox.js";
3
+ import { CompatibilityError, type ClientOptions } from "../compat/core.js";
4
+ import { ManagedTasks } from "./guest-service.js";
5
+ export { CompatibilityError };
6
+ export declare class VMTier {
7
+ readonly name: string;
8
+ readonly cpuCores: number;
9
+ readonly memoryGiB: number;
10
+ readonly diskGB: number;
11
+ private constructor();
12
+ static readonly Pico: VMTier;
13
+ static readonly Nano: VMTier;
14
+ static readonly Micro: VMTier;
15
+ static readonly Small: VMTier;
16
+ static readonly Medium: VMTier;
17
+ static readonly Large: VMTier;
18
+ static readonly XLarge: VMTier;
19
+ static readonly All: VMTier[];
20
+ static fromName(name: string): VMTier;
21
+ static fromSpecs(specs: {
22
+ cpu: number;
23
+ memGiB: number;
24
+ diskGB?: number;
25
+ }): VMTier | undefined;
26
+ }
27
+ export type CreateSandboxOpts = {
28
+ id?: string;
29
+ title?: string;
30
+ description?: string;
31
+ tags?: string[];
32
+ privacy?: "private" | "public" | "public-hosts" | "unlisted";
33
+ vmTier?: VMTier;
34
+ hibernationTimeoutSeconds?: number;
35
+ };
36
+ export type SessionCreateOptions = {
37
+ id?: string;
38
+ env?: Record<string, string>;
39
+ permission?: "read" | "write";
40
+ };
41
+ export type ShellRunOpts = {
42
+ env?: Record<string, string>;
43
+ cwd?: string;
44
+ name?: string;
45
+ dimensions?: {
46
+ cols: number;
47
+ rows: number;
48
+ };
49
+ asGlobalSession?: boolean;
50
+ };
51
+ export declare class CodeSandbox {
52
+ readonly sandboxes: Sandboxes;
53
+ constructor(apiToken?: string, options?: ClientOptions);
54
+ }
55
+ export declare class Sandboxes {
56
+ private readonly runtime;
57
+ constructor(runtime: Runtime);
58
+ create(options?: CreateSandboxOpts): Promise<Sandbox>;
59
+ resume(id: string): Promise<Sandbox>;
60
+ hibernate(id: string): Promise<void>;
61
+ shutdown(id: string): Promise<void>;
62
+ delete(id: string): Promise<void>;
63
+ restart(id: string, options?: {
64
+ hibernationTimeoutSeconds?: number;
65
+ }): Promise<Sandbox>;
66
+ fork(id: string, options?: Omit<CreateSandboxOpts, "id">): Promise<Sandbox>;
67
+ get(id: string): Promise<{
68
+ id: string;
69
+ createdAt: Date;
70
+ updatedAt: Date;
71
+ title: string | undefined;
72
+ description: string | undefined;
73
+ privacy: string;
74
+ tags: string[];
75
+ }>;
76
+ list(options?: {
77
+ tags?: string[];
78
+ status?: "running";
79
+ limit?: number;
80
+ pagination?: {
81
+ page?: number;
82
+ pageSize?: number;
83
+ };
84
+ direction?: "asc" | "desc";
85
+ orderBy?: "inserted_at" | "updated_at";
86
+ }): Promise<{
87
+ sandboxes: {
88
+ id: string;
89
+ createdAt: Date;
90
+ updatedAt: Date;
91
+ title: string | undefined;
92
+ description: string | undefined;
93
+ privacy: string;
94
+ tags: string[];
95
+ }[];
96
+ totalCount: number;
97
+ hasMore: boolean;
98
+ pagination: {
99
+ currentPage: number;
100
+ nextPage: number | null;
101
+ pageSize: number;
102
+ };
103
+ }>;
104
+ }
105
+ export declare class Sandbox {
106
+ readonly native: NativeSandbox;
107
+ readonly bootupType: "RUNNING" | "CLEAN" | "RESUME" | "FORK";
108
+ constructor(native: NativeSandbox, bootupType: "RUNNING" | "CLEAN" | "RESUME" | "FORK");
109
+ get id(): string;
110
+ get cluster(): string;
111
+ updateHibernationTimeout(timeoutSeconds: number): Promise<void>;
112
+ connect(options?: SessionCreateOptions): Promise<SandboxClient>;
113
+ }
114
+ export declare class CommandError extends Error {
115
+ readonly exitCode: number;
116
+ readonly output: string;
117
+ constructor(message: string, exitCode: number, output: string);
118
+ }
119
+ export type CommandStatus = "RUNNING" | "FINISHED" | "ERROR" | "KILLED" | "RESTARTING";
120
+ export declare class Command {
121
+ private process;
122
+ readonly command: string;
123
+ readonly name?: string | undefined;
124
+ private readonly startAgain?;
125
+ readonly onOutput: (listener: (value: string) => void) => {
126
+ dispose: () => boolean;
127
+ };
128
+ readonly onStatusChange: (listener: (value: CommandStatus) => void) => {
129
+ dispose: () => boolean;
130
+ };
131
+ private outputEvent;
132
+ private statusEvent;
133
+ private output;
134
+ private result;
135
+ private resolveResult;
136
+ private rejectResult;
137
+ private generation;
138
+ private subscription;
139
+ private transition;
140
+ private currentStatus;
141
+ get status(): CommandStatus;
142
+ set status(value: CommandStatus);
143
+ constructor(process: Process, command: string, name?: string | undefined, startAgain?: (() => Promise<Process>) | undefined);
144
+ private setStatus;
145
+ private follow;
146
+ /** Detach this client's subscription without terminating the guest command. */
147
+ detach(): void;
148
+ open(dimensions?: {
149
+ cols: number;
150
+ rows: number;
151
+ }): Promise<string>;
152
+ /** Internal task bridge: read without yielding between log handoff and events. */
153
+ get bufferedOutput(): string;
154
+ waitUntilComplete(): Promise<string>;
155
+ private serial;
156
+ restart(): Promise<void>;
157
+ kill(): Promise<void>;
158
+ }
159
+ export declare class FileSystem {
160
+ private readonly native;
161
+ private readonly files;
162
+ constructor(native: NativeSandbox);
163
+ writeFile(path: string, content: Uint8Array, options?: {
164
+ create?: boolean;
165
+ overwrite?: boolean;
166
+ }): Promise<void>;
167
+ writeTextFile(path: string, content: string, options?: {
168
+ create?: boolean;
169
+ overwrite?: boolean;
170
+ }): Promise<void>;
171
+ batchWrite(files: {
172
+ path: string;
173
+ content: string | Uint8Array;
174
+ }[]): Promise<void>;
175
+ readFile(path: string): Promise<Uint8Array<ArrayBufferLike>>;
176
+ readTextFile(path: string): Promise<string>;
177
+ mkdir(path: string, recursive?: boolean): Promise<void>;
178
+ remove(path: string, recursive?: boolean): Promise<void>;
179
+ rename(from: string, to: string, overwrite?: boolean): Promise<void>;
180
+ copy(from: string, to: string, recursive?: boolean, overwrite?: boolean): Promise<void>;
181
+ readdir(path: string): Promise<{
182
+ name: string;
183
+ type: string;
184
+ isSymlink: boolean;
185
+ }[]>;
186
+ stat(path: string): Promise<{
187
+ type: string;
188
+ isSymlink: boolean;
189
+ size: number;
190
+ atime: number;
191
+ mtime: number;
192
+ ctime: number;
193
+ }>;
194
+ }
195
+ export declare class SandboxClient {
196
+ private readonly native;
197
+ private readonly env;
198
+ readonly fs: FileSystem;
199
+ readonly commands: {
200
+ runBackground: (command: string | string[], options?: ShellRunOpts) => Promise<Command>;
201
+ run: (command: string | string[], options?: ShellRunOpts) => Promise<string>;
202
+ getAll: () => Promise<Command[]>;
203
+ };
204
+ readonly ports: {
205
+ get: (port: number) => Promise<{
206
+ port: number;
207
+ host: string;
208
+ }>;
209
+ getAll: () => Promise<{
210
+ port: number;
211
+ host: string;
212
+ }[]>;
213
+ waitForPort: (port: number, options?: {
214
+ timeoutMs?: number;
215
+ }) => Promise<{
216
+ port: number;
217
+ host: string;
218
+ }>;
219
+ };
220
+ readonly tasks: Tasks;
221
+ readonly setup: Setup;
222
+ readonly workspacePath = "/project/sandbox";
223
+ private disconnected;
224
+ private readonly attached;
225
+ private readonly previewURLs;
226
+ private stopKeepAlive?;
227
+ constructor(native: NativeSandbox, env: Record<string, string>);
228
+ initialize(): Promise<void>;
229
+ previewURL(port: number): string;
230
+ private assertConnected;
231
+ private start;
232
+ private attach;
233
+ get id(): string;
234
+ get state(): "DISCONNECTED" | "CONNECTED";
235
+ disconnect(): Promise<void>;
236
+ reconnect(): Promise<void>;
237
+ keepActiveWhileConnected(enabled: boolean): void;
238
+ dispose(): void;
239
+ }
240
+ export type TaskDefinition = {
241
+ name: string;
242
+ command: string;
243
+ runAtStart?: boolean;
244
+ preview?: {
245
+ port?: number;
246
+ prLink?: "direct" | "redirect" | "devtool";
247
+ "pr-link"?: "direct" | "redirect" | "devtool";
248
+ };
249
+ };
250
+ /** Configured tasks share durable native processes between client connections. */
251
+ export declare class Tasks {
252
+ private readonly client;
253
+ private readonly native;
254
+ private cached?;
255
+ private readonly managed;
256
+ private loaded;
257
+ private cancelled;
258
+ constructor(client: SandboxClient, native: NativeSandbox);
259
+ getAll(): Promise<Task[]>;
260
+ get(id: string): Promise<Task | undefined>;
261
+ reconnect(): Promise<void>;
262
+ dispose(): void;
263
+ private load;
264
+ private monitor;
265
+ }
266
+ export declare class Task {
267
+ private readonly client;
268
+ readonly id: string;
269
+ private readonly definition;
270
+ private readonly managed;
271
+ private process?;
272
+ private processId?;
273
+ private fault?;
274
+ private disposed;
275
+ private opened;
276
+ private streamedLength;
277
+ private openedLength;
278
+ private readonly outputEvent;
279
+ private readonly statusEvent;
280
+ readonly onOutput: (listener: (value: string) => void) => {
281
+ dispose: () => boolean;
282
+ };
283
+ readonly onStatusChange: (listener: (value: CommandStatus | "IDLE") => void) => {
284
+ dispose: () => boolean;
285
+ };
286
+ private subscriptions;
287
+ private transition;
288
+ private exposed;
289
+ constructor(client: SandboxClient, id: string, definition: TaskDefinition, managed: ManagedTasks);
290
+ reconnect(): Promise<void>;
291
+ observe(process: Process): void;
292
+ unavailable(error: unknown): void;
293
+ get name(): string;
294
+ get command(): string;
295
+ get runAtStart(): boolean;
296
+ get status(): "IDLE" | CommandStatus;
297
+ get ports(): {
298
+ port: number;
299
+ url: string;
300
+ }[];
301
+ private attach;
302
+ open(dimensions?: {
303
+ cols: number;
304
+ rows: number;
305
+ }): Promise<string>;
306
+ private serial;
307
+ run(): Promise<void>;
308
+ restart(): Promise<void>;
309
+ stop(): Promise<void>;
310
+ waitForPort(timeout?: number): Promise<{
311
+ port: number;
312
+ url: string;
313
+ }>;
314
+ dispose(): void;
315
+ }
316
+ type StepState = "IDLE" | "SUCCEEDED" | "FAILED" | "SKIPPED";
317
+ type SetupState = "IDLE" | "IN_PROGRESS" | "FINISHED" | "STOPPED";
318
+ export declare class Setup {
319
+ private readonly client;
320
+ private readonly native;
321
+ private progress;
322
+ private steps;
323
+ private loaded?;
324
+ private active?;
325
+ private starting?;
326
+ private failure?;
327
+ private ignoredRunId?;
328
+ private managedBoot;
329
+ private cancelled;
330
+ private readonly changed;
331
+ readonly onSetupProgressChange: (listener: (value: void) => void) => {
332
+ dispose: () => boolean;
333
+ };
334
+ constructor(client: SandboxClient, native: NativeSandbox);
335
+ get status(): SetupState;
336
+ get currentStepIndex(): number;
337
+ getSteps(): Step[];
338
+ initialize(automatic?: boolean): Promise<void>;
339
+ reconnect(): Promise<void>;
340
+ private load;
341
+ run(): Promise<void>;
342
+ private start;
343
+ private monitor;
344
+ waitUntilComplete(): Promise<void>;
345
+ step(index: number): {
346
+ name: string;
347
+ command: string;
348
+ status: StepState;
349
+ log?: string;
350
+ tty?: string;
351
+ };
352
+ output(index: number): Promise<string>;
353
+ open(index: number, dimensions?: {
354
+ cols: number;
355
+ rows: number;
356
+ }): Promise<void>;
357
+ dispose(): void;
358
+ }
359
+ export declare class Step {
360
+ private readonly setup;
361
+ private readonly index;
362
+ private readonly definition;
363
+ private output;
364
+ private previousStatus;
365
+ private readonly outputEvent;
366
+ private readonly statusEvent;
367
+ readonly onOutput: (listener: (value: string) => void) => {
368
+ dispose: () => boolean;
369
+ };
370
+ readonly onStatusChange: (listener: (value: StepState) => void) => {
371
+ dispose: () => boolean;
372
+ };
373
+ constructor(setup: Setup, index: number, definition: {
374
+ name: string;
375
+ command: string;
376
+ });
377
+ get name(): string;
378
+ get command(): string;
379
+ get status(): StepState;
380
+ refresh(): Promise<void>;
381
+ open(dimensions?: {
382
+ cols: number;
383
+ rows: number;
384
+ }): Promise<string>;
385
+ waitUntilComplete(): Promise<void>;
386
+ }