resolveConflictingGuidance function
DecisionGuidance
resolveConflictingGuidance(
- List<
DecisionGuidance> matches, - ConflictResolution strategy
Resolve conflicting guidance from multiple matched policies.
Implements all 9 ConflictResolution strategies.
Implementation
DecisionGuidance resolveConflictingGuidance(
List<DecisionGuidance> matches,
ConflictResolution strategy,
) {
if (matches.isEmpty) return DecisionGuidance.defaultProceed;
if (matches.length == 1) return matches.first;
return switch (strategy) {
ConflictResolution.firstMatch => matches.first,
ConflictResolution.lastMatch => matches.last,
ConflictResolution.highestPriority =>
matches.first, // Already sorted by priority
ConflictResolution.mostRestrictive => _mostRestrictive(matches),
ConflictResolution.mostSpecific =>
matches.last, // Last in sorted = most specific
ConflictResolution.unanimous => _unanimous(matches),
ConflictResolution.majority => _majority(matches),
ConflictResolution.merge => _merge(matches),
ConflictResolution.custom =>
matches.first, // Custom requires app-level implementation
};
}