audit-tools 0.51.9 → 0.51.11
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/resultBaseline.d.ts +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 +72 -8
- package/dist/remediate/phases/close.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/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +75 -9
- 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/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/index.d.ts +3 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -1
- 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/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/docs/audit-pkg/product.md +2 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectTestAdmission.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/projectTestAdmission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectTestAdmission.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/projectTestAdmission.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,QAAc,CAAC;AAEnD,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,QAAkB,CAAC;AAEhE,MAAM,WAAW,2BAA2B;IAC1C,qGAAqG;IACrG,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;AA6BD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAErF;AA0HD,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GACL,OAAO,CAAC,2BAA2B,CAAC,CAEtC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GACL,OAAO,CAAC,2BAA2B,CAAC,CAEtC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GACL,OAAO,CAAC,2BAA2B,CAAC,CAEtC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// sites-pinned: tests/remediate/landing-gates-close.test.ts
|
|
2
|
+
// The `landing-gate` role addition (admit a command only when discovery emits
|
|
3
|
+
// it, same spawn path as test/e2e) is pinned by the landing-gate close suite,
|
|
4
|
+
// which drives the leg through this runner.
|
|
1
5
|
import { spawn } from "node:child_process";
|
|
2
6
|
import { discoverProjectCommands } from "./testCommand.js";
|
|
7
|
+
import { discoverLandingGates } from "./landingGates.js";
|
|
3
8
|
import { resolveExecArgv, stripAuditToolsControlEnv } from "./exec.js";
|
|
4
9
|
/**
|
|
5
10
|
* The project-test admission gate (CP-NODE-4 obligation 3 / seam_adjustments[2]).
|
|
@@ -48,12 +53,22 @@ export const PROJECT_TEST_SIGKILL_GRACE_MS = 5_000;
|
|
|
48
53
|
*/
|
|
49
54
|
export const PROJECT_TEST_MAX_CAPTURED_OUTPUT = 4 * 1024 * 1024;
|
|
50
55
|
/**
|
|
51
|
-
* Admit ONLY
|
|
52
|
-
* return right now for `root` — never a
|
|
53
|
-
* project files are the sole source of
|
|
54
|
-
* total: no spawn, no throw.
|
|
56
|
+
* Admit ONLY a command {@link discoverProjectCommands} /
|
|
57
|
+
* {@link discoverLandingGates} would return right now for `root` — never a
|
|
58
|
+
* static table, so the repository's own project files are the sole source of
|
|
59
|
+
* truth for what is admitted. Pure and total: no spawn, no throw.
|
|
60
|
+
*
|
|
61
|
+
* `landing-gate` is the one role with MORE than one admitted command (a repo
|
|
62
|
+
* declares up to five gate scripts), so it admits by SET MEMBERSHIP rather than
|
|
63
|
+
* by matching one vector. The rule is otherwise identical, and it is why a gate
|
|
64
|
+
* command is never shell-interpolated from a caller's string: only a command
|
|
65
|
+
* discovery itself emitted can be spawned, so the admission surface is exactly
|
|
66
|
+
* the repository's own declared script names.
|
|
55
67
|
*/
|
|
56
68
|
function isAdmittedProjectCommand(command, root, role) {
|
|
69
|
+
if (role === "landing-gate") {
|
|
70
|
+
return discoverLandingGates(root).includes(command.join(" "));
|
|
71
|
+
}
|
|
57
72
|
const discovered = discoverProjectCommands(root)[role];
|
|
58
73
|
if (!discovered || discovered.length === 0)
|
|
59
74
|
return false;
|
|
@@ -117,16 +132,51 @@ function runAdmittedProjectCommand(command, root, options = {}, role = "test") {
|
|
|
117
132
|
child.stdout?.on("data", capture);
|
|
118
133
|
child.stderr?.on("data", capture);
|
|
119
134
|
let timedOut = false;
|
|
135
|
+
let settled = false;
|
|
136
|
+
const settle = (outcome) => {
|
|
137
|
+
if (settled)
|
|
138
|
+
return;
|
|
139
|
+
settled = true;
|
|
140
|
+
clearTimeout(timer);
|
|
141
|
+
if (escalation)
|
|
142
|
+
clearTimeout(escalation);
|
|
143
|
+
resolvePromise(outcome);
|
|
144
|
+
};
|
|
145
|
+
// THE DEADLINE IS TERMINAL, which is not the same as "we sent a SIGKILL".
|
|
146
|
+
// The kill alone bounds nothing: on Windows the admitted vector is the
|
|
147
|
+
// `cmd.exe /d /s /c "npm.cmd …"` shim `resolveExecArgv` produces, so the
|
|
148
|
+
// direct child is the SHELL — SIGTERM kills cmd.exe and leaves npm.cmd/node
|
|
149
|
+
// alive holding the inherited stdout pipe, so `close` never fires and a
|
|
150
|
+
// caller awaiting this promise waits out the child's own runtime and then
|
|
151
|
+
// some (measured: a 1500ms `timeoutMs` against a 20s script resolved at
|
|
152
|
+
// 20274ms, long past the 5s grace). Every leg that awaits this runner — the
|
|
153
|
+
// landing gates, the project-facts test and the e2e command — would hang the
|
|
154
|
+
// CLOSE fold instead of reporting a `timed_out` gate, which is the failure
|
|
155
|
+
// this bound exists to make impossible. So the silence after SIGKILL is
|
|
156
|
+
// itself an outcome: `runTrackedAsync` (exec.ts) resolves on the same
|
|
157
|
+
// reasoning, and a child that ignores both signals must not be able to hold
|
|
158
|
+
// a caller forever.
|
|
159
|
+
let escalation = null;
|
|
120
160
|
const timer = setTimeout(() => {
|
|
121
161
|
timedOut = true;
|
|
122
162
|
child.kill("SIGTERM");
|
|
123
|
-
|
|
124
|
-
|
|
163
|
+
escalation = setTimeout(() => {
|
|
164
|
+
child.kill("SIGKILL");
|
|
165
|
+
settle({
|
|
166
|
+
admitted: true,
|
|
167
|
+
exit_code: null,
|
|
168
|
+
timed_out: true,
|
|
169
|
+
truncated,
|
|
170
|
+
spawn_error: `the command exceeded its ${String(timeoutMs)}ms deadline, survived the ` +
|
|
171
|
+
`${String(sigkillGraceMs)}ms SIGTERM grace and did not exit under SIGKILL`,
|
|
172
|
+
output,
|
|
173
|
+
});
|
|
174
|
+
}, sigkillGraceMs);
|
|
175
|
+
escalation.unref?.();
|
|
125
176
|
}, timeoutMs);
|
|
126
177
|
timer.unref?.();
|
|
127
178
|
child.on("error", (error) => {
|
|
128
|
-
|
|
129
|
-
resolvePromise({
|
|
179
|
+
settle({
|
|
130
180
|
admitted: true,
|
|
131
181
|
exit_code: null,
|
|
132
182
|
timed_out: timedOut,
|
|
@@ -136,8 +186,7 @@ function runAdmittedProjectCommand(command, root, options = {}, role = "test") {
|
|
|
136
186
|
});
|
|
137
187
|
});
|
|
138
188
|
child.on("close", (code) => {
|
|
139
|
-
|
|
140
|
-
resolvePromise({ admitted: true, exit_code: code, timed_out: timedOut, truncated, output });
|
|
189
|
+
settle({ admitted: true, exit_code: code, timed_out: timedOut, truncated, output });
|
|
141
190
|
});
|
|
142
191
|
});
|
|
143
192
|
}
|
|
@@ -147,4 +196,18 @@ export function runAdmittedProjectTestCommand(command, root, options = {}) {
|
|
|
147
196
|
export function runAdmittedProjectE2eCommand(command, root, options = {}) {
|
|
148
197
|
return runAdmittedProjectCommand(command, root, options, "e2e");
|
|
149
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Run one of the repository's discovered LANDING GATES under the same gate.
|
|
201
|
+
*
|
|
202
|
+
* The landing-gate leg runs at the CLOSE, on the merged tree — see
|
|
203
|
+
* `verifyLandingGates` in `src/remediate/phases/closeVerifyLandingGates.ts`. It
|
|
204
|
+
* is a different role from test/e2e only in what discovery emits: one vector
|
|
205
|
+
* for those, a set of up to five gate commands for this. The admission rule and
|
|
206
|
+
* every spawn bound are the SAME, which is the point — a gate is a discovered
|
|
207
|
+
* project command like any other, and adding a second spawn path for it would
|
|
208
|
+
* be a second place for the shell-safety and output-cap rules to drift.
|
|
209
|
+
*/
|
|
210
|
+
export function runAdmittedProjectLandingGateCommand(command, root, options = {}) {
|
|
211
|
+
return runAdmittedProjectCommand(command, root, options, "landing-gate");
|
|
212
|
+
}
|
|
150
213
|
//# sourceMappingURL=projectTestAdmission.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectTestAdmission.js","sourceRoot":"","sources":["../../../src/shared/tooling/projectTestAdmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAEnD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBhE
|
|
1
|
+
{"version":3,"file":"projectTestAdmission.js","sourceRoot":"","sources":["../../../src/shared/tooling/projectTestAdmission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testCommand.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/testCommand.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"testCommand.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/testCommand.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAoFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,MAA+B,GACvC,OAAO,CA4BT;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAmCrE"}
|
|
@@ -2,6 +2,16 @@ import { existsSync, readFileSync, statSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
// npm script names, in preference order, for each command role.
|
|
4
4
|
//
|
|
5
|
+
// ⚠ THIS VOCABULARY IS `package.json` SCRIPTS ONLY. A repository whose build
|
|
6
|
+
// system is not npm — Cargo, Make, Gradle, a bare shell script — declares none
|
|
7
|
+
// of these names, so `pickScript` finds nothing and the role is ABSENT from
|
|
8
|
+
// `discoverProjectCommands`' result. That is the honest answer for these roles
|
|
9
|
+
// (there is no portable way to read another ecosystem's target names), but it
|
|
10
|
+
// means "no e2e/build/lint command" is a statement about `package.json`, not
|
|
11
|
+
// about whether the repository has one. `discoverProjectCommands` does fall
|
|
12
|
+
// through to Go and Python for the TEST role alone (see its own doc comment);
|
|
13
|
+
// no other role has a non-npm arm.
|
|
14
|
+
//
|
|
5
15
|
// Ordering is significant: pickScript() returns the FIRST match, so entries
|
|
6
16
|
// earlier in the list win over later ones.
|
|
7
17
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testCommand.js","sourceRoot":"","sources":["../../../src/shared/tooling/testCommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testCommand.js","sourceRoot":"","sources":["../../../src/shared/tooling/testCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,10 +97,8 @@ Graph evidence is tiered, strongest first:
|
|
|
97
97
|
- language-agnostic semantic affinity (shared unusual domain terms, nearby
|
|
98
98
|
paths, identifier overlap, embeddings)
|
|
99
99
|
|
|
100
|
-
Semantic affinity
|
|
101
|
-
|
|
102
|
-
because common tokens (`user`, `request`, `client`, `config`, `error`) connect
|
|
103
|
-
unrelated code.
|
|
100
|
+
Semantic affinity is the weakest tier by conviction: see *Three analyzer convictions have ONE
|
|
101
|
+
home* in `CLAUDE.md` (standing decisions) for what it may and may not decide.
|
|
104
102
|
|
|
105
103
|
The fallback must stay useful even when a language has no deep analyzer:
|
|
106
104
|
manifests, path structure, tests, config, and external analyzer output can seed a
|