resolveAcpModelId function

String? resolveAcpModelId({
  1. required String want,
  2. required List<String> available,
  3. String? current,
})

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;
}