Launcher.js
826 Bytes
/**
* Launcher 基类 — 管理 Agent CLI 的生命周期
*
* 职责:启动 / 停止 Agent CLI 进程或容器
* 不关心通信方式,只返回 Transport 连接所需的 handle
*/
const { EventEmitter } = require('events');
class Launcher extends EventEmitter {
constructor() {
super();
}
/**
* 启动 Agent CLI
* @param {object} options - 启动选项
* @returns {Promise<object>} 连接句柄,供 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 };