/** * Forgen v0.5.0 — Rendered Rules Manifest (ADR-010 W1-1) * * harness 가 렌더해 쓴 규칙 파일의 content-hash 원장. * reclaimer(`forgen migrate tenetx`)가 "forgen 이 쓴 그대로인 파일"과 * "사용자가 편집했거나 다른 도구가 쓴 파일"을 구분하는 유일한 근거다 — * native /doctor 는 비용만 알지 provenance 를 모른다. * * 성능 (Rev 2): 렌더 시점에 이미 메모리에 있는 내용을 해시하므로 * 재읽기/전체 스캔 비용이 없다. 스캔 사이드(reclaimer)만 파일을 읽는다. */ export interface ManifestEntry { sha256: string; version: string; ts: string; } export type RulesManifest = Record; export declare function manifestPath(home?: string): string; export declare function sha256Of(content: string): string; export declare function loadManifest(home?: string): RulesManifest; /** * 렌더 직후 호출 — 쓴 파일들의 해시를 기존 manifest 에 병합 기록. * 같은 경로는 최신 해시로 **덮어쓴다** (history 없음): 같은 경로에 구버전 * 내용이 남는 시나리오는 렌더가 즉시 갱신하므로 존재하지 않고, 다른 경로의 * 구버전 파일은 marker-only(needs-confirm) 경로로 안전 강등된다. */ export declare function recordRenderedFiles(files: Record, version: string, home?: string): void; /** 파일 내용이 manifest 의 어떤 엔트리와도 일치하는가 (경로 키 기준) */ export declare function matchesManifest(absPath: string, content: string, manifest: RulesManifest): boolean;