cerevox 0.4.12 → 1.0.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 (54) hide show
  1. package/dist/cli/cerevox-run.d.ts.map +1 -1
  2. package/dist/cli/cerevox-run.js +5 -9
  3. package/dist/cli/cerevox-run.js.map +1 -1
  4. package/dist/core/ai.d.ts +0 -1
  5. package/dist/core/ai.d.ts.map +1 -1
  6. package/dist/core/ai.js +14 -18
  7. package/dist/core/ai.js.map +1 -1
  8. package/dist/core/base.d.ts +1 -3
  9. package/dist/core/base.d.ts.map +1 -1
  10. package/dist/core/base.js +1 -2
  11. package/dist/core/base.js.map +1 -1
  12. package/dist/core/browser.d.ts +1 -6
  13. package/dist/core/browser.d.ts.map +1 -1
  14. package/dist/core/browser.js +34 -50
  15. package/dist/core/browser.js.map +1 -1
  16. package/dist/core/cerevox.d.ts +3 -11
  17. package/dist/core/cerevox.d.ts.map +1 -1
  18. package/dist/core/cerevox.js +10 -155
  19. package/dist/core/cerevox.js.map +1 -1
  20. package/dist/core/code-runner.d.ts +1 -1
  21. package/dist/core/code-runner.d.ts.map +1 -1
  22. package/dist/core/code-runner.js +2 -2
  23. package/dist/core/code-runner.js.map +1 -1
  24. package/dist/core/file-system.d.ts +12 -33
  25. package/dist/core/file-system.d.ts.map +1 -1
  26. package/dist/core/file-system.js +111 -93
  27. package/dist/core/file-system.js.map +1 -1
  28. package/dist/core/sandbox.d.ts +19 -0
  29. package/dist/core/sandbox.d.ts.map +1 -0
  30. package/dist/core/sandbox.js +114 -0
  31. package/dist/core/sandbox.js.map +1 -0
  32. package/dist/core/session.d.ts +5 -8
  33. package/dist/core/session.d.ts.map +1 -1
  34. package/dist/core/session.js +29 -64
  35. package/dist/core/session.js.map +1 -1
  36. package/dist/core/terminal.d.ts +6 -5
  37. package/dist/core/terminal.d.ts.map +1 -1
  38. package/dist/core/terminal.js +175 -58
  39. package/dist/core/terminal.js.map +1 -1
  40. package/dist/core/types.d.ts +23 -0
  41. package/dist/core/types.d.ts.map +1 -0
  42. package/dist/core/types.js +3 -0
  43. package/dist/core/types.js.map +1 -0
  44. package/dist/mcp/servers/browser-use.d.ts.map +1 -1
  45. package/dist/mcp/servers/browser-use.js +3 -7
  46. package/dist/mcp/servers/browser-use.js.map +1 -1
  47. package/dist/mcp/servers/zerocut.d.ts.map +1 -1
  48. package/dist/mcp/servers/zerocut.js +8 -71
  49. package/dist/mcp/servers/zerocut.js.map +1 -1
  50. package/package.json +6 -3
  51. package/dist/utils/auth.d.ts +0 -4
  52. package/dist/utils/auth.d.ts.map +0 -1
  53. package/dist/utils/auth.js +0 -14
  54. package/dist/utils/auth.js.map +0 -1
@@ -15,9 +15,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.FileSystem = void 0;
16
16
  const promises_1 = __importDefault(require("node:fs/promises"));
17
17
  const node_path_1 = __importDefault(require("node:path"));
18
- const e2b_1 = __importDefault(require("e2b"));
19
18
  const base_1 = require("./base");
20
19
  const constants_1 = require("../utils/constants");
20
+ const session_1 = require("./session");
21
21
  /**
22
22
  * FileSystem 类 - 提供沙箱环境中的文件系统操作功能
23
23
  *
@@ -46,52 +46,14 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
46
46
  /**
47
47
  * 创建 FileSystem 实例
48
48
  * @param sandbox - E2B 沙箱实例
49
+ * @param session - Session 实例(用于获取 API 主机地址)
49
50
  * @param options - 可选配置参数
50
51
  */
51
- constructor(sandbox, options) {
52
- super(sandbox, options?.logLevel);
52
+ constructor(session) {
53
+ super(session.getLogger().level);
54
+ this.session = session;
53
55
  this.logger.debug('FileSystem 类初始化完成');
54
56
  }
55
- /**
56
- * 检查文件是否为二进制文件(基于文件扩展名)
57
- * @param filePath - 要检查的文件路径
58
- * @returns 如果是二进制文件返回 true,否则返回 false
59
- * @private
60
- */
61
- isBinaryFile(filePath) {
62
- const binaryExtensions = [
63
- '.png',
64
- '.jpg',
65
- '.jpeg',
66
- '.gif',
67
- '.bmp',
68
- '.webp',
69
- '.ico',
70
- '.pdf',
71
- '.zip',
72
- '.tar',
73
- '.gz',
74
- '.rar',
75
- '.7z',
76
- '.mp3',
77
- '.mp4',
78
- '.avi',
79
- '.mov',
80
- '.wmv',
81
- '.wav',
82
- '.flv',
83
- '.exe',
84
- '.dll',
85
- '.so',
86
- '.dylib',
87
- '.bin',
88
- '.dat',
89
- '.db',
90
- '.sqlite',
91
- ];
92
- const ext = filePath.toLowerCase().substring(filePath.lastIndexOf('.'));
93
- return binaryExtensions.includes(ext);
94
- }
95
57
  /**
96
58
  * 验证路径是否安全,只允许同步 /home/user 目录下的子目录
97
59
  * @param path - 要验证的路径
@@ -121,22 +83,6 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
121
83
  // 相对路径必须是子目录(以 ./ 开头或直接是目录名)
122
84
  return normalizedPath.startsWith('./') || !normalizedPath.startsWith('/');
123
85
  }
124
- /**
125
- * 根据指定编码格式转换数据
126
- * @param data - 要转换的数据(Buffer 或 Uint8Array)
127
- * @param encoding - 目标编码格式
128
- * @returns 转换后的数据
129
- * @private
130
- */
131
- encodeContent(data, encoding) {
132
- if (encoding === 'utf8') {
133
- return Buffer.from(data).toString('utf-8');
134
- }
135
- else if (encoding === 'base64') {
136
- return Buffer.from(data).toString('base64');
137
- }
138
- return Buffer.from(data);
139
- }
140
86
  /**
141
87
  * 列出沙箱目录中的文件
142
88
  * @param path - 沙箱中的目录路径
@@ -146,7 +92,7 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
146
92
  async listFiles(path) {
147
93
  try {
148
94
  this.logger.debug('开始列出目录文件', { path });
149
- const result = (await this.sandbox.commands.run(`ls -la "${path}"`));
95
+ const result = (await (await this.session.terminal.run(`ls -la "${path}"`)).json());
150
96
  if (result.exitCode) {
151
97
  this.logger.error('列出文件失败', {
152
98
  path,
@@ -178,7 +124,7 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
178
124
  */
179
125
  async isDirectory(remotePath) {
180
126
  try {
181
- const result = (await this.sandbox.commands.run(`test -d "${remotePath}" && echo "true" || echo "false"`));
127
+ const result = (await (await this.session.terminal.run(`test -d "${remotePath}" && echo "true" || echo "false"`)).json());
182
128
  return result.stdout?.trim() === 'true';
183
129
  }
184
130
  catch (error) {
@@ -192,7 +138,7 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
192
138
  async mkdir(path) {
193
139
  try {
194
140
  this.logger.debug('开始创建目录', { path });
195
- await this.sandbox.files.makeDir(path);
141
+ await (await this.session.terminal.run(`mkdir -p "${path}"`)).json();
196
142
  this.logger.debug('目录创建成功', { path });
197
143
  }
198
144
  catch (error) {
@@ -262,60 +208,111 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
262
208
  }
263
209
  }
264
210
  /**
265
- * 向沙箱中写入文件
211
+ * 向沙箱中写入文件(通过 API 接口)
266
212
  * @param path - 沙箱中的文件路径
267
- * @param content - 要写入的内容
213
+ * @param content - 要写入的文本内容(仅支持字符串)
268
214
  */
269
215
  async write(path, content) {
270
216
  try {
271
- this.logger.debug('开始写入文件', { path, contentType: typeof content });
272
- await this.sandbox.files.write(path, content);
273
- this.logger.debug('文件写入成功', { path });
217
+ this.logger.debug('开始写入文件', {
218
+ path,
219
+ contentLength: content.length,
220
+ });
221
+ const response = await this.session.sandbox.request(`/api/files/write`, {
222
+ method: 'POST',
223
+ headers: {
224
+ 'Content-Type': 'application/json',
225
+ },
226
+ body: JSON.stringify({
227
+ dist: path,
228
+ content: content,
229
+ }),
230
+ });
231
+ if (!response.ok) {
232
+ const errorText = await response.text();
233
+ throw new Error(`写入失败: ${response.status} ${response.statusText} - ${errorText}`);
234
+ }
235
+ const result = await response.json();
236
+ this.logger.debug('文件写入成功', {
237
+ path,
238
+ result,
239
+ });
274
240
  }
275
241
  catch (error) {
276
242
  this.logger.error('文件写入失败', { path, error });
277
243
  throw error;
278
244
  }
279
245
  }
280
- async read(remotePath, options = {}) {
246
+ /**
247
+ * 从沙箱中读取文件(通过 API 接口,仅支持 UTF-8 编码)
248
+ * @param remotePath - 沙箱中的文件路径
249
+ * @returns 文件的文本内容
250
+ */
251
+ async read(remotePath) {
281
252
  try {
282
- if (!options.encoding) {
283
- options.encoding = this.isBinaryFile(remotePath) ? 'binary' : 'utf8';
253
+ this.logger.debug('开始读取文件', { remotePath });
254
+ const response = await this.session.sandbox.request(`/api/files/read`, {
255
+ method: 'POST',
256
+ headers: {
257
+ 'Content-Type': 'application/json',
258
+ },
259
+ body: JSON.stringify({
260
+ path: remotePath,
261
+ }),
262
+ });
263
+ if (!response.ok) {
264
+ const errorText = await response.text();
265
+ throw new Error(`读取失败: ${response.status} ${response.statusText} - ${errorText}`);
284
266
  }
285
- this.logger.debug('开始读取文件', {
267
+ const { data } = (await response.json());
268
+ this.logger.debug('文件读取成功', {
286
269
  remotePath,
287
- encoding: options.encoding,
288
- });
289
- const buffer = await this.sandbox.files.read(remotePath, {
290
- format: 'bytes',
270
+ contentLength: data.content.length,
291
271
  });
292
- const result = this.encodeContent(buffer, options.encoding);
293
- this.logger.debug('文件读取成功', { remotePath, size: buffer.length });
294
- return result;
272
+ return data.content;
295
273
  }
296
274
  catch (error) {
297
- this.logger.error('文件读取失败', { remotePath, error });
275
+ this.logger.debug('文件读取失败', { remotePath, error });
298
276
  throw error;
299
277
  }
300
278
  }
301
279
  /**
302
- * 上传本地文件到沙箱
280
+ * 上传本地文件到沙箱(通过 API 接口)
303
281
  * @param localPath - 本地文件路径
304
282
  * @param remotePath - 沙箱中的目标路径
305
283
  */
306
284
  async upload(localPath, remotePath) {
307
285
  try {
308
286
  this.logger.debug('开始上传文件', { localPath, remotePath });
309
- const content = await promises_1.default.readFile(localPath);
310
- if (typeof content === 'string') {
311
- await this.sandbox.files.write(remotePath, content);
287
+ // 检查本地文件是否存在
288
+ const stats = await promises_1.default.stat(localPath);
289
+ if (!stats.isFile()) {
290
+ throw new Error(`路径不是文件: ${localPath}`);
312
291
  }
313
- else {
314
- // Buffer 转换为 ArrayBuffer
315
- const arrayBuffer = content.buffer.slice(content.byteOffset, content.byteOffset + content.byteLength);
316
- await this.sandbox.files.write(remotePath, arrayBuffer);
292
+ // 使用原生 fetch 调用上传 API
293
+ const form = new FormData();
294
+ const fileBuffer = await promises_1.default.readFile(localPath);
295
+ const fileName = node_path_1.default.basename(localPath);
296
+ const blob = new Blob([new Uint8Array(fileBuffer)], {
297
+ type: 'application/octet-stream',
298
+ });
299
+ form.append('file', blob, fileName);
300
+ form.append('source', localPath);
301
+ form.append('dist', remotePath);
302
+ const response = await this.session.sandbox.request(`/api/files/upload`, {
303
+ method: 'POST',
304
+ body: form,
305
+ });
306
+ if (!response.ok) {
307
+ const errorText = await response.text();
308
+ throw new Error(`上传失败: ${response.status} ${response.statusText} - ${errorText}`);
317
309
  }
318
- this.logger.debug('文件上传成功', { localPath, remotePath });
310
+ const result = await response.json();
311
+ this.logger.debug('文件上传成功', {
312
+ localPath,
313
+ remotePath,
314
+ result,
315
+ });
319
316
  }
320
317
  catch (error) {
321
318
  this.logger.error('文件上传失败', { localPath, remotePath, error });
@@ -323,16 +320,37 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
323
320
  }
324
321
  }
325
322
  /**
326
- * 从沙箱下载文件到本地
323
+ * 从沙箱下载文件到本地(通过 API 接口)
327
324
  * @param remotePath - 沙箱中的文件路径
328
325
  * @param localPath - 本地目标路径
329
326
  */
330
327
  async download(remotePath, localPath) {
331
328
  try {
332
329
  this.logger.debug('开始下载文件', { remotePath, localPath });
333
- const content = await this.read(remotePath);
334
- await promises_1.default.writeFile(localPath, content);
335
- this.logger.debug('文件下载成功', { remotePath, localPath });
330
+ // 确保本地目录存在
331
+ const localDir = node_path_1.default.dirname(localPath);
332
+ await promises_1.default.mkdir(localDir, { recursive: true });
333
+ const response = await this.session.sandbox.request(`/api/files/download`, {
334
+ method: 'POST',
335
+ headers: {
336
+ 'Content-Type': 'application/json',
337
+ },
338
+ body: JSON.stringify({
339
+ path: remotePath,
340
+ }),
341
+ });
342
+ if (!response.ok) {
343
+ const errorText = await response.text();
344
+ throw new Error(`下载失败: ${response.status} ${response.statusText} - ${errorText}`);
345
+ }
346
+ // 获取文件内容并写入本地
347
+ const buffer = Buffer.from(await response.arrayBuffer());
348
+ await promises_1.default.writeFile(localPath, buffer);
349
+ this.logger.debug('文件下载成功', {
350
+ remotePath,
351
+ localPath,
352
+ size: buffer.length,
353
+ });
336
354
  }
337
355
  catch (error) {
338
356
  this.logger.error('文件下载失败', { remotePath, localPath, error });
@@ -392,6 +410,6 @@ let FileSystem = class FileSystem extends base_1.BaseClass {
392
410
  exports.FileSystem = FileSystem;
393
411
  exports.FileSystem = FileSystem = __decorate([
394
412
  (0, base_1.Logger)({ VERSION: constants_1.VERSION }),
395
- __metadata("design:paramtypes", [e2b_1.default, Object])
413
+ __metadata("design:paramtypes", [session_1.Session])
396
414
  ], FileSystem);
397
415
  //# sourceMappingURL=file-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/core/file-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/core/file-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { BaseClass } from './base';
2
+ import type { Logger as PinoLogger } from 'pino';
3
+ export declare class Sandbox extends BaseClass {
4
+ private token;
5
+ private timeout;
6
+ private metadata?;
7
+ private id;
8
+ private host;
9
+ constructor(token: string, logger: PinoLogger, timeout?: number, metadata?: Record<string, string> | undefined);
10
+ init(): Promise<string | null>;
11
+ get sandboxId(): string | null;
12
+ request(url: string, options?: RequestInit): Promise<Response>;
13
+ getUrl(path: string): string;
14
+ isRunning(): Promise<boolean>;
15
+ kill(): Promise<void>;
16
+ setTimeout(timeout: number): Promise<void>;
17
+ }
18
+ export declare function createSandbox(token: string, logger: PinoLogger, timeout?: number, metadata?: Record<string, string>): Promise<Sandbox>;
19
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/core/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAIjD,qBACa,OAAQ,SAAQ,SAAS;IAKlC,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC;IAPnB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,IAAI,CAA8D;gBAGhE,KAAK,EAAE,MAAM,EACrB,MAAM,EAAE,UAAU,EACV,OAAO,GAAE,MAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAA;IAKrC,IAAI;IAyBV,IAAI,SAAS,kBAEZ;IAEK,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB;IAcpD,MAAM,CAAC,IAAI,EAAE,MAAM;IAIb,SAAS;IAQT,IAAI;IAkBJ,UAAU,CAAC,OAAO,EAAE,MAAM;CAejC;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,MAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,oBAKlC"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Sandbox = void 0;
13
+ exports.createSandbox = createSandbox;
14
+ const base_1 = require("./base");
15
+ const constants_1 = require("../utils/constants");
16
+ const ADMIN_HOST = 'sd2mfo025ni4n75n9r5p0.apigateway-cn-beijing.volceapi.com';
17
+ let Sandbox = class Sandbox extends base_1.BaseClass {
18
+ constructor(token, logger, timeout = 60, metadata) {
19
+ super(logger.level);
20
+ this.token = token;
21
+ this.timeout = timeout;
22
+ this.metadata = metadata;
23
+ this.id = null;
24
+ this.host = 'sd2lum427399ulo39js70.apigateway-cn-beijing.volceapi.com';
25
+ }
26
+ async init() {
27
+ const adminUrl = `https://${ADMIN_HOST}/create`;
28
+ const res = await fetch(adminUrl, {
29
+ method: 'POST',
30
+ body: JSON.stringify({
31
+ timeout: this.timeout,
32
+ token: this.token,
33
+ metadata: this.metadata,
34
+ }),
35
+ });
36
+ if (res.status !== 200) {
37
+ throw new Error(`Failed to create sandbox: ${await res.text()}`);
38
+ }
39
+ const data = await res.json();
40
+ if (data.SandboxId) {
41
+ this.id = data.SandboxId;
42
+ this.logger.info(`Sandbox created: ${this.id}`);
43
+ return this.id;
44
+ }
45
+ throw new Error(`Failed to create sandbox: ${JSON.stringify(data)}`);
46
+ }
47
+ get sandboxId() {
48
+ return this.id;
49
+ }
50
+ async request(url, options = {}) {
51
+ const opts = {
52
+ ...options,
53
+ headers: {
54
+ ...options.headers,
55
+ 'x-faas-instance-name': this.id,
56
+ },
57
+ };
58
+ this.logger.debug(`Request: https://${this.host}${url} ${JSON.stringify(opts)}`);
59
+ return fetch(`https://${this.host}${url}`, opts);
60
+ }
61
+ getUrl(path) {
62
+ return `https://${this.host}${path}?faasInstanceName=${this.id}`;
63
+ }
64
+ async isRunning() {
65
+ if (!this.id) {
66
+ return false;
67
+ }
68
+ const res = await this.request(`/health`);
69
+ return res.ok;
70
+ }
71
+ async kill() {
72
+ if (!this.id) {
73
+ return;
74
+ }
75
+ const adminUrl = `https://${ADMIN_HOST}/delete`;
76
+ const res = await fetch(adminUrl, {
77
+ method: 'POST',
78
+ body: JSON.stringify({
79
+ token: this.token,
80
+ sandboxId: this.id,
81
+ }),
82
+ });
83
+ if (res.status !== 200) {
84
+ throw new Error(`Failed to kill sandbox: ${await res.text()}`);
85
+ }
86
+ this.logger.info(`Sandbox killed: ${this.id}`);
87
+ }
88
+ async setTimeout(timeout) {
89
+ this.timeout = timeout;
90
+ const adminUrl = `https://${ADMIN_HOST}/timeout`;
91
+ const res = await fetch(adminUrl, {
92
+ method: 'POST',
93
+ body: JSON.stringify({
94
+ token: this.token,
95
+ sandboxId: this.id,
96
+ timeout,
97
+ }),
98
+ });
99
+ if (res.status !== 200) {
100
+ throw new Error(`Failed to set timeout: ${await res.text()}`);
101
+ }
102
+ }
103
+ };
104
+ exports.Sandbox = Sandbox;
105
+ exports.Sandbox = Sandbox = __decorate([
106
+ (0, base_1.Logger)({ VERSION: constants_1.VERSION }),
107
+ __metadata("design:paramtypes", [String, Object, Number, Object])
108
+ ], Sandbox);
109
+ async function createSandbox(token, logger, timeout = 20, metadata) {
110
+ const sandbox = new Sandbox(token, logger, timeout, metadata);
111
+ await sandbox.init();
112
+ return sandbox;
113
+ }
114
+ //# sourceMappingURL=sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/core/sandbox.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,32 @@
1
- import Sandbox from 'e2b';
2
1
  import { BaseClass } from './base';
3
- import { StreamableCommandResponse, Terminal } from './terminal';
2
+ import { Terminal } from './terminal';
4
3
  import { CodeRunner } from './code-runner';
5
4
  import { FileSystem } from './file-system';
6
5
  import { Browser } from './browser';
7
6
  import { AI } from './ai';
7
+ import { Sandbox } from './sandbox';
8
8
  export declare const sessions: Record<string, Session>;
9
9
  export declare class Session extends BaseClass {
10
+ readonly sandbox: Sandbox;
10
11
  readonly terminal: Terminal;
11
12
  readonly codeRunner: CodeRunner;
12
13
  readonly files: FileSystem;
13
14
  readonly browser: Browser;
14
- process: StreamableCommandResponse | null;
15
- private connectionMetaData;
16
15
  private ws;
17
- private isClosed;
18
16
  private keepAliveTimer;
19
17
  private workspace;
18
+ private isClosed;
20
19
  readonly ai: AI;
21
20
  constructor(sandbox: Sandbox, options?: {
22
21
  envs?: Record<string, string>;
23
22
  logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'fatal';
24
23
  workspace?: string;
25
24
  });
26
- getSandbox(): Sandbox;
25
+ connect(): Promise<unknown>;
27
26
  private keepAlive;
28
- _setConnectionMetaData(metaData: Record<string, string>): void;
29
27
  isRunning(): Promise<boolean>;
30
28
  get id(): string;
31
29
  getLogger(): import("pino").Logger;
32
- getHost(port?: number): string;
33
30
  track(event: string, context: Record<string, string>): Promise<Response>;
34
31
  setTimeout(ms: number): Promise<void>;
35
32
  close(forceToKill?: boolean): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,CAAC;AAEpD,qBACa,OAAQ,SAAQ,SAAS;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAAQ;IACxD,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,SAAS,CAAS;IAC1B,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;gBAGd,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QACzD,SAAS,CAAC,EAAE,MAAM,CAAC;KACf;IAcR,UAAU;IAIV,OAAO,CAAC,SAAS;IAejB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiCjD,SAAS;IAIf,IAAI,EAAE,WAEL;IAED,SAAS;IAIT,OAAO,CAAC,IAAI,GAAE,MAAa;IAM3B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAe9C,UAAU,CAAC,EAAE,EAAE,MAAM;IAIrB,KAAK,CAAC,WAAW,UAAQ;CAgChC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,CAAC;AAEpD,qBACa,OAAQ,SAAQ,SAAS;IAYlC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAX3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;gBAGL,OAAO,EAAE,OAAO,EACzB,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QACzD,SAAS,CAAC,EAAE,MAAM,CAAC;KACf;IAYF,OAAO;IAuBb,OAAO,CAAC,SAAS;IAeX,SAAS;IAIf,IAAI,EAAE,WAEL;IAED,SAAS;IAIT,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAc9C,UAAU,CAAC,EAAE,EAAE,MAAM;IAIrB,KAAK,CAAC,WAAW,UAAQ;CAoBhC"}