cerevox 0.1.2 → 0.2.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 +162 -2
- package/dist/cli/cerevox-run.d.ts.map +1 -1
- package/dist/cli/cerevox-run.js +12 -5
- package/dist/cli/cerevox-run.js.map +1 -1
- package/dist/core/ai.d.ts +24 -0
- package/dist/core/ai.d.ts.map +1 -0
- package/dist/core/ai.js +140 -0
- package/dist/core/ai.js.map +1 -0
- package/dist/core/browser.d.ts +3 -2
- package/dist/core/browser.d.ts.map +1 -1
- package/dist/core/browser.js +7 -5
- package/dist/core/browser.js.map +1 -1
- package/dist/core/cerevox.d.ts +5 -1
- package/dist/core/cerevox.d.ts.map +1 -1
- package/dist/core/cerevox.js +29 -3
- package/dist/core/cerevox.js.map +1 -1
- package/dist/core/code-runner.d.ts +3 -1
- package/dist/core/code-runner.d.ts.map +1 -1
- package/dist/core/code-runner.js +18 -4
- package/dist/core/code-runner.js.map +1 -1
- package/dist/core/file-system.d.ts.map +1 -1
- package/dist/core/file-system.js +2 -1
- package/dist/core/file-system.js.map +1 -1
- package/dist/core/session.d.ts +2 -0
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +25 -5
- package/dist/core/session.js.map +1 -1
- package/dist/core/terminal.d.ts.map +1 -1
- package/dist/core/terminal.js +5 -4
- package/dist/core/terminal.js.map +1 -1
- package/dist/mcp/servers/browser-use.d.ts +3 -0
- package/dist/mcp/servers/browser-use.d.ts.map +1 -0
- package/dist/{cli/cerevox-mcp.js → mcp/servers/browser-use.js} +24 -40
- package/dist/mcp/servers/browser-use.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +3 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/detect-code.d.ts +2 -2
- package/dist/utils/detect-code.d.ts.map +1 -1
- package/dist/utils/detect-code.js +5 -1
- package/dist/utils/detect-code.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/cerevox-mcp.d.ts +0 -3
- package/dist/cli/cerevox-mcp.d.ts.map +0 -1
- package/dist/cli/cerevox-mcp.js.map +0 -1
package/README.md
CHANGED
|
@@ -17,6 +17,8 @@ Cerevox 是一个基于 TypeScript 的浏览器自动化和安全命令执行 SD
|
|
|
17
17
|
- 🔒 **安全沙箱环境** - 隔离的命令执行环境,确保安全性
|
|
18
18
|
- 📁 **文件系统操作** - 完整的文件上传、下载、读写功能
|
|
19
19
|
- 💻 **终端命令执行** - 实时流式输出的命令执行
|
|
20
|
+
- 🤖 **AI 功能集成** - 图像生成、视频制作、背景音乐生成等 AI 能力
|
|
21
|
+
- 📝 **多语言代码执行** - 支持 TypeScript、JavaScript、Python、Shell 脚本执行
|
|
20
22
|
- 📊 **高性能日志** - 基于 Pino 的结构化日志系统
|
|
21
23
|
- 🎨 **TypeScript 严格模式** - 完整的类型安全保障
|
|
22
24
|
- 🔧 **模块化设计** - 高内聚低耦合的架构设计
|
|
@@ -128,6 +130,97 @@ async function runCommands() {
|
|
|
128
130
|
}
|
|
129
131
|
```
|
|
130
132
|
|
|
133
|
+
### 代码执行
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
import { Cerevox } from 'cerevox';
|
|
137
|
+
|
|
138
|
+
async function runCode() {
|
|
139
|
+
const cerevox = new Cerevox();
|
|
140
|
+
const session = await cerevox.launch();
|
|
141
|
+
|
|
142
|
+
// 执行 Python 代码
|
|
143
|
+
const pythonCode = `
|
|
144
|
+
print("Hello from Python!")
|
|
145
|
+
import requests
|
|
146
|
+
response = requests.get("https://api.github.com")
|
|
147
|
+
print(f"Status: {response.status_code}")
|
|
148
|
+
`;
|
|
149
|
+
const pythonResult = await session.codeRunner.run(pythonCode);
|
|
150
|
+
console.log(await pythonResult);
|
|
151
|
+
|
|
152
|
+
// 执行 Shell 脚本
|
|
153
|
+
const shellCode = `#!/bin/bash
|
|
154
|
+
echo "Hello from Shell!"
|
|
155
|
+
ls -la
|
|
156
|
+
pwd
|
|
157
|
+
`;
|
|
158
|
+
const shellResult = await session.codeRunner.run(shellCode);
|
|
159
|
+
console.log(await shellResult);
|
|
160
|
+
|
|
161
|
+
// 执行 TypeScript 代码
|
|
162
|
+
const tsCode = `
|
|
163
|
+
import { chromium } from 'playwright';
|
|
164
|
+
|
|
165
|
+
async function main() {
|
|
166
|
+
const browser = await chromium.launch();
|
|
167
|
+
const page = await browser.newPage();
|
|
168
|
+
await page.goto('https://example.com');
|
|
169
|
+
const title = await page.title();
|
|
170
|
+
console.log('Page title:', title);
|
|
171
|
+
await browser.close();
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
main();
|
|
175
|
+
`;
|
|
176
|
+
const tsResult = await session.codeRunner.run(tsCode, { inject: true });
|
|
177
|
+
console.log(await tsResult);
|
|
178
|
+
|
|
179
|
+
await session.close();
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### AI 功能
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import { Cerevox } from 'cerevox';
|
|
187
|
+
|
|
188
|
+
async function useAI() {
|
|
189
|
+
const cerevox = new Cerevox();
|
|
190
|
+
const session = await cerevox.launch();
|
|
191
|
+
|
|
192
|
+
// 获取可用的 AI 模型
|
|
193
|
+
const models = await session.ai.getModels();
|
|
194
|
+
console.log('Available models:', models);
|
|
195
|
+
|
|
196
|
+
// 生成图像
|
|
197
|
+
const imageResult = await session.ai.generateImage({
|
|
198
|
+
prompt: '一只可爱的橘猫在阳光下睡觉',
|
|
199
|
+
size: '1024x1024'
|
|
200
|
+
});
|
|
201
|
+
console.log('Generated image:', imageResult);
|
|
202
|
+
|
|
203
|
+
// 帧到视频转换
|
|
204
|
+
const videoResult = await session.ai.framesToVideo({
|
|
205
|
+
prompt: '让这只猫动起来',
|
|
206
|
+
start_frame: '/path/to/start_frame.jpg',
|
|
207
|
+
end_frame: '/path/to/end_frame.jpg',
|
|
208
|
+
duration: 5,
|
|
209
|
+
resolution: '720p'
|
|
210
|
+
});
|
|
211
|
+
console.log('Generated video:', videoResult);
|
|
212
|
+
|
|
213
|
+
// 生成背景音乐
|
|
214
|
+
const bgmResult = await session.ai.generateBGM({
|
|
215
|
+
Text: '轻松愉快的背景音乐',
|
|
216
|
+
Duration: 30
|
|
217
|
+
});
|
|
218
|
+
console.log('Generated BGM:', bgmResult);
|
|
219
|
+
|
|
220
|
+
await session.close();
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
131
224
|
## 🏗️ 架构设计
|
|
132
225
|
|
|
133
226
|
### 核心模块
|
|
@@ -137,6 +230,8 @@ async function runCommands() {
|
|
|
137
230
|
- **Browser** - 浏览器控制,基于 Playwright 的浏览器操作
|
|
138
231
|
- **FileSystem** - 文件系统操作,支持本地和远程文件管理
|
|
139
232
|
- **Terminal** - 终端命令执行,支持实时流式输出
|
|
233
|
+
- **CodeRunner** - 代码执行引擎,支持 TypeScript、JavaScript、Python、Shell 脚本
|
|
234
|
+
- **AI** - AI 功能集成,提供图像生成、视频制作、背景音乐生成等能力
|
|
140
235
|
- **Logger** - 高性能日志系统,基于 Pino 实现
|
|
141
236
|
|
|
142
237
|
### 技术栈
|
|
@@ -176,12 +271,64 @@ const cerevox = new Cerevox({
|
|
|
176
271
|
- `browser: Browser` - 浏览器控制实例
|
|
177
272
|
- `files: FileSystem` - 文件系统操作实例
|
|
178
273
|
- `terminal: Terminal` - 终端操作实例
|
|
274
|
+
- `codeRunner: CodeRunner` - 代码执行引擎实例
|
|
275
|
+
- `ai: AI` - AI 功能实例
|
|
179
276
|
|
|
180
277
|
#### 方法
|
|
181
278
|
|
|
182
279
|
- `getHost(): string` - 获取会话主机地址
|
|
183
280
|
- `close(force?: boolean): Promise<void>` - 关闭会话
|
|
184
281
|
|
|
282
|
+
### CodeRunner 类
|
|
283
|
+
|
|
284
|
+
#### 方法
|
|
285
|
+
|
|
286
|
+
- `run(code: string, options?: RunOptions): Promise<ExecutionResult>` - 执行代码
|
|
287
|
+
- `code` - 要执行的代码字符串
|
|
288
|
+
- `options.inject?` - 是否注入浏览器启动参数(仅 TypeScript/JavaScript)
|
|
289
|
+
- `options.timeout?` - 执行超时时间(毫秒)
|
|
290
|
+
|
|
291
|
+
#### 支持的代码类型
|
|
292
|
+
|
|
293
|
+
- **TypeScript** - 自动检测 ES 模块语法
|
|
294
|
+
- **JavaScript** - 支持 CommonJS 和 ES 模块
|
|
295
|
+
- **Python** - 自动检测 Python 语法特征
|
|
296
|
+
- **Shell** - 检测 `#!/bin/bash` 开头的脚本
|
|
297
|
+
|
|
298
|
+
### AI 类
|
|
299
|
+
|
|
300
|
+
#### 方法
|
|
301
|
+
|
|
302
|
+
- `getModels(): Promise<string[]>` - 获取可用的 AI 模型列表
|
|
303
|
+
- `generateImage(params: ImageGenerationParams): Promise<ImageResult>` - 生成图像
|
|
304
|
+
- `framesToVideo(params: VideoGenerationParams): Promise<VideoResult>` - 帧到视频转换
|
|
305
|
+
- `generateBGM(params: BGMGenerationParams): Promise<BGMResult>` - 生成背景音乐
|
|
306
|
+
|
|
307
|
+
#### 接口定义
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
interface ImageGenerationParams {
|
|
311
|
+
prompt: string;
|
|
312
|
+
size?: string;
|
|
313
|
+
quality?: string;
|
|
314
|
+
style?: string;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
interface VideoGenerationParams {
|
|
318
|
+
prompt: string;
|
|
319
|
+
start_frame: string;
|
|
320
|
+
end_frame: string;
|
|
321
|
+
duration: number;
|
|
322
|
+
resolution?: string;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
interface BGMGenerationParams {
|
|
326
|
+
Text: string;
|
|
327
|
+
Duration: number;
|
|
328
|
+
Style?: string;
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
185
332
|
### 配置接口
|
|
186
333
|
|
|
187
334
|
```typescript
|
|
@@ -200,6 +347,11 @@ interface ILaunchConfig {
|
|
|
200
347
|
keepAliveMS?: number; // 保活时间
|
|
201
348
|
metadata?: Record<string, string>; // 元数据
|
|
202
349
|
}
|
|
350
|
+
|
|
351
|
+
interface RunOptions {
|
|
352
|
+
inject?: boolean;
|
|
353
|
+
timeout?: number;
|
|
354
|
+
}
|
|
203
355
|
```
|
|
204
356
|
|
|
205
357
|
## 🔧 开发指南
|
|
@@ -244,9 +396,13 @@ cerevox/
|
|
|
244
396
|
│ │ ├── session.ts # 会话管理
|
|
245
397
|
│ │ ├── browser.ts # 浏览器控制
|
|
246
398
|
│ │ ├── file-system.ts # 文件系统
|
|
247
|
-
│ │
|
|
399
|
+
│ │ ├── terminal.ts # 终端操作
|
|
400
|
+
│ │ ├── code-runner.ts # 代码执行引擎
|
|
401
|
+
│ │ └── ai.ts # AI 功能集成
|
|
248
402
|
│ └── utils/ # 工具函数
|
|
249
|
-
│
|
|
403
|
+
│ ├── logger.ts # 日志系统
|
|
404
|
+
│ ├── detect-code.ts # 代码类型检测
|
|
405
|
+
│ └── volc-signv4.ts # 火山引擎签名工具
|
|
250
406
|
├── sandbox/ # 沙箱环境代码
|
|
251
407
|
├── examples/ # 使用示例
|
|
252
408
|
├── scripts/ # 构建脚本
|
|
@@ -355,6 +511,10 @@ CEREVOX_API_KEY=your-api-key-here
|
|
|
355
511
|
- **实时预览**:非 headless 模式下自动打开浏览器预览
|
|
356
512
|
- **智能打包**:使用 esbuild 进行代码打包和优化
|
|
357
513
|
- **环境管理**:自动创建和管理 API 密钥配置文件
|
|
514
|
+
- **代码执行**:支持 TypeScript、JavaScript、Python、Shell 脚本执行
|
|
515
|
+
- **AI 功能**:集成图像生成、视频制作、背景音乐生成等 AI 能力
|
|
516
|
+
- **文件管理**:支持文件上传下载和目录操作
|
|
517
|
+
- **命令执行**:实时执行终端命令
|
|
358
518
|
|
|
359
519
|
## 📄 许可证
|
|
360
520
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cerevox-run.d.ts","sourceRoot":"","sources":["../../src/cli/cerevox-run.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cerevox-run.d.ts","sourceRoot":"","sources":["../../src/cli/cerevox-run.ts"],"names":[],"mappings":";AAgTA,wBAAgB,GAAG,SAElB"}
|
package/dist/cli/cerevox-run.js
CHANGED
|
@@ -231,6 +231,12 @@ program
|
|
|
231
231
|
apiKey: key,
|
|
232
232
|
logLevel: 'error',
|
|
233
233
|
});
|
|
234
|
+
const logger = cerevox.getLogger().child({
|
|
235
|
+
className: 'CerevoxRun',
|
|
236
|
+
}, {
|
|
237
|
+
level: 'info',
|
|
238
|
+
});
|
|
239
|
+
logger.info('🖥️ Launching cerevox...');
|
|
234
240
|
const session = await cerevox.launch({
|
|
235
241
|
browser: {
|
|
236
242
|
liveview: true,
|
|
@@ -238,6 +244,7 @@ program
|
|
|
238
244
|
keepAliveMS: 10000,
|
|
239
245
|
timeoutMS: 3600000,
|
|
240
246
|
});
|
|
247
|
+
logger.info('✅ Cerevox launched successfully.');
|
|
241
248
|
const { listen } = options;
|
|
242
249
|
// Log listen parameter if provided
|
|
243
250
|
if (listen !== undefined) {
|
|
@@ -246,24 +253,24 @@ program
|
|
|
246
253
|
testAndOpenUrl(`https://${host}`);
|
|
247
254
|
}
|
|
248
255
|
await runProgram(session, file);
|
|
249
|
-
|
|
256
|
+
logger.debug('Program executed successfully.');
|
|
250
257
|
// Check and create .env.cerevox file
|
|
251
258
|
const envFilePath = (0, node_path_1.join)(process.cwd(), '.env.cerevox');
|
|
252
259
|
if (!(0, node_fs_1.existsSync)(envFilePath)) {
|
|
253
260
|
try {
|
|
254
261
|
(0, node_fs_1.writeFileSync)(envFilePath, `CEREVOX_API_KEY=${key}\n`);
|
|
255
|
-
|
|
262
|
+
logger.info('Created .env.cerevox file with your API key.');
|
|
256
263
|
}
|
|
257
264
|
catch (error) {
|
|
258
|
-
|
|
265
|
+
logger.error('Failed to create .env.cerevox file:', error);
|
|
259
266
|
}
|
|
260
267
|
}
|
|
261
268
|
else {
|
|
262
|
-
|
|
269
|
+
logger.debug('.env.cerevox file already exists, will not overwrite the file content.');
|
|
263
270
|
}
|
|
264
271
|
}
|
|
265
272
|
catch (error) {
|
|
266
|
-
console.error('Error running the program:', error);
|
|
273
|
+
console.error('❌ Error running the program:', error);
|
|
267
274
|
}
|
|
268
275
|
});
|
|
269
276
|
function run() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cerevox-run.js","sourceRoot":"","sources":["../../src/cli/cerevox-run.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"cerevox-run.js","sourceRoot":"","sources":["../../src/cli/cerevox-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseClass } from './base';
|
|
2
|
+
import { Session } from './session';
|
|
3
|
+
export declare class AI extends BaseClass {
|
|
4
|
+
private terminal;
|
|
5
|
+
private session;
|
|
6
|
+
constructor(session: Session);
|
|
7
|
+
getModels(): Promise<any>;
|
|
8
|
+
generateImage(options: {
|
|
9
|
+
prompt: string;
|
|
10
|
+
size?: string;
|
|
11
|
+
}): Promise<any>;
|
|
12
|
+
framesToVideo(options: {
|
|
13
|
+
prompt: string;
|
|
14
|
+
start_frame: string;
|
|
15
|
+
end_frame?: string;
|
|
16
|
+
duration: number;
|
|
17
|
+
resolution?: '480p' | '720p' | '1080p';
|
|
18
|
+
}): Promise<any>;
|
|
19
|
+
generateBGM(options: {
|
|
20
|
+
Text: string;
|
|
21
|
+
Duration: number;
|
|
22
|
+
}): Promise<any>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/core/ai.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDpC,qBACa,EAAG,SAAQ,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,EAAE,OAAO;IAStB,SAAS;IAOT,aAAa,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAkBxD,aAAa,CAAC,OAAO,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KACxC;IAyBK,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAqB9D"}
|
package/dist/core/ai.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
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.AI = void 0;
|
|
13
|
+
const constants_1 = require("../utils/constants");
|
|
14
|
+
const base_1 = require("./base");
|
|
15
|
+
const session_1 = require("./session");
|
|
16
|
+
async function waitForViedoTaskComplete(taskUrl, logger) {
|
|
17
|
+
const headers = {
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
};
|
|
20
|
+
while (true) {
|
|
21
|
+
const response = await fetch(taskUrl, {
|
|
22
|
+
method: 'GET',
|
|
23
|
+
headers: headers,
|
|
24
|
+
});
|
|
25
|
+
const data = await response.json();
|
|
26
|
+
logger.debug(`get video task status: ${JSON.stringify(data)}`);
|
|
27
|
+
if (data.status === 'succeeded') {
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
if (data.status === 'failed') {
|
|
31
|
+
throw new Error('Video generation failed');
|
|
32
|
+
}
|
|
33
|
+
if (data.status === 'canceled') {
|
|
34
|
+
throw new Error('Video generation canceled');
|
|
35
|
+
}
|
|
36
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function waitForBgmTaskComplete(taskUrl, logger) {
|
|
40
|
+
const headers = {
|
|
41
|
+
'Content-Type': 'application/json',
|
|
42
|
+
};
|
|
43
|
+
while (true) {
|
|
44
|
+
const response = await fetch(taskUrl, {
|
|
45
|
+
method: 'GET',
|
|
46
|
+
headers: headers,
|
|
47
|
+
});
|
|
48
|
+
const data = await response.json();
|
|
49
|
+
logger.debug(`get bgm task status: ${JSON.stringify(data)}`);
|
|
50
|
+
const result = data.Result;
|
|
51
|
+
if (result?.Status === 2) {
|
|
52
|
+
return result.SongDetail;
|
|
53
|
+
}
|
|
54
|
+
if (result?.Status === 3) {
|
|
55
|
+
throw new Error('BGM generation failed');
|
|
56
|
+
}
|
|
57
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
let AI = class AI extends base_1.BaseClass {
|
|
61
|
+
constructor(session) {
|
|
62
|
+
super(session.getSandbox(), session.getLogger().level);
|
|
63
|
+
this.terminal = session.terminal.create();
|
|
64
|
+
this.session = session;
|
|
65
|
+
}
|
|
66
|
+
async getModels() {
|
|
67
|
+
const host = this.session.getHost();
|
|
68
|
+
const res = await fetch(`https://${host}/ai/models`);
|
|
69
|
+
const data = await res.json();
|
|
70
|
+
return data;
|
|
71
|
+
}
|
|
72
|
+
async generateImage(options) {
|
|
73
|
+
try {
|
|
74
|
+
const host = this.session.getHost();
|
|
75
|
+
const res = await fetch(`https://${host}/ai/image/generate`, {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
headers: {
|
|
78
|
+
'Content-Type': 'application/json',
|
|
79
|
+
},
|
|
80
|
+
body: JSON.stringify(options),
|
|
81
|
+
});
|
|
82
|
+
const data = await res.json();
|
|
83
|
+
return data;
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.logger.error('generateImage error', error);
|
|
87
|
+
return { error: 'generateImage error' };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async framesToVideo(options) {
|
|
91
|
+
try {
|
|
92
|
+
const host = this.session.getHost();
|
|
93
|
+
const res = await fetch(`https://${host}/ai/frames/to/video/generate`, {
|
|
94
|
+
method: 'POST',
|
|
95
|
+
headers: {
|
|
96
|
+
'Content-Type': 'application/json',
|
|
97
|
+
},
|
|
98
|
+
body: JSON.stringify(options),
|
|
99
|
+
});
|
|
100
|
+
const data = await res.json();
|
|
101
|
+
if (data.taskUrl) {
|
|
102
|
+
const result = await waitForViedoTaskComplete(data.taskUrl, this.logger);
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
return data;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
this.logger.error('framesToVideo error', error);
|
|
109
|
+
return { error: error.message };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async generateBGM(options) {
|
|
113
|
+
try {
|
|
114
|
+
const host = this.session.getHost();
|
|
115
|
+
const res = await fetch(`https://${host}/ai/music/bgm/generate`, {
|
|
116
|
+
method: 'POST',
|
|
117
|
+
headers: {
|
|
118
|
+
'Content-Type': 'application/json',
|
|
119
|
+
},
|
|
120
|
+
body: JSON.stringify(options),
|
|
121
|
+
});
|
|
122
|
+
const data = await res.json();
|
|
123
|
+
if (data.taskUrl) {
|
|
124
|
+
const result = await waitForBgmTaskComplete(data.taskUrl, this.logger);
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
return data;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
this.logger.error('generateBGM error', error);
|
|
131
|
+
return { error: error.message };
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
exports.AI = AI;
|
|
136
|
+
exports.AI = AI = __decorate([
|
|
137
|
+
(0, base_1.Logger)({ VERSION: constants_1.VERSION }),
|
|
138
|
+
__metadata("design:paramtypes", [session_1.Session])
|
|
139
|
+
], AI);
|
|
140
|
+
//# sourceMappingURL=ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/core/ai.ts"],"names":[],"mappings":"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"}
|
package/dist/core/browser.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import Sandbox from 'e2b';
|
|
2
1
|
import { BaseClass } from './base';
|
|
2
|
+
import { Session } from './session';
|
|
3
3
|
export declare class Browser extends BaseClass {
|
|
4
4
|
private connectionMetaData;
|
|
5
5
|
private readyDefer;
|
|
6
|
-
|
|
6
|
+
private session;
|
|
7
|
+
constructor(session: Session);
|
|
7
8
|
_setReady(connectionMetaData: Record<string, string>): Promise<void>;
|
|
8
9
|
get ready(): Promise<void>;
|
|
9
10
|
getSessionId(): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/core/browser.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/core/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,qBACa,OAAQ,SAAQ,SAAS;IACpC,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,EAAE,OAAO;IAQtB,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAK1D,IAAI,KAAK,kBAER;IAEK,YAAY;IAKZ,OAAO;IAKP,WAAW;IAKjB;;;OAGG;IACG,wBAAwB;IA4B9B;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYvD;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYlD;;;OAGG;IACG,gBAAgB;CAMvB"}
|
package/dist/core/browser.js
CHANGED
|
@@ -13,9 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.Browser = void 0;
|
|
16
|
-
const e2b_1 = __importDefault(require("e2b"));
|
|
17
16
|
const base_1 = require("./base");
|
|
18
17
|
const open_1 = __importDefault(require("open"));
|
|
18
|
+
const session_1 = require("./session");
|
|
19
|
+
const constants_1 = require("../utils/constants");
|
|
19
20
|
class ReadyDefer {
|
|
20
21
|
constructor() {
|
|
21
22
|
this._resolve = () => { };
|
|
@@ -33,10 +34,11 @@ class ReadyDefer {
|
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
let Browser = class Browser extends base_1.BaseClass {
|
|
36
|
-
constructor(
|
|
37
|
-
super(
|
|
37
|
+
constructor(session) {
|
|
38
|
+
super(session.getSandbox(), session.getLogger().level);
|
|
38
39
|
this.connectionMetaData = {};
|
|
39
40
|
this.readyDefer = new ReadyDefer();
|
|
41
|
+
this.session = session;
|
|
40
42
|
}
|
|
41
43
|
async _setReady(connectionMetaData) {
|
|
42
44
|
this.connectionMetaData = connectionMetaData;
|
|
@@ -130,7 +132,7 @@ let Browser = class Browser extends base_1.BaseClass {
|
|
|
130
132
|
};
|
|
131
133
|
exports.Browser = Browser;
|
|
132
134
|
exports.Browser = Browser = __decorate([
|
|
133
|
-
(0, base_1.Logger)({
|
|
134
|
-
__metadata("design:paramtypes", [
|
|
135
|
+
(0, base_1.Logger)({ VERSION: constants_1.VERSION }),
|
|
136
|
+
__metadata("design:paramtypes", [session_1.Session])
|
|
135
137
|
], Browser);
|
|
136
138
|
//# sourceMappingURL=browser.js.map
|
package/dist/core/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/core/browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/core/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/core/cerevox.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Session } from './session';
|
|
2
2
|
import 'dotenv/config';
|
|
3
|
+
import type { Logger as PinoLogger } from 'pino';
|
|
3
4
|
export interface IBrowserConfig {
|
|
4
5
|
type?: 'chromium' | 'chrome-stable';
|
|
5
6
|
args?: string[];
|
|
@@ -20,6 +21,7 @@ export declare class Cerevox {
|
|
|
20
21
|
private domain;
|
|
21
22
|
private debug;
|
|
22
23
|
private logLevel;
|
|
24
|
+
private logger;
|
|
23
25
|
constructor(options?: {
|
|
24
26
|
apiKey?: string;
|
|
25
27
|
debug?: boolean;
|
|
@@ -27,7 +29,9 @@ export declare class Cerevox {
|
|
|
27
29
|
});
|
|
28
30
|
private getToken;
|
|
29
31
|
private createSession;
|
|
30
|
-
private
|
|
32
|
+
private waitForHttpServerReady;
|
|
33
|
+
private waitForBrowserReady;
|
|
34
|
+
getLogger(): PinoLogger;
|
|
31
35
|
connect(sandboxId: string): Promise<Session>;
|
|
32
36
|
launch(config?: ILaunchConfig): Promise<Session>;
|
|
33
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cerevox.d.ts","sourceRoot":"","sources":["../../src/core/cerevox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,eAAe,CAAC;AAGvB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAgD;
|
|
1
|
+
{"version":3,"file":"cerevox.d.ts","sourceRoot":"","sources":["../../src/core/cerevox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,MAAM,CAAa;gBAGzB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;KACrD;YASM,QAAQ;YAYR,aAAa;YA0Bb,sBAAsB;YAmBtB,mBAAmB;IA8BjC,SAAS;IAIH,OAAO,CAAC,SAAS,EAAE,MAAM;IAmBzB,MAAM,CAAC,MAAM,GAAE,aAAkB;CAwDxC"}
|