import type { ExternalAnalyzerCandidate } from "./acquisitionEngine.js"; import type { ExternalAnalyzerParseReport } from "./types.js"; /** * The value-curated EXTERNAL analyzer candidate registry. This is the only place * concrete tools are named; the engine is tool-agnostic. Membership in the * DEFAULT set is per-candidate `defaultRun: true` — those run without the * per-run consent token; every `defaultRun: false` candidate runs only when the * operator supplies the token. The flag on each registry row below is the * authoritative roster — this comment enumerates nothing. */ declare const GITLEAKS_VERSION = "8.21.2"; /** * Parse gitleaks' default JSON report (array of findings, PascalCase fields) into * the engine's generic item shape. The raw secret value is NEVER carried through * (Secret/Match are dropped) so the persisted artifact cannot leak a credential. */ declare function parseGitleaks(report: string): ExternalAnalyzerParseReport; declare const gitleaksCandidate: ExternalAnalyzerCandidate; declare const semgrepCandidate: ExternalAnalyzerCandidate; declare const eslintCandidate: ExternalAnalyzerCandidate; declare function parseKnip(stdout: string): ExternalAnalyzerParseReport; declare const knipCandidate: ExternalAnalyzerCandidate; /** * Parse jscpd's JSON reporter output (`{ duplicates: [{ firstFile, secondFile, * fragment, lines, ... }] }`) into the engine's generic item shape. Degrades to * [] on malformed/empty/missing-'duplicates' input. Never calls * normalizeGenericExternalResults — that seam belongs to the audit/adapters * normalization path, not to a candidate's own parse function (same as * parseKnip/parseEslint/parseSemgrep above). */ declare function parseJscpd(report: string): ExternalAnalyzerParseReport; declare const jscpdCandidate: ExternalAnalyzerCandidate; declare const OSV_SCANNER_VERSION = "2.4.0"; /** * Parse osv-scanner's `--format json` stdout — grounded against * `pkg/models/results.go` (`VulnerabilityResults`) in google/osv-scanner, not * guessed: `{ results: [{ source: {path}, packages: [{ package: {name, * version}, vulnerabilities: [...], groups: [{ids, max_severity}] }] }] }`. * One item per GROUP (osv-scanner's own alias-collapsed dedup unit), not per * raw vulnerability id, so CVE/GHSA aliases for the same underlying issue * don't fan out into duplicate items. */ declare function parseOsvScanner(stdout: string): ExternalAnalyzerParseReport; declare const osvScannerCandidate: ExternalAnalyzerCandidate; declare const clippyCandidate: ExternalAnalyzerCandidate; declare const rubocopCandidate: ExternalAnalyzerCandidate; declare const HADOLINT_VERSION = "2.14.0"; /** * Parse hadolint's `--format json` stdout — a FLAT array of objects grounded * against hadolint's JSON formatter: `[{ file, line, column, code, level, * message }]`. `level` ∈ error|warning|info|style. Degrades to `[]` on * empty/malformed/non-array input. */ declare function parseHadolint(stdout: string): ExternalAnalyzerParseReport; declare const hadolintCandidate: ExternalAnalyzerCandidate; declare const ACTIONLINT_VERSION = "1.7.12"; /** * Parse actionlint's `-format '{{json .}}'` stdout — a JSON array grounded * against actionlint's template output: `[{ message, filepath, line, column, * kind }]`. Degrades to `[]` on empty/malformed/non-array input. */ declare function parseActionlint(stdout: string): ExternalAnalyzerParseReport; declare const actionlintCandidate: ExternalAnalyzerCandidate; /** * Parse type-coverage's `--json --detail` stdout — grounded against * type-coverage's JSON shape: `{ percentage, total, correct, anys: [{ file, * line, character, text }] }`. Each `anys` entry is one implicit/explicit `any` * site; degrades to `[]` on empty/malformed input or a missing `anys` array. */ declare function parseTypeCoverage(stdout: string): ExternalAnalyzerParseReport; declare const typeCoverageCandidate: ExternalAnalyzerCandidate; /** * Parse lizard's CSV output (default: `lizard -l --csv `). * CSV format: "NLOC,CCN,Token,PARAM,Length,Location,File,Function" * Degrades to `[]` on parse failure; reports lead findings for complexity overages. */ declare function parseLizard(stdout: string): ExternalAnalyzerParseReport; declare const lizardCandidate: ExternalAnalyzerCandidate; /** The curated external analyzer candidate set. `defaultRun` marks the consent-free default members. */ export declare const EXTERNAL_ANALYZER_CANDIDATES: ExternalAnalyzerCandidate[]; 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, }; //# sourceMappingURL=candidates.d.ts.map