audit-tools 0.30.10 → 0.30.12
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/ownershipRegistry.d.ts +39 -0
- package/dist/remediate/dispatch/ownershipRegistry.d.ts.map +1 -1
- package/dist/remediate/dispatch/ownershipRegistry.js +71 -0
- package/dist/remediate/dispatch/ownershipRegistry.js.map +1 -1
- package/dist/remediate/dispatch/ownershipScheduler.d.ts +20 -0
- package/dist/remediate/dispatch/ownershipScheduler.d.ts.map +1 -1
- package/dist/remediate/dispatch/ownershipScheduler.js +24 -0
- package/dist/remediate/dispatch/ownershipScheduler.js.map +1 -1
- package/dist/remediate/phases/plan.d.ts +1 -1
- package/dist/remediate/phases/plan.d.ts.map +1 -1
- package/dist/remediate/phases/plan.js +56 -17
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/state/types.d.ts +34 -12
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +14 -3
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +9 -0
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +5 -0
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/validation/remediationState.d.ts.map +1 -1
- package/dist/remediate/validation/remediationState.js +15 -1
- package/dist/remediate/validation/remediationState.js.map +1 -1
- package/dist/shared/index.d.ts +3 -3
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/providers/codexProvider.d.ts +1 -1
- package/dist/shared/providers/codexProvider.js +1 -1
- package/dist/shared/quota/limits.d.ts +11 -3
- package/dist/shared/quota/limits.d.ts.map +1 -1
- package/dist/shared/quota/limits.js +12 -18
- package/dist/shared/quota/limits.js.map +1 -1
- package/dist/shared/quota/scheduler.d.ts +45 -2
- package/dist/shared/quota/scheduler.d.ts.map +1 -1
- package/dist/shared/quota/scheduler.js +57 -8
- package/dist/shared/quota/scheduler.js.map +1 -1
- package/dist/shared/repair/brokeredDispatch.d.ts +1 -0
- package/dist/shared/repair/brokeredDispatch.d.ts.map +1 -1
- package/dist/shared/repair/brokeredDispatch.js +6 -3
- package/dist/shared/repair/brokeredDispatch.js.map +1 -1
- package/package.json +1 -1
|
@@ -32,6 +32,23 @@ export declare function canonicalizeFilePath(path: string, opts?: {
|
|
|
32
32
|
root?: string;
|
|
33
33
|
resolveSymlinks?: boolean;
|
|
34
34
|
}): string;
|
|
35
|
+
/**
|
|
36
|
+
* The disposition a node reaches when the rolling engine stops driving it for the
|
|
37
|
+
* current pass. INV-SOO-10 (releasing-disposition discipline) keys the claim
|
|
38
|
+
* lifecycle off this: a RELEASING disposition frees the node's in-flight claim
|
|
39
|
+
* (`releaseInFlight`); a CLAIM-RETAINING disposition keeps it held so no foreign
|
|
40
|
+
* same-file node can be admitted on the still-contested key.
|
|
41
|
+
*/
|
|
42
|
+
export type NodeClaimDisposition = "merged" | "blocked_final" | "abandoned" | "failed_no_retry" | "no_op_satisfied" | "blocked_pending_triage" | "triage_retry_handoff" | "redispatch";
|
|
43
|
+
/**
|
|
44
|
+
* Single source of truth for INV-SOO-10: whether `disposition` RELEASES the
|
|
45
|
+
* node's in-flight file claim. A redispatch (CE-007) and a triage-retry hand-off
|
|
46
|
+
* (CE-006) are explicitly claim-RETAINING — the key stays held by the node across
|
|
47
|
+
* the re-emit / recomputation window so the re-run can never run boundary-ungated
|
|
48
|
+
* alongside a foreign same-file writer. The enumeration is exhaustive (a `never`
|
|
49
|
+
* fallthrough keeps it in lockstep with `NodeClaimDisposition`).
|
|
50
|
+
*/
|
|
51
|
+
export declare function isReleasingDisposition(disposition: NodeClaimDisposition): boolean;
|
|
35
52
|
export interface OwnershipRegistryJson {
|
|
36
53
|
/** nodeId → set of paths from that node's original contract scope */
|
|
37
54
|
contractScopes: Record<string, string[]>;
|
|
@@ -167,6 +184,28 @@ export declare class OwnershipRegistry {
|
|
|
167
184
|
* `fromNodeId === toNodeId`.
|
|
168
185
|
*/
|
|
169
186
|
handoffInFlight(fromNodeId: string, toNodeId: string): void;
|
|
187
|
+
/**
|
|
188
|
+
* Redispatch of an in-flight node (CE-007 / INV-SOO-10): an M4
|
|
189
|
+
* RepairOutcome.redispatch re-emits the SAME node without releasing its claim.
|
|
190
|
+
* This is a claim-RETAINING disposition — `nodeId` keeps every in-flight +
|
|
191
|
+
* amendment claim it holds across the re-emit, so the re-run cannot be admitted
|
|
192
|
+
* boundary-ungated alongside a foreign same-file writer. A no-op on the registry
|
|
193
|
+
* by construction (the claim is simply not released); this named affordance
|
|
194
|
+
* exists so callers route a redispatch through it (and `isReleasingDisposition`)
|
|
195
|
+
* rather than reasoning about claim retention by hand. Verifies the node still
|
|
196
|
+
* holds a live claim so a redispatch of an already-released node surfaces as a
|
|
197
|
+
* precondition violation instead of silently running ungated.
|
|
198
|
+
*/
|
|
199
|
+
redispatchInFlight(nodeId: string): void;
|
|
200
|
+
/**
|
|
201
|
+
* Apply a node's terminal-for-this-pass disposition to its claim lifecycle in
|
|
202
|
+
* one call (INV-SOO-10). A releasing disposition frees the claim; a
|
|
203
|
+
* claim-retaining one leaves it held. Single entry-point so the release-vs-retain
|
|
204
|
+
* decision is never re-derived by callers (auditor-agnostic robustness). For a
|
|
205
|
+
* `triage_retry_handoff` pass the successor id via `toNodeId` so the claim is
|
|
206
|
+
* atomically transferred (CE-006) rather than released-then-reclaimed.
|
|
207
|
+
*/
|
|
208
|
+
applyDisposition(nodeId: string, disposition: NodeClaimDisposition, toNodeId?: string): void;
|
|
170
209
|
/** Serialize to a plain JSON-safe object. */
|
|
171
210
|
serialize(): OwnershipRegistryJson;
|
|
172
211
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownershipRegistry.d.ts","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ownershipRegistry.d.ts","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,32 @@ export function canonicalizeFilePath(path, opts = {}) {
|
|
|
55
55
|
const slashed = abs.split(sep).join("/");
|
|
56
56
|
return CASE_INSENSITIVE_FS ? slashed.toLowerCase() : slashed;
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Single source of truth for INV-SOO-10: whether `disposition` RELEASES the
|
|
60
|
+
* node's in-flight file claim. A redispatch (CE-007) and a triage-retry hand-off
|
|
61
|
+
* (CE-006) are explicitly claim-RETAINING — the key stays held by the node across
|
|
62
|
+
* the re-emit / recomputation window so the re-run can never run boundary-ungated
|
|
63
|
+
* alongside a foreign same-file writer. The enumeration is exhaustive (a `never`
|
|
64
|
+
* fallthrough keeps it in lockstep with `NodeClaimDisposition`).
|
|
65
|
+
*/
|
|
66
|
+
export function isReleasingDisposition(disposition) {
|
|
67
|
+
switch (disposition) {
|
|
68
|
+
case "merged":
|
|
69
|
+
case "blocked_final":
|
|
70
|
+
case "abandoned":
|
|
71
|
+
case "failed_no_retry":
|
|
72
|
+
case "no_op_satisfied":
|
|
73
|
+
return true;
|
|
74
|
+
case "blocked_pending_triage":
|
|
75
|
+
case "triage_retry_handoff":
|
|
76
|
+
case "redispatch":
|
|
77
|
+
return false;
|
|
78
|
+
default: {
|
|
79
|
+
const _exhaustive = disposition;
|
|
80
|
+
return _exhaustive;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
58
84
|
/**
|
|
59
85
|
* OwnershipRegistry tracks write-scope ownership per DAG node.
|
|
60
86
|
*
|
|
@@ -340,6 +366,51 @@ export class OwnershipRegistry {
|
|
|
340
366
|
if (changed)
|
|
341
367
|
this._persist();
|
|
342
368
|
}
|
|
369
|
+
/**
|
|
370
|
+
* Redispatch of an in-flight node (CE-007 / INV-SOO-10): an M4
|
|
371
|
+
* RepairOutcome.redispatch re-emits the SAME node without releasing its claim.
|
|
372
|
+
* This is a claim-RETAINING disposition — `nodeId` keeps every in-flight +
|
|
373
|
+
* amendment claim it holds across the re-emit, so the re-run cannot be admitted
|
|
374
|
+
* boundary-ungated alongside a foreign same-file writer. A no-op on the registry
|
|
375
|
+
* by construction (the claim is simply not released); this named affordance
|
|
376
|
+
* exists so callers route a redispatch through it (and `isReleasingDisposition`)
|
|
377
|
+
* rather than reasoning about claim retention by hand. Verifies the node still
|
|
378
|
+
* holds a live claim so a redispatch of an already-released node surfaces as a
|
|
379
|
+
* precondition violation instead of silently running ungated.
|
|
380
|
+
*/
|
|
381
|
+
redispatchInFlight(nodeId) {
|
|
382
|
+
for (const owner of this.inFlightClaims.values()) {
|
|
383
|
+
if (owner === nodeId)
|
|
384
|
+
return; // still holds at least one claim — retained.
|
|
385
|
+
}
|
|
386
|
+
for (const owner of this.amendmentClaims.values()) {
|
|
387
|
+
if (owner === nodeId)
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
throw new Error(`OwnershipRegistry.redispatchInFlight: ${nodeId} holds no live claim; ` +
|
|
391
|
+
`a redispatch must retain an existing claim (claim-retaining disposition, CE-007). ` +
|
|
392
|
+
`Re-claim via claimInFlight before redispatching.`);
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Apply a node's terminal-for-this-pass disposition to its claim lifecycle in
|
|
396
|
+
* one call (INV-SOO-10). A releasing disposition frees the claim; a
|
|
397
|
+
* claim-retaining one leaves it held. Single entry-point so the release-vs-retain
|
|
398
|
+
* decision is never re-derived by callers (auditor-agnostic robustness). For a
|
|
399
|
+
* `triage_retry_handoff` pass the successor id via `toNodeId` so the claim is
|
|
400
|
+
* atomically transferred (CE-006) rather than released-then-reclaimed.
|
|
401
|
+
*/
|
|
402
|
+
applyDisposition(nodeId, disposition, toNodeId) {
|
|
403
|
+
if (disposition === "triage_retry_handoff") {
|
|
404
|
+
this.handoffInFlight(nodeId, toNodeId ?? nodeId);
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
if (isReleasingDisposition(disposition)) {
|
|
408
|
+
this.releaseInFlight(nodeId);
|
|
409
|
+
this.releaseAmendments(nodeId);
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
// blocked_pending_triage / redispatch: claim-retaining — leave it held.
|
|
413
|
+
}
|
|
343
414
|
/** Serialize to a plain JSON-safe object. */
|
|
344
415
|
serialize() {
|
|
345
416
|
const contractScopes = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownershipRegistry.js","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ownershipRegistry.js","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,4 +45,24 @@ export declare function canonicalScopeKeys(node: OwnershipSchedulerNode, root?:
|
|
|
45
45
|
* (INV-SOO-01 / CE-008).
|
|
46
46
|
*/
|
|
47
47
|
export declare function ownershipSubWaves(level: OwnershipSchedulerNode[], root?: string): OwnershipSchedulerNode[][];
|
|
48
|
+
/**
|
|
49
|
+
* CE-003 (deterministic partial admission): when the broker caps a single
|
|
50
|
+
* sub-wave so `total_slots < subWave.length`, the admitted subset is the
|
|
51
|
+
* block_id-ordered PREFIX of the sub-wave — the first `total_slots` nodes in the
|
|
52
|
+
* SAME INV-SOO-08 ascending-block_id order — NOT whichever nodes happen to win
|
|
53
|
+
* a ClaimRegistry race. The deferred suffix is returned so the caller re-offers
|
|
54
|
+
* it (in the same order) on the next wave. Because both the admitted prefix and
|
|
55
|
+
* the deferred suffix are block_id-ordered slices of a deterministic sub-wave,
|
|
56
|
+
* realized dispatch — which work lands this wave vs. is deferred — is
|
|
57
|
+
* reproducible across two runs over identical state, never a claim-race lottery.
|
|
58
|
+
*
|
|
59
|
+
* Pure: re-sorts the sub-wave by the canonical INV-SOO-08 tie-break before
|
|
60
|
+
* slicing, so the prefix is independent of the order the sub-wave was passed in.
|
|
61
|
+
* A non-positive `totalSlots` admits nothing; a `totalSlots >= subWave.length`
|
|
62
|
+
* admits the whole sub-wave with an empty deferred suffix.
|
|
63
|
+
*/
|
|
64
|
+
export declare function admitSubWaveUnderCapacity(subWave: OwnershipSchedulerNode[], totalSlots: number): {
|
|
65
|
+
admitted: OwnershipSchedulerNode[];
|
|
66
|
+
deferred: OwnershipSchedulerNode[];
|
|
67
|
+
};
|
|
48
68
|
//# sourceMappingURL=ownershipScheduler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownershipScheduler.d.ts","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,sBAAsB,EAC5B,IAAI,CAAC,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,CAAC,CAIb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,sBAAsB,EAAE,EAAE,CAwD5B"}
|
|
1
|
+
{"version":3,"file":"ownershipScheduler.d.ts","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,sBAAsB,EAC5B,IAAI,CAAC,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,CAAC,CAIb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,sBAAsB,EAAE,EAAE,CAwD5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,sBAAsB,EAAE,EACjC,UAAU,EAAE,MAAM,GACjB;IAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAO5E"}
|
|
@@ -97,4 +97,28 @@ export function ownershipSubWaves(level, root) {
|
|
|
97
97
|
}
|
|
98
98
|
return subWaves;
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* CE-003 (deterministic partial admission): when the broker caps a single
|
|
102
|
+
* sub-wave so `total_slots < subWave.length`, the admitted subset is the
|
|
103
|
+
* block_id-ordered PREFIX of the sub-wave — the first `total_slots` nodes in the
|
|
104
|
+
* SAME INV-SOO-08 ascending-block_id order — NOT whichever nodes happen to win
|
|
105
|
+
* a ClaimRegistry race. The deferred suffix is returned so the caller re-offers
|
|
106
|
+
* it (in the same order) on the next wave. Because both the admitted prefix and
|
|
107
|
+
* the deferred suffix are block_id-ordered slices of a deterministic sub-wave,
|
|
108
|
+
* realized dispatch — which work lands this wave vs. is deferred — is
|
|
109
|
+
* reproducible across two runs over identical state, never a claim-race lottery.
|
|
110
|
+
*
|
|
111
|
+
* Pure: re-sorts the sub-wave by the canonical INV-SOO-08 tie-break before
|
|
112
|
+
* slicing, so the prefix is independent of the order the sub-wave was passed in.
|
|
113
|
+
* A non-positive `totalSlots` admits nothing; a `totalSlots >= subWave.length`
|
|
114
|
+
* admits the whole sub-wave with an empty deferred suffix.
|
|
115
|
+
*/
|
|
116
|
+
export function admitSubWaveUnderCapacity(subWave, totalSlots) {
|
|
117
|
+
const ordered = [...subWave].sort((a, b) => a.block_id.localeCompare(b.block_id));
|
|
118
|
+
const slots = Math.max(0, Math.floor(totalSlots));
|
|
119
|
+
return {
|
|
120
|
+
admitted: ordered.slice(0, slots),
|
|
121
|
+
deferred: ordered.slice(slots),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
100
124
|
//# sourceMappingURL=ownershipScheduler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownershipScheduler.js","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipScheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ownershipScheduler.js","sourceRoot":"","sources":["../../../src/remediate/dispatch/ownershipScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export declare function deriveBlocksFromTestGraph(findings: Finding[], testFiles
|
|
|
42
42
|
useful: boolean;
|
|
43
43
|
};
|
|
44
44
|
export { ESTIMATED_PROMPT_OVERHEAD_TOKENS as ESTIMATED_BLOCK_BASE_TOKENS, ESTIMATED_ITEM_OVERHEAD_TOKENS as ESTIMATED_FINDING_OVERHEAD_TOKENS, } from "audit-tools/shared";
|
|
45
|
-
export declare function estimateGroupTokens(findingIds: string[], findings: Finding[], fileByteCounts: Map<string, number
|
|
45
|
+
export declare function estimateGroupTokens(findingIds: string[], findings: Finding[], fileByteCounts: Map<string, number>, root?: string): number;
|
|
46
46
|
export declare function splitBlocksByContextBudget(blocks: RemediationBlock[], findings: Finding[], root: string, contextBudget: number): RemediationBlock[];
|
|
47
47
|
/**
|
|
48
48
|
* Account for every finding the plan received: each is marked `planned` (kept and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/remediate/phases/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/remediate/phases/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AAoC9F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAyDlD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG;IACrE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAgBA;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B;AAcD,UAAU,aAAa;IACrB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAChD,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAAC;IAClE,0EAA0E;IAC1E,2BAA2B,CAAC,EAAE,CAC5B,QAAQ,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,KACrD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CACrC;AAuBD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GAClB;IAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAiDjD;AA+ED,OAAO,EACL,gCAAgC,IAAI,2BAA2B,EAC/D,8BAA8B,IAAI,iCAAiC,GACpE,MAAM,oBAAoB,CAAC;AAoH5B,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAMnC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAeR;AAkCD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,gBAAgB,EAAE,CA0FpB;AA2CD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC7C,GAAG,cAAc,CAwFjB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,SAAM,GACT,gBAAgB,EAAE,CAyGpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,YAAY,EAAE,OAAO,EAAE,GACtB,gBAAgB,EAAE,CAKpB;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAgQ3B"}
|
|
@@ -6,6 +6,7 @@ import { snapshotAffectedFileHashes } from "../utils/fileIntegrity.js";
|
|
|
6
6
|
import { groundExtractedFindings, } from "./grounding.js";
|
|
7
7
|
import { readOptionalJsonFile, writeJsonFile, readJsonFile, formatValidationIssues, discoverProjectCommands, resolveContextBudget, estimateTokensFromBytes, ESTIMATED_PROMPT_OVERHEAD_TOKENS, ESTIMATED_ITEM_OVERHEAD_TOKENS, } from "audit-tools/shared";
|
|
8
8
|
import { createFreshSessionProvider } from "../providers/index.js";
|
|
9
|
+
import { canonicalizeFilePath } from "../dispatch/ownershipRegistry.js";
|
|
9
10
|
import { deduplicateCrossLensFindings, fixupBlocksAfterDedup, } from "../dedup/crossLensDedup.js";
|
|
10
11
|
import { filterFindingsByCheckpoint } from "../intent/checkpointFilter.js";
|
|
11
12
|
import { applyIntentOrdering } from "../intent/intentOrdering.js";
|
|
@@ -64,6 +65,10 @@ export function parseAuditFindingsReport(report) {
|
|
|
64
65
|
items: [...(block.finding_ids ?? [])],
|
|
65
66
|
dependencies: [...(block.depends_on ?? [])],
|
|
66
67
|
parallel_safe: (block.depends_on?.length ?? 0) === 0,
|
|
68
|
+
// touched_files is REQUIRED on the block contract; the meaningful
|
|
69
|
+
// surface is derived downstream (mergeBlocksSharingFiles / M1-DECOMPOSE)
|
|
70
|
+
// from the block's findings — seed it empty here.
|
|
71
|
+
touched_files: [],
|
|
67
72
|
}))
|
|
68
73
|
: [];
|
|
69
74
|
const themes = Array.isArray(report.themes) ? report.themes : [];
|
|
@@ -95,7 +100,7 @@ function createBlockId(counter) {
|
|
|
95
100
|
function assignFindingToBlock(finding, blockId, blocks, fileToBlock) {
|
|
96
101
|
let block = blocks.find((candidate) => candidate.block_id === blockId);
|
|
97
102
|
if (!block) {
|
|
98
|
-
block = { block_id: blockId, items: [], parallel_safe: true };
|
|
103
|
+
block = { block_id: blockId, items: [], parallel_safe: true, touched_files: [] };
|
|
99
104
|
blocks.push(block);
|
|
100
105
|
}
|
|
101
106
|
block.items.push(finding.id);
|
|
@@ -293,9 +298,16 @@ function groupFindingsByFileOverlap(findingIds, findings, repoRoot = ".") {
|
|
|
293
298
|
// by many findings would otherwise collapse them all into one indivisible block.
|
|
294
299
|
if (isDirectoryPath(af.path, repoRoot))
|
|
295
300
|
continue;
|
|
296
|
-
|
|
301
|
+
// CE-008: key the overlap map by the M1-BOUNDARY canonical physical-file
|
|
302
|
+
// identity, not the raw spelling, so `src/A.ts`, `./src/A.ts`, `src\A.ts`
|
|
303
|
+
// (and case variants on a case-insensitive FS) collide on ONE key and the
|
|
304
|
+
// findings that touch that file are unioned into one block. Comparing raw
|
|
305
|
+
// strings would leave them in separate blocks that then write the same
|
|
306
|
+
// physical file in parallel (the clobber CE-008 closes).
|
|
307
|
+
const key = canonicalizeFilePath(af.path, { root: repoRoot });
|
|
308
|
+
const list = fileToIds.get(key) ?? [];
|
|
297
309
|
list.push(id);
|
|
298
|
-
fileToIds.set(
|
|
310
|
+
fileToIds.set(key, list);
|
|
299
311
|
}
|
|
300
312
|
}
|
|
301
313
|
for (const ids of fileToIds.values()) {
|
|
@@ -315,21 +327,28 @@ function groupFindingsByFileOverlap(findingIds, findings, repoRoot = ".") {
|
|
|
315
327
|
}
|
|
316
328
|
return [...groups.values()];
|
|
317
329
|
}
|
|
318
|
-
export function estimateGroupTokens(findingIds, findings, fileByteCounts
|
|
330
|
+
export function estimateGroupTokens(findingIds, findings, fileByteCounts,
|
|
331
|
+
// CE-008: when `root` is supplied, file keys are resolved to the M1-BOUNDARY
|
|
332
|
+
// canonical physical-file identity so a file cited under two spellings is
|
|
333
|
+
// de-duplicated to ONE entry and resolves to the byte-count map keyed the same
|
|
334
|
+
// way. When omitted, raw spellings are used as keys (callers that pre-key the
|
|
335
|
+
// byte-count map by raw path keep working unchanged).
|
|
336
|
+
root) {
|
|
337
|
+
const fileKey = (p) => root === undefined ? p : canonicalizeFilePath(p, { root });
|
|
319
338
|
const uniqueFiles = new Set();
|
|
320
339
|
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
321
340
|
for (const id of findingIds) {
|
|
322
341
|
for (const af of findingMap.get(id)?.affected_files ?? [])
|
|
323
|
-
uniqueFiles.add(af.path);
|
|
342
|
+
uniqueFiles.add(fileKey(af.path));
|
|
324
343
|
}
|
|
325
344
|
const totalBytes = [...uniqueFiles].reduce((sum, p) => sum + (fileByteCounts.get(p) ?? 0), 0);
|
|
326
345
|
return (ESTIMATED_PROMPT_OVERHEAD_TOKENS +
|
|
327
346
|
estimateTokensFromBytes(totalBytes) +
|
|
328
347
|
findingIds.length * ESTIMATED_ITEM_OVERHEAD_TOKENS);
|
|
329
348
|
}
|
|
330
|
-
function splitOversizedOverlapGroup(group, findings, fileByteCounts, contextBudget) {
|
|
349
|
+
function splitOversizedOverlapGroup(group, findings, fileByteCounts, contextBudget, root) {
|
|
331
350
|
if (group.length <= 1 ||
|
|
332
|
-
estimateGroupTokens(group, findings, fileByteCounts) <= contextBudget) {
|
|
351
|
+
estimateGroupTokens(group, findings, fileByteCounts, root) <= contextBudget) {
|
|
333
352
|
return [group];
|
|
334
353
|
}
|
|
335
354
|
const chunks = [];
|
|
@@ -337,7 +356,7 @@ function splitOversizedOverlapGroup(group, findings, fileByteCounts, contextBudg
|
|
|
337
356
|
for (const findingId of group) {
|
|
338
357
|
const candidate = [...current, findingId];
|
|
339
358
|
if (current.length > 0 &&
|
|
340
|
-
estimateGroupTokens(candidate, findings, fileByteCounts) > contextBudget) {
|
|
359
|
+
estimateGroupTokens(candidate, findings, fileByteCounts, root) > contextBudget) {
|
|
341
360
|
chunks.push(current);
|
|
342
361
|
current = [findingId];
|
|
343
362
|
}
|
|
@@ -350,17 +369,23 @@ function splitOversizedOverlapGroup(group, findings, fileByteCounts, contextBudg
|
|
|
350
369
|
return chunks;
|
|
351
370
|
}
|
|
352
371
|
export function splitBlocksByContextBudget(blocks, findings, root, contextBudget) {
|
|
353
|
-
|
|
372
|
+
// CE-008: index byte counts by the M1-BOUNDARY canonical physical-file identity
|
|
373
|
+
// so the same file cited under two spellings is sized ONCE (not double-counted)
|
|
374
|
+
// and `estimateGroupTokens` resolves every spelling to the same entry.
|
|
375
|
+
const allFiles = new Map(); // canonical key -> a raw spelling to stat
|
|
354
376
|
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
355
377
|
for (const block of blocks) {
|
|
356
378
|
for (const id of block.items) {
|
|
357
|
-
for (const af of findingMap.get(id)?.affected_files ?? [])
|
|
358
|
-
|
|
379
|
+
for (const af of findingMap.get(id)?.affected_files ?? []) {
|
|
380
|
+
const key = canonicalizeFilePath(af.path, { root });
|
|
381
|
+
if (!allFiles.has(key))
|
|
382
|
+
allFiles.set(key, af.path);
|
|
383
|
+
}
|
|
359
384
|
}
|
|
360
385
|
}
|
|
361
386
|
const fileByteCounts = new Map();
|
|
362
|
-
for (const
|
|
363
|
-
fileByteCounts.set(
|
|
387
|
+
for (const [key, rawPath] of allFiles) {
|
|
388
|
+
fileByteCounts.set(key, fileSizeBytes(rawPath, root));
|
|
364
389
|
}
|
|
365
390
|
const result = [];
|
|
366
391
|
// Maps an original block_id to the sub-block IDs it was expanded into.
|
|
@@ -372,9 +397,9 @@ export function splitBlocksByContextBudget(blocks, findings, root, contextBudget
|
|
|
372
397
|
let currentItems = [];
|
|
373
398
|
let currentTokens = 0;
|
|
374
399
|
for (const overlapGroup of fileGroups) {
|
|
375
|
-
const groups = splitOversizedOverlapGroup(overlapGroup, findings, fileByteCounts, contextBudget);
|
|
400
|
+
const groups = splitOversizedOverlapGroup(overlapGroup, findings, fileByteCounts, contextBudget, root);
|
|
376
401
|
for (const group of groups) {
|
|
377
|
-
const groupTokens = estimateGroupTokens(group, findings, fileByteCounts);
|
|
402
|
+
const groupTokens = estimateGroupTokens(group, findings, fileByteCounts, root);
|
|
378
403
|
if (currentItems.length > 0 && currentTokens + groupTokens > contextBudget) {
|
|
379
404
|
subBlocks.push(currentItems);
|
|
380
405
|
currentItems = group;
|
|
@@ -400,6 +425,9 @@ export function splitBlocksByContextBudget(blocks, findings, root, contextBudget
|
|
|
400
425
|
items: subBlocks[i],
|
|
401
426
|
parallel_safe: block.parallel_safe,
|
|
402
427
|
dependencies: block.dependencies,
|
|
428
|
+
// Sub-blocks inherit the parent's declared surface; the per-sub-block
|
|
429
|
+
// narrowing is a downstream (M1-DECOMPOSE) concern.
|
|
430
|
+
touched_files: [...(block.touched_files ?? [])],
|
|
403
431
|
});
|
|
404
432
|
}
|
|
405
433
|
}
|
|
@@ -438,6 +466,8 @@ function deriveFallbackBlocks(findings, options, deps) {
|
|
|
438
466
|
block_id: createBlockId(index + 1),
|
|
439
467
|
items: [finding.id],
|
|
440
468
|
parallel_safe: true,
|
|
469
|
+
// One finding per block — declare its affected files as the block surface.
|
|
470
|
+
touched_files: finding.affected_files.map((af) => af.path),
|
|
441
471
|
})),
|
|
442
472
|
blockStrategy: "file_overlap",
|
|
443
473
|
};
|
|
@@ -547,12 +577,17 @@ export function mergeBlocksSharingFiles(blocks, findings, root = ".") {
|
|
|
547
577
|
return blocks;
|
|
548
578
|
const findingMap = new Map(findings.map((f) => [f.id, f]));
|
|
549
579
|
const byId = new Map(blocks.map((b) => [b.block_id, b]));
|
|
580
|
+
// CE-008: a block's file set is keyed by the M1-BOUNDARY canonical physical-file
|
|
581
|
+
// identity, so two blocks that cite the same file under different spellings
|
|
582
|
+
// (rel/abs, `./`-prefixed, mixed separators, case on a case-insensitive FS) are
|
|
583
|
+
// detected as sharing it and merged — never left to clobber it in parallel.
|
|
550
584
|
const fileSet = (b) => {
|
|
551
585
|
const files = new Set();
|
|
552
586
|
for (const id of b.items) {
|
|
553
587
|
for (const af of findingMap.get(id)?.affected_files ?? []) {
|
|
554
|
-
if (!isDirectoryPath(af.path, root))
|
|
555
|
-
files.add(af.path);
|
|
588
|
+
if (!isDirectoryPath(af.path, root)) {
|
|
589
|
+
files.add(canonicalizeFilePath(af.path, { root }));
|
|
590
|
+
}
|
|
556
591
|
}
|
|
557
592
|
}
|
|
558
593
|
return files;
|
|
@@ -632,10 +667,14 @@ export function mergeBlocksSharingFiles(blocks, findings, root = ".") {
|
|
|
632
667
|
// its original parallel_safe rather than recomputing (and possibly flipping)
|
|
633
668
|
// it from deps. Only genuinely merged groups derive parallel_safe afresh.
|
|
634
669
|
const parallel_safe = idxs.length === 1 ? groupBlocks[0].parallel_safe : deps.size === 0;
|
|
670
|
+
const touched_files = [
|
|
671
|
+
...new Set(groupBlocks.flatMap((b) => b.touched_files ?? [])),
|
|
672
|
+
];
|
|
635
673
|
return {
|
|
636
674
|
block_id: mergedId,
|
|
637
675
|
items,
|
|
638
676
|
parallel_safe,
|
|
677
|
+
touched_files,
|
|
639
678
|
...(deps.size > 0 ? { dependencies: [...deps] } : {}),
|
|
640
679
|
};
|
|
641
680
|
});
|