/** * Doctor CLI 命令 — MCP 连不上时的独立诊断。 * * 职责边界: * - 负责:解析 --json、调用 runDoctorCheck、人类可读/JSON 输出 * - 不负责:诊断逻辑(复用 doctor_service.runDoctorCheck,不重写) * * 被谁调用:src/index.ts argv 分发(soloforge doctor) * 调用谁:doctor_service.runDoctorCheck * * 数据流:argv → 诊断报告 → stdout(中文人类可读 或 JSON) * 持久化:只读,无写盘 * * 第一性定位:doctor 是 MCP 引导悖论的解药之一——连不上 MCP 时唯一能跑的诊断。 */ import { type DoctorReport } from "../core/doctor_service.js"; /** 解析 doctor 命令参数 */ export declare function parseDoctorArgs(argv: string[]): { json: boolean; }; /** 打印人类可读的中文诊断报告(导出供回归测试:防 hooks 段再次从人类输出漏掉)。 */ export declare function printHumanReport(report: DoctorReport): void; /** doctor 是否应判失败(exit 1)。纯函数,供单测覆盖"未 init 项目不误伤"边界。 * 失败条件:诊断本身失败;或本项目已是 SoloForge 项目(.soloforge/ 存在)但 hook 接入不完整。 * 非 SoloForge 项目(未 init / fresh clone 探针)缺 hook 是正常态,不判失败——避免对把 doctor 当良性体检的 * 脚本/CI 误伤;一旦 .soloforge/ 存在却缺 hook = 防护被卸载/丢失,须 exit 1 让脚本捕获(checkHooks 恒 * success:true 只收集 issues,不并入 exit 会静默放行 = "提示性安全网=假兜底")。 */ export declare function shouldDoctorFail(report: DoctorReport, isSoloForgeProject: boolean): boolean; /** * 运行 doctor 命令。 * @param argv 命令参数(process.argv.slice(3)) */ export declare function runDoctor(argv: string[]): Promise;