/** * Cross-artifact trust-conflict detection (compile time). * * The most dangerous governance failure is two *certified* definitions that * claim the SAME concept/grain but DISAGREE — e.g. two terms named the same * business concept, sharing an identifier and grain, but with divergent * business rules or definitions. Without detection the agent would silently * pick one. This pass flags such pairs as `kind: 'conflict'` diagnostics so a * governed system can refuse to guess and ask a human to pick the winner. * * This is a *manifest-level* (cross-file) check: the per-file semantic analyzer * cannot see two files at once, so this operates on the assembled term/block * maps. It is re-exported from `semantic/analyzer.ts` and invoked by the * manifest builder after blocks/terms are scanned. * * Heuristics are deliberately CONSERVATIVE to avoid false positives: * - Both sides must be governance-grade (terms: status certified/approved or * no status; certified blocks only). * - They must claim the SAME concept: a shared, normalized identifier AND the * same grain (when both declare a grain). * - They must DIVERGE: different normalized definition OR different business * rules. Two artifacts that agree are NOT a conflict, and the same artifact * compared with itself is never a conflict. */ import type { ManifestBlock, ManifestDiagnostic, ManifestTerm } from '../manifest/types.js'; /** * Detect same-identifier + same-grain + divergent-definition/rule pairs across * the manifest's terms and certified blocks, returning additive * `kind: 'conflict'` diagnostics. Pairs are compared once (no self-comparison, * no duplicate A/B + B/A). */ export declare function detectTrustConflicts(terms: Record, blocks: Record): ManifestDiagnostic[]; //# sourceMappingURL=conflicts.d.ts.map