/** * 审查执行记录存储 — ReviewRun 的文件 CRUD + HMAC provenance。 * * 职责边界: * - 负责:ReviewRun 读写、HMAC 验签(fail-closed)、EACCES 权限异常 throw * - 不负责:审查执行逻辑、证据评估(evaluateAdversarialReviewEvidence 消费) * * 被谁调用:AdversarialReviewStore.writeUnlocked(写,review completed 后)、EvidenceEvaluator(读,校验 provenance) * 调用谁:Node.js fs、provenance HMAC * * 数据流:ReviewRun JSON ↔ .soloforge/review-runs/{review_run_id}.json * 持久化:.soloforge/review-runs/{review_run_id}.json * * 分离 ReviewRecord(声明,可被多份引用)与 ReviewRun(执行事实,唯一)。 */ import type { ReviewRun } from "./types.js"; import { type SignatureProvider } from "./signature_provider.js"; /** 生成唯一审查执行记录 id(rrun- + 12 hex)。 */ export declare function generateReviewRunId(): string; /** 审查执行记录存储 — 纯文件 CRUD + HMAC provenance,无业务逻辑。 */ export declare class ReviewRunStore { private readonly projectRoot; private readonly provider; constructor(projectRoot: string, provider?: SignatureProvider); private filePath; /** 读取 + schema 校验 + HMAC 验签(fail-closed)。伪造/无 secret → null;EACCES → throw 阻断。 */ private readAndValidate; read(runId: string): Promise; /** 写入(HMAC 签名 + 原子写)。无 secret 抛错(执行事实必须签名)。 */ write(run: ReviewRun): Promise; private writeUnlocked; private withRunLock; delete(runId: string): Promise; }