@intella/sdk 0.0.1 → 0.0.3

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 (117) hide show
  1. package/README.md +6 -483
  2. package/dist/agent-manager.d.ts +47 -0
  3. package/dist/agent-manager.d.ts.map +1 -0
  4. package/dist/agent-manager.js +90 -0
  5. package/dist/agent-manager.js.map +1 -0
  6. package/dist/agents/base-agent.d.ts +41 -0
  7. package/dist/agents/base-agent.d.ts.map +1 -0
  8. package/dist/agents/base-agent.js +148 -0
  9. package/dist/agents/base-agent.js.map +1 -0
  10. package/dist/agents/claude-agent.d.ts +24 -0
  11. package/dist/agents/claude-agent.d.ts.map +1 -0
  12. package/dist/agents/claude-agent.js +65 -0
  13. package/dist/agents/claude-agent.js.map +1 -0
  14. package/dist/agents/codex-agent.d.ts +25 -0
  15. package/dist/agents/codex-agent.d.ts.map +1 -0
  16. package/dist/agents/codex-agent.js +62 -0
  17. package/dist/agents/codex-agent.js.map +1 -0
  18. package/dist/agents/intella-lite-agent.d.ts +21 -0
  19. package/dist/agents/intella-lite-agent.d.ts.map +1 -0
  20. package/dist/agents/intella-lite-agent.js +43 -0
  21. package/dist/agents/intella-lite-agent.js.map +1 -0
  22. package/dist/agents/opencode-agent.d.ts +20 -0
  23. package/dist/agents/opencode-agent.d.ts.map +1 -0
  24. package/dist/agents/opencode-agent.js +36 -0
  25. package/dist/agents/opencode-agent.js.map +1 -0
  26. package/dist/filesystem/base-provider.d.ts +55 -0
  27. package/dist/filesystem/base-provider.d.ts.map +1 -0
  28. package/dist/filesystem/base-provider.js +45 -0
  29. package/dist/filesystem/base-provider.js.map +1 -0
  30. package/dist/filesystem/index.d.ts +3 -0
  31. package/dist/filesystem/index.d.ts.map +1 -0
  32. package/{src/filesystem/index.ts → dist/filesystem/index.js} +1 -2
  33. package/dist/filesystem/index.js.map +1 -0
  34. package/dist/filesystem/memory-provider.d.ts +44 -0
  35. package/dist/filesystem/memory-provider.d.ts.map +1 -0
  36. package/dist/filesystem/memory-provider.js +227 -0
  37. package/dist/filesystem/memory-provider.js.map +1 -0
  38. package/dist/filesystem-manager.d.ts +75 -0
  39. package/dist/filesystem-manager.d.ts.map +1 -0
  40. package/dist/filesystem-manager.js +162 -0
  41. package/dist/filesystem-manager.js.map +1 -0
  42. package/dist/index.d.ts +18 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/{src/index.ts → dist/index.js} +4 -47
  45. package/dist/index.js.map +1 -0
  46. package/dist/orchestrator.d.ts +32 -0
  47. package/dist/orchestrator.d.ts.map +1 -0
  48. package/dist/orchestrator.js +137 -0
  49. package/dist/orchestrator.js.map +1 -0
  50. package/dist/sandbox/base-provider.d.ts +106 -0
  51. package/dist/sandbox/base-provider.d.ts.map +1 -0
  52. package/dist/sandbox/base-provider.js +74 -0
  53. package/dist/sandbox/base-provider.js.map +1 -0
  54. package/dist/sandbox/daytona-provider.d.ts +93 -0
  55. package/dist/sandbox/daytona-provider.d.ts.map +1 -0
  56. package/dist/sandbox/daytona-provider.js +378 -0
  57. package/dist/sandbox/daytona-provider.js.map +1 -0
  58. package/dist/sandbox/e2b-provider.d.ts +85 -0
  59. package/dist/sandbox/e2b-provider.d.ts.map +1 -0
  60. package/dist/sandbox/e2b-provider.js +363 -0
  61. package/dist/sandbox/e2b-provider.js.map +1 -0
  62. package/dist/sandbox/modal-provider.d.ts +92 -0
  63. package/dist/sandbox/modal-provider.d.ts.map +1 -0
  64. package/dist/sandbox/modal-provider.js +516 -0
  65. package/dist/sandbox/modal-provider.js.map +1 -0
  66. package/dist/sandbox-manager.d.ts +59 -0
  67. package/dist/sandbox-manager.d.ts.map +1 -0
  68. package/dist/sandbox-manager.js +141 -0
  69. package/dist/sandbox-manager.js.map +1 -0
  70. package/dist/sdk.d.ts +173 -0
  71. package/dist/sdk.d.ts.map +1 -0
  72. package/dist/sdk.js +277 -0
  73. package/dist/sdk.js.map +1 -0
  74. package/dist/types.d.ts +423 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/utils/code-extractor.d.ts +103 -0
  79. package/dist/utils/code-extractor.d.ts.map +1 -0
  80. package/dist/utils/code-extractor.js +133 -0
  81. package/dist/utils/code-extractor.js.map +1 -0
  82. package/package.json +23 -11
  83. package/examples/claude-code/README.md +0 -178
  84. package/examples/claude-code/advanced-config.ts +0 -55
  85. package/examples/claude-code/basic-usage.ts +0 -56
  86. package/examples/claude-code/model-comparison.ts +0 -50
  87. package/examples/claude-code/orchestration.ts +0 -70
  88. package/examples/claude-code/streaming.ts +0 -69
  89. package/examples/claude-code/tsconfig.json +0 -19
  90. package/examples/code-extractor/README.md +0 -77
  91. package/examples/code-extractor/example.ts +0 -145
  92. package/examples/filesystem/basic-usage.ts +0 -84
  93. package/examples/integrated-task/README.md +0 -68
  94. package/examples/integrated-task/integrated-usage.ts +0 -193
  95. package/examples/integrated-task/simple-example.ts +0 -51
  96. package/examples/integrated-task/tsconfig.json +0 -19
  97. package/examples/sandbox/basic-usage.ts +0 -173
  98. package/src/agent-manager.ts +0 -104
  99. package/src/agents/base-agent.ts +0 -166
  100. package/src/agents/claude-agent.ts +0 -77
  101. package/src/agents/codex-agent.ts +0 -72
  102. package/src/agents/intella-lite-agent.ts +0 -55
  103. package/src/agents/opencode-agent.ts +0 -45
  104. package/src/filesystem/agentfs-provider.ts +0 -328
  105. package/src/filesystem/base-provider.ts +0 -98
  106. package/src/filesystem/memory-provider.ts +0 -267
  107. package/src/filesystem-manager.ts +0 -213
  108. package/src/orchestrator.ts +0 -177
  109. package/src/sandbox/base-provider.ts +0 -184
  110. package/src/sandbox/daytona-provider.ts +0 -462
  111. package/src/sandbox/e2b-provider.ts +0 -419
  112. package/src/sandbox/modal-provider.ts +0 -597
  113. package/src/sandbox-manager.ts +0 -175
  114. package/src/sdk.ts +0 -401
  115. package/src/types.ts +0 -451
  116. package/src/utils/code-extractor.ts +0 -194
  117. package/tsconfig.json +0 -25
@@ -0,0 +1,516 @@
1
+ import { BaseSandboxProvider } from './base-provider.js';
2
+ import { ModalClient } from 'modal';
3
+ /**
4
+ * Modal Sandbox Provider
5
+ * Provides sandbox execution capabilities using Modal
6
+ */
7
+ export class ModalSandboxProvider extends BaseSandboxProvider {
8
+ client = null;
9
+ sandboxInstance = null;
10
+ app = null;
11
+ image = null;
12
+ constructor(config) {
13
+ super('modal');
14
+ if (config) {
15
+ this.config = config;
16
+ }
17
+ }
18
+ getClient() {
19
+ if (!this.client) {
20
+ const tokenId = this.config.apiKey || process.env.MODAL_TOKEN_ID;
21
+ const tokenSecret = process.env.MODAL_TOKEN_SECRET;
22
+ if (tokenId && tokenSecret) {
23
+ this.client = new ModalClient({
24
+ tokenId,
25
+ tokenSecret,
26
+ });
27
+ }
28
+ else {
29
+ console.warn('Modal token ID and secret are not set. Using environment variables.');
30
+ try {
31
+ this.client = new ModalClient();
32
+ }
33
+ catch (error) {
34
+ throw new Error('Failed to initialize Modal client: ' + (error instanceof Error ? error.message : String(error)));
35
+ }
36
+ }
37
+ }
38
+ return this.client;
39
+ }
40
+ /**
41
+ * Initialize/create a Modal sandbox
42
+ */
43
+ async initializeSandbox(config) {
44
+ if (config) {
45
+ this.config = { ...this.config, ...config };
46
+ }
47
+ try {
48
+ // Dynamic import to handle optional dependency
49
+ // Initialize Modal client
50
+ // ModalClient can be initialized without parameters if MODAL_TOKEN_ID and MODAL_TOKEN_SECRET are in env
51
+ const modalClient = this.getClient();
52
+ // Get or create app
53
+ const appName = this.config.appName || 'intella-sandbox';
54
+ this.app = await modalClient.apps.fromName(appName, {
55
+ createIfMissing: true,
56
+ });
57
+ // Create or get image
58
+ const imageName = this.config.imageName || 'python:3.13-slim';
59
+ if (imageName.includes(':')) {
60
+ // Registry image (e.g., "python:3.13-slim")
61
+ this.image = modalClient.images.fromRegistry(imageName);
62
+ }
63
+ else {
64
+ // Try named image first, fallback to registry if not found
65
+ try {
66
+ this.image = modalClient.images.fromId(this.config.fromSandboxId || '');
67
+ }
68
+ catch {
69
+ // If named image doesn't exist, try as registry image
70
+ this.image = modalClient.images.fromRegistry(imageName);
71
+ }
72
+ }
73
+ // Create sandbox with configuration
74
+ const sandboxOptions = {
75
+ timeout: Math.floor((this.config.timeout || 5 * 60 * 1000) / 1000), // Convert to seconds
76
+ };
77
+ if (this.config.env) {
78
+ const secret = await modalClient.secrets.fromObject(this.config.env);
79
+ sandboxOptions.secrets = [secret];
80
+ }
81
+ if (this.config.workdir) {
82
+ sandboxOptions.workdir = this.config.workdir;
83
+ }
84
+ this.sandboxInstance = await modalClient.sandboxes.create(this.app, this.image, sandboxOptions);
85
+ this.sandboxId = this.sandboxInstance.sandboxId || '';
86
+ this.initialized = true;
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Failed to initialize Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
90
+ }
91
+ }
92
+ /**
93
+ * Connect to an existing Modal sandbox by ID
94
+ */
95
+ async fromSandbox(sandboxId, config) {
96
+ if (config) {
97
+ this.config = { ...this.config, ...config };
98
+ }
99
+ try {
100
+ // Initialize Modal client
101
+ const modalClient = this.getClient();
102
+ // Get or create app (needed for fromId)
103
+ const appName = this.config.appName || 'intella-sandbox';
104
+ this.app = await modalClient.apps.fromName(appName, {
105
+ createIfMissing: true,
106
+ });
107
+ // Get existing sandbox by ID
108
+ this.sandboxInstance = await modalClient.sandboxes.fromId(sandboxId);
109
+ this.sandboxId = this.sandboxInstance.sandboxId || sandboxId;
110
+ this.initialized = true;
111
+ return this.sandboxInstance;
112
+ }
113
+ catch (error) {
114
+ throw new Error(`Failed to connect to Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
115
+ }
116
+ }
117
+ /**
118
+ * Close/cleanup the Modal sandbox
119
+ */
120
+ async close() {
121
+ if (this.sandboxInstance && this.initialized) {
122
+ try {
123
+ await this.sandboxInstance.terminate();
124
+ }
125
+ catch (error) {
126
+ // Ignore errors during cleanup
127
+ console.warn('Error closing Modal sandbox:', error);
128
+ }
129
+ this.sandboxInstance = null;
130
+ this.client = null;
131
+ this.app = null;
132
+ this.image = null;
133
+ this.sandboxId = null;
134
+ this.initialized = false;
135
+ }
136
+ }
137
+ /**
138
+ * Execute a command in the Modal sandbox
139
+ */
140
+ async executeCommand(command, options) {
141
+ this.ensureInitialized();
142
+ const startTime = Date.now();
143
+ try {
144
+ // Parse command string into array
145
+ // Handle quoted arguments properly
146
+ const commandParts = command.match(/(?:[^\s"]+|"[^"]*")+/g) || [command];
147
+ const cmdArray = commandParts.map((part) => part.replace(/^"|"$/g, ''));
148
+ const execOptions = {
149
+ timeout: Math.floor((options?.timeout || this.config.timeout || 3000) / 1000), // Convert to seconds
150
+ };
151
+ // Execute command
152
+ const process = await this.sandboxInstance.exec(cmdArray, execOptions);
153
+ // Read stdout and stderr
154
+ let stdout = '';
155
+ let stderr = '';
156
+ // Read stdout
157
+ try {
158
+ stdout = await process.stdout.readText();
159
+ }
160
+ catch (e) {
161
+ // If readText is not available, try iterating
162
+ if (process.stdout && Symbol.asyncIterator in process.stdout) {
163
+ for await (const chunk of process.stdout) {
164
+ stdout += typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf-8');
165
+ }
166
+ }
167
+ }
168
+ // Read stderr
169
+ try {
170
+ stderr = await process.stderr.readText();
171
+ }
172
+ catch (e) {
173
+ // If readText is not available, try iterating
174
+ if (process.stderr && Symbol.asyncIterator in process.stderr) {
175
+ for await (const chunk of process.stderr) {
176
+ stderr += typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf-8');
177
+ }
178
+ }
179
+ }
180
+ // Wait for process to complete
181
+ await process.wait();
182
+ const executionTime = Date.now() - startTime;
183
+ return {
184
+ exitCode: process.returncode || 0,
185
+ stdout: stdout || '',
186
+ stderr: stderr || '',
187
+ executionTime,
188
+ };
189
+ }
190
+ catch (error) {
191
+ const executionTime = Date.now() - startTime;
192
+ return {
193
+ exitCode: 1,
194
+ stdout: '',
195
+ stderr: error instanceof Error ? error.message : String(error),
196
+ executionTime,
197
+ };
198
+ }
199
+ }
200
+ /**
201
+ * Run code (e.g., Python, JavaScript) in the Modal sandbox
202
+ */
203
+ async runCode(code, options) {
204
+ this.ensureInitialized();
205
+ const startTime = Date.now();
206
+ try {
207
+ // Determine interpreter based on language
208
+ const language = options?.language || 'python';
209
+ const interpreterMap = {
210
+ python: ['python', '-c'],
211
+ javascript: ['node', '-e'],
212
+ typescript: ['ts-node', '-e'],
213
+ bash: ['bash', '-c'],
214
+ sh: ['sh', '-c'],
215
+ };
216
+ const interpreter = interpreterMap[language.toLowerCase()] || ['python', '-c'];
217
+ const execOptions = {
218
+ timeout: (options?.timeout || this.config.timeout || 30000) / 1000, // Convert to seconds
219
+ };
220
+ // Execute code
221
+ const process = await this.sandboxInstance.exec([...interpreter, code], execOptions);
222
+ // Stream stdout/stderr if callbacks provided
223
+ const stdoutChunks = [];
224
+ const stderrChunks = [];
225
+ // Handle stdout
226
+ if (options?.onStdout && process.stdout && Symbol.asyncIterator in process.stdout) {
227
+ // Stream mode with callback
228
+ for await (const line of process.stdout) {
229
+ const text = typeof line === 'string' ? line : Buffer.from(line).toString('utf-8');
230
+ stdoutChunks.push(text);
231
+ options.onStdout(text);
232
+ }
233
+ }
234
+ else {
235
+ // Read all at once
236
+ try {
237
+ const stdoutText = await process.stdout.readText();
238
+ const lines = stdoutText.split('\n');
239
+ stdoutChunks.push(...lines);
240
+ }
241
+ catch (e) {
242
+ // Fallback to iteration
243
+ if (process.stdout && Symbol.asyncIterator in process.stdout) {
244
+ for await (const line of process.stdout) {
245
+ const text = typeof line === 'string' ? line : Buffer.from(line).toString('utf-8');
246
+ stdoutChunks.push(text);
247
+ }
248
+ }
249
+ }
250
+ }
251
+ // Handle stderr
252
+ if (options?.onStderr && process.stderr && Symbol.asyncIterator in process.stderr) {
253
+ // Stream mode with callback
254
+ for await (const line of process.stderr) {
255
+ const text = typeof line === 'string' ? line : Buffer.from(line).toString('utf-8');
256
+ stderrChunks.push(text);
257
+ options.onStderr(text);
258
+ }
259
+ }
260
+ else {
261
+ // Read all at once
262
+ try {
263
+ const stderrText = await process.stderr.readText();
264
+ const lines = stderrText.split('\n');
265
+ stderrChunks.push(...lines);
266
+ }
267
+ catch (e) {
268
+ // Fallback to iteration
269
+ if (process.stderr && Symbol.asyncIterator in process.stderr) {
270
+ for await (const line of process.stderr) {
271
+ const text = typeof line === 'string' ? line : Buffer.from(line).toString('utf-8');
272
+ stderrChunks.push(text);
273
+ }
274
+ }
275
+ }
276
+ }
277
+ // Wait for process to complete
278
+ await process.wait();
279
+ const stdout = stdoutChunks.join('\n');
280
+ const stderr = stderrChunks.join('\n');
281
+ const executionTime = Date.now() - startTime;
282
+ return {
283
+ text: stdout || undefined,
284
+ results: stdout ? [{ text: stdout }] : [],
285
+ stdout: stdoutChunks,
286
+ stderr: stderrChunks,
287
+ error: process.returncode !== 0
288
+ ? {
289
+ name: 'CodeExecutionError',
290
+ value: stderr || 'Code execution failed',
291
+ traceback: stderr || '',
292
+ }
293
+ : undefined,
294
+ executionTime,
295
+ };
296
+ }
297
+ catch (error) {
298
+ const executionTime = Date.now() - startTime;
299
+ return {
300
+ text: undefined,
301
+ results: [],
302
+ stdout: [],
303
+ stderr: [error instanceof Error ? error.message : String(error)],
304
+ error: {
305
+ name: 'CodeExecutionError',
306
+ value: error instanceof Error ? error.message : String(error),
307
+ traceback: error instanceof Error ? error.stack || '' : '',
308
+ },
309
+ executionTime,
310
+ };
311
+ }
312
+ }
313
+ /**
314
+ * Upload a file to the Modal sandbox
315
+ * Uses the filesystem API
316
+ */
317
+ async uploadFile(localPath, remotePath) {
318
+ this.ensureInitialized();
319
+ try {
320
+ const fs = await import('fs/promises');
321
+ const content = await fs.readFile(localPath);
322
+ // Use filesystem API to write file
323
+ const file = await this.sandboxInstance.open(remotePath, 'w');
324
+ await file.write(content);
325
+ file.close();
326
+ }
327
+ catch (error) {
328
+ throw new Error(`Failed to upload file to Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
329
+ }
330
+ }
331
+ /**
332
+ * Download a file from the Modal sandbox
333
+ * Uses the filesystem API
334
+ */
335
+ async downloadFile(remotePath, localPath) {
336
+ this.ensureInitialized();
337
+ try {
338
+ // Use filesystem API to read file
339
+ const file = await this.sandboxInstance.open(remotePath, 'r');
340
+ const content = await file.read();
341
+ file.close();
342
+ const fs = await import('fs/promises');
343
+ // Handle Buffer or Uint8Array
344
+ const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content);
345
+ await fs.writeFile(localPath, buffer);
346
+ }
347
+ catch (error) {
348
+ throw new Error(`Failed to download file from Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
349
+ }
350
+ }
351
+ /**
352
+ * Read a file from the Modal sandbox
353
+ * Uses the filesystem API
354
+ */
355
+ async readFile(path) {
356
+ this.ensureInitialized();
357
+ try {
358
+ // Use filesystem API to read file
359
+ const file = await this.sandboxInstance.open(path, 'r');
360
+ const content = await file.read();
361
+ file.close();
362
+ return typeof content === 'string' ? content : [content].toString();
363
+ }
364
+ catch (error) {
365
+ throw new Error(`Failed to read file from Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
366
+ }
367
+ }
368
+ /**
369
+ * Write a file to the Modal sandbox
370
+ * Uses the filesystem API
371
+ */
372
+ async writeFile(path, content) {
373
+ this.ensureInitialized();
374
+ try {
375
+ // Use filesystem API to write file
376
+ const file = await this.sandboxInstance.open(path, 'w');
377
+ file.write(Buffer.from(content, 'utf-8'));
378
+ file.close();
379
+ }
380
+ catch (error) {
381
+ throw new Error(`Failed to write file to Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
382
+ }
383
+ }
384
+ /**
385
+ * List files in a directory
386
+ * Uses exec to run ls command
387
+ */
388
+ async listFiles(path) {
389
+ this.ensureInitialized();
390
+ try {
391
+ const process = await this.sandboxInstance.exec(['ls', '-1', path], {
392
+ timeoutMs: 5000,
393
+ });
394
+ let output = '';
395
+ try {
396
+ output = await process.stdout.readText();
397
+ }
398
+ catch (e) {
399
+ // Fallback to iteration
400
+ if (process.stdout && Symbol.asyncIterator in process.stdout) {
401
+ for await (const chunk of process.stdout) {
402
+ output += typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf-8');
403
+ }
404
+ }
405
+ }
406
+ await process.wait();
407
+ // Parse ls output
408
+ return output
409
+ .split('\n')
410
+ .map((line) => line.trim())
411
+ .filter((line) => line.length > 0);
412
+ }
413
+ catch (error) {
414
+ throw new Error(`Failed to list files in Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
415
+ }
416
+ }
417
+ /**
418
+ * Check if a file exists
419
+ */
420
+ async fileExists(path) {
421
+ this.ensureInitialized();
422
+ try {
423
+ const process = await this.sandboxInstance.exec(['test', '-f', path], {
424
+ timeoutMs: 5000,
425
+ });
426
+ await process.wait();
427
+ return (process.returncode || 0) === 0;
428
+ }
429
+ catch {
430
+ return false;
431
+ }
432
+ }
433
+ /**
434
+ * Delete a file
435
+ * Uses exec to run rm command
436
+ */
437
+ async deleteFile(path) {
438
+ this.ensureInitialized();
439
+ try {
440
+ const process = await this.sandboxInstance.exec(['rm', path], {
441
+ timeoutMs: 5000,
442
+ });
443
+ await process.wait();
444
+ if ((process.returncode || 0) !== 0) {
445
+ let stderr = '';
446
+ try {
447
+ stderr = await process.stderr.readText();
448
+ }
449
+ catch (e) {
450
+ // Ignore read errors
451
+ }
452
+ throw new Error(`Failed to delete file: ${stderr || 'Unknown error'}`);
453
+ }
454
+ }
455
+ catch (error) {
456
+ throw new Error(`Failed to delete file in Modal sandbox: ${error instanceof Error ? error.message : String(error)}`);
457
+ }
458
+ }
459
+ /**
460
+ * Get sandbox status
461
+ */
462
+ async getStatus() {
463
+ this.ensureInitialized();
464
+ try {
465
+ // Modal sandboxes don't expose a direct status endpoint
466
+ // We can check if the sandbox instance is available
467
+ return {
468
+ isRunning: this.initialized && this.sandboxInstance !== null,
469
+ sandboxId: this.sandboxId,
470
+ };
471
+ }
472
+ catch {
473
+ return {
474
+ isRunning: false,
475
+ };
476
+ }
477
+ }
478
+ /**
479
+ * Get detailed sandbox information
480
+ */
481
+ async getInfo(sandboxId) {
482
+ if (!sandboxId && this.sandboxInstance) {
483
+ this.ensureInitialized();
484
+ const info = this.sandboxInstance;
485
+ const isRunning = await info.poll();
486
+ return {
487
+ sandboxId: this.sandboxId,
488
+ provider: this.type,
489
+ isRunning: isRunning === null,
490
+ isInitialized: this.initialized,
491
+ createdAt: new Date(),
492
+ metadata: {
493
+ error: isRunning
494
+ },
495
+ info: this.sandboxInstance,
496
+ };
497
+ }
498
+ else if (sandboxId) {
499
+ const sandbox = await this.client.sandboxes.fromId(sandboxId);
500
+ const isRunning = await sandbox.poll();
501
+ return {
502
+ sandboxId: sandbox.sandboxId,
503
+ provider: this.type,
504
+ isRunning: isRunning === null,
505
+ isInitialized: this.initialized,
506
+ createdAt: new Date(),
507
+ metadata: {},
508
+ info: sandbox,
509
+ };
510
+ }
511
+ else {
512
+ throw new Error('Sandbox ID or active instance is required to get sandbox info');
513
+ }
514
+ }
515
+ }
516
+ //# sourceMappingURL=modal-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-provider.js","sourceRoot":"","sources":["../../src/sandbox/modal-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { SandboxProviderType, SandboxConfig, ISandboxProvider } from './types.js';
2
+ /**
3
+ * Sandbox Manager
4
+ * Manages sandbox provider instances and configurations
5
+ */
6
+ export declare class SandboxManager {
7
+ private sandboxes;
8
+ private defaultProviderType;
9
+ private activeSandbox;
10
+ constructor(config?: {
11
+ provider?: SandboxProviderType;
12
+ config?: SandboxConfig;
13
+ });
14
+ /**
15
+ * Register or update a sandbox provider instance
16
+ */
17
+ registerProvider(type: SandboxProviderType, provider: ISandboxProvider): void;
18
+ /**
19
+ * Get a sandbox provider instance
20
+ */
21
+ getProvider(type?: SandboxProviderType): ISandboxProvider;
22
+ /**
23
+ * List all available sandbox providers
24
+ */
25
+ listProviders(): SandboxProviderType[];
26
+ /**
27
+ * Check if a provider is registered
28
+ */
29
+ hasProvider(type: SandboxProviderType): boolean;
30
+ /**
31
+ * Initialize/create a sandbox with the specified provider
32
+ */
33
+ initializeSandbox(type: SandboxProviderType, config?: SandboxConfig): Promise<ISandboxProvider>;
34
+ /**
35
+ * Get the active sandbox provider
36
+ */
37
+ getActiveSandbox(): ISandboxProvider | null;
38
+ /**
39
+ * Set the default provider type (does not initialize)
40
+ */
41
+ setDefaultProvider(type: SandboxProviderType): void;
42
+ /**
43
+ * Get the default provider type
44
+ */
45
+ getDefaultProviderType(): SandboxProviderType | null;
46
+ /**
47
+ * Close the active sandbox
48
+ */
49
+ closeActiveSandbox(): Promise<void>;
50
+ /**
51
+ * Close all sandboxes
52
+ */
53
+ closeAll(): Promise<void>;
54
+ /**
55
+ * Remove a provider (cannot remove if it's the active sandbox)
56
+ */
57
+ removeProvider(type: SandboxProviderType): void;
58
+ }
59
+ //# sourceMappingURL=sandbox-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-manager.d.ts","sourceRoot":"","sources":["../src/sandbox-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKvF;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAyD;IAC1E,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,aAAa,CAAiC;gBAE1C,MAAM,CAAC,EAAE;QACnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAC/B,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB;IAUD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAS7E;;OAEG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,gBAAgB;IAkBzD;;OAEG;IACH,aAAa,IAAI,mBAAmB,EAAE;IAItC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAI/C;;OAEG;IACG,iBAAiB,CACrB,IAAI,EAAE,mBAAmB,EACzB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,gBAAgB,CAAC;IAmB5B;;OAEG;IACH,gBAAgB,IAAI,gBAAgB,GAAG,IAAI;IAI3C;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAOnD;;OAEG;IACH,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAIpD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWzC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;CAahD"}