audit-tools 0.36.2 → 0.38.1

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.
Files changed (250) hide show
  1. package/dist/audit/adapters/astGrep.d.ts +1 -1
  2. package/dist/audit/adapters/astGrep.d.ts.map +1 -1
  3. package/dist/audit/adapters/astGrep.js +1 -1
  4. package/dist/audit/adapters/astGrep.js.map +1 -1
  5. package/dist/audit/adapters/codeql.d.ts +1 -1
  6. package/dist/audit/adapters/codeql.d.ts.map +1 -1
  7. package/dist/audit/adapters/codeql.js +1 -1
  8. package/dist/audit/adapters/codeql.js.map +1 -1
  9. package/dist/audit/adapters/coverageSummary.d.ts +1 -1
  10. package/dist/audit/adapters/coverageSummary.d.ts.map +1 -1
  11. package/dist/audit/adapters/coverageSummary.js +1 -1
  12. package/dist/audit/adapters/coverageSummary.js.map +1 -1
  13. package/dist/audit/adapters/eslint.d.ts +1 -1
  14. package/dist/audit/adapters/eslint.d.ts.map +1 -1
  15. package/dist/audit/adapters/eslint.js +1 -1
  16. package/dist/audit/adapters/eslint.js.map +1 -1
  17. package/dist/audit/adapters/npmAudit.d.ts +1 -1
  18. package/dist/audit/adapters/npmAudit.d.ts.map +1 -1
  19. package/dist/audit/adapters/npmAudit.js +1 -1
  20. package/dist/audit/adapters/npmAudit.js.map +1 -1
  21. package/dist/audit/adapters/semgrep.d.ts +1 -1
  22. package/dist/audit/adapters/semgrep.d.ts.map +1 -1
  23. package/dist/audit/adapters/semgrep.js +1 -1
  24. package/dist/audit/adapters/semgrep.js.map +1 -1
  25. package/dist/audit/cli/auditStep.d.ts +1 -1
  26. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  27. package/dist/audit/cli/dispatch/packetPrompt.d.ts.map +1 -1
  28. package/dist/audit/cli/dispatch/packetPrompt.js +8 -2
  29. package/dist/audit/cli/dispatch/packetPrompt.js.map +1 -1
  30. package/dist/audit/cli/dispatch/tierRouting.d.ts +17 -0
  31. package/dist/audit/cli/dispatch/tierRouting.d.ts.map +1 -1
  32. package/dist/audit/cli/dispatch/tierRouting.js +48 -0
  33. package/dist/audit/cli/dispatch/tierRouting.js.map +1 -1
  34. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  35. package/dist/audit/cli/dispatch.js +21 -2
  36. package/dist/audit/cli/dispatch.js.map +1 -1
  37. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  38. package/dist/audit/cli/nextStepCommand.js +32 -1
  39. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  40. package/dist/audit/cli/nextStepHelpers.d.ts +35 -0
  41. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  42. package/dist/audit/cli/nextStepHelpers.js +74 -3
  43. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  44. package/dist/audit/cli/prompts.d.ts +34 -1
  45. package/dist/audit/cli/prompts.d.ts.map +1 -1
  46. package/dist/audit/cli/prompts.js +93 -6
  47. package/dist/audit/cli/prompts.js.map +1 -1
  48. package/dist/audit/cli/reviewRun.d.ts.map +1 -1
  49. package/dist/audit/cli/reviewRun.js +2 -0
  50. package/dist/audit/cli/reviewRun.js.map +1 -1
  51. package/dist/audit/cli/steps.d.ts +14 -4
  52. package/dist/audit/cli/steps.d.ts.map +1 -1
  53. package/dist/audit/cli/steps.js +28 -1
  54. package/dist/audit/cli/steps.js.map +1 -1
  55. package/dist/audit/cli/workerRunCommand.d.ts.map +1 -1
  56. package/dist/audit/cli/workerRunCommand.js +28 -14
  57. package/dist/audit/cli/workerRunCommand.js.map +1 -1
  58. package/dist/audit/contracts/workerSchemas.d.ts +108 -0
  59. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  60. package/dist/audit/extractors/analyzers/registry.d.ts +5 -5
  61. package/dist/audit/extractors/analyzers/registry.d.ts.map +1 -1
  62. package/dist/audit/extractors/analyzers/registry.js +3 -3
  63. package/dist/audit/extractors/analyzers/registry.js.map +1 -1
  64. package/dist/audit/extractors/graph.d.ts +1 -1
  65. package/dist/audit/extractors/graph.d.ts.map +1 -1
  66. package/dist/audit/extractors/risk.d.ts +1 -1
  67. package/dist/audit/extractors/risk.d.ts.map +1 -1
  68. package/dist/audit/io/artifacts.d.ts +1 -1
  69. package/dist/audit/io/artifacts.d.ts.map +1 -1
  70. package/dist/audit/orchestrator/acquisitionExecutor.d.ts +7 -1
  71. package/dist/audit/orchestrator/acquisitionExecutor.d.ts.map +1 -1
  72. package/dist/audit/orchestrator/acquisitionExecutor.js +5 -3
  73. package/dist/audit/orchestrator/acquisitionExecutor.js.map +1 -1
  74. package/dist/audit/orchestrator/advance.d.ts +6 -0
  75. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  76. package/dist/audit/orchestrator/advance.js +49 -1
  77. package/dist/audit/orchestrator/advance.js.map +1 -1
  78. package/dist/audit/orchestrator/advanceTypes.d.ts +11 -1
  79. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  80. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  81. package/dist/audit/orchestrator/executors.js +4 -0
  82. package/dist/audit/orchestrator/executors.js.map +1 -1
  83. package/dist/audit/orchestrator/fileAnchors.d.ts +8 -1
  84. package/dist/audit/orchestrator/fileAnchors.d.ts.map +1 -1
  85. package/dist/audit/orchestrator/fileAnchors.js +1 -0
  86. package/dist/audit/orchestrator/fileAnchors.js.map +1 -1
  87. package/dist/audit/orchestrator/flowRequeue.d.ts +1 -1
  88. package/dist/audit/orchestrator/flowRequeue.d.ts.map +1 -1
  89. package/dist/audit/orchestrator/hostInputPause.d.ts +19 -0
  90. package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -1
  91. package/dist/audit/orchestrator/hostInputPause.js +41 -0
  92. package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
  93. package/dist/audit/orchestrator/ingestionExecutors.d.ts +1 -1
  94. package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
  95. package/dist/audit/orchestrator/ingestionExecutors.js +1 -1
  96. package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
  97. package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts.map +1 -1
  98. package/dist/audit/orchestrator/intentCheckpointExecutor.js +13 -1
  99. package/dist/audit/orchestrator/intentCheckpointExecutor.js.map +1 -1
  100. package/dist/audit/orchestrator/planning.d.ts +1 -1
  101. package/dist/audit/orchestrator/planning.d.ts.map +1 -1
  102. package/dist/audit/orchestrator/requeue.d.ts +1 -1
  103. package/dist/audit/orchestrator/requeue.d.ts.map +1 -1
  104. package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
  105. package/dist/audit/orchestrator/requeueCommand.d.ts.map +1 -1
  106. package/dist/audit/orchestrator/requeueUtils.d.ts +1 -1
  107. package/dist/audit/orchestrator/requeueUtils.d.ts.map +1 -1
  108. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts +1 -1
  109. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts.map +1 -1
  110. package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts +1 -1
  111. package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts.map +1 -1
  112. package/dist/audit/orchestrator/staleness.d.ts +4 -5
  113. package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
  114. package/dist/audit/orchestrator/staleness.js +18 -0
  115. package/dist/audit/orchestrator/staleness.js.map +1 -1
  116. package/dist/audit/orchestrator/syntaxResolutionExecutor.js +1 -1
  117. package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
  118. package/dist/audit/orchestrator/taskBuilder.d.ts +1 -1
  119. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  120. package/dist/audit/orchestrator/trivialAudit.d.ts +1 -1
  121. package/dist/audit/orchestrator/trivialAudit.d.ts.map +1 -1
  122. package/dist/audit/reporting/mergeFindings.d.ts +1 -1
  123. package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
  124. package/dist/audit/reporting/synthesis.d.ts +1 -1
  125. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  126. package/dist/audit/supervisor/sessionConfig.d.ts +7 -0
  127. package/dist/audit/supervisor/sessionConfig.d.ts.map +1 -1
  128. package/dist/audit/supervisor/sessionConfig.js +12 -0
  129. package/dist/audit/supervisor/sessionConfig.js.map +1 -1
  130. package/dist/audit/types.d.ts +40 -0
  131. package/dist/audit/types.d.ts.map +1 -1
  132. package/dist/remediate/phases/close.d.ts +8 -0
  133. package/dist/remediate/phases/close.d.ts.map +1 -1
  134. package/dist/remediate/phases/close.js +135 -1
  135. package/dist/remediate/phases/close.js.map +1 -1
  136. package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts +42 -0
  137. package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts.map +1 -0
  138. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +93 -0
  139. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -0
  140. package/dist/remediate/state/types.d.ts +46 -1
  141. package/dist/remediate/state/types.d.ts.map +1 -1
  142. package/dist/remediate/state/types.js.map +1 -1
  143. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  144. package/dist/remediate/steps/contractPipeline.js +24 -1
  145. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  146. package/dist/remediate/steps/dispatch/acceptNode.d.ts +19 -0
  147. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  148. package/dist/remediate/steps/dispatch/acceptNode.js +33 -3
  149. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  150. package/dist/remediate/steps/dispatch/verifyCommands.d.ts +17 -0
  151. package/dist/remediate/steps/dispatch/verifyCommands.d.ts.map +1 -1
  152. package/dist/remediate/steps/dispatch/verifyCommands.js +38 -0
  153. package/dist/remediate/steps/dispatch/verifyCommands.js.map +1 -1
  154. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +13 -2
  155. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -1
  156. package/dist/remediate/steps/dispatch/worktreeLifecycle.js +83 -17
  157. package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -1
  158. package/dist/remediate/steps/dispatch.d.ts +1 -1
  159. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  160. package/dist/remediate/steps/dispatch.js +1 -1
  161. package/dist/remediate/steps/dispatch.js.map +1 -1
  162. package/dist/remediate/types/options.d.ts +6 -0
  163. package/dist/remediate/types/options.d.ts.map +1 -1
  164. package/dist/{audit/extractors → shared}/analyzers/acquisitionEngine.d.ts +29 -4
  165. package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -0
  166. package/dist/{audit/extractors → shared}/analyzers/acquisitionEngine.js +29 -8
  167. package/dist/shared/analyzers/acquisitionEngine.js.map +1 -0
  168. package/dist/{audit/extractors → shared}/analyzers/binaryAcquisition.d.ts +1 -1
  169. package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -0
  170. package/dist/{audit/extractors → shared}/analyzers/binaryAcquisition.js +1 -1
  171. package/dist/shared/analyzers/binaryAcquisition.js.map +1 -0
  172. package/dist/{audit/extractors → shared}/analyzers/candidates.d.ts +8 -1
  173. package/dist/shared/analyzers/candidates.d.ts.map +1 -0
  174. package/dist/{audit/extractors → shared}/analyzers/candidates.js +292 -18
  175. package/dist/shared/analyzers/candidates.js.map +1 -0
  176. package/dist/{audit/adapters → shared/analyzers}/clippy.d.ts +1 -1
  177. package/dist/{audit/adapters → shared/analyzers}/clippy.d.ts.map +1 -1
  178. package/dist/shared/analyzers/clippy.js.map +1 -0
  179. package/dist/{audit/adapters → shared/analyzers}/normalizeExternal.d.ts +12 -2
  180. package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -0
  181. package/dist/{audit/adapters → shared/analyzers}/normalizeExternal.js +41 -12
  182. package/dist/shared/analyzers/normalizeExternal.js.map +1 -0
  183. package/dist/shared/analyzers/provenance.d.ts +55 -0
  184. package/dist/shared/analyzers/provenance.d.ts.map +1 -0
  185. package/dist/shared/analyzers/provenance.js +70 -0
  186. package/dist/shared/analyzers/provenance.js.map +1 -0
  187. package/dist/{audit/adapters → shared/analyzers}/rubocop.d.ts +1 -1
  188. package/dist/{audit/adapters → shared/analyzers}/rubocop.d.ts.map +1 -1
  189. package/dist/shared/analyzers/rubocop.js.map +1 -0
  190. package/dist/{audit/types/externalAnalyzer.d.ts → shared/analyzers/types.d.ts} +100 -17
  191. package/dist/shared/analyzers/types.d.ts.map +1 -0
  192. package/dist/{audit/types/externalAnalyzer.js → shared/analyzers/types.js} +5 -1
  193. package/dist/shared/analyzers/types.js.map +1 -0
  194. package/dist/shared/decompose/systemicChallenge.d.ts +40 -0
  195. package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
  196. package/dist/shared/dispatch/dispatchQuotaContract.d.ts +6 -6
  197. package/dist/shared/index.d.ts +16 -3
  198. package/dist/shared/index.d.ts.map +1 -1
  199. package/dist/shared/index.js +12 -2
  200. package/dist/shared/index.js.map +1 -1
  201. package/dist/shared/quota/accountId.d.ts +4 -4
  202. package/dist/shared/quota/accountId.d.ts.map +1 -1
  203. package/dist/shared/quota/accountId.js +4 -7
  204. package/dist/shared/quota/accountId.js.map +1 -1
  205. package/dist/shared/quota/capacity.d.ts +2 -2
  206. package/dist/shared/quota/packetCost.d.ts +5 -7
  207. package/dist/shared/quota/packetCost.d.ts.map +1 -1
  208. package/dist/shared/quota/packetCost.js +5 -11
  209. package/dist/shared/quota/packetCost.js.map +1 -1
  210. package/dist/shared/quota/state.d.ts +0 -21
  211. package/dist/shared/quota/state.d.ts.map +1 -1
  212. package/dist/shared/quota/state.js +0 -47
  213. package/dist/shared/quota/state.js.map +1 -1
  214. package/dist/shared/quota/types.d.ts +0 -11
  215. package/dist/shared/quota/types.d.ts.map +1 -1
  216. package/dist/shared/quota/types.js.map +1 -1
  217. package/dist/shared/tooling/testCommand.d.ts +14 -0
  218. package/dist/shared/tooling/testCommand.d.ts.map +1 -1
  219. package/dist/shared/tooling/testCommand.js +47 -2
  220. package/dist/shared/tooling/testCommand.js.map +1 -1
  221. package/dist/shared/types/finding.d.ts +126 -0
  222. package/dist/shared/types/finding.d.ts.map +1 -1
  223. package/dist/shared/types/finding.js +8 -0
  224. package/dist/shared/types/finding.js.map +1 -1
  225. package/dist/shared/types/remediationOutcome.d.ts +80 -0
  226. package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
  227. package/dist/shared/types/remediationOutcome.js +17 -0
  228. package/dist/shared/types/remediationOutcome.js.map +1 -1
  229. package/dist/shared/types/sessionConfig.d.ts +5 -0
  230. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  231. package/dist/shared/types/sessionConfig.js +1 -0
  232. package/dist/shared/types/sessionConfig.js.map +1 -1
  233. package/package.json +1 -1
  234. package/schemas/audit_result.schema.json +24 -0
  235. package/schemas/audit_results.schema.json +24 -0
  236. package/schemas/finding.schema.json +24 -0
  237. package/dist/audit/adapters/clippy.js.map +0 -1
  238. package/dist/audit/adapters/normalizeExternal.d.ts.map +0 -1
  239. package/dist/audit/adapters/normalizeExternal.js.map +0 -1
  240. package/dist/audit/adapters/rubocop.js.map +0 -1
  241. package/dist/audit/extractors/analyzers/acquisitionEngine.d.ts.map +0 -1
  242. package/dist/audit/extractors/analyzers/acquisitionEngine.js.map +0 -1
  243. package/dist/audit/extractors/analyzers/binaryAcquisition.d.ts.map +0 -1
  244. package/dist/audit/extractors/analyzers/binaryAcquisition.js.map +0 -1
  245. package/dist/audit/extractors/analyzers/candidates.d.ts.map +0 -1
  246. package/dist/audit/extractors/analyzers/candidates.js.map +0 -1
  247. package/dist/audit/types/externalAnalyzer.d.ts.map +0 -1
  248. package/dist/audit/types/externalAnalyzer.js.map +0 -1
  249. /package/dist/{audit/adapters → shared/analyzers}/clippy.js +0 -0
  250. /package/dist/{audit/adapters → shared/analyzers}/rubocop.js +0 -0
@@ -1,5 +1,6 @@
1
- import { type AnalyzerSetting, type RunTrackedResult } from "audit-tools/shared";
2
- import type { ExternalAnalyzerResults, ExternalAnalyzerToolStatus } from "../../types/externalAnalyzer.js";
1
+ import { type RunTrackedResult } from "../tooling/exec.js";
2
+ import type { AnalyzerSetting } from "../types/sessionConfig.js";
3
+ import type { ExternalAnalyzerResults, ExternalAnalyzerToolStatus } from "./types.js";
3
4
  import { type BinarySpec, type BinaryResolveOptions } from "./binaryAcquisition.js";
4
5
  /**
5
6
  * F5 — external analyzer acquisition engine.
@@ -42,6 +43,18 @@ export declare const OWNED_TOOL_IDS: Set<string>;
42
43
  * resolved (and downloaded-if-absent) by the binary-acquisition seam.
43
44
  */
44
45
  export type EcosystemRunner = "npx" | "pipx" | "cargo" | "bundle" | "binary";
46
+ /**
47
+ * Safety properties of an external analyzer. `defaultRun` eligibility derives
48
+ * from these: `config_execution !== "executable" && !network_egress && version_pinning === "pinned"`.
49
+ */
50
+ export interface AnalyzerSafetyProfile {
51
+ /** Whether the tool might execute repo code during config loading. */
52
+ config_execution: "none" | "inert-data" | "executable";
53
+ /** Whether the tool might make network requests outside the local repo. */
54
+ network_egress: boolean;
55
+ /** How strictly the tool version is pinned. */
56
+ version_pinning: "pinned" | "toolchain-resolved" | "unpinned";
57
+ }
45
58
  /**
46
59
  * One acquirable external analyzer. `defaultRun: true` marks a member of the
47
60
  * small value-curated set that may run without a consent token; everything else
@@ -54,6 +67,15 @@ export interface ExternalAnalyzerCandidate {
54
67
  runner: EcosystemRunner;
55
68
  /** Pinned tool spec, e.g. "eslint@9" / "ruff==0.5.0" (pinned for reproducibility). */
56
69
  spec: string;
70
+ /** Safety profile indicating whether this tool is safe to run by default. */
71
+ safetyProfile: AnalyzerSafetyProfile;
72
+ /**
73
+ * One human line: what this analyzer detects. Rendered into the Item B
74
+ * consent offer so the operator decides from the tool's own words, never a
75
+ * host improvisation. Optional only for test fixtures — every registered
76
+ * candidate carries one (pinned by the candidates safety contract test).
77
+ */
78
+ purpose?: string;
57
79
  /**
58
80
  * Build the read-only argv for the tool given the resolved runner argv prefix
59
81
  * and repo root. MUST NOT request fixes/writes — F5 is observe-only.
@@ -117,6 +139,8 @@ export interface AcquisitionEngineOptions {
117
139
  consentToken?: string;
118
140
  /** Per-analyzer settings (auto|ephemeral|permanent|skip|repo). */
119
141
  analyzers?: Record<string, AnalyzerSetting>;
142
+ /** Recorded analyzer consent decisions ("granted" or "declined"). */
143
+ analyzerConsent?: Record<string, "granted" | "declined">;
120
144
  /** Injectable command runner; defaults to the shared runTracked. */
121
145
  run?: AcquisitionRunner;
122
146
  /** Injectable logger; defaults to a no-op (degrade quietly to status records). */
@@ -132,9 +156,10 @@ export interface AcquisitionEngineOptions {
132
156
  * Single subprocess-SPAWN admission chokepoint. Returns the reason a spawn is
133
157
  * NOT admitted, or `undefined` when admitted. The DEFAULT set is admitted
134
158
  * without a token; EVERY other candidate — including `permanent`/`ephemeral`
135
- * pre-installed tools — requires the per-run consent token (CE-005).
159
+ * pre-installed tools — requires EITHER a recorded "granted" decision OR a
160
+ * per-run consent token (CE-005, revised with Item B).
136
161
  */
137
- export declare function admitSpawn(candidate: ExternalAnalyzerCandidate, setting: AnalyzerSetting, consentToken: string | undefined): string | undefined;
162
+ export declare function admitSpawn(candidate: ExternalAnalyzerCandidate, setting: AnalyzerSetting, consentToken: string | undefined, recordedDecision?: "granted" | "declined"): string | undefined;
138
163
  /**
139
164
  * The run-safety gate, written once: capability-probe the runner, then (if the
140
165
  * probe passes) the caller may spawn the pinned, read-only argv. Returns the
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquisitionEngine.d.ts","sourceRoot":"","sources":["../../../src/shared/analyzers/acquisitionEngine.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync, rmSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { runTracked, } from "audit-tools/shared";
4
- import { normalizeGenericExternalResults, normalizeGenericExternalEdges, } from "../../adapters/normalizeExternal.js";
3
+ import { runTracked } from "../tooling/exec.js";
4
+ import { normalizeGenericExternalResults, normalizeGenericExternalEdges, } from "./normalizeExternal.js";
5
5
  import { resolveBinary, } from "./binaryAcquisition.js";
6
6
  /**
7
7
  * F5 — external analyzer acquisition engine.
@@ -98,16 +98,20 @@ function runnerPrefix(runner, spec) {
98
98
  * Single subprocess-SPAWN admission chokepoint. Returns the reason a spawn is
99
99
  * NOT admitted, or `undefined` when admitted. The DEFAULT set is admitted
100
100
  * without a token; EVERY other candidate — including `permanent`/`ephemeral`
101
- * pre-installed tools — requires the per-run consent token (CE-005).
101
+ * pre-installed tools — requires EITHER a recorded "granted" decision OR a
102
+ * per-run consent token (CE-005, revised with Item B).
102
103
  */
103
- export function admitSpawn(candidate, setting, consentToken) {
104
+ export function admitSpawn(candidate, setting, consentToken, recordedDecision) {
104
105
  if (setting === "skip")
105
106
  return "setting=skip";
106
107
  if (candidate.defaultRun)
107
108
  return undefined;
109
+ // Admission: default set ∨ recorded "granted" ∨ per-run token
110
+ if (recordedDecision === "granted")
111
+ return undefined;
108
112
  if (consentToken && consentToken.trim().length > 0)
109
113
  return undefined;
110
- return "non-default tool requires per-run consent token";
114
+ return "non-default tool requires consent (declined or not yet decided)";
111
115
  }
112
116
  /**
113
117
  * The run-safety gate, written once: capability-probe the runner, then (if the
@@ -163,7 +167,8 @@ export function runExternalAnalyzer(candidate, root, options = {}) {
163
167
  };
164
168
  }
165
169
  // Single spawn-admission chokepoint — consent gating before anything spawns.
166
- const denied = admitSpawn(candidate, setting, options.consentToken);
170
+ const recordedDecision = options.analyzerConsent?.[candidate.id];
171
+ const denied = admitSpawn(candidate, setting, options.consentToken, recordedDecision);
167
172
  if (denied) {
168
173
  log("[f5] %s spawn not admitted: %s", candidate.id, denied);
169
174
  return {
@@ -218,6 +223,7 @@ export function runExternalAnalyzer(candidate, root, options = {}) {
218
223
  resolved: true,
219
224
  status: "spawn_error",
220
225
  error: error instanceof Error ? error.message : String(error),
226
+ duration_ms: 0,
221
227
  },
222
228
  };
223
229
  }
@@ -231,6 +237,7 @@ export function runExternalAnalyzer(candidate, root, options = {}) {
231
237
  status: "spawn_error",
232
238
  exit_code: result.status,
233
239
  error: result.error.message,
240
+ duration_ms: result.duration_ms,
234
241
  },
235
242
  };
236
243
  }
@@ -268,10 +275,22 @@ export function runExternalAnalyzer(candidate, root, options = {}) {
268
275
  exit_code: result.status,
269
276
  error: error instanceof Error ? error.message : String(error),
270
277
  output_snippet: result.stdout.slice(0, 200),
278
+ duration_ms: result.duration_ms,
271
279
  },
272
280
  };
273
281
  }
274
- const normalized = normalizeGenericExternalResults(candidate.id, items);
282
+ // readSource: content-anchored lead provenance (item C). Repo-rooted, degrade
283
+ // to no-provenance on any read failure — never blocks normalization.
284
+ const normalized = normalizeGenericExternalResults(candidate.id, items, {
285
+ readSource: (path) => {
286
+ try {
287
+ return readFileSync(join(root, path), "utf8");
288
+ }
289
+ catch {
290
+ return undefined;
291
+ }
292
+ },
293
+ });
275
294
  const edges = normalizeGenericExternalEdges(items);
276
295
  if (edges.length > 0)
277
296
  normalized.graph_edges = edges;
@@ -283,6 +302,7 @@ export function runExternalAnalyzer(candidate, root, options = {}) {
283
302
  resolved: true,
284
303
  status: normalized.results.length > 0 ? "findings" : "success",
285
304
  exit_code: result.status,
305
+ duration_ms: result.duration_ms,
286
306
  },
287
307
  };
288
308
  }
@@ -325,7 +345,8 @@ export async function resolveBinaryCandidates(candidates, root, options = {}) {
325
345
  continue;
326
346
  }
327
347
  const setting = settingFor(options.analyzers, candidate.id);
328
- const denied = admitSpawn(candidate, setting, options.consentToken);
348
+ const recordedDecision = options.analyzerConsent?.[candidate.id];
349
+ const denied = admitSpawn(candidate, setting, options.consentToken, recordedDecision);
329
350
  if (denied) {
330
351
  unresolvedStatuses.push({
331
352
  tool: candidate.id,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquisitionEngine.js","sourceRoot":"","sources":["../../../src/shared/analyzers/acquisitionEngine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type RunTrackedResult } from "audit-tools/shared";
1
+ import { type RunTrackedResult } from "../tooling/exec.js";
2
2
  /**
3
3
  * Generic acquisition of a standalone mature analyzer BINARY (gitleaks,
4
4
  * trufflehog, …) that has no language package-manager runner. The own-vs-acquire
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binaryAcquisition.d.ts","sourceRoot":"","sources":["../../../src/shared/analyzers/binaryAcquisition.ts"],"names":[],"mappings":"AAYA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AAEH,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CAC3C;AAED,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjD;AAED,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjE;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACzD,gFAAgF;IAChF,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa,CAAC;IACzD,sFAAsF;IACtF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAMf;AAMD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAiI3B"}
@@ -2,7 +2,7 @@ import { createHash } from "node:crypto";
2
2
  import { chmodSync, existsSync, mkdirSync, readdirSync, rmSync, statSync, writeFileSync, } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { tmpdir } from "node:os";
5
- import { runTracked } from "audit-tools/shared";
5
+ import { runTracked } from "../tooling/exec.js";
6
6
  function defaultCacheDir() {
7
7
  return join(tmpdir(), "audit-tools-bincache");
8
8
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binaryAcquisition.js","sourceRoot":"","sources":["../../../src/shared/analyzers/binaryAcquisition.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,14 @@ declare const actionlintCandidate: ExternalAnalyzerCandidate;
68
68
  */
69
69
  declare function parseTypeCoverage(stdout: string): ReturnType<ExternalAnalyzerCandidate["parse"]>;
70
70
  declare const typeCoverageCandidate: ExternalAnalyzerCandidate;
71
+ /**
72
+ * Parse lizard's CSV output (default: `lizard -l <languages> --csv <path>`).
73
+ * CSV format: "NLOC,CCN,Token,PARAM,Length,Location,File,Function"
74
+ * Degrades to `[]` on parse failure; reports lead findings for complexity overages.
75
+ */
76
+ declare function parseLizard(stdout: string): ReturnType<ExternalAnalyzerCandidate["parse"]>;
77
+ declare const lizardCandidate: ExternalAnalyzerCandidate;
71
78
  /** The curated external analyzer candidate set. gitleaks is the default member. */
72
79
  export declare const EXTERNAL_ANALYZER_CANDIDATES: ExternalAnalyzerCandidate[];
73
- export { gitleaksCandidate, semgrepCandidate, knipCandidate, parseKnip, eslintCandidate, parseGitleaks, GITLEAKS_VERSION, jscpdCandidate, parseJscpd, osvScannerCandidate, parseOsvScanner, OSV_SCANNER_VERSION, clippyCandidate, rubocopCandidate, hadolintCandidate, parseHadolint, HADOLINT_VERSION, actionlintCandidate, parseActionlint, ACTIONLINT_VERSION, typeCoverageCandidate, parseTypeCoverage, };
80
+ export { gitleaksCandidate, semgrepCandidate, knipCandidate, parseKnip, eslintCandidate, parseGitleaks, GITLEAKS_VERSION, jscpdCandidate, parseJscpd, osvScannerCandidate, parseOsvScanner, OSV_SCANNER_VERSION, clippyCandidate, rubocopCandidate, hadolintCandidate, parseHadolint, HADOLINT_VERSION, actionlintCandidate, parseActionlint, ACTIONLINT_VERSION, typeCoverageCandidate, parseTypeCoverage, lizardCandidate, parseLizard, };
74
81
  //# sourceMappingURL=candidates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../../src/shared/analyzers/candidates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAaxE;;;;;;;GAOG;AAKH,QAAA,MAAM,gBAAgB,WAAW,CAAC;AAkDlC;;;;GAIG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAqCrF;AAED,QAAA,MAAM,iBAAiB,EAAE,yBA4BxB,CAAC;AAiCF,QAAA,MAAM,gBAAgB,EAAE,yBAevB,CAAC;AAqCF,QAAA,MAAM,eAAe,EAAE,yBAetB,CAAC;AAkBF,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAyEjF;AAED,QAAA,MAAM,aAAa,EAAE,yBA2BpB,CAAC;AA+FF;;;;;;;GAOG;AACH,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAkClF;AAED,QAAA,MAAM,cAAc,EAAE,yBA4BrB,CAAC;AAOF,QAAA,MAAM,mBAAmB,UAAU,CAAC;AA2BpC;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CA+DvF;AAED,QAAA,MAAM,mBAAmB,EAAE,yBAoB1B,CAAC;AAKF,QAAA,MAAM,eAAe,EAAE,yBAmBtB,CAAC;AAKF,QAAA,MAAM,gBAAgB,EAAE,yBAkBvB,CAAC;AAOF,QAAA,MAAM,gBAAgB,WAAW,CAAC;AA2BlC;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CA6BrF;AAED,QAAA,MAAM,iBAAiB,EAAE,yBAiBxB,CAAC;AAOF,QAAA,MAAM,kBAAkB,WAAW,CAAC;AAkCpC;;;;GAIG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CA2BvF;AAED,QAAA,MAAM,mBAAmB,EAAE,yBAkB1B,CAAC;AAKF;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CA4BzF;AAED,QAAA,MAAM,qBAAqB,EAAE,yBAkB5B,CAAC;AA0CF;;;;GAIG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAuCnF;AAED,QAAA,MAAM,eAAe,EAAE,yBA0BtB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,4BAA4B,EAAE,yBAAyB,EAanE,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,WAAW,GACZ,CAAC"}