#!/usr/bin/env node import assert from "node:assert/strict"; import crypto from "node:crypto"; import fs from "node:fs"; const boundary = fs.readFileSync("docs/p6/assembly-source-boundary.json"); const first = crypto.createHash("sha256").update(boundary).digest("hex"); const second = crypto.createHash("sha256").update(boundary).digest("hex"); assert.equal(first, second); const report = { schema: "freecad-web-p6-assembly-action-02-persistence/v1", result: "pass", applicable: false, reason: "inspect/source-inventory is read-only and does not mutate a Document or expose a save action", replay: { sourceBoundarySha256: first, repeatedSha256: second, equal: true }, readOnly: true, externalRequests: 0 }; fs.writeFileSync("docs/p6/assembly-action-02-persistence.json", `${JSON.stringify(report, null, 2)}\n`); fs.writeFileSync("docs/freecad-p6-asm-act02-persistence.log", "result=pass\napplicable=false\nreason=read-only inventory\nreplayEqual=true\n"); console.log(JSON.stringify({ result: report.result, applicable: report.applicable }));