466
return 'No models available.';
467
}
469
>
const available: string[] = [];
470
>
const unavailableDueToMultiplier: string[] = [];
471
>
472
>
for (const { id, metadata } of models) {
473
>
const qualifiedName = ILanguageModelChatMetadata.asQualifiedName(metadata);
474
>
const check = this.checkMultiplierConstraint(id, mainModelId);
475
>
476
>
if (check.exceeds) {
477
unavailableDueToMultiplier.push(qualifiedName);
479
>
available.push(qualifiedName);
480
>
}
481
>
}
482
>
483
>
const parts: string[] = [];
484
>
if (available.length > 0) {
485
>
parts.push(`Available models: ${available.join(', ')}`);
486
>
}
487
>
if (unavailableDueToMultiplier.length > 0) {
488
parts.push(`Unavailable (exceeds current model's cost tier): ${unavailableDueToMultiplier.join(', ')}`);
489
}
491
>
return parts.join('. ') || 'No models available.';
492
}
493