UNPKG

cerevox

Version:

TypeScript SDK for browser automation and secure command execution in highly available and scalable micro computer environments

104 lines 2.7 kB
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