import type { ToolContext } from '../../types.js'; import type { QaSuite } from './spec.js'; import { type QaReport } from './report.js'; import { resolveGameDataPath } from '../game-fs.js'; export { resolveGameDataPath }; export interface RunQaResult { report: QaReport; paths: { json_path: string; md_path: string; }; } /** 外部控制钩子(PR-1b):cancelRequested 步骤间轮询;onProgress 与 ctx.progress 同点位 */ export interface QaRunControl { cancelRequested(): boolean; onProgress?(step: number, total: number, current: string): void; } /** * 执行 QA 套件并落盘报告。 * @param suite 已校验的套件 * @param projectPath 已通过白名单校验的绝对路径(index/CLI 层解析) * @param ctx 工具上下文(install 用 opsScript;run/stop 用进程槽;progress 可选) * @param ctl 外部控制钩子(PR-1b):cancelRequested 步骤间轮询取消;onProgress 同步进度 * @param runIdOverride 外部注入的 run_id(PR-1b 异步注册表 taskId 与报告保持一致);缺省按套件名生成 */ export declare function runQaSuite(suite: QaSuite, projectPath: string, ctx: ToolContext, specSource: QaReport['suite']['spec_source'], ctl?: QaRunControl, runIdOverride?: string): Promise;