refactor: 命令执行走工作空间终端,AI 不再直接执行
流程改为:AI 提出命令 → 用户确认 → 工作空间终端执行(实时显示)→ 结果反馈 AI → AI 回复 - handleRunCommand 直接 spawn 子进程,stdout/stderr 实时通过 cmd:output 推送 - 进程结束后通过 cmd:done 通知渲染进程 - 停止按钮通过 cmd:kill 终止进程 - 清理 workspace.ts 中不再需要的 execWorkspaceCommand 工具集成代码 - 去掉 workspace:execTool/killTool,改为 cmd:output/cmd:done/cmd:kill
This commit is contained in:
@@ -182,14 +182,14 @@ export async function initWorkspacePanel(): Promise<void> {
|
||||
handleProcessExit(data.id, data.code);
|
||||
});
|
||||
|
||||
// 监听 AI Tool Calling 实时输出,流式推送到终端面板
|
||||
bridge.workspace.onToolOutput((data) => {
|
||||
// 监听 AI 命令实时输出,流式推送到终端面板
|
||||
bridge.workspace.onCmdOutput((data) => {
|
||||
appendToolStreamOutput(data.command, data.type, data.data);
|
||||
});
|
||||
|
||||
// 监听 AI Tool Calling 命令执行完毕
|
||||
bridge.workspace.onToolDone((data) => {
|
||||
logDebug('工作空间工具命令完成', `command: ${data.command.slice(0, 50)} | exitCode: ${data.exitCode}`);
|
||||
// 监听 AI 命令执行完毕
|
||||
bridge.workspace.onCmdDone((data) => {
|
||||
logDebug('工作空间 AI 命令完成', `command: ${data.command.slice(0, 50)} | exitCode: ${data.exitCode}`);
|
||||
handleToolDone(data.command, data.exitCode);
|
||||
});
|
||||
|
||||
@@ -383,8 +383,8 @@ function killCurrentProcess(): void {
|
||||
bridge.workspace.kill(session.id);
|
||||
}
|
||||
|
||||
// 终止当前 AI 工具命令
|
||||
bridge.workspace.killTool();
|
||||
// 终止当前 AI 命令
|
||||
bridge.workspace.cmdKill();
|
||||
|
||||
const cmd = currentAiCommand;
|
||||
session.lines.push({ type: 'system', text: '■ 命令已手动终止' });
|
||||
|
||||
Reference in New Issue
Block a user