audit-tools 0.45.0 → 0.46.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/README.md +15 -2
- package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterExtractionPrompt.js +11 -1
- package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
- package/dist/audit/cli/cleanupCommand.d.ts +25 -0
- package/dist/audit/cli/cleanupCommand.d.ts.map +1 -1
- package/dist/audit/cli/cleanupCommand.js +69 -0
- package/dist/audit/cli/cleanupCommand.js.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +52 -76
- package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
- package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
- package/dist/audit/cli/fanoutLanes.js +6 -1
- package/dist/audit/cli/fanoutLanes.js.map +1 -1
- package/dist/audit/cli/laneSubmissions.d.ts +13 -0
- package/dist/audit/cli/laneSubmissions.d.ts.map +1 -1
- package/dist/audit/cli/laneSubmissions.js +38 -27
- package/dist/audit/cli/laneSubmissions.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +8 -6
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +3 -2
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +37 -35
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/reviewRun.d.ts +1 -1
- package/dist/audit/cli/reviewRun.d.ts.map +1 -1
- package/dist/audit/cli/reviewRun.js +2 -9
- package/dist/audit/cli/reviewRun.js.map +1 -1
- package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
- package/dist/audit/cli/sampleRunCommand.js +12 -1
- package/dist/audit/cli/sampleRunCommand.js.map +1 -1
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.js +9 -1
- package/dist/audit/cli/semanticReviewStep.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +6 -6
- package/dist/audit/contracts/workerSchemas.d.ts +36 -26
- package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
- package/dist/audit/contracts/workerSchemas.js +11 -1
- package/dist/audit/contracts/workerSchemas.js.map +1 -1
- package/dist/audit/contracts/wrapperResponse.d.ts +52 -28
- package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -1
- package/dist/audit/contracts/wrapperResponse.js +8 -5
- package/dist/audit/contracts/wrapperResponse.js.map +1 -1
- package/dist/audit/decompose/sources.d.ts.map +1 -1
- package/dist/audit/decompose/sources.js +21 -5
- package/dist/audit/decompose/sources.js.map +1 -1
- package/dist/audit/extractors/analyzers/registry.d.ts +8 -5
- package/dist/audit/extractors/analyzers/registry.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/registry.js +28 -7
- package/dist/audit/extractors/analyzers/registry.js.map +1 -1
- package/dist/audit/extractors/designAssessment.js +1 -1
- package/dist/audit/extractors/gitHistory.d.ts +1 -1
- package/dist/audit/extractors/gitHistory.js +1 -1
- package/dist/audit/extractors/graph.d.ts +1 -1
- package/dist/audit/extractors/graph.js +1 -1
- package/dist/audit/extractors/risk.d.ts +1 -1
- package/dist/audit/extractors/risk.js +1 -1
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +5 -5
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.d.ts +11 -6
- package/dist/audit/orchestrator/acquisitionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.js +1 -1
- package/dist/audit/orchestrator/acquisitionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/advance.d.ts +14 -10
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +49 -24
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +14 -0
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/autoFixExecutor.d.ts +20 -1
- package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/autoFixExecutor.js +77 -15
- package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -1
- package/dist/audit/orchestrator/dependencyMap.js +1 -1
- package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +18 -4
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/executors.d.ts +54 -0
- package/dist/audit/orchestrator/executors.d.ts.map +1 -1
- package/dist/audit/orchestrator/executors.js +352 -0
- package/dist/audit/orchestrator/executors.js.map +1 -1
- package/dist/audit/orchestrator/hostInputPause.d.ts +20 -11
- package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -1
- package/dist/audit/orchestrator/hostInputPause.js +17 -11
- package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
- package/dist/audit/orchestrator/localCommands.d.ts +24 -1
- package/dist/audit/orchestrator/localCommands.d.ts.map +1 -1
- package/dist/audit/orchestrator/localCommands.js +44 -9
- package/dist/audit/orchestrator/localCommands.js.map +1 -1
- package/dist/audit/orchestrator/nextStep.d.ts +13 -0
- package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
- package/dist/audit/orchestrator/nextStep.js +13 -0
- package/dist/audit/orchestrator/nextStep.js.map +1 -1
- package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
- package/dist/audit/orchestrator/runtimeCommand.d.ts +32 -1
- package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -1
- package/dist/audit/orchestrator/runtimeCommand.js +90 -3
- package/dist/audit/orchestrator/runtimeCommand.js.map +1 -1
- package/dist/audit/orchestrator/structureExecutors.js +1 -1
- package/dist/audit/orchestrator/structureExecutors.js.map +1 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts +11 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js +25 -9
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.d.ts +0 -1
- package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.js +2 -1
- package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
- package/dist/audit/types.d.ts +18 -18
- package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/derive.js +1 -0
- package/dist/remediate/contractPipeline/derive.js.map +1 -1
- package/dist/remediate/contractPipeline/semanticProjection.d.ts +5 -4
- package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/semanticProjection.js +34 -19
- package/dist/remediate/contractPipeline/semanticProjection.js.map +1 -1
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +3 -2
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/phases/close.d.ts +37 -2
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +100 -31
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +2 -2
- package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -1
- package/dist/remediate/phases/triage.d.ts.map +1 -1
- package/dist/remediate/phases/triage.js +61 -19
- package/dist/remediate/phases/triage.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +13 -0
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +82 -3
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +297 -139
- 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 +37 -7
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/types/options.d.ts +1 -1
- package/dist/shared/analyzers/acquisitionEngine.d.ts +61 -28
- package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.js +83 -24
- package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.d.ts +8 -2
- package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.js +4 -4
- package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
- package/dist/shared/constitutionalDocPaths.d.ts.map +1 -1
- package/dist/shared/constitutionalDocPaths.js +7 -0
- package/dist/shared/constitutionalDocPaths.js.map +1 -1
- package/dist/shared/engine/obligationEngine.d.ts +44 -3
- package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
- package/dist/shared/engine/obligationEngine.js +53 -7
- package/dist/shared/engine/obligationEngine.js.map +1 -1
- package/dist/shared/findings/dedupe.d.ts.map +1 -1
- package/dist/shared/findings/dedupe.js +8 -0
- package/dist/shared/findings/dedupe.js.map +1 -1
- package/dist/shared/friction/frictionRecord.d.ts +42 -2
- package/dist/shared/friction/frictionRecord.d.ts.map +1 -1
- package/dist/shared/friction/frictionRecord.js +111 -3
- package/dist/shared/friction/frictionRecord.js.map +1 -1
- package/dist/shared/friction/triage.d.ts +15 -0
- package/dist/shared/friction/triage.d.ts.map +1 -1
- package/dist/shared/friction/triage.js +33 -2
- package/dist/shared/friction/triage.js.map +1 -1
- package/dist/shared/index.d.ts +13 -9
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +14 -7
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/fileLock.d.ts.map +1 -1
- package/dist/shared/io/fileLock.js +22 -3
- package/dist/shared/io/fileLock.js.map +1 -1
- package/dist/shared/io/frictionCapture.d.ts +73 -19
- package/dist/shared/io/frictionCapture.d.ts.map +1 -1
- package/dist/shared/io/frictionCapture.js +21 -30
- package/dist/shared/io/frictionCapture.js.map +1 -1
- package/dist/shared/io/lockedJsonStore.d.ts +24 -3
- package/dist/shared/io/lockedJsonStore.d.ts.map +1 -1
- package/dist/shared/io/lockedJsonStore.js +35 -7
- package/dist/shared/io/lockedJsonStore.js.map +1 -1
- package/dist/shared/io/stepContractWriter.d.ts +3 -3
- package/dist/shared/io/stepContractWriter.d.ts.map +1 -1
- package/dist/shared/io/stepContractWriter.js +97 -13
- package/dist/shared/io/stepContractWriter.js.map +1 -1
- package/dist/shared/submission/expectedSubmissions.d.ts +18 -0
- package/dist/shared/submission/expectedSubmissions.d.ts.map +1 -1
- package/dist/shared/submission/expectedSubmissions.js +17 -0
- package/dist/shared/submission/expectedSubmissions.js.map +1 -1
- package/dist/shared/submission/handRecovery.d.ts.map +1 -1
- package/dist/shared/submission/handRecovery.js +9 -11
- package/dist/shared/submission/handRecovery.js.map +1 -1
- package/dist/shared/submission/hostHandoffCore.d.ts +155 -0
- package/dist/shared/submission/hostHandoffCore.d.ts.map +1 -0
- package/dist/shared/submission/hostHandoffCore.js +210 -0
- package/dist/shared/submission/hostHandoffCore.js.map +1 -0
- package/dist/shared/submission/submissionLedger.d.ts +5 -1
- package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
- package/dist/shared/submission/submissionLedger.js +33 -3
- package/dist/shared/submission/submissionLedger.js.map +1 -1
- package/dist/shared/tooling/commandShape.d.ts +29 -0
- package/dist/shared/tooling/commandShape.d.ts.map +1 -1
- package/dist/shared/tooling/commandShape.js +82 -10
- package/dist/shared/tooling/commandShape.js.map +1 -1
- package/dist/shared/tooling/exec.d.ts +32 -0
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +189 -0
- package/dist/shared/tooling/exec.js.map +1 -1
- package/docs/audit-pkg/contracts.md +2 -1
- package/docs/audit-pkg/operator-guide.md +5 -2
- package/docs/audit-pkg/product.md +22 -6
- package/package.json +10 -6
- package/schemas/audit-code-v1alpha1.schema.json +297 -0
- package/schemas/audit_result.schema.json +4 -0
- package/schemas/audit_results.schema.json +4 -0
- package/scripts/shared/install-host-assets.mjs +8 -5
- package/skills/audit-code/SKILL.md +4 -2
- package/skills/audit-code/audit-code.prompt.md +5 -2
- package/skills/audit-code/opencode-command-template.txt +1 -1
- package/wrapper/audit-code-wrapper-lib.mjs +81 -16
- package/wrapper/installer-verb-help.mjs +14 -4
- package/docs/audit-pkg/development.md +0 -113
- package/docs/audit-pkg/release.md +0 -140
|
@@ -1,16 +1,39 @@
|
|
|
1
|
+
import { type AnalyzerConsentDecisions } from "audit-tools/shared";
|
|
1
2
|
export interface LocalCommandCandidate {
|
|
2
3
|
command: string;
|
|
3
4
|
args: string[];
|
|
4
5
|
display?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Explicit registry key for admission, for an arm whose argv cannot yield
|
|
8
|
+
* its real tool (`python -m black`, `uvx black`, `pipx run black`). Absent
|
|
9
|
+
* ⇒ the key derives from the full argv ({@link localToolIdFor}).
|
|
10
|
+
*/
|
|
11
|
+
toolId?: string;
|
|
5
12
|
}
|
|
6
13
|
export interface LocalCommandResult {
|
|
7
14
|
candidate: LocalCommandCandidate;
|
|
8
15
|
exitCode: number | null;
|
|
9
16
|
stdout: string;
|
|
10
17
|
stderr: string;
|
|
18
|
+
/** The refusal reason when a recorded operator decline vetoed the candidate. */
|
|
19
|
+
declinedReason?: string;
|
|
11
20
|
error?: Error;
|
|
12
21
|
}
|
|
13
22
|
export declare function __resolveFromPathForTests(command: string): string | null;
|
|
14
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Run the first resolvable, ADMITTED candidate. Admission is the shared
|
|
25
|
+
* decline-first veto ({@link admitLocalSpawn}): a recorded operator `declined`
|
|
26
|
+
* for this tool id refuses the spawn OUTRIGHT — the remaining candidates are
|
|
27
|
+
* still walked (a decline names ONE tool, not every formatter), so `prettier`
|
|
28
|
+
* being declined does not silently route formatting to `black`. The returned
|
|
29
|
+
* record carries `declinedReason` when a candidate was refused for that reason.
|
|
30
|
+
*
|
|
31
|
+
* Spawns go through the SHARED exec boundary (`runTracked`): argv-only, the
|
|
32
|
+
* control-env scrub applied, windowsHide forced — never a direct
|
|
33
|
+
* `node:child_process` call with the unscrubbed parent environment.
|
|
34
|
+
*/
|
|
35
|
+
export declare function runFirstAvailableCommand(root: string, candidates: LocalCommandCandidate[], options?: {
|
|
36
|
+
analyzerConsent?: AnalyzerConsentDecisions;
|
|
37
|
+
}): LocalCommandResult | null;
|
|
15
38
|
export declare function resolveNodeTool(root: string, relativePath: string, args: string[], display: string): LocalCommandCandidate[];
|
|
16
39
|
//# sourceMappingURL=localCommands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localCommands.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/localCommands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localCommands.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/localCommands.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,qBAAqB,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAaD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAExE;AA4ED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,wBAAwB,CAAA;CAAO,GAC3D,kBAAkB,GAAG,IAAI,CA6D3B;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,GACd,qBAAqB,EAAE,CAWzB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import { spawnSync } from "node:child_process";
|
|
3
2
|
import { delimiter, extname, isAbsolute, join } from "node:path";
|
|
4
|
-
import { resolveExecArgv } from "audit-tools/shared";
|
|
3
|
+
import { admitLocalSpawn, resolveExecArgv, runTracked, } from "audit-tools/shared";
|
|
5
4
|
function toSpawnTuple(candidate) {
|
|
6
5
|
// Shared resolver applies the single Windows `.cmd`/`.bat` wrapping impl.
|
|
7
6
|
// The candidate command is already PATH-resolved (absolute path or
|
|
@@ -69,18 +68,42 @@ function resolveCandidate(root, candidate) {
|
|
|
69
68
|
}
|
|
70
69
|
return null;
|
|
71
70
|
}
|
|
72
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Run the first resolvable, ADMITTED candidate. Admission is the shared
|
|
73
|
+
* decline-first veto ({@link admitLocalSpawn}): a recorded operator `declined`
|
|
74
|
+
* for this tool id refuses the spawn OUTRIGHT — the remaining candidates are
|
|
75
|
+
* still walked (a decline names ONE tool, not every formatter), so `prettier`
|
|
76
|
+
* being declined does not silently route formatting to `black`. The returned
|
|
77
|
+
* record carries `declinedReason` when a candidate was refused for that reason.
|
|
78
|
+
*
|
|
79
|
+
* Spawns go through the SHARED exec boundary (`runTracked`): argv-only, the
|
|
80
|
+
* control-env scrub applied, windowsHide forced — never a direct
|
|
81
|
+
* `node:child_process` call with the unscrubbed parent environment.
|
|
82
|
+
*/
|
|
83
|
+
export function runFirstAvailableCommand(root, candidates, options = {}) {
|
|
84
|
+
let lastDecline;
|
|
73
85
|
for (const candidate of candidates) {
|
|
86
|
+
// Decline-first admission, BEFORE resolution and before anything spawns. A
|
|
87
|
+
// recorded refusal is a veto for THIS tool wherever its executable resolves
|
|
88
|
+
// from — including the repo-local `node <script>` arm (the script is the
|
|
89
|
+
// key, never `node`). It runs ahead of resolution because whether the binary
|
|
90
|
+
// happens to be INSTALLED says nothing about whether the operator refused
|
|
91
|
+
// it: resolving first meant an absent tool reported `not_resolved` and the
|
|
92
|
+
// recorded decline was never consulted, so one policy read two ways on two
|
|
93
|
+
// machines.
|
|
94
|
+
const denied = admitLocalSpawn([candidate.command, ...candidate.args], options.analyzerConsent, candidate.toolId);
|
|
95
|
+
if (denied) {
|
|
96
|
+
lastDecline = denied;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
74
99
|
const resolved = resolveCandidate(root, candidate);
|
|
75
100
|
if (!resolved) {
|
|
76
101
|
continue;
|
|
77
102
|
}
|
|
78
103
|
const spawnTarget = toSpawnTuple(resolved);
|
|
79
|
-
const result =
|
|
104
|
+
const result = runTracked([spawnTarget.command, ...spawnTarget.args], {
|
|
80
105
|
cwd: root,
|
|
81
|
-
env: process.env,
|
|
82
106
|
encoding: "utf8",
|
|
83
|
-
windowsHide: true,
|
|
84
107
|
stdio: "pipe",
|
|
85
108
|
});
|
|
86
109
|
return {
|
|
@@ -89,14 +112,26 @@ export function runFirstAvailableCommand(root, candidates) {
|
|
|
89
112
|
display: candidate.display ?? [candidate.command, ...candidate.args].join(" "),
|
|
90
113
|
},
|
|
91
114
|
exitCode: result.status,
|
|
92
|
-
stdout: result.stdout
|
|
93
|
-
stderr: result.stderr
|
|
115
|
+
stdout: result.stdout,
|
|
116
|
+
stderr: result.stderr,
|
|
94
117
|
error: result.error
|
|
95
118
|
? new Error(result.error.message, { cause: result.error })
|
|
96
119
|
: undefined,
|
|
97
120
|
};
|
|
98
121
|
}
|
|
99
|
-
return
|
|
122
|
+
return lastDecline
|
|
123
|
+
? {
|
|
124
|
+
candidate: {
|
|
125
|
+
command: "",
|
|
126
|
+
args: [],
|
|
127
|
+
display: "(all candidates declined or unresolved)",
|
|
128
|
+
},
|
|
129
|
+
exitCode: null,
|
|
130
|
+
stdout: "",
|
|
131
|
+
stderr: "",
|
|
132
|
+
declinedReason: lastDecline,
|
|
133
|
+
}
|
|
134
|
+
: null;
|
|
100
135
|
}
|
|
101
136
|
export function resolveNodeTool(root, relativePath, args, display) {
|
|
102
137
|
const localToolPath = join(root, relativePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localCommands.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/localCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"localCommands.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/localCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,19 @@ export interface DecideNextStepOptions {
|
|
|
26
26
|
emitStaleness?: boolean;
|
|
27
27
|
}
|
|
28
28
|
export declare function decideNextStep(bundle: ArtifactBundle, options?: DecideNextStepOptions): NextStepDecision;
|
|
29
|
+
/**
|
|
30
|
+
* The audit friction record's own key. Audit keeps ONE friction record per artifacts
|
|
31
|
+
* dir — its step envelopes carry no per-run id — so the key is a fixed literal rather
|
|
32
|
+
* than a minted run id. Single-sourced here beside the close-out that reads it, so the
|
|
33
|
+
* capture seams, the close-out, the run-linkage writers, and the operator handoff's
|
|
34
|
+
* `friction_record` path cannot spell it differently. Two source sites still write the
|
|
35
|
+
* derived record path out as a literal, each because a mechanical reader requires one
|
|
36
|
+
* there: `friction_capture_executor`'s `artifacts_written` (executorRunners.ts), read
|
|
37
|
+
* structurally by the write-site extractor, and the same executor's
|
|
38
|
+
* `produces[].artifact` in EXECUTOR_REGISTRY (executors.ts), whose producer generator
|
|
39
|
+
* refuses any non-string-literal initializer. DECL-10 pins BOTH against this constant.
|
|
40
|
+
*/
|
|
41
|
+
export declare const AUDIT_FRICTION_RUN_ID = "run";
|
|
29
42
|
/**
|
|
30
43
|
* Terminal friction-TRIAGE close-out for audit. Folded into the `present_report`
|
|
31
44
|
* terminal step (not a separate executor) so it fires at exactly the right moment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/nextStep.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAI1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AAEzE,eAAO,MAAM,QAAQ,EAAE,MAAM,EAuC5B,CAAC;AAkCF,wBAAgB,cAAc,CAC5B,WAAW,EAAE,eAAe,EAAE,GAC7B,eAAe,GAAG,SAAS,CAE7B;AAED,oCAAoC;AACpC,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B,GAClC,gBAAgB,CAqClB;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CAEjC"}
|
|
1
|
+
{"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/nextStep.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAI1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AAEzE,eAAO,MAAM,QAAQ,EAAE,MAAM,EAuC5B,CAAC;AAkCF,wBAAgB,cAAc,CAC5B,WAAW,EAAE,eAAe,EAAE,GAC7B,eAAe,GAAG,SAAS,CAE7B;AAED,oCAAoC;AACpC,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B,GAClC,gBAAgB,CAqClB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CAEjC"}
|
|
@@ -110,6 +110,19 @@ export function decideNextStep(bundle, options = {}) {
|
|
|
110
110
|
: `No executor found for obligation ${next.id}; EXECUTOR_REGISTRY has no entry for this obligation ID. This is a configuration gap — the obligation was selected but cannot be dispatched.`,
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* The audit friction record's own key. Audit keeps ONE friction record per artifacts
|
|
115
|
+
* dir — its step envelopes carry no per-run id — so the key is a fixed literal rather
|
|
116
|
+
* than a minted run id. Single-sourced here beside the close-out that reads it, so the
|
|
117
|
+
* capture seams, the close-out, the run-linkage writers, and the operator handoff's
|
|
118
|
+
* `friction_record` path cannot spell it differently. Two source sites still write the
|
|
119
|
+
* derived record path out as a literal, each because a mechanical reader requires one
|
|
120
|
+
* there: `friction_capture_executor`'s `artifacts_written` (executorRunners.ts), read
|
|
121
|
+
* structurally by the write-site extractor, and the same executor's
|
|
122
|
+
* `produces[].artifact` in EXECUTOR_REGISTRY (executors.ts), whose producer generator
|
|
123
|
+
* refuses any non-string-literal initializer. DECL-10 pins BOTH against this constant.
|
|
124
|
+
*/
|
|
125
|
+
export const AUDIT_FRICTION_RUN_ID = "run";
|
|
113
126
|
/**
|
|
114
127
|
* Terminal friction-TRIAGE close-out for audit. Folded into the `present_report`
|
|
115
128
|
* terminal step (not a separate executor) so it fires at exactly the right moment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextStep.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/nextStep.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nextStep.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/nextStep.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,8 @@ export declare function buildRequeuePayload(matrix: CoverageMatrix, criticalFlow
|
|
|
24
24
|
inputs?: Record<string, string> | undefined;
|
|
25
25
|
line_ranges?: {
|
|
26
26
|
path: string;
|
|
27
|
-
start: number;
|
|
28
27
|
end: number;
|
|
28
|
+
start: number;
|
|
29
29
|
}[] | undefined;
|
|
30
30
|
priority?: "high" | "low" | "medium" | undefined;
|
|
31
31
|
risk_estimate?: number | undefined;
|
|
@@ -1,4 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The bounded wait every runtime-validation command runs under.
|
|
3
|
+
*
|
|
4
|
+
* Stated ONCE and exported so no call site writes its own number: a bound
|
|
5
|
+
* hard-coded per caller is how two callers end up disagreeing about how long
|
|
6
|
+
* "too long" is, and the drain's progress guarantee then depends on which one
|
|
7
|
+
* you happened to read. Generous, because a validation command is host-authored
|
|
8
|
+
* and may legitimately be a whole suite — what matters is that it is FINITE.
|
|
9
|
+
*/
|
|
10
|
+
export declare const RUNTIME_COMMAND_TIMEOUT_MS: number;
|
|
11
|
+
/**
|
|
12
|
+
* Terminate a timed-out child, INCLUDING anything it spawned.
|
|
13
|
+
*
|
|
14
|
+
* On win32 this runner wraps package-manager shims in `cmd.exe /d /s /c` (see
|
|
15
|
+
* `resolveRuntimeValidationSpawnCommand`), so the process we hold a handle to is
|
|
16
|
+
* the shell, not the tool: `child.kill()` reaps the wrapper and leaves the npm →
|
|
17
|
+
* node grandchildren running, which is the orphan case the bound exists to
|
|
18
|
+
* prevent. `taskkill /T` walks the tree instead. Everywhere else the executable
|
|
19
|
+
* is spawned DIRECTLY — no wrapper, so no tree of our making — and the signal
|
|
20
|
+
* pair is the whole story. A command that itself forks a daemon on POSIX is
|
|
21
|
+
* beyond what this can promise without a process group, and is left stated
|
|
22
|
+
* rather than silently assumed.
|
|
23
|
+
*
|
|
24
|
+
* `platform` is a parameter so both branches are reachable from a test on either
|
|
25
|
+
* OS; the taskkill spawn failing (absent, denied) falls back to SIGKILL rather
|
|
26
|
+
* than leaving the child alive.
|
|
27
|
+
*/
|
|
28
|
+
export declare function killRuntimeCommandTree(child: {
|
|
29
|
+
pid?: number;
|
|
30
|
+
kill: (signal?: NodeJS.Signals) => boolean;
|
|
31
|
+
}, platform?: NodeJS.Platform): void;
|
|
32
|
+
export declare function runCommand(command: string[], cwd: string, timeoutMs?: number): Promise<{
|
|
2
33
|
status: "confirmed" | "not_confirmed" | "inconclusive";
|
|
3
34
|
summary: string;
|
|
4
35
|
evidence: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/runtimeCommand.ts"],"names":[],"mappings":"AAqBA,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runtimeCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/runtimeCommand.ts"],"names":[],"mappings":"AAqBA;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,QAAkB,CAAC;AAQ1D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,KAAK,OAAO,CAAA;CAAE,EACnE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,IAAI,CAYN;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAmC,GAC7C,OAAO,CAAC;IACT,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,cAAc,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC,CA+GD;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,YAAY,SAAmC,GAC9C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAkDrC"}
|
|
@@ -13,7 +13,52 @@ import { quoteForShellInterpreterCmd, stripAuditToolsControlEnv, } from "audit-t
|
|
|
13
13
|
// This strips the host-signaling env vars so a runtime-validation command sees a
|
|
14
14
|
// clean environment — a suite that branches on CLAUDECODE would otherwise be graded
|
|
15
15
|
// against the host's interactive-session state, marking healthy code "not_confirmed".
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The bounded wait every runtime-validation command runs under.
|
|
18
|
+
*
|
|
19
|
+
* Stated ONCE and exported so no call site writes its own number: a bound
|
|
20
|
+
* hard-coded per caller is how two callers end up disagreeing about how long
|
|
21
|
+
* "too long" is, and the drain's progress guarantee then depends on which one
|
|
22
|
+
* you happened to read. Generous, because a validation command is host-authored
|
|
23
|
+
* and may legitimately be a whole suite — what matters is that it is FINITE.
|
|
24
|
+
*/
|
|
25
|
+
export const RUNTIME_COMMAND_TIMEOUT_MS = 10 * 60 * 1_000;
|
|
26
|
+
/**
|
|
27
|
+
* Grace between the polite stop and the unignorable one. SIGTERM is a request a
|
|
28
|
+
* child may ignore; without the escalation the "bound" would be advisory.
|
|
29
|
+
*/
|
|
30
|
+
const KILL_ESCALATION_GRACE_MS = 2_000;
|
|
31
|
+
/**
|
|
32
|
+
* Terminate a timed-out child, INCLUDING anything it spawned.
|
|
33
|
+
*
|
|
34
|
+
* On win32 this runner wraps package-manager shims in `cmd.exe /d /s /c` (see
|
|
35
|
+
* `resolveRuntimeValidationSpawnCommand`), so the process we hold a handle to is
|
|
36
|
+
* the shell, not the tool: `child.kill()` reaps the wrapper and leaves the npm →
|
|
37
|
+
* node grandchildren running, which is the orphan case the bound exists to
|
|
38
|
+
* prevent. `taskkill /T` walks the tree instead. Everywhere else the executable
|
|
39
|
+
* is spawned DIRECTLY — no wrapper, so no tree of our making — and the signal
|
|
40
|
+
* pair is the whole story. A command that itself forks a daemon on POSIX is
|
|
41
|
+
* beyond what this can promise without a process group, and is left stated
|
|
42
|
+
* rather than silently assumed.
|
|
43
|
+
*
|
|
44
|
+
* `platform` is a parameter so both branches are reachable from a test on either
|
|
45
|
+
* OS; the taskkill spawn failing (absent, denied) falls back to SIGKILL rather
|
|
46
|
+
* than leaving the child alive.
|
|
47
|
+
*/
|
|
48
|
+
export function killRuntimeCommandTree(child, platform = process.platform) {
|
|
49
|
+
if (platform === "win32" && child.pid !== undefined) {
|
|
50
|
+
const reaper = spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], {
|
|
51
|
+
stdio: "ignore",
|
|
52
|
+
windowsHide: true,
|
|
53
|
+
});
|
|
54
|
+
reaper.on("error", () => {
|
|
55
|
+
child.kill("SIGKILL");
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
child.kill("SIGTERM");
|
|
60
|
+
}
|
|
61
|
+
export async function runCommand(command, cwd, timeoutMs = RUNTIME_COMMAND_TIMEOUT_MS) {
|
|
17
62
|
// COR-4a8d9779: fast-fail before spawn so an empty command array produces a
|
|
18
63
|
// descriptive error instead of an ENOENT from spawn("", ...).
|
|
19
64
|
if (command.length === 0 || !command[0]) {
|
|
@@ -42,7 +87,38 @@ export async function runCommand(command, cwd) {
|
|
|
42
87
|
});
|
|
43
88
|
let exitCode = null;
|
|
44
89
|
let exitSignal = null;
|
|
90
|
+
// Set when THIS runner's bound fired, so `close` can report a timeout rather
|
|
91
|
+
// than reporting the kill it caused as an ordinary signal death.
|
|
92
|
+
let timedOut = false;
|
|
93
|
+
let escalation = null;
|
|
94
|
+
const deadline = timeoutMs > 0
|
|
95
|
+
? setTimeout(() => {
|
|
96
|
+
timedOut = true;
|
|
97
|
+
killRuntimeCommandTree(child);
|
|
98
|
+
// SIGTERM is a request; a child that installs a handler and ignores
|
|
99
|
+
// it would never emit `close`, and the bound would be a bound in
|
|
100
|
+
// name only. `unref` so a child that does exit promptly never holds
|
|
101
|
+
// the event loop open waiting for this.
|
|
102
|
+
escalation = setTimeout(() => {
|
|
103
|
+
child.kill("SIGKILL");
|
|
104
|
+
}, KILL_ESCALATION_GRACE_MS);
|
|
105
|
+
escalation.unref?.();
|
|
106
|
+
}, timeoutMs)
|
|
107
|
+
: null;
|
|
108
|
+
/**
|
|
109
|
+
* Clear BOTH timers on every resolution path. A deadline left armed after an
|
|
110
|
+
* early exit is a leaked handle that can hold the process open past the work
|
|
111
|
+
* it was watching — the reason this is one function rather than a line
|
|
112
|
+
* repeated in each branch.
|
|
113
|
+
*/
|
|
114
|
+
const clearTimers = () => {
|
|
115
|
+
if (deadline)
|
|
116
|
+
clearTimeout(deadline);
|
|
117
|
+
if (escalation)
|
|
118
|
+
clearTimeout(escalation);
|
|
119
|
+
};
|
|
45
120
|
child.on("error", (error) => {
|
|
121
|
+
clearTimers();
|
|
46
122
|
const output = `${stdout}\n${stderr}`.trim();
|
|
47
123
|
const lines = output.length > 0 ? output.split(/\r?\n/) : [];
|
|
48
124
|
const truncated = lines.length > 10;
|
|
@@ -60,15 +136,26 @@ export async function runCommand(command, cwd) {
|
|
|
60
136
|
exitSignal = signal;
|
|
61
137
|
});
|
|
62
138
|
child.on("close", () => {
|
|
139
|
+
clearTimers();
|
|
63
140
|
const output = `${stdout}\n${stderr}`.trim();
|
|
64
141
|
const lines = output.length > 0 ? output.split(/\r?\n/) : [];
|
|
65
142
|
const truncated = lines.length > 10;
|
|
66
143
|
const evidence = truncated
|
|
67
144
|
? [`[... truncated: showing last 10 of ${lines.length} lines ...]`, ...lines.slice(-10)]
|
|
68
145
|
: lines;
|
|
69
|
-
const succeeded = exitCode === 0;
|
|
146
|
+
const succeeded = exitCode === 0 && !timedOut;
|
|
70
147
|
let summary;
|
|
71
|
-
if (
|
|
148
|
+
if (timedOut) {
|
|
149
|
+
// NAMED as a timeout, ahead of the exit-code branches: the child died of
|
|
150
|
+
// the kill this runner sent, so its code/signal describe our own bound,
|
|
151
|
+
// not the command's verdict. Reporting "terminated by SIGKILL" here
|
|
152
|
+
// would attribute the runner's action to the code under validation, and
|
|
153
|
+
// a caller triaging the failure could not tell a hang from a crash.
|
|
154
|
+
summary =
|
|
155
|
+
`Deterministic runtime command timed out after ${String(timeoutMs)}ms and was killed: ` +
|
|
156
|
+
`${displayCommand}`;
|
|
157
|
+
}
|
|
158
|
+
else if (succeeded) {
|
|
72
159
|
summary = `Deterministic runtime command succeeded: ${displayCommand}`;
|
|
73
160
|
}
|
|
74
161
|
else if (exitCode !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeCommand.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/runtimeCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,6EAA6E;AAC7E,iBAAiB;AACjB,EAAE;AACF,8EAA8E;AAC9E,2DAA2D;AAE3D,2EAA2E;AAC3E,6EAA6E;AAC7E,iFAAiF;AACjF,oFAAoF;AACpF,sFAAsF;AAEtF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAiB,EACjB,GAAW;
|
|
1
|
+
{"version":3,"file":"runtimeCommand.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/runtimeCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,6EAA6E;AAC7E,iBAAiB;AACjB,EAAE;AACF,8EAA8E;AAC9E,2DAA2D;AAE3D,2EAA2E;AAC3E,6EAA6E;AAC7E,iFAAiF;AACjF,oFAAoF;AACpF,sFAAsF;AAEtF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAE1D;;;GAGG;AACH,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAmE,EACnE,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;YACxE,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAiB,EACjB,GAAW,EACX,YAAoB,0BAA0B;IAM9C,4EAA4E;IAC5E,8DAA8D;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,6DAA6D;YACtE,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,oCAAoC,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE;YAC3D,GAAG;YACH,GAAG,EAAE,yBAAyB,EAAE;YAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,UAAU,GAA0B,IAAI,CAAC;QAC7C,6EAA6E;QAC7E,iEAAiE;QACjE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,UAAU,GAA0B,IAAI,CAAC;QAC7C,MAAM,QAAQ,GACZ,SAAS,GAAG,CAAC;YACX,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBAC9B,oEAAoE;gBACpE,iEAAiE;gBACjE,oEAAoE;gBACpE,wCAAwC;gBACxC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC,EAAE,wBAAwB,CAAC,CAAC;gBAC7B,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;YACvB,CAAC,EAAE,SAAS,CAAC;YACf,CAAC,CAAC,IAAI,CAAC;QACX;;;;;WAKG;QACH,MAAM,WAAW,GAAG,GAAS,EAAE;YAC7B,IAAI,QAAQ;gBAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,UAAU;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,WAAW,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,SAAS;gBACxB,CAAC,CAAC,CAAC,sCAAsC,KAAK,CAAC,MAAM,aAAa,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxF,CAAC,CAAC,KAAK,CAAC;YACV,OAAO,CAAC;gBACN,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,qBAAqB,cAAc,KAAK,KAAK,CAAC,OAAO,EAAE;gBAChE,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAChC,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,WAAW,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,SAAS;gBACxB,CAAC,CAAC,CAAC,sCAAsC,KAAK,CAAC,MAAM,aAAa,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxF,CAAC,CAAC,KAAK,CAAC;YACV,MAAM,SAAS,GAAG,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC9C,IAAI,OAAe,CAAC;YACpB,IAAI,QAAQ,EAAE,CAAC;gBACb,yEAAyE;gBACzE,wEAAwE;gBACxE,oEAAoE;gBACpE,wEAAwE;gBACxE,oEAAoE;gBACpE,OAAO;oBACL,iDAAiD,MAAM,CAAC,SAAS,CAAC,qBAAqB;wBACvF,GAAG,cAAc,EAAE,CAAC;YACxB,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,OAAO,GAAG,4CAA4C,cAAc,EAAE,CAAC;YACzE,CAAC;iBAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,GAAG,uDAAuD,QAAQ,KAAK,cAAc,EAAE,CAAC;YACjG,CAAC;iBAAM,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,GAAG,sDAAsD,UAAU,KAAK,cAAc,EAAE,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,6DAA6D,cAAc,EAAE,CAAC;YAC1F,CAAC;YACD,OAAO,CAAC;gBACN,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;gBACjD,OAAO;gBACP,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,OAAiB,EACjB,WAA4B,OAAO,CAAC,QAAQ,EAC5C,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS;IAE/C,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,MAAM;YACZ,UAAU;YACV,QAAQ;YACR,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC7B,CAAC,GAAG,IAAI,CACV,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,8EAA8E;IAC9E,kFAAkF;IAClF,mFAAmF;IACnF,iFAAiF;IACjF,yBAAyB;IACzB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;IAC/D,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3E,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,SAAS;YACf,UAAU;YACV,aAAa,EAAE,YAAY;YAC3B,QAAQ;YACR,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC7B,CAAC,GAAG,IAAI,CACV,CAAC;QACF,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7E,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;QACb,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,MAAM;QACZ,UAAU;QACV,QAAQ;QACR,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC7B,CAAC,GAAG,IAAI,CACV,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -54,7 +54,7 @@ export async function runStructureExecutor(bundle, root) {
|
|
|
54
54
|
// co_change bucket as defense-in-depth).
|
|
55
55
|
const graphSignals = deriveGraphSignals(graphBundle);
|
|
56
56
|
const baseRiskRegister = buildRiskRegister(unitManifest, criticalFlows, externalAnalyzerResults, graphSignals);
|
|
57
|
-
//
|
|
57
|
+
// Git-history mining. A deterministic, language-neutral extraction source
|
|
58
58
|
// (degrades to empty without a root / git): co-change coupling the dependency
|
|
59
59
|
// graph misses, churn + authorship-breadth risk signals, and the churn ×
|
|
60
60
|
// complexity compound (the real risk concentration). Merged through the shared
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structureExecutors.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/structureExecutors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"structureExecutors.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/structureExecutors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ArtifactBundle } from "../io/artifacts.js";
|
|
2
2
|
import type { ExecutorRunResult } from "./executorResult.js";
|
|
3
|
+
import { type AnalyzerConsentDecisions } from "audit-tools/shared";
|
|
3
4
|
/**
|
|
4
5
|
* The eslint argv for the installed major. `--ext` was removed in ESLint 9 and is
|
|
5
6
|
* a hard "unrecognized option" there, which kills the whole JSON run and lands it
|
|
@@ -26,5 +27,14 @@ export interface EslintConfigState {
|
|
|
26
27
|
* distinguishable at the status record, never both silently zero findings.
|
|
27
28
|
*/
|
|
28
29
|
export declare function resolveEslintConfigState(root: string): EslintConfigState;
|
|
29
|
-
export
|
|
30
|
+
export interface SyntaxResolutionExecutorOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Recorded consent decisions (from the durable analyzer policy). A recorded
|
|
33
|
+
* `declined` for `tsc` or `eslint` vetoes that spawn at the shared
|
|
34
|
+
* admitLocalSpawn chokepoint — the same decline-first rule every other local
|
|
35
|
+
* tooling spawn faces.
|
|
36
|
+
*/
|
|
37
|
+
analyzerConsent?: AnalyzerConsentDecisions;
|
|
38
|
+
}
|
|
39
|
+
export declare function runSyntaxResolutionExecutor(bundle: ArtifactBundle, root: string, options?: SyntaxResolutionExecutorOptions): ExecutorRunResult;
|
|
30
40
|
//# sourceMappingURL=syntaxResolutionExecutor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntaxResolutionExecutor.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/syntaxResolutionExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"syntaxResolutionExecutor.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/syntaxResolutionExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAKL,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AA8E5B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAIrE;AAkBD,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAwBxE;AAgOD,MAAM,WAAW,+BAA+B;IAC9C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,+BAAoC,GAC5C,iBAAiB,CA6EnB"}
|
|
@@ -123,6 +123,22 @@ function snippet(value) {
|
|
|
123
123
|
return value.replace(/\s+/g, " ").trim().slice(0, 500);
|
|
124
124
|
}
|
|
125
125
|
function commandErrorResult(tool, command, results) {
|
|
126
|
+
// A declined candidate resolves to a record with NO command and NO error —
|
|
127
|
+
// only `declinedReason`. `Boolean(record)` alone would read that refusal as
|
|
128
|
+
// "the tool resolved and ran", so the status must branch on the decline
|
|
129
|
+
// marker first: a vetoed spawn is coverage the operator refused, not a
|
|
130
|
+
// resolution failure — and never a resolved:true run.
|
|
131
|
+
if (command?.declinedReason) {
|
|
132
|
+
return {
|
|
133
|
+
results,
|
|
134
|
+
status: {
|
|
135
|
+
tool,
|
|
136
|
+
resolved: false,
|
|
137
|
+
status: "skipped",
|
|
138
|
+
error: command.declinedReason,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
126
142
|
return {
|
|
127
143
|
results,
|
|
128
144
|
status: {
|
|
@@ -135,13 +151,13 @@ function commandErrorResult(tool, command, results) {
|
|
|
135
151
|
},
|
|
136
152
|
};
|
|
137
153
|
}
|
|
138
|
-
function runTsc(root) {
|
|
154
|
+
function runTsc(root, analyzerConsent) {
|
|
139
155
|
const results = [];
|
|
140
156
|
const command = runFirstAvailableCommand(root, [
|
|
141
157
|
...resolveNodeTool(root, join("node_modules", "typescript", "bin", "tsc"), ["--noEmit"], "tsc --noEmit"),
|
|
142
158
|
{ command: "tsc", args: ["--noEmit"], display: "tsc --noEmit" },
|
|
143
|
-
]);
|
|
144
|
-
if (!command || command.error) {
|
|
159
|
+
], { analyzerConsent });
|
|
160
|
+
if (!command || command.error || command.declinedReason) {
|
|
145
161
|
return commandErrorResult("tsc", command, results);
|
|
146
162
|
}
|
|
147
163
|
const output = [command.stdout, command.stderr].filter(Boolean).join("\n");
|
|
@@ -201,7 +217,7 @@ function runTsc(root) {
|
|
|
201
217
|
},
|
|
202
218
|
};
|
|
203
219
|
}
|
|
204
|
-
function runEslint(root) {
|
|
220
|
+
function runEslint(root, analyzerConsent) {
|
|
205
221
|
const results = [];
|
|
206
222
|
const configState = resolveEslintConfigState(root);
|
|
207
223
|
if (!configState.runnable) {
|
|
@@ -220,8 +236,8 @@ function runEslint(root) {
|
|
|
220
236
|
const command = runFirstAvailableCommand(root, [
|
|
221
237
|
...resolveNodeTool(root, join("node_modules", "eslint", "bin", "eslint.js"), args, display),
|
|
222
238
|
{ command: "eslint", args, display },
|
|
223
|
-
]);
|
|
224
|
-
if (!command || command.error) {
|
|
239
|
+
], { analyzerConsent });
|
|
240
|
+
if (!command || command.error || command.declinedReason) {
|
|
225
241
|
return commandErrorResult("eslint", command, results);
|
|
226
242
|
}
|
|
227
243
|
const output = [command.stdout, command.stderr].filter(Boolean).join("\n").trim();
|
|
@@ -285,17 +301,17 @@ function runEslint(root) {
|
|
|
285
301
|
},
|
|
286
302
|
};
|
|
287
303
|
}
|
|
288
|
-
export function runSyntaxResolutionExecutor(bundle, root) {
|
|
304
|
+
export function runSyntaxResolutionExecutor(bundle, root, options = {}) {
|
|
289
305
|
const items = [];
|
|
290
306
|
const toolStatuses = [];
|
|
291
307
|
if (hasTypeScriptConfig(root) &&
|
|
292
308
|
bundle.file_disposition?.files.some((f) => f.path.endsWith(".ts"))) {
|
|
293
|
-
const tsc = runTsc(root);
|
|
309
|
+
const tsc = runTsc(root, options.analyzerConsent);
|
|
294
310
|
items.push(...tsc.results);
|
|
295
311
|
toolStatuses.push(tsc.status);
|
|
296
312
|
}
|
|
297
313
|
if (bundle.file_disposition?.files.some((f) => f.path.endsWith(".ts") || f.path.endsWith(".js"))) {
|
|
298
|
-
const eslint = runEslint(root);
|
|
314
|
+
const eslint = runEslint(root, options.analyzerConsent);
|
|
299
315
|
items.push(...eslint.results);
|
|
300
316
|
toolStatuses.push(eslint.status);
|
|
301
317
|
}
|