audit-tools 0.32.43 → 0.32.44
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/riskSignal.d.ts +30 -0
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +87 -1
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.d.ts +12 -0
- package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/acceptNode.js +45 -1
- package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
- package/dist/remediate/steps/gateCommands.d.ts +17 -0
- package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
- package/dist/remediate/steps/gateCommands.js +19 -0
- package/dist/remediate/steps/gateCommands.js.map +1 -1
- package/dist/remediate/steps/leanFastPath.d.ts +0 -31
- package/dist/remediate/steps/leanFastPath.d.ts.map +1 -1
- package/dist/remediate/steps/leanFastPath.js +27 -127
- package/dist/remediate/steps/leanFastPath.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +37 -24
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/loopCorePaths.d.ts +12 -0
- package/dist/shared/loopCorePaths.d.ts.map +1 -0
- package/dist/shared/loopCorePaths.js +67 -0
- package/dist/shared/loopCorePaths.js.map +1 -0
- package/package.json +2 -1
|
@@ -1,137 +1,37 @@
|
|
|
1
|
-
//
|
|
1
|
+
// The `low`-risk tier's realization: the lean plan builder + the light adversarial
|
|
2
|
+
// review floor.
|
|
2
3
|
//
|
|
3
4
|
// Most remediation runs route through the heavy contract pipeline
|
|
4
|
-
// (goal_normalization → … → critic → judge → implementation_dag), which exists
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// and overkill for a handful of concrete, already-grounded fixes.
|
|
5
|
+
// (goal_normalization → … → critic → judge → implementation_dag), which exists to
|
|
6
|
+
// reason about DESIGN correctness for complex/coupled changes. That is the right
|
|
7
|
+
// machinery for a tangled change — and overkill for a handful of concrete, already-
|
|
8
|
+
// grounded fixes.
|
|
9
9
|
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
10
|
+
// The decision of WHEN to skip that loop is NOT made here anymore: it is the
|
|
11
|
+
// self-scaling risk dial. A run takes the lean path IFF its effective risk tier is
|
|
12
|
+
// `low` (`src/remediate/riskSignal.ts` — the intake path/breadth/intent signal folded
|
|
13
|
+
// with the finding-level `findingRiskEvidence`). This module owns only the low tier's
|
|
14
|
+
// two mechanisms: the light adversarial review floor (`interpretLeanLightReviewVerdict`
|
|
15
|
+
// — `adversarialDepthForTier("low") === "light"`) and the lean `extracted-plan.json`
|
|
16
|
+
// builder. Folding the old standalone `evaluateFastPath` boolean into the tier killed a
|
|
17
|
+
// second classifier that could DISAGREE with the risk signal (a grounded 5-finding batch
|
|
18
|
+
// touching `src/shared/quota` was "fast-path eligible" AND risk-tier `high`, and bypassed
|
|
19
|
+
// the pipeline anyway).
|
|
17
20
|
//
|
|
18
|
-
// What the
|
|
19
|
-
//
|
|
20
|
-
// applyPlanPipeline's block derivation + affected-file hash snapshot (integrity
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
21
|
+
// What the lean path KEEPS (the retained safety net): the produced plan rejoins the
|
|
22
|
+
// normal plan→implement→close machinery — deterministic grounding re-pass,
|
|
23
|
+
// applyPlanPipeline's block derivation + affected-file hash snapshot (integrity check),
|
|
24
|
+
// the implement-phase per-node verify-before-merge, and the tool-owned final whole-repo
|
|
25
|
+
// gate. A lean-pathed fix that breaks something fails its verify and routes to triage; it
|
|
26
|
+
// never silently lands. What it DROPS: only the adversarial contract DESIGN loop +
|
|
27
|
+
// obligation derivation — the work that earns its cost on the coupled/systemic changes the
|
|
28
|
+
// tier has already routed away.
|
|
24
29
|
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
// Pure + deterministic: no IO, no clock, no randomness. The caller supplies the
|
|
30
|
-
// plan id so this stays trivially unit-testable.
|
|
31
|
-
import { findingIsGrounded, isRecord } from "audit-tools/shared";
|
|
32
|
-
/**
|
|
33
|
-
* Max approved findings the lean path will take — "a handful". Above this, the
|
|
34
|
-
* coordination risk of a batch warrants the full pipeline.
|
|
35
|
-
*/
|
|
36
|
-
export const MAX_FAST_PATH_FINDINGS = 5;
|
|
37
|
-
/**
|
|
38
|
-
* Max DISTINCT affected files across the approved set. A small footprint is the
|
|
39
|
-
* primary structural proxy for "no broad cross-module ripple": a shared-contract
|
|
40
|
-
* change that fans out to its consumers touches many files and trips this cap,
|
|
41
|
-
* routing to the pipeline where seam reconciliation belongs.
|
|
42
|
-
*/
|
|
43
|
-
export const MAX_FAST_PATH_FILES = 5;
|
|
30
|
+
// Pure + deterministic: no IO, no clock, no randomness. The caller supplies the plan id
|
|
31
|
+
// so this stays trivially unit-testable.
|
|
32
|
+
import { isRecord } from "audit-tools/shared";
|
|
44
33
|
/** Source tag stamped on a lean-fast-path extracted plan (distinguishes it from `contract_pipeline`). */
|
|
45
34
|
export const LEAN_FAST_PATH_SOURCE = "lean_fast_path";
|
|
46
|
-
/** Distinct affected-file paths across an approved finding set. */
|
|
47
|
-
export function distinctAffectedFiles(findings) {
|
|
48
|
-
const paths = new Set();
|
|
49
|
-
for (const finding of findings) {
|
|
50
|
-
for (const location of finding.affected_files ?? []) {
|
|
51
|
-
if (location?.path) {
|
|
52
|
-
paths.add(location.path);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return [...paths];
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Decide whether an APPROVED, post-filter structured-audit finding set is simple
|
|
60
|
-
* enough for the lean fast path. The caller guarantees the source is structured
|
|
61
|
-
* (this never runs on free-form/document/conversation intake) and that every
|
|
62
|
-
* finding already cleared the review-approval gate + the pre-planning filter
|
|
63
|
-
* (evidence-bearing, deduped, non-phantom-path, checkpoint-kept).
|
|
64
|
-
*
|
|
65
|
-
* Every check is a conservative AND: any failing signal returns ineligible with
|
|
66
|
-
* the reason, so the run takes the full pipeline.
|
|
67
|
-
*/
|
|
68
|
-
export function evaluateFastPath(findings) {
|
|
69
|
-
if (findings.length === 0) {
|
|
70
|
-
return { eligible: false, reason: "no approved findings to fast-path" };
|
|
71
|
-
}
|
|
72
|
-
if (findings.length > MAX_FAST_PATH_FINDINGS) {
|
|
73
|
-
return {
|
|
74
|
-
eligible: false,
|
|
75
|
-
reason: `${findings.length} findings exceeds the ${MAX_FAST_PATH_FINDINGS}-finding fast-path cap`,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
const files = distinctAffectedFiles(findings);
|
|
79
|
-
if (files.length > MAX_FAST_PATH_FILES) {
|
|
80
|
-
return {
|
|
81
|
-
eligible: false,
|
|
82
|
-
reason: `${files.length} affected files exceeds the ${MAX_FAST_PATH_FILES}-file fast-path cap`,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
// Grounding: require the auditor's strong S7 verdict (cited span re-verified
|
|
86
|
-
// against disk, or an executable anchor confirmed the behavior). This is the
|
|
87
|
-
// protection that REPLACES the adversarial loop — a fast-pathed finding is
|
|
88
|
-
// never one the auditor couldn't positively ground.
|
|
89
|
-
const ungrounded = findings.filter((finding) => !findingIsGrounded(finding));
|
|
90
|
-
if (ungrounded.length > 0) {
|
|
91
|
-
return {
|
|
92
|
-
eligible: false,
|
|
93
|
-
reason: `not positively grounded: ${ungrounded.map((f) => f.id).join(", ")}`,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
// High confidence: a medium/low-confidence finding carries doubt the
|
|
97
|
-
// adversarial loop exists to resolve. (Note: an ungrounded finding is already
|
|
98
|
-
// downgraded to low confidence upstream, so this is defense in depth.)
|
|
99
|
-
const belowHigh = findings.filter((finding) => finding.confidence !== "high");
|
|
100
|
-
if (belowHigh.length > 0) {
|
|
101
|
-
return {
|
|
102
|
-
eligible: false,
|
|
103
|
-
reason: `below high confidence: ${belowHigh.map((f) => f.id).join(", ")}`,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
// No cross-cutting / seam signal. These are the auditor's own markers that a
|
|
107
|
-
// finding is architecture-level or coupled to others; the small-footprint cap
|
|
108
|
-
// above is the backstop for a finding the auditor failed to mark.
|
|
109
|
-
const systemic = findings.filter((finding) => finding.systemic === true);
|
|
110
|
-
if (systemic.length > 0) {
|
|
111
|
-
return {
|
|
112
|
-
eligible: false,
|
|
113
|
-
reason: `systemic / cross-cutting: ${systemic.map((f) => f.id).join(", ")}`,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
const coupled = findings.filter((finding) => (finding.related_findings?.length ?? 0) > 0);
|
|
117
|
-
if (coupled.length > 0) {
|
|
118
|
-
return {
|
|
119
|
-
eligible: false,
|
|
120
|
-
reason: `coupled to related findings (seam risk): ${coupled.map((f) => f.id).join(", ")}`,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
const architectural = findings.filter((finding) => finding.lens === "architecture");
|
|
124
|
-
if (architectural.length > 0) {
|
|
125
|
-
return {
|
|
126
|
-
eligible: false,
|
|
127
|
-
reason: `architecture-lens (design-level): ${architectural.map((f) => f.id).join(", ")}`,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
return {
|
|
131
|
-
eligible: true,
|
|
132
|
-
reason: `${findings.length} grounded high-confidence finding(s) across ${files.length} file(s); none systemic, coupled, or architecture-lens`,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
35
|
// ── T1 slice 3b — lean-path light adversarial review ────────────────────────────
|
|
136
36
|
//
|
|
137
37
|
// The fast path no longer SKIPS adversarial scrutiny — that would be a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leanFastPath.js","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"leanFastPath.js","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,gBAAgB;AAChB,EAAE;AACF,kEAAkE;AAClE,kFAAkF;AAClF,iFAAiF;AACjF,oFAAoF;AACpF,kBAAkB;AAClB,EAAE;AACF,6EAA6E;AAC7E,mFAAmF;AACnF,sFAAsF;AACtF,sFAAsF;AACtF,wFAAwF;AACxF,qFAAqF;AACrF,wFAAwF;AACxF,yFAAyF;AACzF,0FAA0F;AAC1F,wBAAwB;AACxB,EAAE;AACF,oFAAoF;AACpF,2EAA2E;AAC3E,wFAAwF;AACxF,wFAAwF;AACxF,0FAA0F;AAC1F,mFAAmF;AACnF,2FAA2F;AAC3F,gCAAgC;AAChC,EAAE;AACF,wFAAwF;AACxF,yCAAyC;AAGzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,yGAAyG;AACzG,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD,mFAAmF;AACnF,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAE7E,MAAM,CAAC,MAAM,gCAAgC,GAC3C,2CAAoD,CAAC;AAIvD;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,GAAY;IAI1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC;IACpF,CAAC;IACD,wEAAwE;IACxE,gFAAgF;IAChF,8EAA8E;IAC9E,wCAAwC;IACxC,IAAI,GAAG,CAAC,cAAc,KAAK,gCAAgC,EAAE,CAAC;QAC5D,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE;gBACR,gDAAgD,gCAAgC,GAAG;aACpF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAChE,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,QAAQ,EACN,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,iDAAiD,CAAC;SAC1D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,CAAC,kDAAkD,CAAC;KAC/D,CAAC;AACJ,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAmB,EACnB,MAAc;IAEd,OAAO;QACL,OAAO,EAAE,MAAM;QACf,QAAQ;QACR,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,qBAAqB;QAC7B,yBAAyB,EAAE,CAAC,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/nextStep.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/nextStep.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,KAAK,EAGV,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAmZ,KAAK,sBAAsB,EAA8C,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,yBAAyB,EAAE,KAAK,qBAAqB,EAAE,KAAK,YAAY,EAAqB,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAiJ,sBAAsB,EAA2R,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAQxtC,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAQvB,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EAEzB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAuCxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAoB3D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IAC3C,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAYV;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAC7C,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpB,GAAG,OAAO,CAQf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAQV;AAED,iFAAiF;AACjF,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AASD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,wBAAwB,GAAG,SAAS,EAC9C,SAAS,EAAE,gBAAgB,GAAG,SAAS,GACtC;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAA;CAAE,CAuC7D;AA2KD,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AA+DtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,EAAE,EAAE,CAoFtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAa1E;AAED,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,YAAY,KACf,OAAO,CAAC,qBAAqB,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,kFAAkF;IAClF,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,mFAAmF;IACnF,YAAY,EAAE,qBAAqB,CAAC;IACpC;;;;OAIG;IACH,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,8EAA8E;IAC9E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACrD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,EAAE,CAAC;IACtD;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,0BAA0B;IACzC,kDAAkD;IAClD,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,qBAAqB,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IACH,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAC5B,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAoFrC;AAyBD,0GAA0G;AAC1G,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACpB,KAAK,OAAO,CAAC,qBAAqB,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAE3D,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,qFAAqF;IACrF,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,uEAAuE;IACvE,WAAW,CAAC,EAAE;QACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,UAAU,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;QAC3C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,mCAAmC;IAClD,0DAA0D;IAC1D,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,qBAAqB,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAChE,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;IACH,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;CAC1C;AAwDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC,CA8PrD;AAUD,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,qBAAqB,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QAChE,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,WAAW,EAAE,sBAAsB,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAClD,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAkEpC;AAaD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AA21BxB;;;;;;;;;;GAUG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAEjC;AAmmDD,wBAAsB,cAAc,CAClC,OAAO,GAAE,eAAe,GAAG,MAAW,GACrC,OAAO,CAAC,eAAe,CAAC,CAuC1B;AA8OD,uFAAuF;AACvF,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAC3E,eAAO,MAAM,oCAAoC,kDACA,CAAC;AAElD,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,OAAO,oCAAoC,CAAC;IAC5D,6EAA6E;IAC7E,WAAW,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,kCAAkC,CACtD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,gBAAgB,GAAG,SAAS,GACvC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CA6B/C"}
|
|
@@ -24,13 +24,13 @@ import { checkAffectedFileIntegrity } from "../utils/fileIntegrity.js";
|
|
|
24
24
|
import { resolveIntakeStep } from "./intakeResolver.js";
|
|
25
25
|
import { runToolOwnedFinalGate, applyCoarseReblock, readFinalGateSidecar, writeFinalGateSidecar, } from "./finalGate.js";
|
|
26
26
|
import { buildNextContractPipelineStep, shouldEnterContractPipeline, writePathASeedFromFindings, } from "./contractPipeline.js";
|
|
27
|
-
import {
|
|
27
|
+
import { buildLeanExtractedPlan, interpretLeanLightReviewVerdict, LEAN_LIGHT_REVIEW_SCHEMA_VERSION, } from "./leanFastPath.js";
|
|
28
28
|
import { contractArtifactExists, contractPipelineDir, } from "../contractPipeline/artifactStore.js";
|
|
29
29
|
import { buildReviewRequest, applyReviewResolution, } from "../review/reviewGate.js";
|
|
30
30
|
import { buildAutonomousReviewDecision } from "../review/autonomousGate.js";
|
|
31
31
|
import { runFindingFilterPass } from "../findingFilter.js";
|
|
32
32
|
import { intakePaths, isIntakeReady, readIntakeArtifacts, resolveManifestSources, } from "../intake.js";
|
|
33
|
-
import { ensureIntakeRiskSignal, readIntakeRiskSignal, writeIntakeRiskSignal, escalateRiskSignal, } from "../riskSignal.js";
|
|
33
|
+
import { ensureIntakeRiskSignal, readIntakeRiskSignal, writeIntakeRiskSignal, escalateRiskSignal, findingRiskEvidence, distinctAffectedFiles, } from "../riskSignal.js";
|
|
34
34
|
import { ambiguityReviewPrompt, clarificationPrompt, collectIntakeClarificationsPrompt, collectStartingPointPrompt, loaderCommand, reviewApprovalPrompt, synthesizeIntakePrompt, triagePrompt, } from "./prompts.js";
|
|
35
35
|
// Single-sourced prose renders of the canonical lens / severity vocabularies
|
|
36
36
|
// (`audit-tools/shared` `LENSES` / `SEVERITIES`) for the intent-checkpoint
|
|
@@ -2114,21 +2114,37 @@ async function handleReadyIntakeContractPipeline(root, artifactsDir, options) {
|
|
|
2114
2114
|
}
|
|
2115
2115
|
// Persist the filter dispositions so coverage is built over the originals.
|
|
2116
2116
|
await persistReviewFilterDispositions(artifactsDir, originals, filter);
|
|
2117
|
-
//
|
|
2118
|
-
//
|
|
2119
|
-
// the
|
|
2120
|
-
//
|
|
2121
|
-
//
|
|
2122
|
-
//
|
|
2123
|
-
// with a pre-existing finding set to judge.
|
|
2117
|
+
// Lean path = the `low` risk tier's realization (D-68 — leanFastPath folded
|
|
2118
|
+
// into the self-scaling dial). A run skips the heavy contract DESIGN loop and
|
|
2119
|
+
// synthesizes the extracted plan directly IFF its effective risk tier is `low`;
|
|
2120
|
+
// the plan→implement→close machinery (per-node verify-before-merge + the final
|
|
2121
|
+
// whole-repo gate) is the retained safety net. Runs only here — on Path A
|
|
2122
|
+
// (structured_audit), the only intake with a pre-existing finding set to judge.
|
|
2124
2123
|
//
|
|
2125
|
-
//
|
|
2126
|
-
//
|
|
2127
|
-
//
|
|
2128
|
-
//
|
|
2129
|
-
//
|
|
2130
|
-
|
|
2131
|
-
|
|
2124
|
+
// First fold the APPROVED set's finding-level risk (grounding / confidence /
|
|
2125
|
+
// coupling / systemic / architecture / count — the finding-QUALITY dimension the
|
|
2126
|
+
// intake path/breadth/intent signal doesn't see) INTO the shared risk signal as
|
|
2127
|
+
// escalate-on-evidence. This makes the tier the SINGLE classifier: there is no
|
|
2128
|
+
// separate fast-path boolean that can DISAGREE with it (a grounded handful
|
|
2129
|
+
// touching a risk subsystem stays `high` and takes the full pipeline, instead of
|
|
2130
|
+
// bypassing it as the old parallel `evaluateFastPath` allowed).
|
|
2131
|
+
const findingEvidence = findingRiskEvidence(gate.approved);
|
|
2132
|
+
let riskSignal = await readIntakeRiskSignal(artifactsDir);
|
|
2133
|
+
if (findingEvidence && riskSignal) {
|
|
2134
|
+
const raised = escalateRiskSignal(riskSignal, findingEvidence);
|
|
2135
|
+
// escalateRiskSignal returns the SAME reference when the evidence does not
|
|
2136
|
+
// raise the tier — only persist on an actual change (no byte-identical rewrite).
|
|
2137
|
+
if (raised !== riskSignal) {
|
|
2138
|
+
riskSignal = raised;
|
|
2139
|
+
await writeIntakeRiskSignal(artifactsDir, riskSignal);
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
// T1 slice 3b — the lean tier is NOT zero-scrutiny: a `low`-tier run first runs
|
|
2143
|
+
// a bounded LIGHT adversarial review over the approved findings (the floor,
|
|
2144
|
+
// never off — `adversarialDepthForTier("low") === "light"`). A clear verdict
|
|
2145
|
+
// proceeds to the lean plan; a verdict that surfaces a real concern escalates
|
|
2146
|
+
// the risk signal and routes to the full pipeline below.
|
|
2147
|
+
if (gate.approved.length > 0 && riskSignal?.tier === "low") {
|
|
2132
2148
|
const review = await runLeanLightReviewGate(root, artifactsDir, gate.approved);
|
|
2133
2149
|
if (review.kind === "halt") {
|
|
2134
2150
|
return review.step;
|
|
@@ -2137,20 +2153,17 @@ async function handleReadyIntakeContractPipeline(root, artifactsDir, options) {
|
|
|
2137
2153
|
// Escalate-on-evidence: raise the signal to at least `medium` so the
|
|
2138
2154
|
// full pipeline's adversarial depth is `full` (see slice 3a), then
|
|
2139
2155
|
// fall through to the full pipeline.
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
reason: `lean light review surfaced a concern: ${review.concerns.join("; ")}`,
|
|
2145
|
-
}));
|
|
2146
|
-
}
|
|
2156
|
+
await writeIntakeRiskSignal(artifactsDir, escalateRiskSignal(riskSignal, {
|
|
2157
|
+
tier: "medium",
|
|
2158
|
+
reason: `lean light review surfaced a concern: ${review.concerns.join("; ")}`,
|
|
2159
|
+
}));
|
|
2147
2160
|
process.stderr.write(`[remediate-code] Lean light review escalated (${review.concerns.join("; ")}); routing to the full contract pipeline.\n`);
|
|
2148
2161
|
}
|
|
2149
2162
|
else {
|
|
2150
2163
|
// Clear verdict → proceed with the lean plan.
|
|
2151
2164
|
const leanPlan = buildLeanExtractedPlan(gate.approved, randomRunId("LEAN"));
|
|
2152
2165
|
await writeJsonFile(intakePaths(artifactsDir).extractedPlan, leanPlan);
|
|
2153
|
-
process.stderr.write(`[remediate-code] Lean fast path: ${
|
|
2166
|
+
process.stderr.write(`[remediate-code] Lean fast path (risk tier low): ${riskSignal.rationale.join("; ")}; light review clear. Routing to plan→implement.\n`);
|
|
2154
2167
|
const planned = await handlePendingExtractedPlan(root, artifactsDir, { status: "pending" }, leanPlan);
|
|
2155
2168
|
if (planned) {
|
|
2156
2169
|
return planned;
|