resolveAcpModelId function
Resolves an environment pin against the model ids offered by an ACP agent.
Exact wins first. A qualified current model with the requested base wins next so the agent's own effort default survives. A sole remaining variant is unambiguous; absent and ambiguous catalogs refuse by returning null.
Implementation
String? resolveAcpModelId({
required String want,
required List<String> available,
String? current,
}) {
if (available.contains(want)) return want;
final variants = available
.where((id) => baseAcpModelId(id) == want)
.toList(growable: false);
if (current != null && baseAcpModelId(current) == want) return current;
return variants.length == 1 ? variants.single : null;
}