517
const modeModelQualifiedNames = subagent.model;
518
if (modeModelQualifiedNames) {
519
>
// When the main model is BYOK (flagged via `metadata.isBYOK`), skip Copilot/CAPI fallback models
runSubagentTool.ts
520
>
// for built-in agents (e.g. Explore), whose model list is a curated convenience fallback. A
521
>
// user-authored agent's model list is a deliberate choice and is always honored as-is.
522
>
const mainModelMetadata = mainModelId ? this.languageModelsService.lookupLanguageModel(mainModelId) : undefined;
523
>
const mainModelIsByok = !!mainModelMetadata && isByokModel(mainModelMetadata);
524
>
const skipCopilotFallbacks = mainModelIsByok && isBuiltinAgent(subagent.source, subagent.uri, this.productService);
525
>
// Find the actual model identifier from the qualified name(s)
526
>
for (const qualifiedName of modeModelQualifiedNames) {
527
>
const lmByQualifiedName = this.languageModelsService.lookupLanguageModelByQualifiedName(qualifiedName);
528
>
if (lmByQualifiedName?.identifier) {
529
>
if (skipCopilotFallbacks && lmByQualifiedName.metadata.vendor === COPILOT_VENDOR_ID) {
530
continue;
531
}