radroots_sdk_boundary.mjs (740B)
1 #!/usr/bin/env node 2 3 import { execFileSync } from "node:child_process"; 4 import { dirname, resolve } from "node:path"; 5 import { fileURLToPath } from "node:url"; 6 7 import { 8 validateProductionSources, 9 validateTrackedInventory, 10 } from "./radroots_sdk_boundary_lib.mjs"; 11 import { validateHistoricalAuthority } from "./radroots_sdk_contract_lib.mjs"; 12 13 const root = resolve(dirname(fileURLToPath(import.meta.url)), ".."); 14 const tracked = execFileSync("git", ["ls-files", "-z"], { 15 cwd: root, 16 encoding: "utf8", 17 }) 18 .split("\0") 19 .filter(Boolean); 20 21 validateHistoricalAuthority(root); 22 validateTrackedInventory(tracked); 23 validateProductionSources(root, tracked); 24 process.stdout.write(`SDK boundaries: OK (${tracked.length} tracked files)\n`);