/** * 外部命令执行器 — 执行 gate YAML 声明的外部命令(ArchUnit/dependency-cruiser/eslint 等), * 按退出码判定通过。用于把"依赖方向/行数统计/项目级存在性"等 SoloForge 无法用正则判定的检查 * 委托给成熟的行业工具,而非自研 AST executor(行业最优解:接成熟工具,不自造)。 * * 职责边界: * - 负责:external_command(执行 check.command + check.args,取 exitCode 判定) * - 不负责:不解析命令输出语义(只看 exitCode=0 通过),不内置特定工具逻辑 * * 被谁调用:gate_engine(executor="external_command" 的 check) * 调用谁:execa(执行外部进程) * * 数据流:GateCheck(command/args) + EvaluationContext(projectRoot) → execa → exitCode → CheckResult * 持久化:无 * * 安全:command 来自 gate YAML(SoloForge 受控内置文件,随包发布、经版本控制评审, * 非用户运行时输入)。命令注入风险等同 build/deploy executor 已有的 execa 用法(tsc/docker/git 等)。 * 语义约定:exitCode=0 视为检查通过;非0 视为工具检测到违规,检查未通过。 */ /** 注册外部命令执行器 */ export declare function registerExternalCommandExecutor(): void;