import type { FindingRecord } from '../../domain/finding'; import { policyBackupImpactKey, type PolicyWorkResult } from '../../evaluation/policy-work-results'; import { policySourceReference } from '../../profiles/group-policy/source-presentation'; /** All evidence sources of a Fail comparison, not a new per-backup verdict. */ export function policyBackupImpactSources(result: PolicyWorkResult): NonNullable { if (result.status !== 'Fail') return []; const sources = new Map(); for (const source of result.sources) { const id = policyBackupImpactKey(source); if (!id || sources.has(id)) continue; const reference = policySourceReference(source.sourceLocator?.objectPath); const nativeBackup = /^(\{[0-9a-f-]+\})\//i.exec(reference)?.[1]; // Include the retained internal identity so equal names/references never hide distinct backups. const label = [nativeBackup, source.policyBackupInstanceId, source.importedAt].filter(Boolean).join(' ยท '); sources.set(id, { id, label }); } return [...sources.values()]; }