Exec 三分类路由
wescode 的命令执行路由:静默、验证、交互三条路径。
三分类
| 分类 | 路由 | 用户可见 | 典型命令 |
|---|---|---|---|
| 检索/探索 | Go os/exec | 不可见 | rg, git status, ls, cat, wc |
| 验证/构建 | Go os/exec + mirrorSession | 只读终端 tab [AI] ... | go build/vet/test, npm test |
| 服务/交互 | VSCode 集成终端 | 用户终端 tab | npm start, docker compose up |
路由优先级
user_visible=true?
└── 是 → 交互(VSCode 集成终端)
└── 否 → isVerificationCommand()?
└── 是 → 验证 + mirrorSession
└── 否 → 检索静默
检索/探索
- 后台执行,用户不可见
- 用于代码搜索、文件读取、Git 状态查询
- 输出直接返回给 AI,不显示在终端
验证/构建
- 输出镜像到只读终端 tab
[AI] ... - 用户可以观察但不能输入
- 用于构建验证、测试运行、lint 检查
- QualityGate 的验证命令走这条路径
服务/交互
- 使用 VSCode 集成终端
- 用户可以观察和输入
- 用于启动服务、安装依赖、交互式命令
- 终端 tab 由用户管理
进程管理
所有 exec 都遵循 INV-EXEC-PROC-01:
- 通过
proc.Command(ctx, ...)创建进程 - 自动建进程组
- cancel 时
SIGKILL整个组 WaitDelay给Wait()封顶
CWD 优先级
显式 cwd 参数 > PrimaryRoot > ScratchDir > ArtifactDir
编程场景下 PrimaryRoot = VS Code 项目根。
相关文档
- Device Agent →
device-agent.md - QualityGate →
verification.md - engine Exec 安全模型 → engine
exec-security.md