// Read-only inspector tests. A stale/fabricated local report is not a runtime // acceptance, and cannot become K605 or an independent review. import assert from 'node:assert/strict'; import { readFileSync } from 'node:fs'; import { dirname, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; import { inspectBootContractReport } from './boot-contract-report.mjs'; const root = resolve(dirname(fileURLToPath(import.meta.url)), '../..'); assert.ok(process.argv[2], 'usage: node scripts/os-acceptance/test-boot-contract-report.mjs '); const report = JSON.parse(readFileSync(resolve(process.argv[2]), 'utf8')); const result = inspectBootContractReport(report, root); const changes = [ value => { value.counts.guestAccepted = 1; }, value => { value.guestRuns = 6; }, value => { value.k605MarkerObserved = true; }, value => { value.moves[4].status = 'PASS'; }, value => { value.moves[0].productAccepted = true; }, value => { value.policy.productionWrite = 'enabled'; }, value => { value.policy.published = true; }, value => { value.policy.firmwareMapOwnershipProven = true; }, value => { value.sources[0].sha256 = '0'.repeat(64); }, value => { value.protectedAfter.inputs[0].sha256 = '0'.repeat(64); }, value => { value.commands[1].exitCode = 101; }, value => { value.commands[1].log.sha256 = '0'.repeat(64); }, value => { value.commands[1].log.path = `${value.runDirectory}/../host.log`; }, value => { value.commands.splice(2, 1); }, value => { value.fixtures.pop(); }, value => { value.mutations.pop(); }, value => { value.mutations[0].exitCode = 0; }, value => { value.mutations[0].source.sha256 = '0'.repeat(64); }, value => { value.mutations[0].log = value.commands[1].log; }, ]; for (const change of changes) { const forged = structuredClone(report); change(forged); assert.throws(() => inspectBootContractReport(forged, root), 'forged report accepted'); } console.log(`LOCAL REPORT VERIFIED: ${JSON.stringify(result)}; ${changes.length} forged reports rejected; K605 remains pending.`);