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":"designReviewSnapshot.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/designReviewSnapshot.ts"],"names":[],"mappings":"AAuBA,OAAO,EAOL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAErC,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,qCAAsC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,QAAA,MAAM,uBAAuB,EAAG,4CAAqD,CAAC;AAEtF,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,OAAO,uBAAuB,CAAC;IAC/C,IAAI,EAAE,gBAAgB,CAAC;IACvB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;CACrD;AAED,qFAAqF;AACrF,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAC9C,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAC/C,CAAC;AAQF,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAER;AAED,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAWtC;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,CAAC,CAOrC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,OAAO,EAAE,EACxB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,iEAAiE;IACjE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,mBAAmB,CASrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAOR;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B"}
1
+ {"version":3,"file":"designReviewSnapshot.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/designReviewSnapshot.ts"],"names":[],"mappings":"AAuBA,OAAO,EAOL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAErC,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,qCAAsC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,QAAA,MAAM,uBAAuB,EAAG,4CAAqD,CAAC;AAEtF,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,OAAO,uBAAuB,CAAC;IAC/C,IAAI,EAAE,gBAAgB,CAAC;IACvB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;CACrD;AAED,qFAAqF;AACrF,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAC9C,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAC/C,CAAC;AAQF,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAER;AAED,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAWtC;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,CAAC,CAOrC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,OAAO,EAAE,EACxB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,iEAAiE;IACjE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,mBAAmB,CASrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,mBAAmB,GACzB,MAAM,CAOR;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B"}
@@ -22,7 +22,7 @@
22
22
  import { mkdir } from "node:fs/promises";
23
23
  import { join } from "node:path";
24
24
  import { diffProjections, readOptionalJsonFile, discardOnSchemaVersionMismatch, renderDiffReReviewSection, stableStringifyProjection, writeJsonFile, } from "audit-tools/shared";
25
- import { DESIGN_REVIEW_INPUTS, projectDesignReviewInput, } from "./designReviewProjection.js";
25
+ import { DESIGN_REVIEW_INPUTS, projectDesignReviewInput, projectDesignReviewInputs, } from "./designReviewProjection.js";
26
26
  /** The two verdict-bearing design-review passes (each snapshots independently). */
27
27
  export const DESIGN_REVIEW_PASSES = ["contract", "conceptual"];
28
28
  const SNAPSHOT_SCHEMA_VERSION = "audit-code/design-review-snapshot/v1alpha1";
@@ -57,10 +57,7 @@ export async function loadDesignReviewSnapshots(artifactsDir) {
57
57
  * projection of every structural input plus the pass's own findings (verdict).
58
58
  */
59
59
  export async function captureDesignReviewSnapshot(artifactsDir, pass, priorFindings, bundle, reviewedAt) {
60
- const reviewed_inputs = {};
61
- for (const input of DESIGN_REVIEW_INPUTS) {
62
- reviewed_inputs[input] = projectDesignReviewInput(input, bundle);
63
- }
60
+ const reviewed_inputs = projectDesignReviewInputs(bundle);
64
61
  const snapshot = {
65
62
  schema_version: SNAPSHOT_SCHEMA_VERSION,
66
63
  pass,
@@ -1 +1 @@
1
- {"version":3,"file":"designReviewSnapshot.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/designReviewSnapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"designReviewSnapshot.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/designReviewSnapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeFindings.d.ts","sourceRoot":"","sources":["../../../src/audit/reporting/mergeFindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AA0C7E,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EAAE,EACtB,aAAa,CAAC,EAAE,uBAAuB,EACvC,uBAAuB,CAAC,EAAE,uBAAuB,EAAE,EACnD,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,eAAe,CAAC,EAAE,eAAe,EACjC,iBAAiB,CAAC,EAAE,yBAAyB,GAC5C,OAAO,EAAE,CA8EX"}
1
+ {"version":3,"file":"mergeFindings.d.ts","sourceRoot":"","sources":["../../../src/audit/reporting/mergeFindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AA0C7E,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EAAE,EACtB,aAAa,CAAC,EAAE,uBAAuB,EACvC,uBAAuB,CAAC,EAAE,uBAAuB,EAAE,EACnD,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,sBAAsB,CAAC,EAAE,sBAAsB,EAC/C,eAAe,CAAC,EAAE,eAAe,EACjC,iBAAiB,CAAC,EAAE,yBAAyB,GAC5C,OAAO,EAAE,CA6EX"}
@@ -76,14 +76,13 @@ export function mergeFindings(results, runtimeReport, externalAnalyzerResults, d
76
76
  // Audit's DRAW of the shared cross-lens core: read-only report policy — mutate
77
77
  // survivors in place, grounding-precedence merge, sort files, and a SOFT category
78
78
  // gate (merge cross-category at a higher title threshold). No exact-identity
79
- // short-circuit / no break; the mergeMap is unused (a human reads the report).
79
+ // short-circuit; the mergeMap is unused (a human reads the report).
80
80
  return crossLensDedupe(dedupedSameLens, {
81
81
  categoryGate: "soft",
82
82
  exactIdentityShortCircuit: false,
83
83
  survivorMutation: "mutate",
84
84
  mergeGrounding: true,
85
85
  sortAffectedFiles: true,
86
- breakOnAbsorbedSurvivor: false,
87
86
  // Packet-scoped ids collide across units by construction here; global ids
88
87
  // are minted downstream at assignStableFindingIds.
89
88
  idDiscipline: "local",
@@ -1 +1 @@
1
- {"version":3,"file":"mergeFindings.js","sourceRoot":"","sources":["../../../src/audit/reporting/mergeFindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mergeFindings.js","sourceRoot":"","sources":["../../../src/audit/reporting/mergeFindings.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,9 @@
8
8
  * owned by another module. For the purposes of this detector, a module M
9
9
  * is said to need module N when M lists N in its `needs` array.
10
10
  *
11
- * Detection algorithm: Kahn's iterative topological sort over the directed
12
- * graph of (modulemodules it needs). Any node that remains after the
13
- * sort is part of a cycle. The resulting connected components are each
14
- * reported as one detected cycle.
11
+ * Detection is the shared directed-cycle core's exact strongly-connected-
12
+ * component membership (`audit-tools/shared``findCyclicComponents`). Each
13
+ * cyclic component is reported as one detected cycle.
15
14
  */
16
15
  /** A module node in the seam-obligation graph. */
17
16
  export interface SeamObligationNode {
@@ -20,9 +19,12 @@ export interface SeamObligationNode {
20
19
  /** IDs of modules this module declares an interface obligation toward. */
21
20
  needs: string[];
22
21
  }
23
- /** One detected cycle (N ≥ 2 nodes). */
22
+ /**
23
+ * One detected cycle (N ≥ 1 nodes — a module that needs ITSELF is a 1-member
24
+ * cycle; every other cycle has 2 or more members).
25
+ */
24
26
  export interface DetectedCycle {
25
- /** Ordered list of module IDs that form the cycle (not necessarily in cycle order). */
27
+ /** Module IDs that form the cycle, in input order (not in cycle order). */
26
28
  members: string[];
27
29
  }
28
30
  /** A proposed mediator module that breaks a cycle. */
@@ -58,10 +60,17 @@ export interface AuthoredCycleBreak {
58
60
  /**
59
61
  * Detect cyclic seam obligations in a module graph.
60
62
  *
61
- * Uses Kahn's topological sort: build an in-degree map and a dependency
62
- * dependent adjacency list, then drain the zero-in-degree queue. Any node
63
- * remaining in the graph after the drain is part of a cycle. Weakly
64
- * connected components among remaining nodes are grouped into cycles.
63
+ * Membership is EXACT: each reported cycle is one strongly connected component
64
+ * of the (module modules it needs) graph. Two properties follow, and both
65
+ * differ from the Kahn drain this replaced:
66
+ *
67
+ * - a module DOWNSTREAM of a cycle (it needs a member, no member needs it) is
68
+ * not a member and is not reported — the drain reported every node it could
69
+ * not drain, tails included;
70
+ * - two cycles CHAINED by an edge between them are two cycles, not one — the
71
+ * drain's weakly-connected grouping fused them.
72
+ *
73
+ * A module that needs ITSELF is reported as a 1-member cycle.
65
74
  *
66
75
  * Returns an empty array when no cycle is found.
67
76
  */
@@ -80,6 +89,12 @@ export declare function detectCyclicSeamObligations(nodes: SeamObligationNode[])
80
89
  *
81
90
  * If the resulting graph still contains a cycle, the proposed break is
82
91
  * rejected.
92
+ *
93
+ * The mediator appears EXACTLY ONCE in the patched graph. When it is already a
94
+ * node of `allNodes` — which is the live feed from
95
+ * {@link validateAuthoredCycleBreak}, where the mediator is a real obligation —
96
+ * its own entry carries the proposed needs instead of a second entry with the
97
+ * same id being appended.
83
98
  */
84
99
  export declare function validateCycleBreak(originalCycle: DetectedCycle, allNodes: SeamObligationNode[], proposedMediator: ProposedMediator): CycleBreakValidation;
85
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cyclicSeamResolution.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/cyclicSeamResolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC1C,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,kBAAkB,EAAE,GAC1B,aAAa,EAAE,CAiFjB;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,gBAAgB,EAAE,gBAAgB,GACjC,oBAAoB,CAoCtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,kBAAkB,EAAE,EAClC,QAAQ,EAAE,kBAAkB,GAC3B,oBAAoB,CAiHtB"}
1
+ {"version":3,"file":"cyclicSeamResolution.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/cyclicSeamResolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC1C,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,kBAAkB,EAAE,GAC1B,aAAa,EAAE,CAMjB;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,gBAAgB,EAAE,gBAAgB,GACjC,oBAAoB,CA6CtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,kBAAkB,EAAE,EAClC,QAAQ,EAAE,kBAAkB,GAC3B,oBAAoB,CAiHtB"}
@@ -8,99 +8,32 @@
8
8
  * owned by another module. For the purposes of this detector, a module M
9
9
  * is said to need module N when M lists N in its `needs` array.
10
10
  *
11
- * Detection algorithm: Kahn's iterative topological sort over the directed
12
- * graph of (modulemodules it needs). Any node that remains after the
13
- * sort is part of a cycle. The resulting connected components are each
14
- * reported as one detected cycle.
11
+ * Detection is the shared directed-cycle core's exact strongly-connected-
12
+ * component membership (`audit-tools/shared``findCyclicComponents`). Each
13
+ * cyclic component is reported as one detected cycle.
15
14
  */
15
+ import { findCyclicComponents } from "audit-tools/shared";
16
16
  // ── Cycle detection ───────────────────────────────────────────────────────────
17
17
  /**
18
18
  * Detect cyclic seam obligations in a module graph.
19
19
  *
20
- * Uses Kahn's topological sort: build an in-degree map and a dependency
21
- * dependent adjacency list, then drain the zero-in-degree queue. Any node
22
- * remaining in the graph after the drain is part of a cycle. Weakly
23
- * connected components among remaining nodes are grouped into cycles.
20
+ * Membership is EXACT: each reported cycle is one strongly connected component
21
+ * of the (module modules it needs) graph. Two properties follow, and both
22
+ * differ from the Kahn drain this replaced:
23
+ *
24
+ * - a module DOWNSTREAM of a cycle (it needs a member, no member needs it) is
25
+ * not a member and is not reported — the drain reported every node it could
26
+ * not drain, tails included;
27
+ * - two cycles CHAINED by an edge between them are two cycles, not one — the
28
+ * drain's weakly-connected grouping fused them.
29
+ *
30
+ * A module that needs ITSELF is reported as a 1-member cycle.
24
31
  *
25
32
  * Returns an empty array when no cycle is found.
26
33
  */
27
34
  export function detectCyclicSeamObligations(nodes) {
28
- if (nodes.length === 0)
29
- return [];
30
- const ids = new Set(nodes.map((n) => n.id));
31
- // adjacency: dep → [dependents]
32
- const adjacency = new Map();
33
- const inDegree = new Map();
34
- for (const id of ids) {
35
- adjacency.set(id, []);
36
- inDegree.set(id, 0);
37
- }
38
- for (const node of nodes) {
39
- for (const dep of node.needs) {
40
- if (!ids.has(dep))
41
- continue; // ignore external refs
42
- // edge: dep → node (dep must come before node)
43
- adjacency.get(dep).push(node.id);
44
- inDegree.set(node.id, (inDegree.get(node.id) ?? 0) + 1);
45
- }
46
- }
47
- // Kahn's drain
48
- const queue = [];
49
- for (const [id, deg] of inDegree.entries()) {
50
- if (deg === 0)
51
- queue.push(id);
52
- }
53
- let visited = 0;
54
- while (queue.length > 0) {
55
- const node = queue.shift();
56
- visited++;
57
- for (const next of adjacency.get(node) ?? []) {
58
- const newDeg = (inDegree.get(next) ?? 0) - 1;
59
- inDegree.set(next, newDeg);
60
- if (newDeg === 0)
61
- queue.push(next);
62
- }
63
- }
64
- if (visited === ids.size)
65
- return []; // no cycles
66
- // Collect cycle members (nodes with in-degree > 0 after drain).
67
- const cycleNodes = [...ids].filter((id) => (inDegree.get(id) ?? 0) > 0);
68
- // Group by weakly connected component using union-find on the original
69
- // needs edges (restricted to cycle nodes).
70
- const cycleSet = new Set(cycleNodes);
71
- const parent = new Map(cycleNodes.map((id) => [id, id]));
72
- function find(x) {
73
- while (parent.get(x) !== x) {
74
- const p = parent.get(x);
75
- parent.set(x, parent.get(p) ?? p);
76
- x = parent.get(x);
77
- }
78
- return x;
79
- }
80
- function union(a, b) {
81
- const ra = find(a);
82
- const rb = find(b);
83
- if (ra !== rb)
84
- parent.set(ra, rb);
85
- }
86
- for (const node of nodes) {
87
- if (!cycleSet.has(node.id))
88
- continue;
89
- for (const dep of node.needs) {
90
- if (cycleSet.has(dep)) {
91
- union(node.id, dep);
92
- }
93
- }
94
- }
95
- // Group by root.
96
- const components = new Map();
97
- for (const id of cycleNodes) {
98
- const root = find(id);
99
- if (!components.has(root))
100
- components.set(root, []);
101
- components.get(root).push(id);
102
- }
103
- return [...components.values()].map((members) => ({ members }));
35
+ const components = findCyclicComponents(nodes.map((node) => ({ id: node.id, depends_on: node.needs })), { includeSelfLoops: true });
36
+ return components.map((members) => ({ members }));
104
37
  }
105
38
  // ── Cycle-break re-check ──────────────────────────────────────────────────────
106
39
  /**
@@ -117,6 +50,12 @@ export function detectCyclicSeamObligations(nodes) {
117
50
  *
118
51
  * If the resulting graph still contains a cycle, the proposed break is
119
52
  * rejected.
53
+ *
54
+ * The mediator appears EXACTLY ONCE in the patched graph. When it is already a
55
+ * node of `allNodes` — which is the live feed from
56
+ * {@link validateAuthoredCycleBreak}, where the mediator is a real obligation —
57
+ * its own entry carries the proposed needs instead of a second entry with the
58
+ * same id being appended.
120
59
  */
121
60
  export function validateCycleBreak(originalCycle, allNodes, proposedMediator) {
122
61
  const cycleSet = new Set(originalCycle.members);
@@ -124,10 +63,16 @@ export function validateCycleBreak(originalCycle, allNodes, proposedMediator) {
124
63
  // - For each cycle member: replace needs-edges to other cycle members with
125
64
  // a needs-edge to the mediator.
126
65
  // - For non-cycle members: unchanged.
127
- // - Add the mediator.
66
+ // - Add the mediator, unless the graph already carries a node with its id.
128
67
  const patched = [];
68
+ const mediatorAlreadyPresent = allNodes.some((node) => node.id === proposedMediator.id);
129
69
  for (const node of allNodes) {
130
- if (cycleSet.has(node.id)) {
70
+ if (node.id === proposedMediator.id) {
71
+ // The mediator's own entry — carry the proposed needs here rather than
72
+ // appending a second node with the same id below.
73
+ patched.push({ id: node.id, needs: [...proposedMediator.needs] });
74
+ }
75
+ else if (cycleSet.has(node.id)) {
131
76
  const newNeeds = node.needs.map((dep) => cycleSet.has(dep) ? proposedMediator.id : dep);
132
77
  // Deduplicate mediator references.
133
78
  patched.push({ id: node.id, needs: [...new Set(newNeeds)] });
@@ -136,8 +81,10 @@ export function validateCycleBreak(originalCycle, allNodes, proposedMediator) {
136
81
  patched.push(node);
137
82
  }
138
83
  }
139
- // Add the mediator itself.
140
- patched.push({ id: proposedMediator.id, needs: proposedMediator.needs });
84
+ // Add the mediator itself, unless the live graph already carries it.
85
+ if (!mediatorAlreadyPresent) {
86
+ patched.push({ id: proposedMediator.id, needs: proposedMediator.needs });
87
+ }
141
88
  const remaining = detectCyclicSeamObligations(patched);
142
89
  if (remaining.length > 0) {
143
90
  const affectedIds = remaining.flatMap((c) => c.members).join(", ");
@@ -1 +1 @@
1
- {"version":3,"file":"cyclicSeamResolution.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/cyclicSeamResolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cyclicSeamResolution.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/cyclicSeamResolution.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,16 @@
2
2
  * Single tool-owned authority for the contract-pipeline's id relationships
3
3
  * (S4 of the contract-authoring determinism design).
4
4
  *
5
- * Today it owns the one relationship that caused the recurring "Unknown
6
- * finding_id" merge trap: the `CP-BLOCK-` block-id <-> bare node-id mapping.
5
+ * Its block-id relationship caused the recurring "Unknown
6
+ * finding_id" merge trap: the one-way bare-node-id to `CP-BLOCK-` block-id mint.
7
7
  * Before this module the prefix was constructed by inline string templates at
8
8
  * several sites (the DAG->plan promotion built it for both node block ids AND
9
- * dependency edges; the dispatch alias map built it again), and the reverse was
10
- * only ever recovered by the tolerant alias remap. With the prefix minted and
11
- * reversed in exactly ONE place each, a node id minted by the planner
12
- * round-trips dispatch -> worker result -> merge deterministically, so the
13
- * tolerant alias remap is defence-in-depth rather than load-bearing.
9
+ * dependency edges; the dispatch alias map built it again). With the node id and
10
+ * prefix minted in exactly ONE place each, dispatch and merge consume the same
11
+ * persisted identity without a reverse-mapping API.
14
12
  *
15
- * The mapping is a bijection on bare node ids: `fromBlockId(toBlockId(n)) === n`.
13
+ * The block-id API is intentionally one-way: callers consume the persisted id
14
+ * minted by `toBlockId` rather than reverse-mapping it.
16
15
  * It is a pure module — no IO, no model identity — so it is testable in
17
16
  * isolation and feeds the hash/staleness DAG cleanly.
18
17
  */
@@ -27,9 +26,9 @@ export declare const CP_BLOCK_PREFIX = "CP-BLOCK-";
27
26
  *
28
27
  * This closes a merge-trap: when `node.id` was missing, the finding id used this
29
28
  * fallback (`CP-001`) but the block id was built from the raw `node.id`
30
- * (`CP-BLOCK-undefined`), so `fromBlockId` could not recover the finding id and
31
- * the worker result landed in `unresolved`. Routing every node-id site through
32
- * `ensureNodeId` makes `fromBlockId(toBlockId(ensureNodeId(...)))` round-trip.
29
+ * (`CP-BLOCK-undefined`), so the worker result landed in `unresolved`. Routing
30
+ * every node-id site through `ensureNodeId` keeps the finding and block mints
31
+ * aligned.
33
32
  */
34
33
  export declare function ensureNodeId(rawId: string | undefined, index: number): string;
35
34
  /**
@@ -37,15 +36,6 @@ export declare function ensureNodeId(rawId: string | undefined, index: number):
37
36
  * `CP-BLOCK-` prefix is applied — every producer of a block id goes through here.
38
37
  */
39
38
  export declare function toBlockId(nodeId: string): string;
40
- /** True when `value` is a `CP-BLOCK-` block id minted by `toBlockId`. */
41
- export declare function isBlockId(value: string): boolean;
42
- /**
43
- * Recover the bare node id from a block id — the inverse of `toBlockId`. Returns
44
- * `null` when `value` is not a `CP-BLOCK-` block id (so callers can fall back to
45
- * the tolerant alias remap for non-block aliases such as obligation ids, rather
46
- * than silently producing a wrong node id).
47
- */
48
- export declare function fromBlockId(value: string): string | null;
49
39
  /** The one prefix every derived obligation id carries. */
50
40
  export declare const OBLIGATION_PREFIX = "OBL-";
51
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"idRegistry.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/idRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gFAAgF;AAChF,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAExD;AAED,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvE"}
1
+ {"version":3,"file":"idRegistry.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/idRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,gFAAgF;AAChF,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvE"}
@@ -2,17 +2,16 @@
2
2
  * Single tool-owned authority for the contract-pipeline's id relationships
3
3
  * (S4 of the contract-authoring determinism design).
4
4
  *
5
- * Today it owns the one relationship that caused the recurring "Unknown
6
- * finding_id" merge trap: the `CP-BLOCK-` block-id <-> bare node-id mapping.
5
+ * Its block-id relationship caused the recurring "Unknown
6
+ * finding_id" merge trap: the one-way bare-node-id to `CP-BLOCK-` block-id mint.
7
7
  * Before this module the prefix was constructed by inline string templates at
8
8
  * several sites (the DAG->plan promotion built it for both node block ids AND
9
- * dependency edges; the dispatch alias map built it again), and the reverse was
10
- * only ever recovered by the tolerant alias remap. With the prefix minted and
11
- * reversed in exactly ONE place each, a node id minted by the planner
12
- * round-trips dispatch -> worker result -> merge deterministically, so the
13
- * tolerant alias remap is defence-in-depth rather than load-bearing.
9
+ * dependency edges; the dispatch alias map built it again). With the node id and
10
+ * prefix minted in exactly ONE place each, dispatch and merge consume the same
11
+ * persisted identity without a reverse-mapping API.
14
12
  *
15
- * The mapping is a bijection on bare node ids: `fromBlockId(toBlockId(n)) === n`.
13
+ * The block-id API is intentionally one-way: callers consume the persisted id
14
+ * minted by `toBlockId` rather than reverse-mapping it.
16
15
  * It is a pure module — no IO, no model identity — so it is testable in
17
16
  * isolation and feeds the hash/staleness DAG cleanly.
18
17
  */
@@ -27,9 +26,9 @@ export const CP_BLOCK_PREFIX = "CP-BLOCK-";
27
26
  *
28
27
  * This closes a merge-trap: when `node.id` was missing, the finding id used this
29
28
  * fallback (`CP-001`) but the block id was built from the raw `node.id`
30
- * (`CP-BLOCK-undefined`), so `fromBlockId` could not recover the finding id and
31
- * the worker result landed in `unresolved`. Routing every node-id site through
32
- * `ensureNodeId` makes `fromBlockId(toBlockId(ensureNodeId(...)))` round-trip.
29
+ * (`CP-BLOCK-undefined`), so the worker result landed in `unresolved`. Routing
30
+ * every node-id site through `ensureNodeId` keeps the finding and block mints
31
+ * aligned.
33
32
  */
34
33
  export function ensureNodeId(rawId, index) {
35
34
  return rawId ?? `CP-${String(index + 1).padStart(3, "0")}`;
@@ -41,19 +40,6 @@ export function ensureNodeId(rawId, index) {
41
40
  export function toBlockId(nodeId) {
42
41
  return `${CP_BLOCK_PREFIX}${nodeId}`;
43
42
  }
44
- /** True when `value` is a `CP-BLOCK-` block id minted by `toBlockId`. */
45
- export function isBlockId(value) {
46
- return value.startsWith(CP_BLOCK_PREFIX);
47
- }
48
- /**
49
- * Recover the bare node id from a block id — the inverse of `toBlockId`. Returns
50
- * `null` when `value` is not a `CP-BLOCK-` block id (so callers can fall back to
51
- * the tolerant alias remap for non-block aliases such as obligation ids, rather
52
- * than silently producing a wrong node id).
53
- */
54
- export function fromBlockId(value) {
55
- return isBlockId(value) ? value.slice(CP_BLOCK_PREFIX.length) : null;
56
- }
57
43
  /** The one prefix every derived obligation id carries. */
58
44
  export const OBLIGATION_PREFIX = "OBL-";
59
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"idRegistry.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/idRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAyB,EACzB,KAAa;IAEb,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,MAAc;IAC7D,OAAO,GAAG,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"idRegistry.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/idRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAyB,EACzB,KAAa;IAEb,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,MAAc;IAC7D,OAAO,GAAG,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * One vocabulary for contract-pipeline obligation kinds. Definition order
3
+ * preserves the observable TESTABLE_OBLIGATION_KINDS iteration order; the
4
+ * explicit priority rank preserves the load-bearing lens/severity order.
5
+ */
6
+ declare const OBLIGATION_KIND_DEFINITIONS: readonly [{
7
+ readonly kind: "invariant";
8
+ readonly testable: true;
9
+ readonly priority: 3;
10
+ }, {
11
+ readonly kind: "behavioral";
12
+ readonly testable: true;
13
+ readonly priority: 2;
14
+ }, {
15
+ readonly kind: "structural";
16
+ readonly testable: false;
17
+ readonly priority: 1;
18
+ }, {
19
+ readonly kind: "test";
20
+ readonly testable: false;
21
+ readonly priority: 0;
22
+ }];
23
+ export type ObligationKind = (typeof OBLIGATION_KIND_DEFINITIONS)[number]["kind"];
24
+ export declare const OBLIGATION_KIND_PRIORITY: readonly ObligationKind[];
25
+ export declare const TESTABLE_OBLIGATION_KINDS: Set<string>;
26
+ export {};
27
+ //# sourceMappingURL=obligationKinds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obligationKinds.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/obligationKinds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;EAKvB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAIpC,CAAC;AAE3B,eAAO,MAAM,yBAAyB,aAErC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * One vocabulary for contract-pipeline obligation kinds. Definition order
3
+ * preserves the observable TESTABLE_OBLIGATION_KINDS iteration order; the
4
+ * explicit priority rank preserves the load-bearing lens/severity order.
5
+ */
6
+ const OBLIGATION_KIND_DEFINITIONS = [
7
+ { kind: "invariant", testable: true, priority: 3 },
8
+ { kind: "behavioral", testable: true, priority: 2 },
9
+ { kind: "structural", testable: false, priority: 1 },
10
+ { kind: "test", testable: false, priority: 0 },
11
+ ];
12
+ export const OBLIGATION_KIND_PRIORITY = [
13
+ ...OBLIGATION_KIND_DEFINITIONS,
14
+ ]
15
+ .sort((left, right) => left.priority - right.priority)
16
+ .map(({ kind }) => kind);
17
+ export const TESTABLE_OBLIGATION_KINDS = new Set(OBLIGATION_KIND_DEFINITIONS.filter(({ testable }) => testable).map(({ kind }) => kind));
18
+ //# sourceMappingURL=obligationKinds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obligationKinds.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/obligationKinds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,2BAA2B,GAAG;IAClC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;IAClD,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;IACpD,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;CACtC,CAAC;AAIX,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,GAAG,2BAA2B;CAC/B;KACE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;KACrD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAC9C,2BAA2B,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CACvF,CAAC"}
@@ -8,9 +8,8 @@ export type CrossLensDedupResult = CrossLensDedupeResult;
8
8
  * auto-apply block-machine policy — a HARD category gate (never collapse two
9
9
  * different-category fixes, OBL-C003-DEDUP), the exact-identity short-circuit
10
10
  * (drift-plan R2), CLONE survivors so the caller's Finding objects are never
11
- * mutated (INV-remediate-state-05), no grounding merge / no file sort, break on an
12
- * absorbed i-slot, and a structured merge log. The returned `mergeMap` feeds
13
- * `fixupBlocksAfterDedup`.
11
+ * mutated (INV-remediate-state-05), no grounding merge / no file sort, and a
12
+ * structured merge log. The returned `mergeMap` feeds `fixupBlocksAfterDedup`.
14
13
  */
15
14
  export declare function deduplicateCrossLensFindings(findings: Finding[]): CrossLensDedupResult;
16
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"crossLensDedup.d.ts","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,OAAO,EAAE,GAClB,oBAAoB,CAyBtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,gBAAgB,EAAE,CAepB"}
1
+ {"version":3,"file":"crossLensDedup.d.ts","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,OAAO,EAAE,GAClB,oBAAoB,CAwBtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,gBAAgB,EAAE,CAepB"}
@@ -7,9 +7,8 @@ export { wordJaccard };
7
7
  * auto-apply block-machine policy — a HARD category gate (never collapse two
8
8
  * different-category fixes, OBL-C003-DEDUP), the exact-identity short-circuit
9
9
  * (drift-plan R2), CLONE survivors so the caller's Finding objects are never
10
- * mutated (INV-remediate-state-05), no grounding merge / no file sort, break on an
11
- * absorbed i-slot, and a structured merge log. The returned `mergeMap` feeds
12
- * `fixupBlocksAfterDedup`.
10
+ * mutated (INV-remediate-state-05), no grounding merge / no file sort, and a
11
+ * structured merge log. The returned `mergeMap` feeds `fixupBlocksAfterDedup`.
13
12
  */
14
13
  export function deduplicateCrossLensFindings(findings) {
15
14
  return crossLensDedupe(findings, {
@@ -18,7 +17,6 @@ export function deduplicateCrossLensFindings(findings) {
18
17
  survivorMutation: "clone",
19
18
  mergeGrounding: false,
20
19
  sortAffectedFiles: false,
21
- breakOnAbsorbedSurvivor: true,
22
20
  // Input ids come from audit-findings.json (globally unique), so id-keyed
23
21
  // provenance is well-defined: duplicates refuse, dispositionById is emitted.
24
22
  idDiscipline: "global",
@@ -1 +1 @@
1
- {"version":3,"file":"crossLensDedup.js","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIlE,4EAA4E;AAC5E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;AAIvB;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAmB;IAEnB,OAAO,eAAe,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,MAAM;QACpB,yBAAyB,EAAE,IAAI;QAC/B,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,IAAI;QAC7B,yEAAyE;QACzE,6EAA6E;QAC7E,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;gBACb,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC7B,CAAC,GAAG,IAAI,CACV,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA0B,EAC1B,QAA6B;IAE7B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAClC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"crossLensDedup.js","sourceRoot":"","sources":["../../../src/remediate/dedup/crossLensDedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIlE,4EAA4E;AAC5E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;AAIvB;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAmB;IAEnB,OAAO,eAAe,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,MAAM;QACpB,yBAAyB,EAAE,IAAI;QAC/B,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,yEAAyE;QACzE,6EAA6E;QAC7E,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;gBACb,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,QAAQ,CAAC,IAAI;gBAC5B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC7B,CAAC,GAAG,IAAI,CACV,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA0B,EAC1B,QAA6B;IAE7B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAClC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC"}