/** * Launcher 基类 — 管理 Agent CLI 的生命周期 * * 职责:启动 / 停止 Agent CLI 进程或容器 * 不关心通信方式,只返回 Transport 连接所需的 handle */ const { EventEmitter } = require('events'); class Launcher extends EventEmitter { constructor() { super(); } /** * 启动 Agent CLI * @param {object} options - 启动选项 * @returns {Promise} 连接句柄,供 Transport 使用 * - ProcessLauncher: { process, stdin, stdout, stderr } * - DockerLauncher: { url } * - NoneLauncher: { url } */ async start(options) { throw new Error('Launcher.start() must be implemented'); } /** * 停止 Agent CLI */ async stop() { throw new Error('Launcher.stop() must be implemented'); } } module.exports = { Launcher };