cerevox
Version:
TypeScript SDK for browser automation and secure command execution in highly available and scalable micro computer environments
104 lines • 2.7 kB
TypeScript
import { CommandResult } from './types';
import { BaseClass } from './base';
import { Readable } from 'node:stream';
import { Session } from './session';
/**
* 流式命令响应接口
* 提供命令执行的标准输出、错误输出和控制方法
*/
export type StreamableCommandResponse = {
/** 标准输出流 */
stdout: Readable;
/** 错误输出流 */
stderr: Readable;
/** 等待命令执行完成 */
end: () => Promise<void>;
/** 终止命令执行 */
kill: () => Promise<void>;
/** 获取命令执行结果的 JSON 格式 */
json: () => Promise<CommandResult>;
};
/**
* 命令执行选项
*/
type CommandOpts = {
/** 工作目录 */
cwd?: string;
/** 环境变量 */
envs?: Record<string, string>;
/** 超时时间(毫秒) */
timeoutMs?: number;
};
/**
* Terminal 类 - 提供沙箱环境中的终端命令执行功能
*
* 主要功能:
* - 在沙箱环境中执行命令
* - 管理工作目录状态
* - 提供流式输出处理
* - 支持命令终止和控制
* - 环境变量管理
*
* @example
* ```typescript
* import Sandbox from 'e2b';
* import { Terminal } from './terminal';
*
* const sandbox = new Sandbox();
* const terminal = new Terminal(sandbox);
*
* // 执行命令
* const result = await terminal.run('ls -la');
* result.stdout.on('data', (chunk) => {
* console.log(chunk.toString());
* });
*
* // 等待命令完成
* await result.end();
* ```
*/
export declare class Terminal extends BaseClass {
private session;
/** 当前工作目录 */
private cwd;
/** 环境变量 */
private envs;
/** 终端唯一标识符 */
readonly id: string;
/**
* 创建 Terminal 实例
* @param sandbox - E2B 沙箱实例
* @param envs - 环境变量配置
* @param id - 终端唯一标识符
* @param logLevel - 日志级别
*/
constructor(session: Session, options?: {
envs?: Record<string, string>;
id?: string;
});
/**
* 获取当前工作目录
* @returns 当前工作目录路径
*/
getCwd(): Promise<string>;
/**
* 更新当前工作目录
* @private
* @returns 更新后的工作目录路径
*/
private updateCwd;
/**
* 创建新的 Terminal 实例
* @returns 新的 Terminal 实例,具有唯一的 ID
*/
create(): Terminal;
/**
* 通过 API 执行命令
* @param command - 要执行的命令
* @param opts - 命令执行选项
* @returns 命令响应对象
*/
run(command: string, opts?: CommandOpts): Promise<StreamableCommandResponse>;
}
export {};
//# sourceMappingURL=terminal.d.ts.map