audit-tools 0.51.10 → 0.52.0
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/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +14 -3
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/resultBaseline.d.ts +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.d.ts +10 -3
- package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.js +5 -4
- package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts +7 -3
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +13 -2
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/remediate/phases/close.d.ts +11 -4
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +78 -14
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts +19 -35
- package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts.map +1 -1
- package/dist/remediate/phases/closeVerifyHeadEvidence.js +38 -12
- package/dist/remediate/phases/closeVerifyHeadEvidence.js.map +1 -1
- package/dist/remediate/phases/closeVerifyLandingGates.d.ts +85 -0
- package/dist/remediate/phases/closeVerifyLandingGates.d.ts.map +1 -0
- package/dist/remediate/phases/closeVerifyLandingGates.js +48 -0
- package/dist/remediate/phases/closeVerifyLandingGates.js.map +1 -0
- package/dist/remediate/state/types.d.ts +31 -4
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +12 -1
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +23 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +122 -10
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +11 -7
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +41 -5
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +23 -7
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/types/options.d.ts +6 -0
- package/dist/remediate/types/options.d.ts.map +1 -1
- package/dist/shared/contentKey.d.ts +4 -4
- package/dist/shared/contentKey.js +3 -3
- package/dist/shared/git.d.ts +31 -0
- package/dist/shared/git.d.ts.map +1 -1
- package/dist/shared/git.js +105 -0
- package/dist/shared/git.js.map +1 -1
- package/dist/shared/index.d.ts +7 -5
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +5 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/prompts.d.ts +14 -3
- package/dist/shared/prompts.d.ts.map +1 -1
- package/dist/shared/prompts.js +17 -4
- package/dist/shared/prompts.js.map +1 -1
- package/dist/shared/reporting/auditDeliverable.d.ts +8 -3
- package/dist/shared/reporting/auditDeliverable.d.ts.map +1 -1
- package/dist/shared/reporting/auditDeliverable.js +10 -3
- package/dist/shared/reporting/auditDeliverable.js.map +1 -1
- package/dist/shared/tooling/landingGates.d.ts +118 -0
- package/dist/shared/tooling/landingGates.d.ts.map +1 -0
- package/dist/shared/tooling/landingGates.js +314 -0
- package/dist/shared/tooling/landingGates.js.map +1 -0
- package/dist/shared/tooling/projectTestAdmission.d.ts +16 -0
- package/dist/shared/tooling/projectTestAdmission.d.ts.map +1 -1
- package/dist/shared/tooling/projectTestAdmission.js +73 -10
- package/dist/shared/tooling/projectTestAdmission.js.map +1 -1
- package/dist/shared/tooling/testCommand.d.ts.map +1 -1
- package/dist/shared/tooling/testCommand.js +10 -0
- package/dist/shared/tooling/testCommand.js.map +1 -1
- package/dist/shared/types/finding.d.ts +56 -0
- package/dist/shared/types/finding.d.ts.map +1 -1
- package/dist/shared/types/finding.js +27 -0
- package/dist/shared/types/finding.js.map +1 -1
- package/dist/shared/types/intentCheckpoint.d.ts +2 -2
- package/dist/shared/validation/findingsReport.d.ts +13 -2
- package/dist/shared/validation/findingsReport.d.ts.map +1 -1
- package/dist/shared/validation/findingsReport.js +19 -2
- package/dist/shared/validation/findingsReport.js.map +1 -1
- package/docs/audit-pkg/product.md +2 -4
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
// sites-pinned: tests/remediate/close-verify-head-evidence.test.ts
|
|
2
|
+
import { auditReadOf, enumerateTrackedFilePaths, fileContentAtRef, gitRefExists, headCommit, isBareBasename, normalizeForMatch, normalizeRepoPath, quoteMatches, resolveBasenameToTrackedPath, stripEmittedLinePrefix, toPosixPath, } from "audit-tools/shared";
|
|
2
3
|
const NO_OP = {
|
|
3
4
|
ran: false,
|
|
4
5
|
head: null,
|
|
@@ -86,7 +87,7 @@ function spanPresence(content, quoted) {
|
|
|
86
87
|
* possible.
|
|
87
88
|
*/
|
|
88
89
|
async function determine(params) {
|
|
89
|
-
const { root, head, base, corpus, finding, readAtRef } = params;
|
|
90
|
+
const { root, head, base, dirtyAtBase, corpus, finding, readAtRef } = params;
|
|
90
91
|
const anchor = anchorFor(finding);
|
|
91
92
|
if (!anchor) {
|
|
92
93
|
// Too little evidence to decide. Stated, never guessed at: this is the
|
|
@@ -99,6 +100,19 @@ async function determine(params) {
|
|
|
99
100
|
if (!file) {
|
|
100
101
|
return { withheld: `cited path '${anchor.path}' does not resolve to a tracked file` };
|
|
101
102
|
}
|
|
103
|
+
// A MEMBERSHIP test between two spellings of one file, so both sides go through
|
|
104
|
+
// the one membership normalizer (`normalizeRepoPath`: posix, a leading `./`
|
|
105
|
+
// stripped, case-folded). Folding case can only over-match, and an over-match
|
|
106
|
+
// is a withhold — the safe direction for a check that exists to stop a verdict.
|
|
107
|
+
if (dirtyAtBase.has(normalizeRepoPath(file))) {
|
|
108
|
+
// Checked BEFORE any read: the blob at B is not what the audit read for
|
|
109
|
+
// this file, so neither "present at B" nor "absent at B" says anything
|
|
110
|
+
// about the span the finding quoted.
|
|
111
|
+
return {
|
|
112
|
+
withheld: `the audit read an uncommitted version of '${file}' (it is listed in audit_read.dirty_paths), ` +
|
|
113
|
+
`so the blob at the audit-read commit ${base.slice(0, 12)} is not what the audit read`,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
102
116
|
const shortHead = head.slice(0, 12);
|
|
103
117
|
const baseContent = await readAtRef(root, base, file);
|
|
104
118
|
if (baseContent === undefined) {
|
|
@@ -199,26 +213,38 @@ export async function verifyHeadEvidenceAgainstFindings(params) {
|
|
|
199
213
|
if (head === null) {
|
|
200
214
|
return withholdAll(null, "no resolvable HEAD — a read-at-HEAD determination cannot be made");
|
|
201
215
|
}
|
|
202
|
-
// B is
|
|
203
|
-
//
|
|
204
|
-
//
|
|
205
|
-
//
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
const base = overrides?.findingBase?.commit;
|
|
209
|
-
if (base === undefined) {
|
|
216
|
+
// B is RECORDED STATE, never a guess, and it is validated before it is used:
|
|
217
|
+
// the value was read back from persisted state, so its shape is checked HERE,
|
|
218
|
+
// at the read, rather than trusted because a type says so. A malformed record
|
|
219
|
+
// is answered exactly like an absent one — no commit is known.
|
|
220
|
+
const auditRead = auditReadOf(state.plan);
|
|
221
|
+
if (auditRead === null) {
|
|
210
222
|
return withholdAll(head, "no audit-read commit is recorded for these findings, so neither a verification nor a refutation can be determined");
|
|
211
223
|
}
|
|
224
|
+
// A recorded commit that does not resolve in THIS repo (a shallow clone, a
|
|
225
|
+
// report produced in another clone) is not a read the leg can honestly
|
|
226
|
+
// attribute a triple to, so it is refused as unknown rather than handed to
|
|
227
|
+
// `git show`.
|
|
228
|
+
const base = auditRead.commit;
|
|
212
229
|
if (!(await gitRefExists(root, base))) {
|
|
213
|
-
return withholdAll(head, `the
|
|
230
|
+
return withholdAll(head, `the recorded audit-read commit '${base}' does not resolve to a commit in this repository`);
|
|
214
231
|
}
|
|
232
|
+
const dirtyAtBase = new Set(auditRead.dirty_paths.map((path) => normalizeRepoPath(path)));
|
|
215
233
|
const corpus = await enumerateTrackedFilePaths(root);
|
|
216
234
|
const readAtRef = overrides?.readAtRef ??
|
|
217
235
|
((readRoot, ref, file) => fileContentAtRef(readRoot, ref, file));
|
|
218
236
|
const recorded = {};
|
|
219
237
|
const withheld = [];
|
|
220
238
|
for (const { item, finding } of candidates) {
|
|
221
|
-
const verdict = await determine({
|
|
239
|
+
const verdict = await determine({
|
|
240
|
+
root,
|
|
241
|
+
head,
|
|
242
|
+
base,
|
|
243
|
+
dirtyAtBase,
|
|
244
|
+
corpus,
|
|
245
|
+
finding,
|
|
246
|
+
readAtRef,
|
|
247
|
+
});
|
|
222
248
|
if ("withheld" in verdict) {
|
|
223
249
|
withheld.push({
|
|
224
250
|
finding_id: finding.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeVerifyHeadEvidence.js","sourceRoot":"","sources":["../../../src/remediate/phases/closeVerifyHeadEvidence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,4BAA4B,EAC5B,sBAAsB,EACtB,WAAW,GACZ,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"closeVerifyHeadEvidence.js","sourceRoot":"","sources":["../../../src/remediate/phases/closeVerifyHeadEvidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ProjectTestAdmissionOutcome } from "audit-tools/shared";
|
|
2
|
+
/**
|
|
3
|
+
* THE LANDING-GATE CLOSE LEG.
|
|
4
|
+
*
|
|
5
|
+
* The per-item required tests are the block's own `targeted_commands`, which are
|
|
6
|
+
* MODULE-SCOPED: a block that edits one module declares the command that
|
|
7
|
+
* exercises that module. Three remediation landings reddened CI after green
|
|
8
|
+
* per-item runs, each on a gate no module-scoped command covers — a hand-
|
|
9
|
+
* restated `.audit-tools` literal caught only by the tree-wide path-guard suite
|
|
10
|
+
* (`1e7a4a54`), a case-folding assertion true only on a case-insensitive volume
|
|
11
|
+
* (`011c6ae0`), and an intra-`src/shared` import cycle `check:depgraph` refuses
|
|
12
|
+
* (`b5963957`). So a landing must run the repository's landing gates too.
|
|
13
|
+
*
|
|
14
|
+
* ⚠ WHY THIS IS A CLOSE LEG AND NOT A PER-ITEM REQUIRED TEST — read this before
|
|
15
|
+
* moving it back. `check:deadcode`, `check:depgraph`, lint and the id-glossary
|
|
16
|
+
* gate state facts about the WHOLE tree, so the boundary that OWNS them is the
|
|
17
|
+
* merged tree, which exists only after every item has landed. Folding them into
|
|
18
|
+
* each item's `required_tests` (the first attempt) refused a wave item whose
|
|
19
|
+
* added export had no consumer until a LATER item landed: no edit inside that
|
|
20
|
+
* item's scope could make the gate pass, and another item's fault could refuse
|
|
21
|
+
* this one. That is a gate guessing at a boundary owned by something else;
|
|
22
|
+
* CLAUDE.md, *A gate states the boundary it OWNS* says move it to the boundary
|
|
23
|
+
* that owns it. Precedent for the shape: {@link verifyAnalyzerLeads} is a
|
|
24
|
+
* close-gate verify leg, never a `CLOSING_ACTIONS` entry.
|
|
25
|
+
*
|
|
26
|
+
* Discovery reads the TARGET repository's `package.json` scripts. This tool runs
|
|
27
|
+
* against arbitrary repositories, so the gate set is never baked in; a
|
|
28
|
+
* repository with another build system contributes no gate at all and the report
|
|
29
|
+
* says so.
|
|
30
|
+
*/
|
|
31
|
+
export interface LandingGateOutcome {
|
|
32
|
+
/**
|
|
33
|
+
* The gate command, as discovered. Empty when the repository declares none —
|
|
34
|
+
* in which case `ran` is false and the report states the absence.
|
|
35
|
+
*/
|
|
36
|
+
command: string;
|
|
37
|
+
/** The one-line statement of what the gate refuses (from the shared vocabulary). */
|
|
38
|
+
refuses: string | null;
|
|
39
|
+
passed: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Tail of the gate's combined output, populated only on failure. Bounded by
|
|
42
|
+
* `FAILURE_OUTPUT_TAIL_CHARS` — the same bound the combined-suite and e2e legs
|
|
43
|
+
* use, so no one leg can flood the report.
|
|
44
|
+
*/
|
|
45
|
+
output: string;
|
|
46
|
+
/** True when the gate could not be SPAWNED or was refused admission. */
|
|
47
|
+
spawn_error?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface LandingGateVerifyOutcome {
|
|
50
|
+
/** The discovered gate commands, in the vocabulary's role order. */
|
|
51
|
+
commands: string[];
|
|
52
|
+
/** One result per discovered gate. Empty when `commands` is empty. */
|
|
53
|
+
gates: LandingGateOutcome[];
|
|
54
|
+
/**
|
|
55
|
+
* False when the gate ran and exited 0. Vacuously true for a repository that
|
|
56
|
+
* declares no landing gate — the same "never-ran is not a red" rule
|
|
57
|
+
* `CombinedTestResult.passed` follows, and `commands` being empty is what
|
|
58
|
+
* tells a reader the difference.
|
|
59
|
+
*/
|
|
60
|
+
passed: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Test-injectable seam for the spawn; production passes nothing. */
|
|
63
|
+
export interface LandingGateVerifyOverrides {
|
|
64
|
+
run?: (command: string[], root: string, options: {
|
|
65
|
+
timeoutMs: number;
|
|
66
|
+
}) => Promise<ProjectTestAdmissionOutcome>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Run each of the repository's declared landing gates ONCE on the merged tree
|
|
70
|
+
* at `root`, through the SAME admission path the project-facts test and e2e
|
|
71
|
+
* commands use — never a raw spawn. A landing gate is admitted iff
|
|
72
|
+
* `discoverLandingGates(root)` emits it, exactly as a test/e2e command is
|
|
73
|
+
* admitted iff `discoverProjectCommands(root)` emits it; a gate that discovery
|
|
74
|
+
* did not emit is REFUSED, never run.
|
|
75
|
+
*
|
|
76
|
+
* Sequential, not concurrent: these are release gates whose failures are read
|
|
77
|
+
* together, and running them in parallel would interleave their output tails
|
|
78
|
+
* into an unreadable report while multiplying peak memory.
|
|
79
|
+
*/
|
|
80
|
+
export declare function verifyLandingGates(params: {
|
|
81
|
+
root: string;
|
|
82
|
+
timeoutMs: number;
|
|
83
|
+
overrides?: LandingGateVerifyOverrides;
|
|
84
|
+
}): Promise<LandingGateVerifyOutcome>;
|
|
85
|
+
//# sourceMappingURL=closeVerifyLandingGates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closeVerifyLandingGates.d.ts","sourceRoot":"","sources":["../../../src/remediate/phases/closeVerifyLandingGates.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qEAAqE;AACrE,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,CACJ,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KAC3B,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,0BAA0B,CAAC;CACxC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA4BpC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// sites-pinned: tests/remediate/landing-gates-close.test.ts
|
|
2
|
+
// The close leg's discovery→spawn→verdict path (each gate run once, a red
|
|
3
|
+
// gate not green) is pinned by that suite, which drives the real close. The
|
|
4
|
+
// admission claim in the doc-comment below — that the gates go through the
|
|
5
|
+
// SAME admission path the project-facts test and e2e commands use — is pinned
|
|
6
|
+
// by "runs the REAL default runner", the one test in that file that passes NO
|
|
7
|
+
// override and so reaches the default runner with its timeout bound.
|
|
8
|
+
import { discoverLandingGates, landingGateRefusal, runAdmittedProjectLandingGateCommand, } from "audit-tools/shared";
|
|
9
|
+
import { FAILURE_OUTPUT_TAIL_CHARS } from "./constants.js";
|
|
10
|
+
/**
|
|
11
|
+
* Run each of the repository's declared landing gates ONCE on the merged tree
|
|
12
|
+
* at `root`, through the SAME admission path the project-facts test and e2e
|
|
13
|
+
* commands use — never a raw spawn. A landing gate is admitted iff
|
|
14
|
+
* `discoverLandingGates(root)` emits it, exactly as a test/e2e command is
|
|
15
|
+
* admitted iff `discoverProjectCommands(root)` emits it; a gate that discovery
|
|
16
|
+
* did not emit is REFUSED, never run.
|
|
17
|
+
*
|
|
18
|
+
* Sequential, not concurrent: these are release gates whose failures are read
|
|
19
|
+
* together, and running them in parallel would interleave their output tails
|
|
20
|
+
* into an unreadable report while multiplying peak memory.
|
|
21
|
+
*/
|
|
22
|
+
export async function verifyLandingGates(params) {
|
|
23
|
+
const { root, timeoutMs } = params;
|
|
24
|
+
const run = params.overrides?.run ?? runAdmittedProjectLandingGateCommand;
|
|
25
|
+
const commands = discoverLandingGates(root);
|
|
26
|
+
if (commands.length === 0) {
|
|
27
|
+
return { commands, gates: [], passed: true };
|
|
28
|
+
}
|
|
29
|
+
const gates = [];
|
|
30
|
+
for (const command of commands) {
|
|
31
|
+
const outcome = await run(command.split(" "), root, { timeoutMs });
|
|
32
|
+
const passed = outcome.admitted && outcome.exit_code === 0 && !outcome.timed_out && !outcome.spawn_error;
|
|
33
|
+
gates.push({
|
|
34
|
+
command,
|
|
35
|
+
refuses: landingGateRefusal(command),
|
|
36
|
+
passed,
|
|
37
|
+
output: passed
|
|
38
|
+
? ""
|
|
39
|
+
: (outcome.spawn_error ?? outcome.output).trim().slice(-FAILURE_OUTPUT_TAIL_CHARS) ||
|
|
40
|
+
(outcome.timed_out
|
|
41
|
+
? `landing gate timed out after ${timeoutMs}ms`
|
|
42
|
+
: "landing gate failed without output"),
|
|
43
|
+
...(outcome.admitted ? {} : { spawn_error: outcome.refusal_reason ?? "refused" }),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return { commands, gates, passed: gates.every((gate) => gate.passed) };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=closeVerifyLandingGates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closeVerifyLandingGates.js","sourceRoot":"","sources":["../../../src/remediate/phases/closeVerifyLandingGates.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,uEAAuE;AACvE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AA0E3D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAIxC;IACC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,oCAAoC,CAAC;IAC1E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC;YACT,OAAO;YACP,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC;YACpC,MAAM;YACN,MAAM,EAAE,MAAM;gBACZ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC;oBAChF,CAAC,OAAO,CAAC,SAAS;wBAChB,CAAC,CAAC,gCAAgC,SAAS,IAAI;wBAC/C,CAAC,CAAC,oCAAoC,CAAC;YAC7C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC;SAClF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -523,6 +523,25 @@ export declare const RemediationPlanSchema: z.ZodObject<{
|
|
|
523
523
|
root_cause: string;
|
|
524
524
|
suggested_fix_pattern: string;
|
|
525
525
|
}>, "many">>;
|
|
526
|
+
/**
|
|
527
|
+
* What the AUDIT read (`AuditRead`), stamped by the TOOL at plan application
|
|
528
|
+
* from the validated source findings report — never taken from the
|
|
529
|
+
* host-writable extracted plan. It is the `B` of the close phase's two-read
|
|
530
|
+
* evidence leg (`verifyHeadEvidenceAgainstFindings`). `null` and absent both
|
|
531
|
+
* mean "no commit is known" (absent only on a state persisted before the
|
|
532
|
+
* field existed, or a plan with no audit-side source); either way the leg
|
|
533
|
+
* withholds, and no other commit may stand in.
|
|
534
|
+
*/
|
|
535
|
+
audit_read: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
536
|
+
commit: z.ZodString;
|
|
537
|
+
dirty_paths: z.ZodArray<z.ZodString, "many">;
|
|
538
|
+
}, "strict", z.ZodTypeAny, {
|
|
539
|
+
commit: string;
|
|
540
|
+
dirty_paths: string[];
|
|
541
|
+
}, {
|
|
542
|
+
commit: string;
|
|
543
|
+
dirty_paths: string[];
|
|
544
|
+
}>>>;
|
|
526
545
|
}, "strict", z.ZodTypeAny, {
|
|
527
546
|
findings: {
|
|
528
547
|
id: string;
|
|
@@ -587,7 +606,7 @@ export declare const RemediationPlanSchema: z.ZodObject<{
|
|
|
587
606
|
confirmation: "lead";
|
|
588
607
|
} | undefined;
|
|
589
608
|
}[];
|
|
590
|
-
candidate_closing_actions: ("push" | "custom" | "
|
|
609
|
+
candidate_closing_actions: ("push" | "custom" | "commit" | "none" | "open-pr" | "publish" | "tag")[];
|
|
591
610
|
project_type: string;
|
|
592
611
|
blocks: {
|
|
593
612
|
items: string[];
|
|
@@ -612,6 +631,10 @@ export declare const RemediationPlanSchema: z.ZodObject<{
|
|
|
612
631
|
root_cause: string;
|
|
613
632
|
suggested_fix_pattern: string;
|
|
614
633
|
}[] | undefined;
|
|
634
|
+
audit_read?: {
|
|
635
|
+
commit: string;
|
|
636
|
+
dirty_paths: string[];
|
|
637
|
+
} | null | undefined;
|
|
615
638
|
source?: string | undefined;
|
|
616
639
|
goal_id?: string | undefined;
|
|
617
640
|
test_command?: string | undefined;
|
|
@@ -683,7 +706,7 @@ export declare const RemediationPlanSchema: z.ZodObject<{
|
|
|
683
706
|
confirmation: "lead";
|
|
684
707
|
} | undefined;
|
|
685
708
|
}[];
|
|
686
|
-
candidate_closing_actions: ("push" | "custom" | "
|
|
709
|
+
candidate_closing_actions: ("push" | "custom" | "commit" | "none" | "open-pr" | "publish" | "tag")[];
|
|
687
710
|
project_type: string;
|
|
688
711
|
blocks: {
|
|
689
712
|
items: string[];
|
|
@@ -708,6 +731,10 @@ export declare const RemediationPlanSchema: z.ZodObject<{
|
|
|
708
731
|
root_cause: string;
|
|
709
732
|
suggested_fix_pattern: string;
|
|
710
733
|
}[] | undefined;
|
|
734
|
+
audit_read?: {
|
|
735
|
+
commit: string;
|
|
736
|
+
dirty_paths: string[];
|
|
737
|
+
} | null | undefined;
|
|
711
738
|
source?: string | undefined;
|
|
712
739
|
goal_id?: string | undefined;
|
|
713
740
|
test_command?: string | undefined;
|
|
@@ -848,7 +875,7 @@ export declare const ClosingPlanSchema: z.ZodObject<{
|
|
|
848
875
|
leftover_files?: string[] | undefined;
|
|
849
876
|
}>>;
|
|
850
877
|
}, "strict", z.ZodTypeAny, {
|
|
851
|
-
action: "push" | "custom" | "
|
|
878
|
+
action: "push" | "custom" | "commit" | "none" | "open-pr" | "publish" | "tag";
|
|
852
879
|
custom_command?: string[] | undefined;
|
|
853
880
|
pre_authorized?: boolean | undefined;
|
|
854
881
|
closing_action_preview?: {
|
|
@@ -857,7 +884,7 @@ export declare const ClosingPlanSchema: z.ZodObject<{
|
|
|
857
884
|
leftover_files?: string[] | undefined;
|
|
858
885
|
} | undefined;
|
|
859
886
|
}, {
|
|
860
|
-
action: "push" | "custom" | "
|
|
887
|
+
action: "push" | "custom" | "commit" | "none" | "open-pr" | "publish" | "tag";
|
|
861
888
|
custom_command?: string[] | undefined;
|
|
862
889
|
pre_authorized?: boolean | undefined;
|
|
863
890
|
closing_action_preview?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
// sites-pinned: tests/remediate/audit-read-plan-stamp.test.ts
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
import { CLOSING_ACTIONS } from "audit-tools/shared";
|
|
3
|
-
import { FindingSchema, FindingThemeSchema } from "audit-tools/shared";
|
|
4
|
+
import { AuditReadSchema, FindingSchema, FindingThemeSchema } from "audit-tools/shared";
|
|
4
5
|
export const RemediationBlockSchema = z
|
|
5
6
|
.object({
|
|
6
7
|
block_id: z.string(),
|
|
@@ -91,6 +92,16 @@ export const RemediationPlanSchema = z
|
|
|
91
92
|
.optional(),
|
|
92
93
|
/** Synthesis themes carried from audit-findings.json (Phase 6/7 fix hints). */
|
|
93
94
|
themes: z.array(FindingThemeSchema).optional(),
|
|
95
|
+
/**
|
|
96
|
+
* What the AUDIT read (`AuditRead`), stamped by the TOOL at plan application
|
|
97
|
+
* from the validated source findings report — never taken from the
|
|
98
|
+
* host-writable extracted plan. It is the `B` of the close phase's two-read
|
|
99
|
+
* evidence leg (`verifyHeadEvidenceAgainstFindings`). `null` and absent both
|
|
100
|
+
* mean "no commit is known" (absent only on a state persisted before the
|
|
101
|
+
* field existed, or a plan with no audit-side source); either way the leg
|
|
102
|
+
* withholds, and no other commit may stand in.
|
|
103
|
+
*/
|
|
104
|
+
audit_read: AuditReadSchema.nullable().optional(),
|
|
94
105
|
})
|
|
95
106
|
.strict();
|
|
96
107
|
/**
|
|
@@ -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;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAYrD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ValidationIssue, type JudgeReport, type WorkBlock, type WorkBlockSeam } from "audit-tools/shared";
|
|
1
|
+
import { type ValidationIssue, type JudgeReport, type WorkBlock, type WorkBlockSeam, type AuditRead } from "audit-tools/shared";
|
|
2
2
|
import { OBLIGATION_KIND_PRIORITY, type ObligationKind } from "../contractPipeline/obligationKinds.js";
|
|
3
3
|
import { readIntakeRiskSignal, type AdversarialDepth } from "../riskSignal.js";
|
|
4
4
|
import type { JudgeRepairTarget } from "audit-tools/shared";
|
|
@@ -569,6 +569,28 @@ export declare function collectDagWriteScopeRefusals(artifactsDir: string, root:
|
|
|
569
569
|
* axis (or Path A is not in play at all).
|
|
570
570
|
*/
|
|
571
571
|
export declare function collectPathARefusals(artifactsDir: string): Promise<string[]>;
|
|
572
|
+
/**
|
|
573
|
+
* What the AUDIT read, for the run whose Path-A seed lives in `artifactsDir` —
|
|
574
|
+
* the value plan application stamps onto `state.plan.audit_read`.
|
|
575
|
+
*
|
|
576
|
+
* Read by the TOOL from the seed's own source report, which passed the strict
|
|
577
|
+
* shared validator (`projectApprovedFindings`) before it may answer. It never
|
|
578
|
+
* rides `extracted-plan.json`: that file is host-writable, and the close
|
|
579
|
+
* phase's evidence leg turns this commit into terminal dispositions, so a
|
|
580
|
+
* host-supplied value would let a host author its own `refuted`.
|
|
581
|
+
*
|
|
582
|
+
* BOUND TO THE SEED'S OWN DIGEST. The seed recorded a sha256 of the source
|
|
583
|
+
* report when it was built (`source_digests`); the bytes read here must hash to
|
|
584
|
+
* it, so a report swapped afterwards — even for another VALID report — answers
|
|
585
|
+
* `null`. The file is read ONCE and the same bytes are hashed and parsed. A seed
|
|
586
|
+
* that carries no digest for its source binds nothing, and an unbound commit is
|
|
587
|
+
* not one this function will vouch for.
|
|
588
|
+
*
|
|
589
|
+
* `null` — "no commit is known" — when there is no seed (the run did not start
|
|
590
|
+
* from a findings report), the source is unbound, changed, unreadable or
|
|
591
|
+
* invalid, or the report itself states `null`.
|
|
592
|
+
*/
|
|
593
|
+
export declare function readSeedAuditRead(artifactsDir: string): Promise<AuditRead | null>;
|
|
572
594
|
/**
|
|
573
595
|
* Convert a completed ImplementationDAG into the extracted-plan.json format
|
|
574
596
|
* that the existing handlePendingExtractedPlan/applyPlanPipeline path consumes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/contractPipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/contractPipeline.ts"],"names":[],"mappings":"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"}
|