Skip to content

Commit 5d91fa2

Browse files
authored
Merge pull request microsoft#272534 from microsoft/digitarald/boiling-badger
Consistent custom agent copy
2 parents c53994b + 3a76457 commit 5d91fa2

File tree

12 files changed

+26
-27
lines changed

12 files changed

+26
-27
lines changed

src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,8 +431,8 @@ export class OpenModePickerAction extends Action2 {
431431
constructor() {
432432
super({
433433
id: OpenModePickerAction.ID,
434-
title: localize2('interactive.openModePicker.label', "Open Mode Picker"),
435-
tooltip: localize('setChatMode', "Set Mode"),
434+
title: localize2('interactive.openModePicker.label', "Open Agent Picker"),
435+
tooltip: localize('setChatMode', "Set Agent"),
436436
category: CHAT_CATEGORY,
437437
f1: false,
438438
precondition: ChatContextKeys.enabled,

src/vs/workbench/contrib/chat/browser/actions/chatToolActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ class ConfigureToolsAction extends Action2 {
160160
description = localize('chat.tools.description.session', "The selected tools were configured by a prompt command and only apply to this chat session.");
161161
break;
162162
case ToolsScope.Mode:
163-
placeholder = localize('chat.tools.placeholder.mode', "Select tools for this agent");
164-
description = localize('chat.tools.description.mode', "The selected tools are configured by the '{0}' agent. Changes to the tools will be applied to the agent file as well.", widget.input.currentModeObs.get().label);
163+
placeholder = localize('chat.tools.placeholder.mode', "Select tools for this custom agent");
164+
description = localize('chat.tools.description.mode', "The selected tools are configured by the '{0}' custom agent. Changes to the tools will be applied to the custom agent file as well.", widget.input.currentModeObs.get().label);
165165
break;
166166
case ToolsScope.Global:
167167
placeholder = localize('chat.tools.placeholder.global', "Select tools that are available to chat.");

src/vs/workbench/contrib/chat/browser/chat.contribution.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ configurationRegistry.registerConfiguration({
196196
'chat.implicitContext.suggestedContext': {
197197
type: 'boolean',
198198
tags: ['experimental'],
199-
markdownDescription: nls.localize('chat.implicitContext.suggestedContext', "Controls whether the new implicit context flow is shown. In Ask and Edit modes, the context will automatically be included. In Agent mode context will be suggested as an attachment. Selections are always included as context."),
199+
markdownDescription: nls.localize('chat.implicitContext.suggestedContext', "Controls whether the new implicit context flow is shown. In Ask and Edit modes, the context will automatically be included. When using an agent, context will be suggested as an attachment. Selections are always included as context."),
200200
default: true,
201201
},
202202
'chat.editing.autoAcceptDelay': {
@@ -619,7 +619,7 @@ configurationRegistry.registerConfiguration({
619619
default: {
620620
[LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
621621
},
622-
deprecationMessage: nls.localize('chat.mode.config.locations.deprecated', "This setting is deprecated and will be removed in future releases. Chat modes are now called agents and are located in `.github/agents`"),
622+
deprecationMessage: nls.localize('chat.mode.config.locations.deprecated', "This setting is deprecated and will be removed in future releases. Chat modes are now called custom agents and are located in `.github/agents`"),
623623
additionalProperties: { type: 'boolean' },
624624
unevaluatedProperties: { type: 'boolean' },
625625
restricted: true,
@@ -857,7 +857,7 @@ class ChatAgentSettingContribution extends Disposable implements IWorkbenchContr
857857
properties: {
858858
'chat.agent.maxRequests': {
859859
type: 'number',
860-
markdownDescription: nls.localize('chat.agent.maxRequests', "The maximum number of requests to allow per-turn in agent mode. When the limit is reached, will ask to confirm to continue."),
860+
markdownDescription: nls.localize('chat.agent.maxRequests', "The maximum number of requests to allow per-turn when using an agent. When the limit is reached, will ask to confirm to continue."),
861861
default: defaultValue,
862862
},
863863
}

src/vs/workbench/contrib/chat/browser/chatWidget.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1460,11 +1460,11 @@ export class ChatWidget extends Disposable implements IChatWidget {
14601460
suggestedPrompts
14611461
};
14621462
} else {
1463-
const agentHelpMessage = localize('agentMessage', "Ask to edit your files in [agent mode]({0}). Agent mode will automatically use multiple requests to pick files to edit, run terminal commands, and iterate on errors.", 'https://aka.ms/vscode-copilot-agent');
1463+
const agentHelpMessage = localize('agentMessage', "Ask to edit your files using [Agent]({0}). Agent will automatically use multiple requests to pick files to edit, run terminal commands, and iterate on errors.", 'https://aka.ms/vscode-copilot-agent');
14641464
const message = expEmptyState ? disclaimerMessage : `${agentHelpMessage}\n\n${disclaimerMessage}`;
14651465

14661466
return {
1467-
title: localize('agentTitle', "Build with agent mode"),
1467+
title: localize('agentTitle', "Build with Agent"),
14681468
message: new MarkdownString(message),
14691469
icon,
14701470
additionalMessage,
@@ -1488,7 +1488,7 @@ export class ChatWidget extends Disposable implements IChatWidget {
14881488
const providerTips = this._lockedAgent ? this.chatSessionsService.getWelcomeTipsForSessionType(this._lockedAgent.id) : undefined;
14891489
const suggestedPrompts = this._lockedAgent ? undefined : this.getNewSuggestedPrompts();
14901490
const welcomeContent: IChatViewWelcomeContent = {
1491-
title: providerTitle ?? localize('expChatTitle', 'Build with agent mode'),
1491+
title: providerTitle ?? localize('expChatTitle', 'Build with agents'),
14921492
message: providerMessage ? new MarkdownString(providerMessage) : new MarkdownString(localize('expchatMessage', "Let's get started")),
14931493
icon: providerIcon ?? Codicon.chatSparkle,
14941494
inputPart: this.inputPart.element,

src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class AbstractNewPromptFileAction extends Action2 {
112112
Severity.Info,
113113
localize(
114114
'workbench.command.prompts.create.user.enable-sync-notification',
115-
"Do you want to backup and sync your user prompt, instruction and agent files with Setting Sync?'",
115+
"Do you want to backup and sync your user prompt, instruction and custom agent files with Setting Sync?'",
116116
),
117117
[
118118
{
@@ -161,10 +161,10 @@ class AbstractNewPromptFileAction extends Action2 {
161161
case PromptsType.agent:
162162
return [
163163
`---`,
164-
`description: '\${1:Description of the agent.}'`,
164+
`description: '\${1:Describe what this custom agent does and when to use it.}'`,
165165
`tools: []`,
166166
`---`,
167-
`\${2:Define the purpose of this agent and how AI should behave: response style, available tools, focus areas, and any agent-specific instructions or constraints.}`,
167+
`\${2:Define what this custom agent accomplishes for the user, when to use it, and the edges it won't cross. Specify its ideal inputs/outputs, the tools it may call, and how it reports progress or asks for help.}`,
168168
].join('\n');
169169
default:
170170
throw new Error(`Unknown prompt type: ${promptType}`);
@@ -192,7 +192,7 @@ class NewInstructionsFileAction extends AbstractNewPromptFileAction {
192192

193193
class NewAgentFileAction extends AbstractNewPromptFileAction {
194194
constructor() {
195-
super(NEW_AGENT_COMMAND_ID, localize('commands.new.agent.local.title', "New Agent File..."), PromptsType.agent);
195+
super(NEW_AGENT_COMMAND_ID, localize('commands.new.agent.local.title', "New Custom Agent..."), PromptsType.agent);
196196
}
197197
}
198198

src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ const NEW_AGENT_FILE_OPTION: IPromptPickerQuickPickItem = Object.freeze({
144144
type: 'item',
145145
label: `$(plus) ${localize(
146146
'commands.new-agentfile.select-dialog.label',
147-
'Create new agent file...',
147+
'Create new custom agent...',
148148
)}`,
149149
value: URI.parse(AGENT_DOCUMENTATION_URL),
150150
pickable: false,

src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export class PromptUrlHandler extends Disposable implements IWorkbenchContributi
136136
message = localize('confirmInstallInstructions', "An external application wants to create an instructions file with content from a URL. Do you want to continue by selecting a destination folder and name?");
137137
break;
138138
default:
139-
message = localize('confirmInstallAgent', "An external application wants to create an agent with content from a URL. Do you want to continue by selecting a destination folder and name?");
139+
message = localize('confirmInstallAgent', "An external application wants to create a custom agent with content from a URL. Do you want to continue by selecting a destination folder and name?");
140140
break;
141141
}
142142

src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,9 @@ export class ChatViewWelcomePart extends Disposable {
168168
const expEmptyState = this.configurationService.getValue<boolean>('chat.emptyChatState.enabled');
169169
if (typeof content.message !== 'function' && options?.isWidgetAgentWelcomeViewContent && !expEmptyState) {
170170
const container = dom.append(this.element, $('.chat-welcome-view-indicator-container'));
171-
dom.append(container, $('.chat-welcome-view-subtitle', undefined, localize('agentModeSubtitle', "Agent Mode")));
171+
dom.append(container, $('.chat-welcome-view-subtitle', undefined, localize('agentModeSubtitle', "Agent")));
172172
}
173173

174-
// Message
175174
const message = dom.append(this.element, content.isNew ? $('.chat-welcome-new-view-message') : $('.chat-welcome-view-message'));
176175
message.classList.toggle('empty-state', expEmptyState);
177176

src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export class PromptCodeActionProvider implements CodeActionProvider {
8282
if (location && await this.fileService.canMove(uri, location)) {
8383
const edit: IWorkspaceFileEdit = { oldResource: uri, newResource: location, options: { overwrite: false, copy: false } };
8484
result.push({
85-
title: localize('migrateToAgent', "Migrate to agent file"),
85+
title: localize('migrateToAgent', "Migrate to custom agent file"),
8686
edit: {
8787
edits: [edit]
8888
}

src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,20 @@ export class PromptHoverProvider implements HoverProvider {
8080
} else if (promptType === PromptsType.agent) {
8181
const descriptionRange = header.getAttribute(PromptHeaderAttributes.description)?.range;
8282
if (descriptionRange?.containsPosition(position)) {
83-
return this.createHover(localize('promptHeader.agent.description', 'The description of the agent file. It is a short description of what the agent does.'), descriptionRange);
83+
return this.createHover(localize('promptHeader.agent.description', 'The description of the custom agent, what it does and when to use it.'), descriptionRange);
8484
}
8585
const model = header.getAttribute(PromptHeaderAttributes.model);
8686
if (model?.range.containsPosition(position)) {
87-
return this.getModelHover(model, model.range, localize('promptHeader.agent.model', 'The model to use in this agent.'));
87+
return this.getModelHover(model, model.range, localize('promptHeader.agent.model', 'Specify the model that runs this custom agent.'));
8888
}
8989
const tools = header.getAttribute(PromptHeaderAttributes.tools);
9090
if (tools?.range.containsPosition(position)) {
91-
return this.getToolHover(tools, position, localize('promptHeader.agent.tools', 'The tools to use in this agent.'));
91+
return this.getToolHover(tools, position, localize('promptHeader.agent.tools', 'The set of tools that the custom agent has access to.'));
9292
}
9393
} else {
9494
const descriptionRange = header.getAttribute(PromptHeaderAttributes.description)?.range;
9595
if (descriptionRange?.containsPosition(position)) {
96-
return this.createHover(localize('promptHeader.prompt.description', 'The description of the prompt file. It is a short description of what the prompt does.'), descriptionRange);
96+
return this.createHover(localize('promptHeader.prompt.description', 'The description of the reusable prompt, what it does and when to use it.'), descriptionRange);
9797
}
9898
const model = header.getAttribute(PromptHeaderAttributes.model);
9999
if (model?.range.containsPosition(position)) {

0 commit comments

Comments
 (0)