audit-tools 0.30.13 → 0.30.15

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 (68) hide show
  1. package/dist/audit/cli/mergeAndIngestCommand.d.ts +4 -1
  2. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  3. package/dist/audit/cli/mergeAndIngestCommand.js +27 -3
  4. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  5. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  6. package/dist/audit/cli/nextStepHelpers.js +1 -2
  7. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  8. package/dist/audit/cli/workerRunCommand.d.ts.map +1 -1
  9. package/dist/audit/cli/workerRunCommand.js +23 -1
  10. package/dist/audit/cli/workerRunCommand.js.map +1 -1
  11. package/dist/audit/contracts/workerSchemas.d.ts +4 -4
  12. package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
  13. package/dist/audit/quota/index.d.ts +12 -12
  14. package/dist/audit/types.d.ts +2 -2
  15. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  16. package/dist/audit/validation/auditResults.js +5 -0
  17. package/dist/audit/validation/auditResults.js.map +1 -1
  18. package/dist/remediate/contractPipeline/artifactStore.d.ts +5 -12
  19. package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -1
  20. package/dist/remediate/contractPipeline/artifactStore.js +6 -8
  21. package/dist/remediate/contractPipeline/artifactStore.js.map +1 -1
  22. package/dist/remediate/steps/contractPipeline.d.ts +7 -0
  23. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  24. package/dist/remediate/steps/contractPipeline.js +185 -2
  25. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  26. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  27. package/dist/remediate/steps/dispatch.js +31 -0
  28. package/dist/remediate/steps/dispatch.js.map +1 -1
  29. package/dist/remediate/validation/contractPipeline.d.ts +1 -1
  30. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  31. package/dist/remediate/validation/contractPipeline.js +1 -1
  32. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  33. package/dist/remediate/validation/contractPipelineGates.d.ts +44 -16
  34. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  35. package/dist/remediate/validation/contractPipelineGates.js +164 -2
  36. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  37. package/dist/shared/friction/captureFrictionEvent.d.ts +12 -8
  38. package/dist/shared/friction/captureFrictionEvent.d.ts.map +1 -1
  39. package/dist/shared/friction/captureFrictionEvent.js +21 -21
  40. package/dist/shared/friction/captureFrictionEvent.js.map +1 -1
  41. package/dist/shared/friction/frictionRecord.d.ts +76 -0
  42. package/dist/shared/friction/frictionRecord.d.ts.map +1 -0
  43. package/dist/shared/friction/frictionRecord.js +45 -0
  44. package/dist/shared/friction/frictionRecord.js.map +1 -0
  45. package/dist/shared/friction/stepBoundaryCapture.d.ts +5 -1
  46. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  47. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  48. package/dist/shared/friction/triage.d.ts +3 -43
  49. package/dist/shared/friction/triage.d.ts.map +1 -1
  50. package/dist/shared/friction/triage.js +35 -34
  51. package/dist/shared/friction/triage.js.map +1 -1
  52. package/dist/shared/index.d.ts +1 -0
  53. package/dist/shared/index.d.ts.map +1 -1
  54. package/dist/shared/index.js +4 -0
  55. package/dist/shared/index.js.map +1 -1
  56. package/dist/shared/io/gitignoreArtifacts.d.ts +11 -4
  57. package/dist/shared/io/gitignoreArtifacts.d.ts.map +1 -1
  58. package/dist/shared/io/gitignoreArtifacts.js +12 -5
  59. package/dist/shared/io/gitignoreArtifacts.js.map +1 -1
  60. package/dist/shared/quota/capacity.d.ts +4 -4
  61. package/dist/shared/quota/quotaSource.d.ts +2 -2
  62. package/dist/{audit → shared}/validation/designFindingGrounding.d.ts +5 -1
  63. package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -0
  64. package/dist/{audit → shared}/validation/designFindingGrounding.js +1 -1
  65. package/dist/shared/validation/designFindingGrounding.js.map +1 -0
  66. package/package.json +1 -1
  67. package/dist/audit/validation/designFindingGrounding.d.ts.map +0 -1
  68. package/dist/audit/validation/designFindingGrounding.js.map +0 -1
@@ -1,19 +1,4 @@
1
- /**
2
- * Structural gates for the DesignSpec contract-pipeline artifact.
3
- *
4
- * Extracted from contractPipeline.ts to keep gate logic (structural checks,
5
- * obligation cross-checks, Kahn's topological sort) separate from the
6
- * per-artifact field validators. MNT-86b18f1b.
7
- *
8
- * Re-exported from contractPipeline.ts for backward-compatible imports.
9
- *
10
- * Also contains:
11
- * validateGoalIdConsistency — ARC-86b18f1b: goal_id equality across all
12
- * contract-pipeline artifacts that carry one.
13
- * validateImplementationDAGIntegrity — ARC-86b18f1b-2: referential integrity
14
- * and bidirectional coverage for the implementation DAG.
15
- */
16
- import { type ValidationIssue, type DispatchModelTier } from "audit-tools/shared";
1
+ import { type ValidationIssue, type DispatchModelTier, type Finding } from "audit-tools/shared";
17
2
  import { type PairingVerdict } from "../contractPipeline/changeClassification.js";
18
3
  /**
19
4
  * Deterministic structural gates run before the adversarial critic phase.
@@ -173,4 +158,47 @@ export declare function deriveNodeModelTier(signals: NodeComplexitySignals): Dis
173
158
  * derive its relative tier. Tolerant of partial/unknown node shapes.
174
159
  */
175
160
  export declare function deriveNodeModelTierFromNode(nodePayload: unknown): DispatchModelTier;
161
+ /** A finding-shaped citation the gate grounds. Reuses the shared Finding shape. */
162
+ export interface ContractCitationGroundingResult {
163
+ /** True when the repo tree could be enumerated (≥1 path). */
164
+ treeReadable: boolean;
165
+ /** ValidationIssue[] — errors block promotion / re-emit the producing phase. */
166
+ issues: ValidationIssue[];
167
+ }
168
+ /**
169
+ * Enumerate the working-tree paths at `repoRoot` via `git ls-files`, normalized
170
+ * through the shared `normalizeRepoPath`. Returns an empty set when git is
171
+ * unavailable or the tree is empty (caller treats empty as the fail-closed
172
+ * unreadable-tree signal). OS-agnostic: `shell: false`, forward-slash output.
173
+ */
174
+ export declare function enumerateRepoTreePaths(repoRoot: string): Set<string>;
175
+ /**
176
+ * Whether `repoRoot` is inside a VALID git working tree, via
177
+ * `git rev-parse --is-inside-work-tree`. This distinguishes the two reasons
178
+ * `enumerateRepoTreePaths` can return empty: (a) git missing / not a repo →
179
+ * `false` (genuinely unreadable — fail-closed); (b) a valid git work tree that
180
+ * simply has zero tracked files yet (a fresh/never-committed repo) → `true`
181
+ * (the citations may be sound; degrade to pass-with-warning, never hard-block).
182
+ * OS-agnostic: `shell: false`. NEVER throws — any failure is treated as not-a-tree.
183
+ */
184
+ export declare function isInsideGitWorkTree(repoRoot: string): boolean;
185
+ /**
186
+ * M-B3 — source-grounded citation gate (fail-closed only on an unreadable tree).
187
+ *
188
+ * For each finding:
189
+ * 1. If it cites at least one real `affected_files` path → grounded (delegates
190
+ * to the shared `groundDesignFinding` against the repo-tree path set — no
191
+ * re-implementation).
192
+ * 2. Otherwise, partition the citation tokens (affected_files paths that did
193
+ * not resolve + symbol tokens from the description) into path-shaped vs
194
+ * symbol-shaped. A path-shaped token grounds against the known-path set; a
195
+ * symbol-shaped token grounds against the symbol corpus. If ANY token
196
+ * grounds, the finding passes. If NONE grounds — including a finding that
197
+ * cites only non-existent symbols — it is rejected (error).
198
+ *
199
+ * `findings` is the array of finding-shaped citations to ground (each carries
200
+ * `affected_files` and an optional `description`). `repoRoot` is the working-tree
201
+ * root enumerated by `git ls-files`.
202
+ */
203
+ export declare function validateContractCitationGrounding(findings: readonly Finding[], repoRoot: string): ContractCitationGroundingResult;
176
204
  //# sourceMappingURL=contractPipelineGates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contractPipelineGates.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipelineGates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,6CAA6C,CAAC;AAIrD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,OAAO,EACnB,gBAAgB,CAAC,EAAE,OAAO,GACzB,eAAe,EAAE,CA6KnB;AAID;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,EAAE,CAsBnB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,OAAO,EACnB,uBAAuB,EAAE,OAAO,EAChC,qBAAqB,EAAE,OAAO,EAC9B,kBAAkB,EAAE,OAAO,GAC1B,eAAe,EAAE,CAkInB;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,yBAAyB,CACvC,uBAAuB,EAAE,OAAO,EAChC,wBAAwB,EAAE,OAAO,GAChC,eAAe,EAAE,CA+FnB;AAED,uFAAuF;AACvF,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,uBAAuB,EAAE,OAAO,EAChC,kBAAkB,EAAE,OAAO,EAC3B,UAAU,EAAE,OAAO,GAClB,eAAe,EAAE,CAmFnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,yBAAyB,EAAE,OAAO,EAClC,uBAAuB,EAAE,OAAO,GAC/B,eAAe,EAAE,CAgDnB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAC9C,+BAA+B,EAAE,OAAO,EACxC,+BAA+B,EAAE,OAAO,GACvC,eAAe,EAAE,CA2EnB;AA6CD,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mFAAmF;IACnF,cAAc,EAAE,OAAO,CAAC;CACzB;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAWrF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAkBnF"}
1
+ {"version":3,"file":"contractPipelineGates.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipelineGates.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EAKb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,6CAA6C,CAAC;AAIrD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,OAAO,EACnB,gBAAgB,CAAC,EAAE,OAAO,GACzB,eAAe,EAAE,CA6KnB;AAID;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,EAAE,CAsBnB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,OAAO,EACnB,uBAAuB,EAAE,OAAO,EAChC,qBAAqB,EAAE,OAAO,EAC9B,kBAAkB,EAAE,OAAO,GAC1B,eAAe,EAAE,CAkInB;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,yBAAyB,CACvC,uBAAuB,EAAE,OAAO,EAChC,wBAAwB,EAAE,OAAO,GAChC,eAAe,EAAE,CA+FnB;AAED,uFAAuF;AACvF,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,uBAAuB,EAAE,OAAO,EAChC,kBAAkB,EAAE,OAAO,EAC3B,UAAU,EAAE,OAAO,GAClB,eAAe,EAAE,CAmFnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,yBAAyB,EAAE,OAAO,EAClC,uBAAuB,EAAE,OAAO,GAC/B,eAAe,EAAE,CAgDnB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAC9C,+BAA+B,EAAE,OAAO,EACxC,+BAA+B,EAAE,OAAO,GACvC,eAAe,EAAE,CA2EnB;AA6CD,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mFAAmF;IACnF,cAAc,EAAE,OAAO,CAAC;CACzB;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAWrF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAkBnF;AA2BD,mFAAmF;AACnF,MAAM,WAAW,+BAA+B;IAC9C,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAqBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAiB7D;AAgCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,MAAM,GACf,+BAA+B,CA2EjC"}
@@ -13,8 +13,9 @@
13
13
  * validateImplementationDAGIntegrity — ARC-86b18f1b-2: referential integrity
14
14
  * and bidirectional coverage for the implementation DAG.
15
15
  */
16
- import { isRecord, pushValidationIssue, } from "audit-tools/shared";
17
- import { evaluatePairing, obligationScopeAnchors, readObligationChangeClassification, } from "../contractPipeline/changeClassification.js";
16
+ import { spawnSync } from "node:child_process";
17
+ import { isRecord, pushValidationIssue, groundDesignFinding, normalizeRepoPath, } from "audit-tools/shared";
18
+ import { evaluatePairing, obligationScopeAnchors, readObligationChangeClassification, extractSymbolTokens, } from "../contractPipeline/changeClassification.js";
18
19
  // ── DesignSpec structural gates ───────────────────────────────────────────────
19
20
  /**
20
21
  * Deterministic structural gates run before the adversarial critic phase.
@@ -768,6 +769,167 @@ export function deriveNodeModelTierFromNode(nodePayload) {
768
769
  highStakesLens: HIGH_STAKES_LENSES.has(lens),
769
770
  });
770
771
  }
772
+ /**
773
+ * Enumerate the working-tree paths at `repoRoot` via `git ls-files`, normalized
774
+ * through the shared `normalizeRepoPath`. Returns an empty set when git is
775
+ * unavailable or the tree is empty (caller treats empty as the fail-closed
776
+ * unreadable-tree signal). OS-agnostic: `shell: false`, forward-slash output.
777
+ */
778
+ export function enumerateRepoTreePaths(repoRoot) {
779
+ const known = new Set();
780
+ let result;
781
+ try {
782
+ result = spawnSync("git", ["ls-files"], {
783
+ cwd: repoRoot,
784
+ encoding: "utf8",
785
+ shell: false,
786
+ maxBuffer: 64 * 1024 * 1024,
787
+ });
788
+ }
789
+ catch {
790
+ return known;
791
+ }
792
+ if (!result || result.status !== 0 || typeof result.stdout !== "string") {
793
+ return known;
794
+ }
795
+ for (const line of result.stdout.split("\n")) {
796
+ const path = normalizeRepoPath(line);
797
+ if (path.length > 0)
798
+ known.add(path);
799
+ }
800
+ return known;
801
+ }
802
+ /**
803
+ * Whether `repoRoot` is inside a VALID git working tree, via
804
+ * `git rev-parse --is-inside-work-tree`. This distinguishes the two reasons
805
+ * `enumerateRepoTreePaths` can return empty: (a) git missing / not a repo →
806
+ * `false` (genuinely unreadable — fail-closed); (b) a valid git work tree that
807
+ * simply has zero tracked files yet (a fresh/never-committed repo) → `true`
808
+ * (the citations may be sound; degrade to pass-with-warning, never hard-block).
809
+ * OS-agnostic: `shell: false`. NEVER throws — any failure is treated as not-a-tree.
810
+ */
811
+ export function isInsideGitWorkTree(repoRoot) {
812
+ let result;
813
+ try {
814
+ result = spawnSync("git", ["rev-parse", "--is-inside-work-tree"], {
815
+ cwd: repoRoot,
816
+ encoding: "utf8",
817
+ shell: false,
818
+ });
819
+ }
820
+ catch {
821
+ return false;
822
+ }
823
+ return (!!result &&
824
+ result.status === 0 &&
825
+ typeof result.stdout === "string" &&
826
+ result.stdout.trim() === "true");
827
+ }
828
+ /**
829
+ * Build the corpus of pre-existing symbol tokens from the known repo paths, so a
830
+ * symbol-shaped citation can be grounded against "a token that actually names a
831
+ * real file or a segment of one". Each path is split on path/extension separators
832
+ * (`/`, `.`, `_`, `-`) into segments (`src/auth.ts` → {src, auth, ts}), so a bare
833
+ * symbol citation like `auth` grounds against the real file `src/auth.ts`. Single-
834
+ * letter / very short segments (<3) are dropped as noise.
835
+ */
836
+ function buildKnownSymbolCorpus(knownPaths) {
837
+ const corpus = new Set();
838
+ for (const path of knownPaths) {
839
+ for (const segment of path.split(/[/._\-]+/)) {
840
+ const token = segment.toLowerCase();
841
+ if (token.length >= 3)
842
+ corpus.add(token);
843
+ }
844
+ }
845
+ return corpus;
846
+ }
847
+ /**
848
+ * A token is path-shaped when it contains a path separator or a file-extension
849
+ * dot (`src/a.ts`, `a/b`, `foo.ts`); otherwise it is symbol-shaped (`writeRecord`,
850
+ * `flush_buffer`). The partition decides which grounding set a citation token is
851
+ * checked against (CE: a symbol-only citation to a non-existent symbol is
852
+ * rejected, not excused as "cites no component").
853
+ */
854
+ function isPathShaped(token) {
855
+ return token.includes("/") || /\.[a-z0-9]+$/i.test(token);
856
+ }
857
+ /**
858
+ * M-B3 — source-grounded citation gate (fail-closed only on an unreadable tree).
859
+ *
860
+ * For each finding:
861
+ * 1. If it cites at least one real `affected_files` path → grounded (delegates
862
+ * to the shared `groundDesignFinding` against the repo-tree path set — no
863
+ * re-implementation).
864
+ * 2. Otherwise, partition the citation tokens (affected_files paths that did
865
+ * not resolve + symbol tokens from the description) into path-shaped vs
866
+ * symbol-shaped. A path-shaped token grounds against the known-path set; a
867
+ * symbol-shaped token grounds against the symbol corpus. If ANY token
868
+ * grounds, the finding passes. If NONE grounds — including a finding that
869
+ * cites only non-existent symbols — it is rejected (error).
870
+ *
871
+ * `findings` is the array of finding-shaped citations to ground (each carries
872
+ * `affected_files` and an optional `description`). `repoRoot` is the working-tree
873
+ * root enumerated by `git ls-files`.
874
+ */
875
+ export function validateContractCitationGrounding(findings, repoRoot) {
876
+ const issues = [];
877
+ const knownPaths = enumerateRepoTreePaths(repoRoot);
878
+ // An empty path set has two distinct causes — distinguish them so a legitimately
879
+ // new/empty git repo is not hard-blocked (the grounding edge):
880
+ // - git missing / not a repo → genuinely unreadable → ERROR (fail-closed).
881
+ // - valid work tree, 0 tracked → nothing to ground against, but the citations
882
+ // may be sound → WARNING (pass-with-warning; callers block only on errors).
883
+ if (knownPaths.size === 0) {
884
+ if (isInsideGitWorkTree(repoRoot)) {
885
+ pushValidationIssue(issues, "contract_citation_grounding.repo_tree", `The working tree at "${repoRoot}" is a valid git repo but has no tracked files yet (git ls-files is empty) — citation grounding cannot run, so it is SKIPPED with a warning rather than blocking promotion. Citations were not verified against the tree.`, "warning");
886
+ // treeReadable: the tree IS readable — it is just empty. No error issue, so
887
+ // the gate degrades to pass-with-warning (callers filter on severity:error).
888
+ return { treeReadable: true, issues };
889
+ }
890
+ pushValidationIssue(issues, "contract_citation_grounding.repo_tree", `Could not enumerate the working tree at "${repoRoot}" (git unavailable or not a git work tree) — citation grounding cannot run, so the gate fails closed. Verify repo_root points at a git working tree.`);
891
+ return { treeReadable: false, issues };
892
+ }
893
+ const knownSymbols = buildKnownSymbolCorpus(knownPaths);
894
+ findings.forEach((finding, index) => {
895
+ // 1. Real path citation → grounded by the shared design-finding primitive.
896
+ const pathVerdict = groundDesignFinding(finding, knownPaths);
897
+ if (pathVerdict.status === "grounded")
898
+ return;
899
+ // 2. No real path. Gather every citation token and partition it.
900
+ const tokens = new Set();
901
+ for (const file of finding.affected_files ?? []) {
902
+ const normalized = normalizeRepoPath(file?.path ?? "");
903
+ if (normalized.length > 0)
904
+ tokens.add(normalized);
905
+ }
906
+ // The canonical Finding shape carries no `description`; its prose lives in
907
+ // `summary` (+ title). Pull candidate symbol tokens from both so a symbol-only
908
+ // citation is grounded against the real-symbol corpus.
909
+ for (const token of extractSymbolTokens(`${finding.summary ?? ""} ${finding.title ?? ""}`)) {
910
+ tokens.add(token);
911
+ }
912
+ let grounded = false;
913
+ for (const token of tokens) {
914
+ if (isPathShaped(token)) {
915
+ if (knownPaths.has(token)) {
916
+ grounded = true;
917
+ break;
918
+ }
919
+ }
920
+ else if (knownSymbols.has(token)) {
921
+ grounded = true;
922
+ break;
923
+ }
924
+ }
925
+ if (!grounded) {
926
+ const findingId = typeof finding.id === "string" && finding.id.length > 0 ? finding.id : `#${index}`;
927
+ const cited = [...tokens].slice(0, 5).join(", ") || "(no path or symbol citation)";
928
+ pushValidationIssue(issues, `contract_citation_grounding.findings[${findingId}]`, `Finding "${findingId}" cites no real component: no cited path exists in the working tree and no cited symbol (${cited}) names anything in the repository. A finding must point at a real path or a real symbol.`);
929
+ }
930
+ });
931
+ return { treeReadable: true, issues };
932
+ }
771
933
  // ── (removed) Downstream-only repair propagation — S2, dropped ─────────────────
772
934
  // The dead `repairDownstreamPhases` / `CONTRACT_PHASE_SEQUENCE` / `ARTIFACT_NAME_TO_PHASE`
773
935
  // were deleted (contract-authoring determinism design, S2). A linear phase-slice
@@ -1 +1 @@
1
- {"version":3,"file":"contractPipelineGates.js","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipelineGates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractPipelineGates.js","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipelineGates.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { type FrictionCaptureArtifact, type FrictionItem } from '../io/frictionCapture.js';
1
+ import { type FrictionCaptureArtifact, type FrictionItem } from "../io/frictionCapture.js";
2
+ export type { CapturedFrictionItem } from "./frictionRecord.js";
2
3
  /**
3
4
  * The single mechanical-friction sink (FC-005). Mechanical seams (O3
4
5
  * validation/coercion/repair warnings; O2 recovery / ingest-merge-retry) call
@@ -19,13 +20,18 @@ import { type FrictionCaptureArtifact, type FrictionItem } from '../io/frictionC
19
20
  * - IDEMPOTENT / PER-EVENT DE-DUP: an event whose `id` already appears in the
20
21
  * run record is dropped, so re-entrant passes (re-dispatch, retry) never
21
22
  * double-record the same logical event (INV-O1-6, FAIL-O1-5).
23
+ * - LOCKED + MERGE-PRESERVING (CE-004 / CE-010): the append rides the SAME
24
+ * `withFileLock(frictionLockPath)` as the host triage path and reads-then-
25
+ * merges the current record, so a late mechanical emit never clobbers host
26
+ * `dispositions[]` / `open_observations[]` already written to the record.
22
27
  * - OS/PATH-AGNOSTIC: the record path comes only from the substrate's
23
28
  * `frictionCapturePath` (node:path joins off `artifactsDir` + `sanitizeRunId`);
24
29
  * no platform-baked literal, never coupled to any repo doc (INV-O1-7).
25
30
  *
26
31
  * This is the substrate-wrapping sink only: live triage dispositions over the
27
32
  * accreted events are owned by O1's triage module, the locked append ordering by
28
- * O2 — this layer just appends one de-duped event, best-effort.
33
+ * the shared `frictionRecord` substrate — this layer just appends one de-duped
34
+ * event, best-effort.
29
35
  */
30
36
  /** A single mechanical friction event recorded through the sink. */
31
37
  export interface FrictionEvent extends FrictionItem {
@@ -35,16 +41,14 @@ export interface FrictionEvent extends FrictionItem {
35
41
  */
36
42
  id: string;
37
43
  }
38
- /** A friction record item carrying its mechanical-event de-dup id. */
39
- export interface CapturedFrictionItem extends FrictionItem {
40
- id: string;
41
- }
42
44
  /**
43
45
  * Append one mechanical friction event to the per-run record, best-effort.
44
46
  *
45
47
  * Never throws: any failure (missing/locked dir, malformed existing record,
46
48
  * write contention) is swallowed so the calling obligation is never broken
47
- * (INV-O1-5, FAIL-O1-3). De-duped on `event.id` (INV-O1-6, FAIL-O1-5).
49
+ * (INV-O1-5, FAIL-O1-3). De-duped on `event.id` (INV-O1-6, FAIL-O1-5). Rides the
50
+ * shared `withFileLock` and MERGES the existing record, so host
51
+ * `dispositions[]` / `open_observations[]` survive a late emit (CE-004 / CE-010).
48
52
  */
49
- export declare function captureFrictionEvent(artifactsDir: string, runId: string, event: FrictionEvent, tool?: FrictionCaptureArtifact['tool']): Promise<void>;
53
+ export declare function captureFrictionEvent(artifactsDir: string, runId: string, event: FrictionEvent, tool?: FrictionCaptureArtifact["tool"]): Promise<void>;
50
54
  //# sourceMappingURL=captureFrictionEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captureFrictionEvent.d.ts","sourceRoot":"","sources":["../../../src/shared/friction/captureFrictionEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAIlB,MAAM,0BAA0B,CAAC;AAGlC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,oEAAoE;AACpE,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,EAAE,EAAE,MAAM,CAAC;CACZ;AAOD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,uBAAuB,CAAC,MAAM,CAAoB,GACvD,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"captureFrictionEvent.d.ts","sourceRoot":"","sources":["../../../src/shared/friction/captureFrictionEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM3F,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,oEAAoE;AACpE,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,uBAAuB,CAAC,MAAM,CAAoB,GACvD,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -1,31 +1,31 @@
1
- import { FRICTION_CAPTURE_SCHEMA_VERSION, frictionCapturePath, sanitizeRunId, } from '../io/frictionCapture.js';
2
- import { readOptionalJsonFile, writeJsonFile } from '../io/json.js';
1
+ import { appendFrictionUnderLock, } from "./frictionRecord.js";
3
2
  /**
4
3
  * Append one mechanical friction event to the per-run record, best-effort.
5
4
  *
6
5
  * Never throws: any failure (missing/locked dir, malformed existing record,
7
6
  * write contention) is swallowed so the calling obligation is never broken
8
- * (INV-O1-5, FAIL-O1-3). De-duped on `event.id` (INV-O1-6, FAIL-O1-5).
7
+ * (INV-O1-5, FAIL-O1-3). De-duped on `event.id` (INV-O1-6, FAIL-O1-5). Rides the
8
+ * shared `withFileLock` and MERGES the existing record, so host
9
+ * `dispositions[]` / `open_observations[]` survive a late emit (CE-004 / CE-010).
9
10
  */
10
- export async function captureFrictionEvent(artifactsDir, runId, event, tool = 'remediate-code') {
11
+ export async function captureFrictionEvent(artifactsDir, runId, event, tool = "remediate-code") {
11
12
  try {
12
- const path = frictionCapturePath(artifactsDir, sanitizeRunId(runId));
13
- const existing = await readOptionalJsonFile(path);
14
- const frictions = Array.isArray(existing?.frictions)
15
- ? existing.frictions
16
- : [];
17
- // Per-event de-dup: drop an event whose id is already recorded.
18
- if (frictions.some((item) => item.id === event.id)) {
19
- return;
20
- }
21
- const artifact = {
22
- schema_version: FRICTION_CAPTURE_SCHEMA_VERSION,
23
- tool: existing?.tool ?? tool,
24
- run_id: runId,
25
- captured_at: new Date().toISOString(),
26
- frictions: [...frictions, { ...event }],
27
- };
28
- await writeJsonFile(path, artifact);
13
+ await appendFrictionUnderLock(artifactsDir, runId, (record) => {
14
+ const frictions = Array.isArray(record.frictions)
15
+ ? record.frictions
16
+ : [];
17
+ // Per-event de-dup: drop an event whose id is already recorded. The
18
+ // record (incl. host dispositions / open observations) is returned
19
+ // unchanged so the locked merge preserves every existing field.
20
+ if (frictions.some((item) => item.id === event.id)) {
21
+ return record;
22
+ }
23
+ return {
24
+ ...record,
25
+ tool: record.tool ?? tool,
26
+ frictions: [...frictions, { ...event }],
27
+ };
28
+ }, tool);
29
29
  }
30
30
  catch {
31
31
  // Best-effort: swallow every failure so capture never breaks the obligation.
@@ -1 +1 @@
1
- {"version":3,"file":"captureFrictionEvent.js","sourceRoot":"","sources":["../../../src/shared/friction/captureFrictionEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,+BAA+B,EAC/B,mBAAmB,EACnB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkDpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,KAAa,EACb,KAAoB,EACpB,OAAwC,gBAAgB;IAExD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAA2B,IAAI,CAAC,CAAC;QAE5E,MAAM,SAAS,GAA2B,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC1E,CAAC,CAAC,QAAS,CAAC,SAAS;YACrB,CAAC,CAAC,EAAE,CAAC;QAEP,gEAAgE;QAChE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAA6B;YACzC,cAAc,EAAE,+BAA+B;YAC/C,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI;YAC5B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;SACxC,CAAC;QAEF,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"captureFrictionEvent.js","sourceRoot":"","sources":["../../../src/shared/friction/captureFrictionEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AA+C7B;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,KAAa,EACb,KAAoB,EACpB,OAAwC,gBAAgB;IAExD,IAAI,CAAC;QACH,MAAM,uBAAuB,CAC3B,YAAY,EACZ,KAAK,EACL,CAAC,MAAM,EAAE,EAAE;YACT,MAAM,SAAS,GAA2B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;gBACvE,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,EAAE,CAAC;YACP,oEAAoE;YACpE,mEAAmE;YACnE,gEAAgE;YAChE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;gBACzB,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;aACxC,CAAC;QACJ,CAAC,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;IAC/E,CAAC;AACH,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { type FrictionCaptureArtifact, type FrictionItem } from "../io/frictionCapture.js";
2
+ /**
3
+ * The shared per-run friction RECORD substrate (CE-004 / CE-010, the O1
4
+ * FRICTION-FOUNDATION layer). Single-sourced for BOTH orchestrators so the
5
+ * record shape, the lock path, and the locked read-merge-write append cannot
6
+ * drift between the two halves of the pipeline.
7
+ *
8
+ * `captureFrictionEvent` (the mechanical sink) and `recordFrictionDisposition` /
9
+ * `decideFrictionTriage` (the host triage path) BOTH route their record
10
+ * mutations through `appendFrictionUnderLock`, which rides ONE
11
+ * `withFileLock(frictionLockPath)` and reads-then-MERGEs the existing record —
12
+ * so a late mechanical emit never clobbers host `dispositions[]` /
13
+ * `open_observations[]` already written, and a host disposition never drops a
14
+ * concurrently-appended mechanical `frictions[]` entry (CE-010).
15
+ *
16
+ * Every path derives from `node:path` joins off the supplied artifacts dir
17
+ * (via `frictionCapturePath` / `sanitizeRunId`) — no platform-baked literal, so
18
+ * the substrate is OS/path-agnostic (INV-O1-7).
19
+ */
20
+ /** A single captured mechanical friction event: a `FrictionItem` plus a stable id. */
21
+ export interface CapturedFrictionItem extends FrictionItem {
22
+ /** Stable distinct id; re-recording an event with this id is a no-op de-dup. */
23
+ id: string;
24
+ }
25
+ /** The host disposition vocabulary over a captured subject. */
26
+ export type FrictionDisposition = "keep" | "discard" | "annotate";
27
+ /** One host disposition recorded against a captured subject (event/reflection). */
28
+ export interface FrictionDispositionRecord {
29
+ /** The captured subject's stable key (event id or reflection key). */
30
+ target_id: string;
31
+ /** The host's verdict on the subject. */
32
+ disposition: FrictionDisposition;
33
+ /** Optional free-form annotation (carried by the `annotate` disposition). */
34
+ annotation?: string;
35
+ }
36
+ /** One mandatory end-of-run open observation along a named friction dimension. */
37
+ export interface FrictionOpenObservation {
38
+ /** The named friction dimension (or a free-form string). */
39
+ dimension: string;
40
+ /** The host's observation note. */
41
+ note: string;
42
+ }
43
+ /**
44
+ * The full per-run friction record on disk — the base capture artifact, the
45
+ * accreted mechanical events, plus the host-owned triage overlay
46
+ * (`dispositions[]` / `open_observations[]`). The base `frictions` field is
47
+ * narrowed to `CapturedFrictionItem[]` (each carries an `id`).
48
+ */
49
+ export interface TriagedFrictionArtifact extends FrictionCaptureArtifact {
50
+ frictions: CapturedFrictionItem[];
51
+ /** Host dispositions, keyed by `target_id` (latest verdict wins). */
52
+ dispositions?: FrictionDispositionRecord[];
53
+ /** Host open observations (≥1 required to satisfy the blocking close-out). */
54
+ open_observations?: FrictionOpenObservation[];
55
+ }
56
+ /**
57
+ * `<artifactsDir>/friction/<run_id>.lock` — the lock path guarding the per-run
58
+ * record. Single-sourced so every record mutator (mechanical sink + host triage)
59
+ * serializes on the SAME lock (CE-004). Sibling of the record file, so it stays
60
+ * within the friction dir and is OS/path-agnostic.
61
+ */
62
+ export declare function frictionLockPath(artifactsDir: string, runId: string): string;
63
+ /**
64
+ * Apply `mutate` to the per-run friction record under the shared lock, then
65
+ * persist the result atomically and return it.
66
+ *
67
+ * The critical section reads the CURRENT record (materializing an empty base on
68
+ * first touch), hands it to `mutate`, and writes the returned record back via
69
+ * the shared atomic `writeJsonFile` (temp-then-rename). Because the read and the
70
+ * write both happen inside ONE `withFileLock(frictionLockPath)`, two concurrent
71
+ * appenders never lost-update each other's fields — the late writer always sees
72
+ * the earlier writer's merged record (CE-010). `mutate` must be pure and
73
+ * total (it returns the next record); it never performs IO of its own.
74
+ */
75
+ export declare function appendFrictionUnderLock(artifactsDir: string, runId: string, mutate: (record: TriagedFrictionArtifact) => TriagedFrictionArtifact, tool?: FrictionCaptureArtifact["tool"]): Promise<TriagedFrictionArtifact>;
76
+ //# sourceMappingURL=frictionRecord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frictionRecord.d.ts","sourceRoot":"","sources":["../../../src/shared/friction/frictionRecord.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAKlB,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;;;;;;;;;;;GAiBG;AAEH,sFAAsF;AACtF,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAElE,mFAAmF;AACnF,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACtE,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,qEAAqE;IACrE,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC3C,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,uBAAuB,EACpE,IAAI,GAAE,uBAAuB,CAAC,MAAM,CAAoB,GACvD,OAAO,CAAC,uBAAuB,CAAC,CAUlC"}
@@ -0,0 +1,45 @@
1
+ import { join } from "node:path";
2
+ import { FRICTION_CAPTURE_SCHEMA_VERSION, frictionCaptureDir, frictionCapturePath, sanitizeRunId, } from "../io/frictionCapture.js";
3
+ import { readOptionalJsonFile, writeJsonFile } from "../io/json.js";
4
+ import { withFileLock } from "../quota/fileLock.js";
5
+ /**
6
+ * `<artifactsDir>/friction/<run_id>.lock` — the lock path guarding the per-run
7
+ * record. Single-sourced so every record mutator (mechanical sink + host triage)
8
+ * serializes on the SAME lock (CE-004). Sibling of the record file, so it stays
9
+ * within the friction dir and is OS/path-agnostic.
10
+ */
11
+ export function frictionLockPath(artifactsDir, runId) {
12
+ return join(frictionCaptureDir(artifactsDir), `${sanitizeRunId(runId)}.lock`);
13
+ }
14
+ /** A fresh, empty record for a run (the clean-degrade base, `frictions: []`). */
15
+ function emptyRecord(runId, tool) {
16
+ return {
17
+ schema_version: FRICTION_CAPTURE_SCHEMA_VERSION,
18
+ tool,
19
+ run_id: runId,
20
+ captured_at: new Date().toISOString(),
21
+ frictions: [],
22
+ };
23
+ }
24
+ /**
25
+ * Apply `mutate` to the per-run friction record under the shared lock, then
26
+ * persist the result atomically and return it.
27
+ *
28
+ * The critical section reads the CURRENT record (materializing an empty base on
29
+ * first touch), hands it to `mutate`, and writes the returned record back via
30
+ * the shared atomic `writeJsonFile` (temp-then-rename). Because the read and the
31
+ * write both happen inside ONE `withFileLock(frictionLockPath)`, two concurrent
32
+ * appenders never lost-update each other's fields — the late writer always sees
33
+ * the earlier writer's merged record (CE-010). `mutate` must be pure and
34
+ * total (it returns the next record); it never performs IO of its own.
35
+ */
36
+ export async function appendFrictionUnderLock(artifactsDir, runId, mutate, tool = "remediate-code") {
37
+ return withFileLock(frictionLockPath(artifactsDir, runId), async () => {
38
+ const existing = await readOptionalJsonFile(frictionCapturePath(artifactsDir, runId));
39
+ const base = existing ?? emptyRecord(runId, tool);
40
+ const next = mutate(base);
41
+ await writeJsonFile(frictionCapturePath(artifactsDir, runId), next);
42
+ return next;
43
+ });
44
+ }
45
+ //# sourceMappingURL=frictionRecord.js.map