audit-tools 0.49.0 → 0.50.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +3 -1
  2. package/dist/audit/cli/args.d.ts +27 -0
  3. package/dist/audit/cli/args.d.ts.map +1 -1
  4. package/dist/audit/cli/args.js +32 -2
  5. package/dist/audit/cli/args.js.map +1 -1
  6. package/dist/audit/cli/dispatch/hostHandoff.d.ts +1 -1
  7. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  8. package/dist/audit/cli/dispatch/hostHandoff.js +32 -55
  9. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  10. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  11. package/dist/audit/cli/nextStepHelpers.js +8 -8
  12. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  13. package/dist/audit/io/artifacts.d.ts +0 -28
  14. package/dist/audit/io/artifacts.d.ts.map +1 -1
  15. package/dist/audit/io/artifacts.js +1 -65
  16. package/dist/audit/io/artifacts.js.map +1 -1
  17. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  18. package/dist/audit/orchestrator/advance.js +12 -10
  19. package/dist/audit/orchestrator/advance.js.map +1 -1
  20. package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
  21. package/dist/audit/orchestrator/designReviewSnapshot.js +2 -5
  22. package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
  23. package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
  24. package/dist/audit/reporting/mergeFindings.js +1 -2
  25. package/dist/audit/reporting/mergeFindings.js.map +1 -1
  26. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +25 -10
  27. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -1
  28. package/dist/remediate/contractPipeline/cyclicSeamResolution.js +35 -88
  29. package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -1
  30. package/dist/remediate/contractPipeline/idRegistry.d.ts +10 -20
  31. package/dist/remediate/contractPipeline/idRegistry.d.ts.map +1 -1
  32. package/dist/remediate/contractPipeline/idRegistry.js +10 -24
  33. package/dist/remediate/contractPipeline/idRegistry.js.map +1 -1
  34. package/dist/remediate/contractPipeline/obligationKinds.d.ts +27 -0
  35. package/dist/remediate/contractPipeline/obligationKinds.d.ts.map +1 -0
  36. package/dist/remediate/contractPipeline/obligationKinds.js +18 -0
  37. package/dist/remediate/contractPipeline/obligationKinds.js.map +1 -0
  38. package/dist/remediate/dedup/crossLensDedup.d.ts +2 -3
  39. package/dist/remediate/dedup/crossLensDedup.d.ts.map +1 -1
  40. package/dist/remediate/dedup/crossLensDedup.js +2 -4
  41. package/dist/remediate/dedup/crossLensDedup.js.map +1 -1
  42. package/dist/remediate/index.d.ts +38 -8
  43. package/dist/remediate/index.d.ts.map +1 -1
  44. package/dist/remediate/index.js +75 -27
  45. package/dist/remediate/index.js.map +1 -1
  46. package/dist/remediate/steps/contractPipeline.d.ts +6 -62
  47. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  48. package/dist/remediate/steps/contractPipeline.js +11 -80
  49. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  50. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  51. package/dist/remediate/steps/dispatch/hostHandoff.js +57 -48
  52. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  53. package/dist/remediate/steps/nextStep.d.ts +83 -2
  54. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  55. package/dist/remediate/steps/nextStep.js +79 -11
  56. package/dist/remediate/steps/nextStep.js.map +1 -1
  57. package/dist/remediate/steps/types.d.ts +1 -1
  58. package/dist/remediate/steps/types.d.ts.map +1 -1
  59. package/dist/remediate/steps/types.js.map +1 -1
  60. package/dist/remediate/utils/fileIntegrity.d.ts.map +1 -1
  61. package/dist/remediate/utils/fileIntegrity.js +123 -30
  62. package/dist/remediate/utils/fileIntegrity.js.map +1 -1
  63. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  64. package/dist/remediate/validation/artifacts.js +3 -9
  65. package/dist/remediate/validation/artifacts.js.map +1 -1
  66. package/dist/remediate/validation/contractPipeline.d.ts +1 -1
  67. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  68. package/dist/remediate/validation/contractPipeline.js +8 -46
  69. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  70. package/dist/remediate/validation/contractPipelineGates.d.ts +12 -20
  71. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  72. package/dist/remediate/validation/contractPipelineGates.js +107 -135
  73. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  74. package/dist/shared/engine/obligationEngine.d.ts +32 -0
  75. package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
  76. package/dist/shared/engine/obligationEngine.js +29 -0
  77. package/dist/shared/engine/obligationEngine.js.map +1 -1
  78. package/dist/shared/findings/dedupe.d.ts +4 -11
  79. package/dist/shared/findings/dedupe.d.ts.map +1 -1
  80. package/dist/shared/findings/dedupe.js +196 -163
  81. package/dist/shared/findings/dedupe.js.map +1 -1
  82. package/dist/shared/graph/directedCycles.d.ts +61 -0
  83. package/dist/shared/graph/directedCycles.d.ts.map +1 -0
  84. package/dist/shared/graph/directedCycles.js +190 -0
  85. package/dist/shared/graph/directedCycles.js.map +1 -0
  86. package/dist/shared/index.d.ts +6 -3
  87. package/dist/shared/index.d.ts.map +1 -1
  88. package/dist/shared/index.js +4 -2
  89. package/dist/shared/index.js.map +1 -1
  90. package/dist/shared/io/repoRoot.d.ts +45 -0
  91. package/dist/shared/io/repoRoot.d.ts.map +1 -1
  92. package/dist/shared/io/repoRoot.js +91 -1
  93. package/dist/shared/io/repoRoot.js.map +1 -1
  94. package/dist/shared/submission/submissionScan.d.ts +86 -0
  95. package/dist/shared/submission/submissionScan.d.ts.map +1 -0
  96. package/dist/shared/submission/submissionScan.js +93 -0
  97. package/dist/shared/submission/submissionScan.js.map +1 -0
  98. package/dist/shared/types/obligationLedger.d.ts +7 -3
  99. package/dist/shared/types/obligationLedger.d.ts.map +1 -1
  100. package/dist/shared/types/obligationLedger.js +9 -37
  101. package/dist/shared/types/obligationLedger.js.map +1 -1
  102. package/package.json +3 -2
  103. package/skills/audit-code/audit-code.prompt.md +5 -2
  104. package/wrapper/audit-code-wrapper-install-hosts.mjs +8 -3
  105. package/wrapper/audit-code-wrapper-lib.mjs +10 -3
  106. package/wrapper/installer-verb-help.mjs +3 -1
  107. package/wrapper/remediate-code-wrapper-install-hosts.mjs +8 -3
  108. package/wrapper/repo-root.mjs +80 -0
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,EAC5C,8BAAuC,CAAC;AAU1C,eAAO,MAAM,0CAA0C,EACrD,oCAA6C,CAAC;AAEhD,eAAO,MAAM,wCAAwC,EACnD,kCAA2C,CAAC;AAE9C,eAAO,MAAM,0CAA0C,EACrD,oCAA6C,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,+BAA+B,GAC/B,2BAA2B,GAC3B,cAAc,GACd,wBAAwB,GACxB,mBAAmB,GACnB,+BAA+B,GAC/B,mBAAmB,GACnB,yBAAyB,GACzB,wBAAwB,GACxB,oBAAoB,GACpB,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,4BAA4B,GAa5B,gBAAgB,GAIhB,SAAS,CAAC;AAEd,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMxE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,OAAO,iCAAiC,CAAC;IAC3D,SAAS,EAAE,mBAAmB,CAAC;IAC/B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,eAAO,MAAM,2CAA2C,EACtD,wCAAiD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,EAC5C,8BAAuC,CAAC;AAU1C,eAAO,MAAM,0CAA0C,EACrD,oCAA6C,CAAC;AAEhD,eAAO,MAAM,wCAAwC,EACnD,kCAA2C,CAAC;AAE9C,eAAO,MAAM,0CAA0C,EACrD,oCAA6C,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,+BAA+B,GAC/B,2BAA2B,GAC3B,cAAc,GACd,wBAAwB,GACxB,mBAAmB,GACnB,+BAA+B,GAC/B,mBAAmB,GACnB,yBAAyB,GACzB,wBAAwB,GACxB,oBAAoB,GACpB,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,4BAA4B,GAa5B,gBAAgB,GAIhB,SAAS,GAgBT,uBAAuB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMxE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,OAAO,iCAAiC,CAAC;IAC3D,SAAS,EAAE,mBAAmB,CAAC;IAC/B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,eAAO,MAAM,2CAA2C,EACtD,wCAAiD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/steps/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAC5C,8BAAuC,CAAC;AAE1C,+EAA+E;AAC/E,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,+EAA+E;AAC/E,8EAA8E;AAC9E,yCAAyC;AAEzC,MAAM,CAAC,MAAM,0CAA0C,GACrD,oCAA6C,CAAC;AAEhD,MAAM,CAAC,MAAM,wCAAwC,GACnD,kCAA2C,CAAC;AAE9C,MAAM,CAAC,MAAM,0CAA0C,GACrD,oCAA6C,CAAC;AA+DhD,MAAM,CAAC,MAAM,2CAA2C,GACtD,wCAAiD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/steps/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAC5C,8BAAuC,CAAC;AAE1C,+EAA+E;AAC/E,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,+EAA+E;AAC/E,8EAA8E;AAC9E,yCAAyC;AAEzC,MAAM,CAAC,MAAM,0CAA0C,GACrD,oCAA6C,CAAC;AAEhD,MAAM,CAAC,MAAM,wCAAwC,GACnD,kCAA2C,CAAC;AAE9C,MAAM,CAAC,MAAM,0CAA0C,GACrD,oCAA6C,CAAC;AA+EhD,MAAM,CAAC,MAAM,2CAA2C,GACtD,wCAAiD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileIntegrity.d.ts","sourceRoot":"","sources":["../../../src/remediate/utils/fileIntegrity.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAuBjD,wBAAsB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAShF;AAmCD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9E;AAGD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAwCtC;AAmED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,IAAI,CAON"}
1
+ {"version":3,"file":"fileIntegrity.d.ts","sourceRoot":"","sources":["../../../src/remediate/utils/fileIntegrity.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAuBjD,wBAAsB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAShF;AA0ED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9E;AAGD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2B7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAwCtC;AAkMD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,IAAI,CAON"}
@@ -1,7 +1,7 @@
1
1
  import { hashContent, checkFileIntegrityRecords, resolveWithinRoot, compareCodeUnits } from "audit-tools/shared";
2
- import { readFile, readdir, stat } from "node:fs/promises";
2
+ import { lstat, readFile, readdir, readlink, realpath, stat, } from "node:fs/promises";
3
3
  import { join, isAbsolute, relative, resolve, sep } from "node:path";
4
- import { existsSync, realpathSync, readFileSync, statSync, } from "node:fs";
4
+ import { existsSync, lstatSync, realpathSync, readFileSync, readlinkSync, readdirSync, statSync, } from "node:fs";
5
5
  /**
6
6
  * On a non-ENOENT read failure, surface a structured stderr line before
7
7
  * swallowing the error, so a genuine I/O problem leaves a trace rather than
@@ -39,42 +39,64 @@ function toDisplayRelativePath(root, absolutePath) {
39
39
  function sortDirents(a, b) {
40
40
  return compareCodeUnits(a.name, b.name);
41
41
  }
42
+ function pushDirectorySymlinkHash(parts, root, logicalPath, linkText) {
43
+ parts.push(toDisplayRelativePath(root, logicalPath), "\0", "symlink\0", hashContent(linkText), "\0");
44
+ }
42
45
  // Directory digest: build a canonical manifest string (a "directory" marker,
43
46
  // then NUL-separated relpath/file-hash pairs) from a depth-first, name-sorted
44
47
  // walk, then hash it once via the shared primitive. Per-file content hashes
45
48
  // also route through hashContent — no inline createHash remains.
46
- async function hashDirectory(root, absolutePath) {
49
+ async function hashDirectory(root, logicalPath, physicalPath) {
47
50
  const parts = ["directory\n"];
48
- const visit = async (dir) => {
49
- const entries = (await readdir(dir, { withFileTypes: true })).sort(sortDirents);
51
+ const visit = async (logicalDirectory, physicalDirectory) => {
52
+ const entries = (await readdir(physicalDirectory, { withFileTypes: true })).sort(sortDirents);
50
53
  for (const entry of entries) {
51
- const child = join(dir, entry.name);
54
+ const logicalChild = join(logicalDirectory, entry.name);
55
+ const physicalChild = join(physicalDirectory, entry.name);
56
+ if (entry.isSymbolicLink()) {
57
+ pushDirectorySymlinkHash(parts, root, logicalChild, await readlink(physicalChild));
58
+ continue;
59
+ }
52
60
  if (entry.isDirectory()) {
53
- await visit(child);
61
+ await visit(logicalChild, physicalChild);
54
62
  continue;
55
63
  }
56
64
  if (!entry.isFile())
57
65
  continue;
58
- const content = await readFile(child);
59
- parts.push(toDisplayRelativePath(root, child), "\0", hashContent(content), "\0");
66
+ const content = await readFile(physicalChild);
67
+ parts.push(toDisplayRelativePath(root, logicalChild), "\0", hashContent(content), "\0");
60
68
  }
61
69
  };
62
- await visit(absolutePath);
70
+ await visit(logicalPath, physicalPath);
63
71
  return hashContent(parts.join(""));
64
72
  }
65
73
  export function resolveAffectedPath(root, affectedPath) {
66
74
  return isAbsolute(affectedPath) ? affectedPath : join(root, affectedPath);
67
75
  }
68
76
  export async function hashAffectedPath(root, affectedPath) {
69
- const absolutePath = resolveAffectedPath(root, affectedPath);
77
+ const absoluteRoot = resolve(root);
78
+ const absolutePath = resolveAffectedPath(absoluteRoot, affectedPath);
70
79
  if (!existsSync(absolutePath))
71
80
  return undefined;
72
81
  try {
73
- const pathStat = await stat(absolutePath);
74
- if (pathStat.isDirectory())
75
- return await hashDirectory(root, absolutePath);
82
+ if (resolveWithinRoot(absoluteRoot, absolutePath) === null) {
83
+ throw new Error("affected path escapes the repository root");
84
+ }
85
+ const lexicalPathStat = await lstat(absolutePath);
86
+ if (lexicalPathStat.isSymbolicLink()) {
87
+ throw new Error("top-level symlinks cannot be trusted affected paths");
88
+ }
89
+ const physicalRoot = await realpath(absoluteRoot);
90
+ const physicalPath = await realpath(absolutePath);
91
+ if (resolveWithinRoot(physicalRoot, physicalPath) === null) {
92
+ throw new Error("resolved affected path escapes the repository root");
93
+ }
94
+ const pathStat = await stat(physicalPath);
95
+ if (pathStat.isDirectory()) {
96
+ return await hashDirectory(absoluteRoot, absolutePath, physicalPath);
97
+ }
76
98
  if (pathStat.isFile())
77
- return await hashFile(absolutePath);
99
+ return await hashFile(physicalPath);
78
100
  return undefined;
79
101
  }
80
102
  catch (err) {
@@ -128,9 +150,60 @@ export async function checkAffectedFileIntegrity(root, findings) {
128
150
  function planningBaselineError(affectedPath, reason, cause) {
129
151
  return new Error(`Cannot snapshot planning baseline for "${affectedPath}": ${reason}`, cause === undefined ? undefined : { cause });
130
152
  }
153
+ function hashPlanningDirectorySync(absoluteRoot, absolutePath, physicalRoot, physicalPath, affectedPath) {
154
+ const parts = ["directory\n"];
155
+ const visit = (logicalDirectory, physicalDirectory) => {
156
+ let entries;
157
+ try {
158
+ entries = readdirSync(physicalDirectory, { withFileTypes: true }).sort(sortDirents);
159
+ }
160
+ catch (error) {
161
+ throw planningBaselineError(affectedPath, "directory content is unreadable", error);
162
+ }
163
+ for (const entry of entries) {
164
+ const logicalChild = join(logicalDirectory, entry.name);
165
+ const unresolvedPhysicalChild = join(physicalDirectory, entry.name);
166
+ if (entry.isSymbolicLink()) {
167
+ try {
168
+ pushDirectorySymlinkHash(parts, absoluteRoot, logicalChild, readlinkSync(unresolvedPhysicalChild));
169
+ }
170
+ catch (error) {
171
+ throw planningBaselineError(affectedPath, `directory symlink ${JSON.stringify(toDisplayRelativePath(absoluteRoot, logicalChild))} is unreadable`, error);
172
+ }
173
+ continue;
174
+ }
175
+ if (!entry.isDirectory() && !entry.isFile())
176
+ continue;
177
+ let physicalChild;
178
+ try {
179
+ physicalChild = realpathSync(unresolvedPhysicalChild);
180
+ }
181
+ catch (error) {
182
+ throw planningBaselineError(affectedPath, `directory entry ${JSON.stringify(toDisplayRelativePath(absoluteRoot, logicalChild))} is unreadable`, error);
183
+ }
184
+ if (resolveWithinRoot(physicalRoot, physicalChild) === null) {
185
+ throw planningBaselineError(affectedPath, `resolved directory entry ${JSON.stringify(toDisplayRelativePath(absoluteRoot, logicalChild))} escapes the repository root`);
186
+ }
187
+ if (entry.isDirectory()) {
188
+ visit(logicalChild, physicalChild);
189
+ continue;
190
+ }
191
+ try {
192
+ const content = readFileSync(physicalChild);
193
+ parts.push(toDisplayRelativePath(absoluteRoot, logicalChild), "\0", hashContent(content), "\0");
194
+ }
195
+ catch (error) {
196
+ throw planningBaselineError(affectedPath, `directory file ${JSON.stringify(toDisplayRelativePath(absoluteRoot, logicalChild))} is unreadable`, error);
197
+ }
198
+ }
199
+ };
200
+ visit(absolutePath, physicalPath);
201
+ return hashContent(parts.join(""));
202
+ }
131
203
  /**
132
- * Strict plan-time baseline policy. Only readable regular files lexically and
133
- * physically contained by the repository root may become trusted baselines.
204
+ * Strict plan-time baseline policy. Only readable regular files and directories
205
+ * lexically and physically contained by the repository root may become trusted
206
+ * baselines.
134
207
  * A genuinely absent path is deterministic future work and
135
208
  * contributes no baseline; every other unsafe or unreadable path is refused
136
209
  * loudly.
@@ -145,31 +218,51 @@ function hashPlanningBaselineSync(root, affectedPath) {
145
218
  throw planningBaselineError(affectedPath, "path escapes the repository root");
146
219
  }
147
220
  let pathStat;
221
+ let lexicalPathStat;
148
222
  try {
149
- pathStat = statSync(absolutePath);
223
+ lexicalPathStat = lstatSync(absolutePath);
150
224
  }
151
225
  catch (error) {
152
226
  if (error.code === "ENOENT")
153
227
  return undefined;
154
228
  throw planningBaselineError(affectedPath, "path metadata is unreadable", error);
155
229
  }
156
- if (!pathStat.isFile()) {
157
- throw planningBaselineError(affectedPath, "existing path is not a regular file");
230
+ if (lexicalPathStat.isSymbolicLink()) {
231
+ throw planningBaselineError(affectedPath, "top-level symlinks cannot become trusted affected paths");
232
+ }
233
+ try {
234
+ pathStat = statSync(absolutePath);
235
+ }
236
+ catch (error) {
237
+ throw planningBaselineError(affectedPath, "path metadata is unreadable", error);
238
+ }
239
+ if (!pathStat.isFile() && !pathStat.isDirectory()) {
240
+ throw planningBaselineError(affectedPath, "existing path is not a regular file or directory");
241
+ }
242
+ let physicalRoot;
243
+ try {
244
+ physicalRoot = realpathSync(absoluteRoot);
245
+ }
246
+ catch (error) {
247
+ throw planningBaselineError(affectedPath, "repository root is unreadable", error);
248
+ }
249
+ let physicalPath;
250
+ try {
251
+ physicalPath = realpathSync(absolutePath);
252
+ }
253
+ catch (error) {
254
+ throw planningBaselineError(affectedPath, "path content is unreadable", error);
255
+ }
256
+ if (resolveWithinRoot(physicalRoot, physicalPath) === null) {
257
+ throw planningBaselineError(affectedPath, "resolved path escapes the repository root");
258
+ }
259
+ if (pathStat.isDirectory()) {
260
+ return hashPlanningDirectorySync(absoluteRoot, absolutePath, physicalRoot, physicalPath, affectedPath);
158
261
  }
159
262
  try {
160
- const physicalRoot = realpathSync(absoluteRoot);
161
- const physicalPath = realpathSync(absolutePath);
162
- if (resolveWithinRoot(physicalRoot, physicalPath) === null) {
163
- throw planningBaselineError(affectedPath, "resolved path escapes the repository root");
164
- }
165
263
  return hashContent(readFileSync(physicalPath));
166
264
  }
167
265
  catch (error) {
168
- if (error.code === "ENOENT")
169
- return undefined;
170
- if (error instanceof Error && error.message.includes(`"${affectedPath}"`)) {
171
- throw error;
172
- }
173
266
  throw planningBaselineError(affectedPath, "path content is unreadable", error);
174
267
  }
175
268
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileIntegrity.js","sourceRoot":"","sources":["../../../src/remediate/utils/fileIntegrity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileIntegrity.js","sourceRoot":"","sources":["../../../src/remediate/utils/fileIntegrity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/artifacts.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;;;;OASG;IACH,IAAI,EAAE;QACJ,0EAA0E;QAC1E,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sEAAsE;QACtE,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gEAAgE;QAChE,eAAe,EAAE,MAAM,CAAC;QACxB,4EAA4E;QAC5E,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAyWD,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,IAAI,SAAM,GACT,OAAO,CAAC,wBAAwB,CAAC,CAwJnC"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/artifacts.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;;;;OASG;IACH,IAAI,EAAE;QACJ,0EAA0E;QAC1E,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sEAAsE;QACtE,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gEAAgE;QAChE,eAAe,EAAE,MAAM,CAAC;QACxB,4EAA4E;QAC5E,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAyWD,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,IAAI,SAAM,GACT,OAAO,CAAC,wBAAwB,CAAC,CAkJnC"}
@@ -388,15 +388,9 @@ export async function validateArtifacts(artifactsDir, root = ".") {
388
388
  // so an incomplete pipeline never fabricates errors — only present artifacts
389
389
  // are gated.
390
390
  //
391
- // NOT the same function as the singular self-check: this plural sweep calls
392
- // `evaluateContractPipelineCrossGateOutcomes` (which reports which gates ran)
393
- // while `index.ts`'s `validate-artifact --name X` calls
394
- // `evaluateContractPipelineCrossGates` (issues only). They are two entry
395
- // points over one gate list, so they CAN diverge — what holds them together is
396
- // the drift test that runs both over the same payloads
397
- // (tests/remediate/validate-artifact-cross-gates.test.ts, "is additive"), not a
398
- // shared call. Collapsing the pair into one evaluator is tracked as backlog
399
- // work.
391
+ // The plural sweep and the singular `validate-artifact --name X` self-check
392
+ // both call `evaluateContractPipelineCrossGateOutcomes`, the single entry
393
+ // point that couples each gate's issues with its evaluated/skipped metadata.
400
394
  let gatesEvaluated = 0;
401
395
  let gatesSkipped = 0;
402
396
  if (cpPayloads.size > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/remediate/validation/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/remediate/validation/artifacts.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare function validateModuleDecomposition(value: unknown, path?: strin
16
16
  export declare function validateModuleContracts(value: unknown, path?: string): ValidationIssue[];
17
17
  export declare function validateSeamReconciliationReport(value: unknown, path?: string): ValidationIssue[];
18
18
  export declare function validateFinalizedModuleContracts(value: unknown, path?: string): ValidationIssue[];
19
- export { validateDesignSpecGates, validateGoalIdConsistency, validateImplementationDAGIntegrity, validatePairedObligations, validateEvidenceThreaded, validateDigestCoverage, validateWorkBlockSeamPreparation, validateReconciliationDerivation, validateContractCitationGrounding, validateDecompositionFileScope, validateFinalizedModuleSetPreserved, evaluateContractPipelineCrossGates, enumerateRepoTreePaths, isInsideGitWorkTree, type ContractCitationGroundingResult, type ContractPipelineCrossGateInputs, } from "./contractPipelineGates.js";
19
+ export { validateDesignSpecGates, validateGoalIdConsistency, validateImplementationDAGIntegrity, validatePairedObligations, validateEvidenceThreaded, validateDigestCoverage, validateWorkBlockSeamPreparation, validateReconciliationDerivation, validateContractCitationGrounding, validateDecompositionFileScope, validateFinalizedModuleSetPreserved, enumerateRepoTreePaths, isInsideGitWorkTree, type ContractCitationGroundingResult, type ContractPipelineCrossGateInputs, } from "./contractPipelineGates.js";
20
20
  export declare function validateConceptualDesignCritique(value: unknown, path?: string): ValidationIssue[];
21
21
  export declare function validateObligationLedger(value: unknown, path?: string): ValidationIssue[];
22
22
  export declare function validateTestValidatorPlan(value: unknown, path?: string): ValidationIssue[];
@@ -1 +1 @@
1
- {"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAezF,eAAO,MAAM,iCAAiC,EAC5C,kEAA2E,CAAC;AAU9E,eAAO,MAAM,+BAA+B,EAC1C,gEAAyE,CAAC;AAC5E,eAAO,MAAM,2BAA2B,EACtC,4DAAqE,CAAC;AACxE,eAAO,MAAM,qCAAqC,EAChD,sEAA+E,CAAC;AAClF,eAAO,MAAM,qCAAqC,EAChD,sEAA+E,CAAC;AAyElF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,IAAI,SAAc,GACjB,eAAe,EAAE,CAenB;AAID,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,IAAI,SAAmB,GACtB,eAAe,EAAE,CAoBnB;AAID,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,IAAI,SAAyB,GAC5B,eAAe,EAAE,CAiCnB;AAcD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,IAAI,SAAqB,GACxB,eAAe,EAAE,CAiBnB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAuCnB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAiBnB;AAOD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,gCAAgC,EAChC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,mCAAmC,EACnC,kCAAkC,EAClC,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,GACrC,MAAM,4BAA4B,CAAC;AAIpC,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAqBnB;AAID,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,IAAI,SAAsB,GACzB,eAAe,EAAE,CAqBnB;AAMD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,IAAI,SAAwB,GAC3B,eAAe,EAAE,CAgDnB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAqBnB;AAID,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,IAAI,SAAmB,GACtB,eAAe,EAAE,CAsBnB;AAoBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,IAAI,SAAiB,GACpB,eAAe,EAAE,CAqCnB;AAID,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,IAAI,SAAuB,GAC1B,eAAe,EAAE,CAsGnB;AA4CD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,SAAwB,GAC3B,eAAe,EAAE,CAwCnB;AAID,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,EACd,IAAI,SAA2B,GAC9B,eAAe,EAAE,CA6BnB;AAID;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAC/C,4BAA4B,EAC5B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAiBpD,CAAC"}
1
+ {"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAezF,eAAO,MAAM,iCAAiC,EAC5C,kEAA2E,CAAC;AAU9E,eAAO,MAAM,+BAA+B,EAC1C,gEAAyE,CAAC;AAC5E,eAAO,MAAM,2BAA2B,EACtC,4DAAqE,CAAC;AACxE,eAAO,MAAM,qCAAqC,EAChD,sEAA+E,CAAC;AAClF,eAAO,MAAM,qCAAqC,EAChD,sEAA+E,CAAC;AAyElF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,IAAI,SAAc,GACjB,eAAe,EAAE,CAenB;AAID,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,IAAI,SAAmB,GACtB,eAAe,EAAE,CAoBnB;AAID,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,IAAI,SAAyB,GAC5B,eAAe,EAAE,CAiCnB;AAcD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,IAAI,SAAqB,GACxB,eAAe,EAAE,CAiBnB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAuCnB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAiBnB;AAOD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,gCAAgC,EAChC,gCAAgC,EAChC,iCAAiC,EACjC,8BAA8B,EAC9B,mCAAmC,EACnC,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,GACrC,MAAM,4BAA4B,CAAC;AAIpC,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAqBnB;AAID,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,IAAI,SAAsB,GACzB,eAAe,EAAE,CAqBnB;AAMD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,IAAI,SAAwB,GAC3B,eAAe,EAAE,CAgDnB;AAID,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAA+B,GAClC,eAAe,EAAE,CAqBnB;AAID,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,IAAI,SAAmB,GACtB,eAAe,EAAE,CAsBnB;AAoBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,IAAI,SAAiB,GACpB,eAAe,EAAE,CAqCnB;AAID,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,IAAI,SAAuB,GAC1B,eAAe,EAAE,CAyGnB;AAID,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,SAAwB,GAC3B,eAAe,EAAE,CAwCnB;AAID,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,EACd,IAAI,SAA2B,GAC9B,eAAe,EAAE,CA6BnB;AAID;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAC/C,4BAA4B,EAC5B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAiBpD,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Follows the ValidationIssue[] pattern used by the rest of the remediator
4
4
  * validation layer.
5
5
  */
6
- import { isRecord, pushValidationIssue, } from "audit-tools/shared";
6
+ import { isRecord, pushValidationIssue, findFirstCycleWitness, } from "audit-tools/shared";
7
7
  import { CONTRACT_PIPELINE_GOAL_SPEC_VERSION, CONTRACT_PIPELINE_CONTEXT_BUNDLE_VERSION, CONTRACT_PIPELINE_CONCEPTUAL_DESIGN_CRITIQUE_VERSION, CONTRACT_PIPELINE_OBLIGATION_LEDGER_VERSION, CONTRACT_PIPELINE_CONTRACT_ASSESSMENT_REPORT_VERSION, CONTRACT_PIPELINE_COUNTEREXAMPLE_VERSION, CONTRACT_PIPELINE_JUDGE_REPORT_VERSION, CONTRACT_PIPELINE_IMPLEMENTATION_DAG_VERSION, CONTRACT_PIPELINE_VERIFICATION_REPORT_VERSION, CONTRACT_PIPELINE_TEST_VALIDATOR_PLAN_VERSION, } from "audit-tools/shared";
8
8
  // Version constant for cyclic_seam_resolution artifact.
9
9
  export const CP_CYCLIC_SEAM_RESOLUTION_VERSION = "remediate-code-contract-pipeline/cyclic-seam-resolution/v1alpha1";
@@ -207,7 +207,7 @@ export function validateFinalizedModuleContracts(value, path = "finalized_module
207
207
  // ── DesignSpec structural gates + cross-artifact gates ────────────────────────
208
208
  // Extracted to contractPipelineGates.ts (MNT-86b18f1b). Re-exported here for
209
209
  // backward-compatible imports — callers do not need to update their import paths.
210
- export { validateDesignSpecGates, validateGoalIdConsistency, validateImplementationDAGIntegrity, validatePairedObligations, validateEvidenceThreaded, validateDigestCoverage, validateWorkBlockSeamPreparation, validateReconciliationDerivation, validateContractCitationGrounding, validateDecompositionFileScope, validateFinalizedModuleSetPreserved, evaluateContractPipelineCrossGates, enumerateRepoTreePaths, isInsideGitWorkTree, } from "./contractPipelineGates.js";
210
+ export { validateDesignSpecGates, validateGoalIdConsistency, validateImplementationDAGIntegrity, validatePairedObligations, validateEvidenceThreaded, validateDigestCoverage, validateWorkBlockSeamPreparation, validateReconciliationDerivation, validateContractCitationGrounding, validateDecompositionFileScope, validateFinalizedModuleSetPreserved, enumerateRepoTreePaths, isInsideGitWorkTree, } from "./contractPipelineGates.js";
211
211
  // ── ConceptualDesignCritique ──────────────────────────────────────────────────
212
212
  export function validateConceptualDesignCritique(value, path = "conceptual_design_critique") {
213
213
  const issues = [];
@@ -477,16 +477,19 @@ export function validateImplementationDAG(value, path = "implementation_dag") {
477
477
  // `depends_on` must be rejected too (referential integrity alone let it pass).
478
478
  // Traverse declared nodes only (a dangling dep is ignored, as promotion drops it).
479
479
  if (Array.isArray(v.nodes)) {
480
- const adjacency = new Map();
480
+ const dagNodes = [];
481
481
  for (const node of v.nodes) {
482
482
  if (!isRecord(node) || typeof node.id !== "string")
483
483
  continue;
484
484
  const deps = Array.isArray(node.depends_on)
485
485
  ? node.depends_on.filter((d) => typeof d === "string" && d !== node.id && declaredNodeIds.has(d))
486
486
  : [];
487
- adjacency.set(node.id, deps);
487
+ dagNodes.push({ id: node.id, depends_on: deps });
488
488
  }
489
- const cycle = findFirstDependencyCycle(adjacency);
489
+ // Self-edges are stripped above and self-loops stay OFF in the core: a node
490
+ // that lists itself is a redundant self-reference here, not a cycle that
491
+ // stalls the phase scheduler.
492
+ const cycle = findFirstCycleWitness(dagNodes);
490
493
  if (cycle) {
491
494
  pushValidationIssue(issues, `${path}.nodes`, `${path} has a dependency cycle among nodes: ${cycle.join(" -> ")}. The implementation DAG must be acyclic.`);
492
495
  }
@@ -494,47 +497,6 @@ export function validateImplementationDAG(value, path = "implementation_dag") {
494
497
  requireString(v.created_at, `${path}.created_at`, issues);
495
498
  return issues;
496
499
  }
497
- /**
498
- * Return the node ids forming the first `depends_on` cycle (as `a -> b -> a`), or
499
- * null when the graph is acyclic. Standard white/gray/black DFS; iteration follows
500
- * node insertion order so the reported cycle is deterministic.
501
- */
502
- function findFirstDependencyCycle(adjacency) {
503
- const WHITE = 0;
504
- const GRAY = 1;
505
- const BLACK = 2;
506
- const color = new Map();
507
- for (const id of adjacency.keys())
508
- color.set(id, WHITE);
509
- const stack = [];
510
- const visit = (id) => {
511
- color.set(id, GRAY);
512
- stack.push(id);
513
- for (const next of adjacency.get(id) ?? []) {
514
- if (!adjacency.has(next))
515
- continue;
516
- if (color.get(next) === GRAY) {
517
- return [...stack.slice(stack.indexOf(next)), next];
518
- }
519
- if (color.get(next) === WHITE) {
520
- const found = visit(next);
521
- if (found)
522
- return found;
523
- }
524
- }
525
- stack.pop();
526
- color.set(id, BLACK);
527
- return null;
528
- };
529
- for (const id of adjacency.keys()) {
530
- if (color.get(id) === WHITE) {
531
- const found = visit(id);
532
- if (found)
533
- return found;
534
- }
535
- }
536
- return null;
537
- }
538
500
  // ── VerificationReport ────────────────────────────────────────────────────────
539
501
  export function validateVerificationReport(value, path = "verification_report") {
540
502
  const issues = [];