import assert from "node:assert/strict"; import fs from "node:fs"; import path from "node:path"; import { evidencePath, root, sha256 } from "./v1-acceptance-lib.mjs"; assert.ok(fs.existsSync(evidencePath), "V1 acceptance evidence is missing"); const acceptanceSha256 = sha256(fs.readFileSync(evidencePath)); const releaseEvidence = JSON.parse(fs.readFileSync(path.join(root, "docs/status/release-evidence.json"), "utf8")); const userLoopRecord = releaseEvidence.evidence?.records?.find((record) => record.id === "v1-user-loop"); assert.ok(userLoopRecord, "release evidence has no v1-user-loop record"); assert.equal(userLoopRecord.exitCode, 0, "release v1-user-loop record failed"); assert.ok(userLoopRecord.output?.trim().length > 0, "release v1-user-loop output is empty"); assert.ok( userLoopRecord.artifactSha256?.includes(acceptanceSha256), "current V1 acceptance evidence is not bound to release evidence", ); process.stdout.write( `v1-acceptance-release-binding-ok acceptanceSha256=${acceptanceSha256} releaseGeneratedAt=${releaseEvidence.generatedAt}\n`, );