/*******************************************************************************
run-verify — verifies file integrity against predefined manifests, ensuring tracked content matches.
- Do not handle raw file parsing or content validation directly.
- Do not manage configuration or transport orchestration for verification processes.
- RFC-1097: step 6 — compass.migrate codemod run
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.
- RFC-1097: sweep — werkstatt-engine clean
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.
******************************************************************************/
/**
* Verify integrity of all managed files against stored manifests.
* Checks hashes, registry consistency, and JSON schema compliance.
*/
import { verifyIntegrity } from "./verify.ts";
import type { VerifyIssue, VerifyReport } from "./types.ts";
function formatIssue(issue: VerifyIssue): string {
const prefix = issue.level === "error" ? "[ERROR]" : "[WARN ]";
const location = [issue.path, issue.entityId].filter(Boolean).join(" | ");
return `${prefix} ${issue.code}: ${issue.message}${location ? ` [${location}]` : ""}`;
}
function printSummary(report: VerifyReport): void {
const { stats } = report;
console.log("");
console.log("Integrity summary");
console.log(` managed files ${stats.managedFiles}`);
console.log(` managed directories ${stats.managedDirectories}`);
console.log(` manifests loaded ${stats.manifestsLoaded}`);
console.log(` active entities ${stats.activeEntities}`);
console.log(` path bindings ${stats.activePathBindings}`);
console.log(` errors ${stats.errors}`);
console.log(` warnings ${stats.warnings}`);
}
export async function runVerify(args: { cwd: string }): Promise {
const report = await verifyIntegrity(args.cwd);
console.log("");
console.log("Integrity verification report");
for (const issue of report.issues) {
console.error(formatIssue(issue));
}
printSummary(report);
if (report.ok) {
console.log("");
console.log("Integrity verification passed.");
} else {
console.log("");
console.error("Integrity verification failed.");
}
return report;
}