/** * Project-profile severity transform (added in 3.106.0). * * Post-pipeline hook that adjusts the severity of findings carrying the * `library-api-surface:caller-responsibility` tag based on the resolved * `ProjectProfile` for the finding's file. Designed to compose with the * Sprint 47 `applyLibraryApiSurfaceDowngrade` hook: * * findings * → applyConfidenceFilter * → applyLibraryApiSurfaceDowngrade (uniform CRIT/HIGH → MED) * → applyProjectProfileTransform (THIS — profile-conditional) * → applyPerFileFindingCap * * Decision policy (D1=C, D2=Yes, D3=Yes per ADR-008): * * - `profile = library/` AND tagged AND rule_id ∈ DOWNGRADE_ELIGIBLE * → CRIT-protected bucketing: CRIT→MED, HIGH→LOW, MED→LOW, LOW→LOW * * - `profile = application/` AND tagged AND original_severity set * → restore original_severity (revert Sprint 47 downgrade) * * - Anything else → no-op (untagged findings, unknown profile, other * shapes, ineligible sink types). * * Pillar I: no LLM-themed identifiers. Pure function over the findings * array; the resolver callback is supplied by the caller (engine wires it * from `analyzeOptions.projectProfile`). * * See `docs/ARCHITECTURE.md` ADR-008 for the full rationale. */ import type { SastFinding, ProjectProfile } from '../types/index.js'; /** * Resolve a file path to a `ProjectProfile`. Returns `'unknown'` when the * caller cannot supply a profile for the file (the safe default — no * profile-conditional transform applied). */ export type ProfileResolver = (file: string) => ProjectProfile; /** * Apply project-profile-conditional severity transform to tagged * findings. Non-mutating — returns a new array; untagged findings, * findings under `unknown` profile, and findings whose rule_id is not in * the downgrade allowlist all pass through identical (same reference). * * See `docs/ARCHITECTURE.md` ADR-008 for the composition contract. */ export declare function applyProjectProfileTransform(findings: SastFinding[], resolveProfile: ProfileResolver): SastFinding[]; //# sourceMappingURL=project-profile-transform.d.ts.map