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:
Vendored
+7
-7
@@ -240,13 +240,13 @@ export interface MetonaDesktopAPI {
|
||||
onOutput: (callback: (data: { id: string; type: 'stdout' | 'stderr'; data: string }) => void) => void;
|
||||
onExit: (callback: (data: { id: string; code: number | null }) => void) => void;
|
||||
/** 无超时工具命令执行,用于 AI Tool Calling 集成 */
|
||||
execTool: (command: string, cwd?: string) => Promise<{ success: boolean; stdout: string; stderr: string; exitCode: number | null; duration: number; userTerminated: boolean; truncated: boolean }>;
|
||||
/** AI Tool Calling 实时输出推送到工作空间终端 */
|
||||
onToolOutput: (callback: (data: { command: string; type: 'stdout' | 'stderr'; data: string }) => void) => void;
|
||||
/** AI Tool Calling 命令执行完毕 */
|
||||
onToolDone: (callback: (data: { command: string; exitCode: number | null }) => void) => void;
|
||||
/** 终止当前 AI 工具命令 */
|
||||
killTool: () => Promise<{ killed: boolean }>;
|
||||
execTool: (command: string, cwd?: string) => Promise<{ success: boolean; stdout: string; stderr: string; exitCode: number | null; duration: number }>;
|
||||
/** AI 命令实时输出推送到工作空间终端 */
|
||||
onCmdOutput: (callback: (data: { command: string; type: 'stdout' | 'stderr'; data: string }) => void) => void;
|
||||
/** AI 命令执行完毕 */
|
||||
onCmdDone: (callback: (data: { command: string; exitCode: number | null }) => void) => void;
|
||||
/** 终止当前 AI 命令 */
|
||||
cmdKill: () => Promise<{ killed: boolean }>;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user