Complete M16 asset operator parity chain
This commit is contained in:
@@ -5,11 +5,13 @@ import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
||||
const output = path.resolve(process.argv[2] ?? path.join(root, "tests/golden/M15-03A/next-task-plan.json"));
|
||||
const completionArg = process.argv.indexOf("--completion-path");
|
||||
const completionPathArg = completionArg >= 0 ? process.argv[completionArg + 1] : undefined;
|
||||
const mapPath = path.join(root, "tests/golden/M15-02A/blender-parity-map.json");
|
||||
const gapPath = path.join(root, "tests/golden/M15-02B/blender-gap-audit.json");
|
||||
const map = JSON.parse(fs.readFileSync(mapPath, "utf8"));
|
||||
const gaps = JSON.parse(fs.readFileSync(gapPath, "utf8"));
|
||||
const completionPath = path.join(root, "tests/golden/M15-03A/completed-gap-tasks.json");
|
||||
const completionPath = path.resolve(root, completionPathArg ?? "tests/golden/M15-03A/completed-gap-tasks.json");
|
||||
const completedIds = fs.existsSync(completionPath) ? new Set(JSON.parse(fs.readFileSync(completionPath, "utf8"))) : new Set();
|
||||
const byId = new Map(map.entries.map((entry) => [entry.id, entry]));
|
||||
const waveFor = (owner) => {
|
||||
@@ -58,7 +60,7 @@ const plan = {
|
||||
schemaVersion: 1,
|
||||
task: "M15-03A",
|
||||
operation: "BLENDER_NEXT_TASK_PLAN",
|
||||
sources: { parityMap: { path: "tests/golden/M15-02A/blender-parity-map.json", sha256: sha256File(mapPath) }, gapAudit: { path: "tests/golden/M15-02B/blender-gap-audit.json", sha256: sha256File(gapPath) }, completions: { path: "tests/golden/M15-03A/completed-gap-tasks.json", sha256: crypto.createHash("sha256").update(completionBytes).digest("hex") } },
|
||||
sources: { parityMap: { path: "tests/golden/M15-02A/blender-parity-map.json", sha256: sha256File(mapPath) }, gapAudit: { path: "tests/golden/M15-02B/blender-gap-audit.json", sha256: sha256File(gapPath) }, completions: { path: path.relative(root, completionPath).replaceAll(path.sep, "/"), sha256: crypto.createHash("sha256").update(completionBytes).digest("hex") } },
|
||||
summary: { taskCount: tasks.length, active: tasks.filter((task) => task.state === "active").length, pending: tasks.filter((task) => task.state === "pending").length, completed: tasks.filter((task) => task.state === "completed").length, blocked: tasks.filter((task) => task.state === "blocked").length, byWave: Object.fromEntries([...waveCounts.entries()]) },
|
||||
tasks,
|
||||
firstTask: tasks.find((task) => task.state === "active")?.id ?? null,
|
||||
|
||||
Reference in New Issue
Block a user