audit-tools 0.31.4 → 0.32.1
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.
- package/dist/remediate/dispatch/ownershipScheduler.d.ts +11 -0
- package/dist/remediate/dispatch/ownershipScheduler.d.ts.map +1 -1
- package/dist/remediate/dispatch/ownershipScheduler.js +20 -6
- package/dist/remediate/dispatch/ownershipScheduler.js.map +1 -1
- package/dist/remediate/phases/plan.d.ts +16 -6
- package/dist/remediate/phases/plan.d.ts.map +1 -1
- package/dist/remediate/phases/plan.js +38 -72
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/phases/triage.d.ts.map +1 -1
- package/dist/remediate/phases/triage.js +11 -0
- package/dist/remediate/phases/triage.js.map +1 -1
- package/dist/remediate/state/types.d.ts +22 -0
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +8 -0
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/dispatch.d.ts +74 -0
- package/dist/remediate/steps/dispatch.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch.js +231 -24
- package/dist/remediate/steps/dispatch.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +7 -1
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/package.json +3 -2
- package/remediate-code.mjs +23 -2
- package/wrapper/remediate-code-wrapper-install-hosts.mjs +1187 -0
- package/wrapper/remediate-code-wrapper-install-renderers.mjs +58 -0
- package/wrapper/remediate-code-wrapper-io.mjs +145 -0
- package/wrapper/remediate-code-wrapper-legacy.mjs +125 -0
- package/wrapper/remediate-code-wrapper-opencode.mjs +201 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAM7D,OAAO,KAAK,EAAE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,YAAY,EAAE,OAAO,EAAE,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;IAI/B;;;OAGG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;;;OAMG;;IAEH;;;;;;;OAOG
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,14 @@ export const RemediationBlockSchema = z
|
|
|
39
39
|
* blocks sharing one ordinal) means a single phase, i.e. no barrier.
|
|
40
40
|
*/
|
|
41
41
|
phase_ordinal: z.number().int().nonnegative().optional(),
|
|
42
|
+
/**
|
|
43
|
+
* Whether the blocks sharing a co-file (same touched path) may still run in
|
|
44
|
+
* parallel because their edit regions are disjoint. Additive + optional:
|
|
45
|
+
* absence is equivalent to `false` (co-file blocks serialize by default), and
|
|
46
|
+
* a pre-existing block with no such key still validates. Deliberately a bare
|
|
47
|
+
* boolean — no WriteRegion / WriteAnchor / anchor apparatus lives on the block.
|
|
48
|
+
*/
|
|
49
|
+
cofile_parallel_safe: z.boolean().optional(),
|
|
42
50
|
})
|
|
43
51
|
.strict();
|
|
44
52
|
export const RemediationPlanSchema = z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACxD;;;;;;OAMG;IACH,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;SAC9D,QAAQ,EAAE;IACb,+EAA+E;IAC/E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,oBAAoB,EAAE,2BAA2B;IACjD,4BAA4B,EAAE,mCAAmC;CACzD,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,KAAK,CACrB,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CACzE;IACD,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAC3B,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;YACX,gBAAgB,CAAC,WAAW;YAC5B,gBAAgB,CAAC,aAAa;YAC9B,gBAAgB,CAAC,oBAAoB;YACrC,gBAAgB,CAAC,4BAA4B;SAC9C,CAAC;QACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;SACD,MAAM,EAAE,CACZ;CACF,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;QACf,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;QACd,yBAAyB;QACzB,sBAAsB;QACtB,mBAAmB;QACnB,uBAAuB;KACxB,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GACnC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAGpD,uEAAuE;AACvE,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,wBAA8C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,+DAA+D;IAC/D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC;;;;OAIG;IACH,sBAAsB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAC9D,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -513,6 +513,25 @@ export declare function normalizeNodeTestCommand(cmd: string): string;
|
|
|
513
513
|
* file is scoped and kept.
|
|
514
514
|
*/
|
|
515
515
|
export declare function isWholeSuiteTestCommand(cmd: string): boolean;
|
|
516
|
+
/**
|
|
517
|
+
* Repo-relative path-like tokens in a shell command — tokens containing a `/` and a
|
|
518
|
+
* file extension (e.g. `scripts/remediate/verify-hosts.mjs`, `tests/x.test.ts`).
|
|
519
|
+
* Used to decide whether a targeted verify command is self-contained.
|
|
520
|
+
*/
|
|
521
|
+
export declare function pathTokensInCommand(cmd: string): string[];
|
|
522
|
+
/**
|
|
523
|
+
* Keep only the targeted verify commands that are SELF-CONTAINED for this node:
|
|
524
|
+
* every path-like token they reference is either one of the node's own paths (its
|
|
525
|
+
* declared write set ∪ the files it actually edited on its branch) or already
|
|
526
|
+
* present in the tree. A command referencing a path this node doesn't own and that
|
|
527
|
+
* isn't in the tree depends on a SIBLING node's not-yet-created deliverable —
|
|
528
|
+
* running it in per-node verify is a guaranteed-fail deadlock (proven 2026-07-03: a
|
|
529
|
+
* node's `targeted_command` was `node scripts/remediate/verify-hosts.mjs`, another
|
|
530
|
+
* node's pending output). Per-node verify must be self-contained; such a cross-node
|
|
531
|
+
* command is dropped here and deferred to the integration/close gate. A command with
|
|
532
|
+
* no path tokens (e.g. `npm run check`) is always kept.
|
|
533
|
+
*/
|
|
534
|
+
export declare function selfContainedVerifyCommands(commands: string[], ownPaths: Iterable<string>, treeRoot: string): string[];
|
|
516
535
|
/**
|
|
517
536
|
* Derive a node's per-node verify commands from the test files it ACTUALLY touched
|
|
518
537
|
* on its worktree branch (the git ground truth), instead of trusting host-authored
|
|
@@ -617,6 +636,54 @@ export declare function worktreeBranchForBlock(blockId: string, runId: string):
|
|
|
617
636
|
* commits). Fail-closed / not-a-repo semantics mirror `gitEditedFiles`.
|
|
618
637
|
*/
|
|
619
638
|
export declare function gitEditedFilesForBranch(root: string, branch: string): GitEditedFiles;
|
|
639
|
+
/** A single edited hunk on the NEW side of a branch diff (repo-relative path). */
|
|
640
|
+
export interface GitBranchHunk {
|
|
641
|
+
/** Repo-relative forward-slash path the hunk belongs to. */
|
|
642
|
+
file: string;
|
|
643
|
+
/** 1-based first line of the hunk on the new side. */
|
|
644
|
+
startLine: number;
|
|
645
|
+
/** Number of new-side lines the hunk spans (a pure deletion has 0). */
|
|
646
|
+
lineCount: number;
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Outcome of resolving a branch's ACTUAL edited HUNKS from git. Fail-closed like
|
|
650
|
+
* {@link gitEditedFilesForBranch}: on a non-repo, a failed probe, or a diff we
|
|
651
|
+
* cannot parse, `available` is false and callers MUST treat hunk info as absent
|
|
652
|
+
* (conservatively assume same-file blocks overlap — never silently drop a
|
|
653
|
+
* collision).
|
|
654
|
+
*/
|
|
655
|
+
export type GitBranchHunks = {
|
|
656
|
+
available: true;
|
|
657
|
+
hunks: GitBranchHunk[];
|
|
658
|
+
} | {
|
|
659
|
+
available: false;
|
|
660
|
+
reason: "not_a_repo";
|
|
661
|
+
error: string;
|
|
662
|
+
} | {
|
|
663
|
+
available: false;
|
|
664
|
+
reason: "probe_failed";
|
|
665
|
+
error: string;
|
|
666
|
+
};
|
|
667
|
+
/**
|
|
668
|
+
* Parse `git diff HEAD...<branch>` into per-hunk NEW-side line ranges — the
|
|
669
|
+
* ground truth for whether two same-file edits actually touch disjoint regions.
|
|
670
|
+
* Mirrors {@link gitEditedFilesForBranch}'s fail-closed / not-a-repo semantics:
|
|
671
|
+
* never throws; on a non-repo / failed probe / malformed diff returns a
|
|
672
|
+
* discriminated result marking hunks unavailable so the caller can fail closed.
|
|
673
|
+
*
|
|
674
|
+
* Paths are normalised to repo-relative forward-slash (the same scheme
|
|
675
|
+
* {@link gitEditedFilesForBranch} emits) so hunk files compare like-for-like
|
|
676
|
+
* with the file set.
|
|
677
|
+
*/
|
|
678
|
+
export declare function gitHunksForBranch(root: string, branch: string): GitBranchHunks;
|
|
679
|
+
/**
|
|
680
|
+
* Parse a unified-diff body into NEW-side hunk ranges. Extracted for testability
|
|
681
|
+
* (no git spawn). Recognises `+++ b/<path>` file headers and
|
|
682
|
+
* `@@ -a,b +c,d @@` hunk headers; a header we cannot parse fails the whole probe
|
|
683
|
+
* closed (returns `probe_failed`) rather than silently producing partial hunks
|
|
684
|
+
* that would let a real overlap slip through.
|
|
685
|
+
*/
|
|
686
|
+
export declare function parseUnifiedDiffHunks(diffText: string): GitBranchHunks;
|
|
620
687
|
/** The decision a write-scope gate makes given the resolved edit set. */
|
|
621
688
|
export interface WriteScopeDecision {
|
|
622
689
|
blocked: boolean;
|
|
@@ -737,6 +804,13 @@ export interface BlockEditedFiles {
|
|
|
737
804
|
block_id: string;
|
|
738
805
|
/** Repo-relative forward-slash paths the block's worker actually changed. */
|
|
739
806
|
files: Set<string>;
|
|
807
|
+
/**
|
|
808
|
+
* The block's ACTUAL edited hunks (new-side line ranges), when git could
|
|
809
|
+
* resolve them. When absent / unavailable, {@link detectOverlappingEdits} MUST
|
|
810
|
+
* fail closed and treat any same-file pairing as a potential collision — a
|
|
811
|
+
* missing hunk map is never disjointness evidence.
|
|
812
|
+
*/
|
|
813
|
+
hunks?: GitBranchHunks;
|
|
740
814
|
}
|
|
741
815
|
/** One detected overlap: two merged blocks whose actual edits hit the same file. */
|
|
742
816
|
export interface OverlappingEdit {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/dispatch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1122,9 +1122,25 @@ export async function acceptNodeWorktree(params) {
|
|
|
1122
1122
|
const baseCommands = targetedCommands === undefined
|
|
1123
1123
|
? deriveVerifyCommandsFromBranch(root, branch)
|
|
1124
1124
|
: targetedCommands;
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
: baseCommands
|
|
1125
|
+
let verifyCommands;
|
|
1126
|
+
if (targetedCommands === undefined) {
|
|
1127
|
+
// Self-contained per-node verify (2026-07-03): the derived `baseCommands` come
|
|
1128
|
+
// from this node's ACTUAL branch edits (self-contained by construction), but the
|
|
1129
|
+
// node's host/auditor-authored `additionalVerifyCommands` can reference a sibling
|
|
1130
|
+
// node's not-yet-created deliverable → a guaranteed-fail deadlock. Drop any such
|
|
1131
|
+
// cross-node command (deferred to the integration/close gate). Own paths = the
|
|
1132
|
+
// node's declared write set ∪ the files it actually edited on its branch.
|
|
1133
|
+
const edited = gitEditedFilesForBranch(root, branch);
|
|
1134
|
+
const ownPaths = [
|
|
1135
|
+
...(params.writePaths ?? []),
|
|
1136
|
+
...(edited.available ? edited.files : []),
|
|
1137
|
+
];
|
|
1138
|
+
const additional = selfContainedVerifyCommands(buildFreeVerifyCommands(additionalVerifyCommands), ownPaths, wt);
|
|
1139
|
+
verifyCommands = [...new Set([...baseCommands, ...additional])];
|
|
1140
|
+
}
|
|
1141
|
+
else {
|
|
1142
|
+
verifyCommands = baseCommands;
|
|
1143
|
+
}
|
|
1128
1144
|
const verify = verifyCommands.length > 0
|
|
1129
1145
|
? verifyNodeInWorktree(wt, verifyCommands)
|
|
1130
1146
|
: { passed: true, output: "" };
|
|
@@ -1456,6 +1472,40 @@ function buildFreeVerifyCommands(commands) {
|
|
|
1456
1472
|
!isWholeSuiteTestCommand(c))
|
|
1457
1473
|
.map(normalizeNodeTestCommand);
|
|
1458
1474
|
}
|
|
1475
|
+
/**
|
|
1476
|
+
* Repo-relative path-like tokens in a shell command — tokens containing a `/` and a
|
|
1477
|
+
* file extension (e.g. `scripts/remediate/verify-hosts.mjs`, `tests/x.test.ts`).
|
|
1478
|
+
* Used to decide whether a targeted verify command is self-contained.
|
|
1479
|
+
*/
|
|
1480
|
+
export function pathTokensInCommand(cmd) {
|
|
1481
|
+
const tokens = cmd.match(/(?:[\w.@-]+\/)+[\w.@-]+\.\w+/g) ?? [];
|
|
1482
|
+
return [...new Set(tokens.map((t) => t.replace(/\\/g, "/")))];
|
|
1483
|
+
}
|
|
1484
|
+
/**
|
|
1485
|
+
* Keep only the targeted verify commands that are SELF-CONTAINED for this node:
|
|
1486
|
+
* every path-like token they reference is either one of the node's own paths (its
|
|
1487
|
+
* declared write set ∪ the files it actually edited on its branch) or already
|
|
1488
|
+
* present in the tree. A command referencing a path this node doesn't own and that
|
|
1489
|
+
* isn't in the tree depends on a SIBLING node's not-yet-created deliverable —
|
|
1490
|
+
* running it in per-node verify is a guaranteed-fail deadlock (proven 2026-07-03: a
|
|
1491
|
+
* node's `targeted_command` was `node scripts/remediate/verify-hosts.mjs`, another
|
|
1492
|
+
* node's pending output). Per-node verify must be self-contained; such a cross-node
|
|
1493
|
+
* command is dropped here and deferred to the integration/close gate. A command with
|
|
1494
|
+
* no path tokens (e.g. `npm run check`) is always kept.
|
|
1495
|
+
*/
|
|
1496
|
+
export function selfContainedVerifyCommands(commands, ownPaths, treeRoot) {
|
|
1497
|
+
const owned = new Set([...ownPaths].map((p) => p.replace(/\\/g, "/")));
|
|
1498
|
+
return commands.filter((cmd) => {
|
|
1499
|
+
for (const token of pathTokensInCommand(cmd)) {
|
|
1500
|
+
if (owned.has(token))
|
|
1501
|
+
continue;
|
|
1502
|
+
if (existsSync(join(treeRoot, token)))
|
|
1503
|
+
continue;
|
|
1504
|
+
return false;
|
|
1505
|
+
}
|
|
1506
|
+
return true;
|
|
1507
|
+
});
|
|
1508
|
+
}
|
|
1459
1509
|
/** A repo-relative test path → the runner that executes that file directly. */
|
|
1460
1510
|
function verifyRunnerForTestFile(repoRelPath) {
|
|
1461
1511
|
// node:test suites (audit/shared) — run via the tsx loader so the TS source the
|
|
@@ -2377,6 +2427,72 @@ export function gitEditedFilesForBranch(root, branch) {
|
|
|
2377
2427
|
}
|
|
2378
2428
|
return { available: true, files };
|
|
2379
2429
|
}
|
|
2430
|
+
/**
|
|
2431
|
+
* Parse `git diff HEAD...<branch>` into per-hunk NEW-side line ranges — the
|
|
2432
|
+
* ground truth for whether two same-file edits actually touch disjoint regions.
|
|
2433
|
+
* Mirrors {@link gitEditedFilesForBranch}'s fail-closed / not-a-repo semantics:
|
|
2434
|
+
* never throws; on a non-repo / failed probe / malformed diff returns a
|
|
2435
|
+
* discriminated result marking hunks unavailable so the caller can fail closed.
|
|
2436
|
+
*
|
|
2437
|
+
* Paths are normalised to repo-relative forward-slash (the same scheme
|
|
2438
|
+
* {@link gitEditedFilesForBranch} emits) so hunk files compare like-for-like
|
|
2439
|
+
* with the file set.
|
|
2440
|
+
*/
|
|
2441
|
+
export function gitHunksForBranch(root, branch) {
|
|
2442
|
+
if (!isGitWorkTree(root)) {
|
|
2443
|
+
return { available: false, reason: "not_a_repo", error: "root is not a git work tree" };
|
|
2444
|
+
}
|
|
2445
|
+
const diff = spawnSync("git",
|
|
2446
|
+
// No rename detection / context noise beyond what we parse; a plain unified
|
|
2447
|
+
// diff carries the `+++ b/<path>` and `@@ … +start,count @@` headers we need.
|
|
2448
|
+
["diff", `HEAD...${branch}`], { cwd: root, encoding: "utf8", shell: false });
|
|
2449
|
+
if (diff.error || typeof diff.status !== "number" || diff.status !== 0) {
|
|
2450
|
+
const detail = (diff.stderr ?? diff.error?.message ?? "git diff failed").toString().trim();
|
|
2451
|
+
return { available: false, reason: "probe_failed", error: detail };
|
|
2452
|
+
}
|
|
2453
|
+
return parseUnifiedDiffHunks(diff.stdout ?? "");
|
|
2454
|
+
}
|
|
2455
|
+
/**
|
|
2456
|
+
* Parse a unified-diff body into NEW-side hunk ranges. Extracted for testability
|
|
2457
|
+
* (no git spawn). Recognises `+++ b/<path>` file headers and
|
|
2458
|
+
* `@@ -a,b +c,d @@` hunk headers; a header we cannot parse fails the whole probe
|
|
2459
|
+
* closed (returns `probe_failed`) rather than silently producing partial hunks
|
|
2460
|
+
* that would let a real overlap slip through.
|
|
2461
|
+
*/
|
|
2462
|
+
export function parseUnifiedDiffHunks(diffText) {
|
|
2463
|
+
const hunks = [];
|
|
2464
|
+
let currentFile = null;
|
|
2465
|
+
for (const rawLine of diffText.split(/\r?\n/)) {
|
|
2466
|
+
if (rawLine.startsWith("+++ ")) {
|
|
2467
|
+
// `+++ b/path` — or `+++ /dev/null` for a pure deletion (no new side).
|
|
2468
|
+
const target = rawLine.slice(4).trim();
|
|
2469
|
+
if (target === "/dev/null") {
|
|
2470
|
+
currentFile = null;
|
|
2471
|
+
continue;
|
|
2472
|
+
}
|
|
2473
|
+
// Strip the conventional `b/` prefix; leave already-bare paths intact.
|
|
2474
|
+
const bare = target.startsWith("b/") ? target.slice(2) : target;
|
|
2475
|
+
currentFile = bare.replace(/\\/g, "/");
|
|
2476
|
+
continue;
|
|
2477
|
+
}
|
|
2478
|
+
if (rawLine.startsWith("@@")) {
|
|
2479
|
+
const match = /^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/.exec(rawLine);
|
|
2480
|
+
if (!match) {
|
|
2481
|
+
return {
|
|
2482
|
+
available: false,
|
|
2483
|
+
reason: "probe_failed",
|
|
2484
|
+
error: `unparseable hunk header: ${rawLine}`,
|
|
2485
|
+
};
|
|
2486
|
+
}
|
|
2487
|
+
if (currentFile === null)
|
|
2488
|
+
continue; // deletion-only target: no new-side hunk.
|
|
2489
|
+
const startLine = Number(match[1]);
|
|
2490
|
+
const lineCount = match[2] === undefined ? 1 : Number(match[2]);
|
|
2491
|
+
hunks.push({ file: currentFile, startLine, lineCount });
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2494
|
+
return { available: true, hunks };
|
|
2495
|
+
}
|
|
2380
2496
|
/**
|
|
2381
2497
|
* Pure write-scope gate decision (OBL-DS-06). Given the block's declared write
|
|
2382
2498
|
* paths and the resolved git edit set:
|
|
@@ -2667,32 +2783,84 @@ export function attributeSiblingRed(implicatedFiles, mergedBlockScopes, root) {
|
|
|
2667
2783
|
* overlaps.
|
|
2668
2784
|
*/
|
|
2669
2785
|
export function detectOverlappingEdits(editedByBlock) {
|
|
2670
|
-
const
|
|
2671
|
-
|
|
2786
|
+
const isSanctionedSideOutput = (rel) => rel.endsWith(".result.json") || rel.endsWith(AGENT_FEEDBACK_FILENAME);
|
|
2787
|
+
// path → block_id → the block's hunks for that path (undefined when hunk info
|
|
2788
|
+
// is unavailable for the block, which forces the conservative fail-closed path).
|
|
2789
|
+
const pathToBlockHunks = new Map();
|
|
2790
|
+
for (const { block_id, files, hunks } of editedByBlock) {
|
|
2672
2791
|
for (const file of files) {
|
|
2673
2792
|
const rel = file.replace(/\\/g, "/");
|
|
2674
2793
|
// Sanctioned non-source outputs never constitute a lost-update conflict.
|
|
2675
|
-
if (rel
|
|
2676
|
-
continue;
|
|
2677
|
-
if (rel.endsWith(AGENT_FEEDBACK_FILENAME))
|
|
2794
|
+
if (isSanctionedSideOutput(rel))
|
|
2678
2795
|
continue;
|
|
2679
|
-
let
|
|
2680
|
-
if (!
|
|
2681
|
-
|
|
2682
|
-
|
|
2796
|
+
let byBlock = pathToBlockHunks.get(rel);
|
|
2797
|
+
if (!byBlock) {
|
|
2798
|
+
byBlock = new Map();
|
|
2799
|
+
pathToBlockHunks.set(rel, byBlock);
|
|
2683
2800
|
}
|
|
2684
|
-
|
|
2801
|
+
// Hunk info is only usable when git resolved it AND this block edited this
|
|
2802
|
+
// file per its hunk set. `available:false` (or an absent map) → undefined,
|
|
2803
|
+
// which detectOverlap treats as "cannot prove disjoint" → collision stands.
|
|
2804
|
+
const fileHunks = hunks?.available === true
|
|
2805
|
+
? hunks.hunks.filter((h) => h.file === rel)
|
|
2806
|
+
: undefined;
|
|
2807
|
+
byBlock.set(block_id, fileHunks);
|
|
2685
2808
|
}
|
|
2686
2809
|
}
|
|
2687
2810
|
const overlaps = [];
|
|
2688
|
-
for (const [path,
|
|
2689
|
-
if (
|
|
2690
|
-
|
|
2811
|
+
for (const [path, byBlock] of pathToBlockHunks) {
|
|
2812
|
+
if (byBlock.size <= 1)
|
|
2813
|
+
continue;
|
|
2814
|
+
const owners = [...byBlock.keys()].sort();
|
|
2815
|
+
// A file is a lost-update hazard iff SOME pair of owning blocks has edits we
|
|
2816
|
+
// cannot prove disjoint. If EVERY pair's hunks are known and disjoint, the
|
|
2817
|
+
// cherry-picks compose cleanly → not a collision. Any pair with unavailable
|
|
2818
|
+
// hunks fails closed (treated as overlapping).
|
|
2819
|
+
let collides = false;
|
|
2820
|
+
outer: for (let i = 0; i < owners.length; i++) {
|
|
2821
|
+
for (let j = i + 1; j < owners.length; j++) {
|
|
2822
|
+
const a = byBlock.get(owners[i]);
|
|
2823
|
+
const b = byBlock.get(owners[j]);
|
|
2824
|
+
if (a === undefined || b === undefined) {
|
|
2825
|
+
collides = true; // fail closed: no proof of disjointness.
|
|
2826
|
+
break outer;
|
|
2827
|
+
}
|
|
2828
|
+
if (hunkRangesOverlap(a, b)) {
|
|
2829
|
+
collides = true;
|
|
2830
|
+
break outer;
|
|
2831
|
+
}
|
|
2832
|
+
}
|
|
2833
|
+
}
|
|
2834
|
+
if (collides) {
|
|
2835
|
+
overlaps.push({ path, block_ids: owners });
|
|
2691
2836
|
}
|
|
2692
2837
|
}
|
|
2693
2838
|
// Deterministic ordering so the diagnostic + tests are stable.
|
|
2694
2839
|
return overlaps.sort((a, b) => a.path.localeCompare(b.path));
|
|
2695
2840
|
}
|
|
2841
|
+
/**
|
|
2842
|
+
* True when any hunk in `a` shares a new-side line with any hunk in `b`. Each
|
|
2843
|
+
* hunk spans `[startLine, startLine + lineCount - 1]`; a zero-line hunk (pure
|
|
2844
|
+
* deletion at `startLine`) is treated as touching the single anchor line
|
|
2845
|
+
* `startLine` so a deletion adjacent to another block's insertion is still a
|
|
2846
|
+
* conflict. Purely non-overlapping ranges (e.g. lines 1–5 vs 40–50) return
|
|
2847
|
+
* false → the two edits are disjoint and compose cleanly.
|
|
2848
|
+
*/
|
|
2849
|
+
function hunkRangesOverlap(a, b) {
|
|
2850
|
+
const span = (h) => {
|
|
2851
|
+
const count = h.lineCount > 0 ? h.lineCount : 1;
|
|
2852
|
+
return [h.startLine, h.startLine + count - 1];
|
|
2853
|
+
};
|
|
2854
|
+
for (const ha of a) {
|
|
2855
|
+
const [aStart, aEnd] = span(ha);
|
|
2856
|
+
for (const hb of b) {
|
|
2857
|
+
const [bStart, bEnd] = span(hb);
|
|
2858
|
+
if (aStart <= bEnd && bStart <= aEnd)
|
|
2859
|
+
return true;
|
|
2860
|
+
}
|
|
2861
|
+
}
|
|
2862
|
+
return false;
|
|
2863
|
+
}
|
|
2696
2864
|
/**
|
|
2697
2865
|
* The contract-pipeline obligation ids a finding covers — the union of its
|
|
2698
2866
|
* `contract_obligation_ids` (satisfied) and `verification_obligation_ids`
|
|
@@ -2892,6 +3060,19 @@ async function mergeImplementResultsIntoState(options, runId, plan, state) {
|
|
|
2892
3060
|
// status, so the write-scope gate below can re-block them if the worker's
|
|
2893
3061
|
// ACTUAL git edits fall outside the declared scope.
|
|
2894
3062
|
const resolvedFindingIds = [];
|
|
3063
|
+
// The recorded per-node accept outcome is the ground truth (never the worker's
|
|
3064
|
+
// result file). Absent on the interim main-tree path (which writes none) → the
|
|
3065
|
+
// gates below stay inert there. A HARD accept failure (outcome=error|timeout with
|
|
3066
|
+
// merged=false) means the node's committed edits were QUARANTINED and are NOT in the
|
|
3067
|
+
// main tree; the worker's own status is then untrustworthy (proven 2026-07-03: a
|
|
3068
|
+
// node whose accept failed on a dirty-main-tree collision reported resolved_no_change
|
|
3069
|
+
// and silently stranded, because the resolvedFindingIds gate below only re-blocks
|
|
3070
|
+
// actual-change `resolved` items). When hard-failed, the collapsed loop's resolve
|
|
3071
|
+
// branch blocks the item outright so no dependent builds on missing code.
|
|
3072
|
+
const acceptOutcome = await loadNodeAcceptOutcome(options.artifactsDir, runId, blockId);
|
|
3073
|
+
const acceptHardFailed = !!acceptOutcome &&
|
|
3074
|
+
!acceptOutcome.merged &&
|
|
3075
|
+
(acceptOutcome.outcome === "error" || acceptOutcome.outcome === "timeout");
|
|
2895
3076
|
for (const itemResult of unresolved) {
|
|
2896
3077
|
// OBL-INV-RSD-01: do NOT throw on an unknown finding_id that did not remap
|
|
2897
3078
|
// to a known node alias. Block the owning block's non-terminal items so the
|
|
@@ -2937,6 +3118,24 @@ async function mergeImplementResultsIntoState(options, runId, plan, state) {
|
|
|
2937
3118
|
continue;
|
|
2938
3119
|
}
|
|
2939
3120
|
if (itemResult.status === "resolved" || itemResult.status === "resolved_no_change") {
|
|
3121
|
+
if (acceptHardFailed) {
|
|
3122
|
+
// The tool-owned accept hard-failed (quarantined, not in the main tree), so
|
|
3123
|
+
// this worker's resolved/resolved_no_change claim can't be trusted — block it
|
|
3124
|
+
// regardless of label so a mislabeled no-change can't strand and no dependent
|
|
3125
|
+
// builds on missing code. Routed to triage with the failing output.
|
|
3126
|
+
stateItem.status = "blocked";
|
|
3127
|
+
markTerminal(stateItem);
|
|
3128
|
+
stateItem.failure_reason =
|
|
3129
|
+
`Node ${blockId} reported finding ${itemResult.finding_id} ` +
|
|
3130
|
+
`${itemResult.status}, but its tool-owned accept failed ` +
|
|
3131
|
+
`(outcome=${acceptOutcome.outcome}, merged=false); the edits were quarantined ` +
|
|
3132
|
+
`and are NOT in the main tree. Routed to triage so dependents never build on ` +
|
|
3133
|
+
`missing code.` +
|
|
3134
|
+
(acceptOutcome.diagnostic
|
|
3135
|
+
? `\nFailing command output:\n${acceptOutcome.diagnostic}`
|
|
3136
|
+
: "");
|
|
3137
|
+
continue;
|
|
3138
|
+
}
|
|
2940
3139
|
const spec = stateItem.item_spec;
|
|
2941
3140
|
// The worker's explicit `resolved_no_change` is a no-change signal in its
|
|
2942
3141
|
// own right; the spec heuristic is the fallback for a plain `resolved`.
|
|
@@ -3077,23 +3276,31 @@ async function mergeImplementResultsIntoState(options, runId, plan, state) {
|
|
|
3077
3276
|
? gitEditedFilesForBranch(options.root, worktreeBranch)
|
|
3078
3277
|
: null;
|
|
3079
3278
|
if (branchEdited?.available) {
|
|
3080
|
-
|
|
3279
|
+
// Resolve the block's ACTUAL edited hunks too, so overlap detection can
|
|
3280
|
+
// spare same-file blocks whose real line-ranges are disjoint. Unavailable
|
|
3281
|
+
// hunks fail closed inside detectOverlappingEdits (still flagged).
|
|
3282
|
+
const branchHunks = gitHunksForBranch(options.root, worktreeBranch);
|
|
3283
|
+
editedByBlock.push({
|
|
3284
|
+
block_id: blockId,
|
|
3285
|
+
files: branchEdited.files,
|
|
3286
|
+
hunks: branchHunks,
|
|
3287
|
+
});
|
|
3081
3288
|
}
|
|
3082
3289
|
// Merge-state gate (authoritative, OBL-DS-06): a node that self-reported a
|
|
3083
3290
|
// finding "resolved" but whose tool-owned verify/merge did NOT land its edits
|
|
3084
3291
|
// (acceptNodeWorktree returned merged:false — verify failed, a cherry-pick
|
|
3085
3292
|
// conflict, or no actual edit) must never stand as resolved: its fix is not in
|
|
3086
|
-
// the main tree.
|
|
3087
|
-
//
|
|
3088
|
-
//
|
|
3089
|
-
//
|
|
3090
|
-
//
|
|
3293
|
+
// the main tree. Keyed on resolvedFindingIds, so a legitimate no-change closure
|
|
3294
|
+
// (which makes no edits by design, and is not in that set) stays exempt. This
|
|
3295
|
+
// covers the outcome=success/merged:false case (worker reported an actual-change
|
|
3296
|
+
// "resolved" but committed nothing); the hard-failure case (outcome=error|timeout)
|
|
3297
|
+
// is caught earlier, in the collapsed loop's resolve branch, so a mislabeled
|
|
3298
|
+
// `resolved_no_change` can't slip past this resolvedFindingIds keying.
|
|
3091
3299
|
if (resolvedFindingIds.length > 0) {
|
|
3092
|
-
const acceptOutcome = await loadNodeAcceptOutcome(options.artifactsDir, runId, blockId);
|
|
3093
3300
|
if (acceptOutcome && !acceptOutcome.merged) {
|
|
3094
3301
|
for (const findingId of resolvedFindingIds) {
|
|
3095
3302
|
const stateItem = state.items[findingId];
|
|
3096
|
-
if (!stateItem)
|
|
3303
|
+
if (!stateItem || isTerminalStatus(stateItem.status))
|
|
3097
3304
|
continue;
|
|
3098
3305
|
stateItem.status = "blocked";
|
|
3099
3306
|
markTerminal(stateItem);
|