From 38e2bc4e6813e9f7ec0ae9b8b4ea5d9fa71d2bc9 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 24 Mar 2025 10:24:57 +0100 Subject: [PATCH] chat - rename setup agent back to original name (#244429) --- src/vs/workbench/contrib/chat/browser/chatSetup.ts | 2 +- src/vs/workbench/contrib/chat/common/chatAgents.ts | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/chatSetup.ts b/src/vs/workbench/contrib/chat/browser/chatSetup.ts index 136f67dd317..9621e9cd6f9 100644 --- a/src/vs/workbench/contrib/chat/browser/chatSetup.ts +++ b/src/vs/workbench/contrib/chat/browser/chatSetup.ts @@ -148,7 +148,7 @@ class SetupChatAgentImplementation extends Disposable implements IChatAgentImple disposable.add(chatAgentService.registerAgent(id, { id, - name: 'Copilot', // intentionally not using exact same name as extension to avoid conflict with IChatAgentService.getAgentsByName() + name: `${defaultChat.providerName} Copilot`, isDefault: true, isCore: true, isToolsAgent, diff --git a/src/vs/workbench/contrib/chat/common/chatAgents.ts b/src/vs/workbench/contrib/chat/common/chatAgents.ts index a43f913a274..6ef8775d594 100644 --- a/src/vs/workbench/contrib/chat/common/chatAgents.ts +++ b/src/vs/workbench/contrib/chat/common/chatAgents.ts @@ -450,7 +450,16 @@ export class ChatAgentService extends Disposable implements IChatAgentService { } getAgentsByName(name: string): IChatAgentData[] { - return this.getAgents().filter(a => a.name === name); + return this._preferExtensionAgents(this.getAgents().filter(a => a.name === name)); + } + + private _preferExtensionAgents(agents: T[]): T[] { + // We potentially have multiple agents on the same location, + // contributed from core and from extensions. + // This method will prefer the extensions provided agents + // falling back to the original agents array extension agent is found. + const extensionAgents = agents.filter(a => !a.isCore); + return extensionAgents.length > 0 ? extensionAgents : agents; } agentHasDupeName(id: string): boolean {