resolvedRef static method

ProviderQueueEntry resolvedRef({
  1. required String name,
  2. required int position,
  3. required ({String? baseUrl, String? keyName, String kind, String model})? resolveRef(
    1. String name
    ),
  4. Map<Object?, Object?>? overrides,
})

Parses a {"ref": name} entry: fields resolve through the saved custom providers; inline provider_config overrides win (UT-ref). resolveRef returns the referenced provider's fields, or null when dangling (the caller turns that into a boot error with candidates).

Implementation

static ProviderQueueEntry resolvedRef({
  required String name,
  required int position,
  required ({String kind, String? baseUrl, String model, String? keyName})?
  Function(String name)
  resolveRef,
  Map<Object?, Object?>? overrides,
}) {
  final where = 'queue entry #$position';
  final resolved = resolveRef(name);
  if (resolved == null) {
    throw ConfigException(
      '$where: ref "$name" matches no customProviders entry',
    );
  }
  final model = overrides?['model'] as String?;
  final baseUrl = overrides?['baseUrl'] as String?;
  final apiKeyEnv = overrides?['apiKeyEnv'] as String?;
  final contextWindow = _optionalInt(
    overrides ?? const {},
    'contextWindow',
    where,
  );
  final maxTokens = _optionalInt(overrides ?? const {}, 'maxTokens', where);
  return ProviderQueueEntry(
    providerType: resolved.kind,
    model: (model != null && model.trim().isNotEmpty)
        ? model.trim()
        : resolved.model,
    baseUrl: (baseUrl != null && baseUrl.trim().isNotEmpty)
        ? baseUrl.trim()
        : resolved.baseUrl,
    apiKeyEnv: (apiKeyEnv != null && apiKeyEnv.trim().isNotEmpty)
        ? apiKeyEnv.trim()
        : resolved.keyName,
    contextWindow: contextWindow,
    maxTokens: maxTokens,
    ref: name,
  );
}