@codingame/monaco-vscode-chat-service-override 32.0.0 → 32.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/index.js +1 -0
  2. package/package.json +5 -5
  3. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +58 -0
  4. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +637 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  6. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  7. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +53 -53
  8. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  9. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  11. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  12. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  13. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +22 -22
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  17. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
  18. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +97 -97
  19. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +43 -43
  20. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +58 -58
  21. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  23. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  24. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  25. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +50 -50
  26. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +51 -51
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +229 -229
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chat.view.contribution.d.ts +1 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chat.view.contribution.js +5 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +7 -7
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +43 -43
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +16 -16
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +57 -57
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +13 -13
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  76. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  77. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  78. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  79. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  82. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  83. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  84. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +25 -25
  85. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  86. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  87. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  89. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  90. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  91. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  93. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  94. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  95. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  96. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  97. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  98. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +23 -23
  99. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  101. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +9 -9
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +4 -4
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +3 -3
  111. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  112. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +12 -12
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +150 -150
  118. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  119. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  120. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  121. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  122. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  123. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  124. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  125. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  126. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  127. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  128. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  129. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  130. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  131. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
@@ -119,7 +119,7 @@ let McpServerItemRenderer = class McpServerItemRenderer {
119
119
  const plugin = this.agentPluginService.plugins.get().find(p => ( p.uri.toString()) === pluginUriStr);
120
120
  if (plugin) {
121
121
  return {
122
- content: `${element.label}\n${( localize(5582, "Plugin: {0}", plugin.label))}`,
122
+ content: `${element.label}\n${( localize(5593, "Plugin: {0}", plugin.label))}`,
123
123
  appearance: {
124
124
  compact: true,
125
125
  skipFadeInAnimation: true
@@ -161,26 +161,26 @@ let McpServerItemRenderer = class McpServerItemRenderer {
161
161
  }
162
162
  statusElement.style.display = "";
163
163
  if (state === "disabled") {
164
- statusElement.textContent = ( localize(5583, "Disabled"));
164
+ statusElement.textContent = ( localize(5594, "Disabled"));
165
165
  statusElement.classList.add("disabled");
166
166
  return;
167
167
  }
168
168
  switch (state) {
169
169
  case McpConnectionState.Kind.Running:
170
- statusElement.textContent = ( localize(5584, "Running"));
170
+ statusElement.textContent = ( localize(5595, "Running"));
171
171
  statusElement.classList.add("running");
172
172
  break;
173
173
  case McpConnectionState.Kind.Starting:
174
- statusElement.textContent = ( localize(5585, "Starting"));
174
+ statusElement.textContent = ( localize(5596, "Starting"));
175
175
  statusElement.classList.add("starting");
176
176
  break;
177
177
  case McpConnectionState.Kind.Error:
178
- statusElement.textContent = ( localize(5586, "Error"));
178
+ statusElement.textContent = ( localize(5597, "Error"));
179
179
  statusElement.classList.add("error");
180
180
  break;
181
181
  case McpConnectionState.Kind.Stopped:
182
182
  default:
183
- statusElement.textContent = ( localize(5587, "Stopped"));
183
+ statusElement.textContent = ( localize(5598, "Stopped"));
184
184
  statusElement.classList.add("stopped");
185
185
  break;
186
186
  }
@@ -231,7 +231,7 @@ class McpGalleryItemRenderer {
231
231
  templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
232
232
  const canInstall = this.mcpWorkbenchService.canInstall(element.server);
233
233
  if (canInstall === true) {
234
- templateData.installButton.label = ( localize(5588, "Installing..."));
234
+ templateData.installButton.label = ( localize(5599, "Installing..."));
235
235
  templateData.installButton.enabled = false;
236
236
  await this.mcpWorkbenchService.install(element.server);
237
237
  }
@@ -245,15 +245,15 @@ class McpGalleryItemRenderer {
245
245
  updateInstallButton(button, server) {
246
246
  switch (server.installState) {
247
247
  case McpServerInstallState.Installed:
248
- button.label = ( localize(5589, "Installed"));
248
+ button.label = ( localize(5600, "Installed"));
249
249
  button.enabled = false;
250
250
  break;
251
251
  case McpServerInstallState.Installing:
252
- button.label = ( localize(5588, "Installing..."));
252
+ button.label = ( localize(5599, "Installing..."));
253
253
  button.enabled = false;
254
254
  break;
255
255
  default:
256
- button.label = ( localize(5590, "Install"));
256
+ button.label = ( localize(5601, "Install"));
257
257
  button.enabled = true;
258
258
  break;
259
259
  }
@@ -328,7 +328,7 @@ let McpListWidget = class McpListWidget extends Disposable {
328
328
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
329
329
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
330
330
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
331
- placeholder: ( localize(5591, "Type to search...")),
331
+ placeholder: ( localize(5602, "Type to search...")),
332
332
  inputBoxStyles: defaultInputBoxStyles
333
333
  })));
334
334
  this._register(this.searchInput.onDidChange(() => {
@@ -346,7 +346,7 @@ let McpListWidget = class McpListWidget extends Disposable {
346
346
  secondary: true,
347
347
  supportIcons: true
348
348
  })));
349
- this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5592, "Browse Marketplace"))}`;
349
+ this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5603, "Browse Marketplace"))}`;
350
350
  this.browseButton.element.classList.add("list-add-button");
351
351
  this._register(this.browseButton.onDidClick(() => {
352
352
  this.toggleBrowseMode(!this.browseMode);
@@ -355,13 +355,13 @@ let McpListWidget = class McpListWidget extends Disposable {
355
355
  ...defaultButtonStyles,
356
356
  secondary: true,
357
357
  supportIcons: true,
358
- title: ( localize(5593, "Add Server")),
359
- ariaLabel: ( localize(5593, "Add Server"))
358
+ title: ( localize(5604, "Add Server")),
359
+ ariaLabel: ( localize(5604, "Add Server"))
360
360
  })));
361
361
  this.addButton.label = `$(${Codicon.add.id})`;
362
362
  this.addButton.element.classList.add("list-icon-button");
363
363
  this._register(
364
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.addButton.element, ( localize(5594, "Add Server")))
364
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.addButton.element, ( localize(5605, "Add Server")))
365
365
  );
366
366
  this._register(this.addButton.onDidClick(() => {
367
367
  this.commandService.executeCommand(McpCommandIds.AddConfiguration);
@@ -376,17 +376,17 @@ let McpListWidget = class McpListWidget extends Disposable {
376
376
  const disabledHeader = append(this.disabledContainer, $(".empty-state-header"));
377
377
  this.disabledIcon = append(disabledHeader, $(".empty-icon"));
378
378
  const disabledText = append(disabledHeader, $(".empty-text"));
379
- disabledText.textContent = ( localize(5595, "MCP servers are disabled"));
379
+ disabledText.textContent = ( localize(5606, "MCP servers are disabled"));
380
380
  this.disabledMessage = append(this.disabledContainer, $(".empty-subtext"));
381
381
  this.listContainer = append(this.element, $(".mcp-list-container"));
382
382
  this.sectionHeader = append(this.element, $(".section-footer"));
383
383
  this.sectionDescription = append(this.sectionHeader, $("p.section-footer-description"));
384
384
  this.sectionDescription.textContent = ( localize(
385
- 5596,
385
+ 5607,
386
386
  "An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
387
387
  ));
388
388
  this.sectionLink = append(this.sectionHeader, $("a.section-footer-link"));
389
- this.sectionLink.textContent = ( localize(5597, "Learn more about MCP servers"));
389
+ this.sectionLink.textContent = ( localize(5608, "Learn more about MCP servers"));
390
390
  this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
391
391
  this._register(addDisposableListener(this.sectionLink, "click", e => {
392
392
  e.preventDefault();
@@ -413,17 +413,17 @@ let McpListWidget = class McpListWidget extends Disposable {
413
413
  getAriaLabel: element => {
414
414
  if (element.type === "group-header") {
415
415
  return localize(
416
- 5598,
416
+ 5609,
417
417
  "{0}, {1} items, {2}",
418
418
  element.label,
419
419
  element.count,
420
- element.collapsed ? ( localize(5599, "collapsed")) : ( localize(5600, "expanded"))
420
+ element.collapsed ? ( localize(5610, "collapsed")) : ( localize(5611, "expanded"))
421
421
  );
422
422
  }
423
423
  return element.type === "builtin-item" ? element.label : element.server.label;
424
424
  },
425
425
  getWidgetAriaLabel() {
426
- return localize(5601, "MCP Servers");
426
+ return localize(5612, "MCP Servers");
427
427
  }
428
428
  },
429
429
  openOnSingleClick: true,
@@ -485,13 +485,13 @@ let McpListWidget = class McpListWidget extends Disposable {
485
485
  this.disabledLinkListener.clear();
486
486
  if (policyLocked) {
487
487
  this.disabledMessage.textContent = ( localize(
488
- 5602,
488
+ 5613,
489
489
  "Access to MCP servers is disabled by your organization. Contact your organization administrator for more information."
490
490
  ));
491
491
  } else {
492
- this.disabledMessage.appendChild(createTextNode(( localize(5603, "MCP servers are disabled in settings. "))));
492
+ this.disabledMessage.appendChild(createTextNode(( localize(5614, "MCP servers are disabled in settings. "))));
493
493
  const link = append(this.disabledMessage, $("a.mcp-disabled-settings-link"));
494
- link.textContent = ( localize(5604, "Configure in settings."));
494
+ link.textContent = ( localize(5615, "Configure in settings."));
495
495
  link.href = "#";
496
496
  link.setAttribute("role", "button");
497
497
  this.disabledLinkListener.value = addDisposableListener(link, "click", e => {
@@ -512,7 +512,7 @@ let McpListWidget = class McpListWidget extends Disposable {
512
512
  this.searchQuery = "";
513
513
  this.addButton.element.style.display = browse ? "none" : "";
514
514
  this.browseButton.element.parentElement.style.display = browse ? "none" : "";
515
- this.searchInput.setPlaceHolder(browse ? ( localize(5605, "Search MCP marketplace...")) : ( localize(5591, "Type to search...")));
515
+ this.searchInput.setPlaceHolder(browse ? ( localize(5616, "Search MCP marketplace...")) : ( localize(5602, "Type to search...")));
516
516
  if (browse) {
517
517
  void this.queryGallery();
518
518
  } else {
@@ -529,7 +529,7 @@ let McpListWidget = class McpListWidget extends Disposable {
529
529
  const cts = this.galleryCts = ( new CancellationTokenSource());
530
530
  this.emptyContainer.style.display = "flex";
531
531
  this.listContainer.style.display = "none";
532
- this.emptyText.textContent = ( localize(5606, "Loading marketplace..."));
532
+ this.emptyText.textContent = ( localize(5617, "Loading marketplace..."));
533
533
  this.emptySubtext.textContent = "";
534
534
  try {
535
535
  const pager = await this.mcpWorkbenchService.queryGallery({
@@ -545,8 +545,8 @@ let McpListWidget = class McpListWidget extends Disposable {
545
545
  this.galleryServers = [];
546
546
  this.emptyContainer.style.display = "flex";
547
547
  this.listContainer.style.display = "none";
548
- this.emptyText.textContent = ( localize(5607, "Unable to load marketplace"));
549
- this.emptySubtext.textContent = ( localize(5608, "Check your connection and try again"));
548
+ this.emptyText.textContent = ( localize(5618, "Unable to load marketplace"));
549
+ this.emptySubtext.textContent = ( localize(5619, "Check your connection and try again"));
550
550
  }
551
551
  }
552
552
  }
@@ -555,10 +555,10 @@ let McpListWidget = class McpListWidget extends Disposable {
555
555
  this.emptyContainer.style.display = "flex";
556
556
  this.listContainer.style.display = "none";
557
557
  if (this.searchQuery.trim()) {
558
- this.emptyText.textContent = ( localize(5609, "No servers match '{0}'", this.searchQuery));
559
- this.emptySubtext.textContent = ( localize(5610, "Try a different search term"));
558
+ this.emptyText.textContent = ( localize(5620, "No servers match '{0}'", this.searchQuery));
559
+ this.emptySubtext.textContent = ( localize(5621, "Try a different search term"));
560
560
  } else {
561
- this.emptyText.textContent = ( localize(5611, "No MCP servers available"));
561
+ this.emptyText.textContent = ( localize(5622, "No MCP servers available"));
562
562
  this.emptySubtext.textContent = "";
563
563
  }
564
564
  } else {
@@ -586,11 +586,11 @@ let McpListWidget = class McpListWidget extends Disposable {
586
586
  this.emptyContainer.style.display = "flex";
587
587
  this.listContainer.style.display = "none";
588
588
  if (this.searchQuery.trim()) {
589
- this.emptyText.textContent = ( localize(5612, "No servers match '{0}'", this.searchQuery));
590
- this.emptySubtext.textContent = ( localize(5610, "Try a different search term"));
589
+ this.emptyText.textContent = ( localize(5623, "No servers match '{0}'", this.searchQuery));
590
+ this.emptySubtext.textContent = ( localize(5621, "Try a different search term"));
591
591
  } else {
592
- this.emptyText.textContent = ( localize(5613, "No MCP servers configured"));
593
- this.emptySubtext.textContent = ( localize(5614, "Add an MCP server configuration to get started"));
592
+ this.emptyText.textContent = ( localize(5624, "No MCP servers configured"));
593
+ this.emptySubtext.textContent = ( localize(5625, "Add an MCP server configuration to get started"));
594
594
  }
595
595
  } else {
596
596
  this.emptyContainer.style.display = "none";
@@ -598,19 +598,19 @@ let McpListWidget = class McpListWidget extends Disposable {
598
598
  }
599
599
  const groups = [{
600
600
  scope: LocalMcpServerScope.Workspace,
601
- label: ( localize(5615, "Workspace")),
601
+ label: ( localize(5626, "Workspace")),
602
602
  icon: workspaceIcon,
603
603
  description: ( localize(
604
- 5616,
604
+ 5627,
605
605
  "MCP servers configured in your workspace settings, shared with your team via version control."
606
606
  )),
607
607
  servers: []
608
608
  }, {
609
609
  scope: LocalMcpServerScope.User,
610
- label: ( localize(5617, "User")),
610
+ label: ( localize(5628, "User")),
611
611
  icon: userIcon,
612
612
  description: ( localize(
613
- 5618,
613
+ 5629,
614
614
  "MCP servers configured in your user settings. Private to you and available across all projects."
615
615
  )),
616
616
  servers: []
@@ -671,11 +671,11 @@ let McpListWidget = class McpListWidget extends Disposable {
671
671
  type: "group-header",
672
672
  id: "mcp-group-plugin",
673
673
  scope: "plugin",
674
- label: ( localize(5619, "Plugins")),
674
+ label: ( localize(5630, "Plugins")),
675
675
  icon: pluginIcon,
676
676
  count: pluginServers.length,
677
677
  isFirst,
678
- description: ( localize(5620, "MCP servers provided by installed plugins.")),
678
+ description: ( localize(5631, "MCP servers provided by installed plugins.")),
679
679
  collapsed
680
680
  });
681
681
  if (!collapsed) {
@@ -697,11 +697,11 @@ let McpListWidget = class McpListWidget extends Disposable {
697
697
  type: "group-header",
698
698
  id: "mcp-group-extension",
699
699
  scope: "extension",
700
- label: ( localize(5621, "Extensions")),
700
+ label: ( localize(5632, "Extensions")),
701
701
  icon: extensionIcon,
702
702
  count: extensionServers.length,
703
703
  isFirst,
704
- description: ( localize(5622, "MCP servers contributed by installed VS Code extensions.")),
704
+ description: ( localize(5633, "MCP servers contributed by installed VS Code extensions.")),
705
705
  collapsed
706
706
  });
707
707
  if (!collapsed) {
@@ -723,11 +723,11 @@ let McpListWidget = class McpListWidget extends Disposable {
723
723
  type: "group-header",
724
724
  id: "mcp-group-builtin",
725
725
  scope: "builtin",
726
- label: ( localize(5623, "Built-in")),
726
+ label: ( localize(5634, "Built-in")),
727
727
  icon: builtinIcon,
728
728
  count: otherBuiltinServers.length,
729
729
  isFirst,
730
- description: ( localize(5624, "MCP servers built into VS Code. These are available automatically.")),
730
+ description: ( localize(5635, "MCP servers built into VS Code. These are available automatically.")),
731
731
  collapsed
732
732
  });
733
733
  if (!collapsed) {
@@ -824,7 +824,7 @@ let McpListWidget = class McpListWidget extends Disposable {
824
824
  return;
825
825
  }
826
826
  const disposables = ( new DisposableStore());
827
- const showPluginAction = disposables.add(( new Action("mcpServer.showPlugin", ( localize(5625, "Show Plugin")), undefined, true, async () => {
827
+ const showPluginAction = disposables.add(( new Action("mcpServer.showPlugin", ( localize(5636, "Show Plugin")), undefined, true, async () => {
828
828
  const item = {
829
829
  kind: AgentPluginItemKind.Installed,
830
830
  name: plugin.label,
@@ -834,14 +834,14 @@ let McpListWidget = class McpListWidget extends Disposable {
834
834
  };
835
835
  this._onDidRequestShowPlugin.fire(item);
836
836
  })));
837
- const uninstallAction = disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(5626, "Uninstall Plugin")), undefined, true, async () => {
837
+ const uninstallAction = disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(5637, "Uninstall Plugin")), undefined, true, async () => {
838
838
  const result = await this.dialogService.confirm({
839
- message: ( localize(5627, "This MCP server is provided by the plugin '{0}'", plugin.label)),
839
+ message: ( localize(5638, "This MCP server is provided by the plugin '{0}'", plugin.label)),
840
840
  detail: ( localize(
841
- 5628,
841
+ 5639,
842
842
  "Individual MCP servers from a plugin cannot be removed separately. Would you like to uninstall the entire plugin?"
843
843
  )),
844
- primaryButton: ( localize(5629, "Uninstall Plugin")),
844
+ primaryButton: ( localize(5640, "Uninstall Plugin")),
845
845
  type: "question"
846
846
  });
847
847
  if (result.confirmed) {
@@ -108,7 +108,7 @@ class PluginInstalledItemRenderer {
108
108
  templateData.syncCheckboxContainer.style.display = "";
109
109
  const pluginUri = element.item.plugin.uri;
110
110
  const disabled = syncProvider.isDisabled(pluginUri);
111
- const title = disabled ? ( localize(5630, "Enable {0} for sync", element.item.name)) : ( localize(5631, "Disable {0} from sync", element.item.name));
111
+ const title = disabled ? ( localize(5641, "Enable {0} for sync", element.item.name)) : ( localize(5642, "Disable {0} from sync", element.item.name));
112
112
  const checkbox = templateData.disposables.add(( new Checkbox(title, !disabled, defaultCheckboxStyles)));
113
113
  templateData.syncCheckboxContainer.replaceChildren(checkbox.domNode);
114
114
  templateData.disposables.add(checkbox.onChange(() => {
@@ -167,25 +167,25 @@ class PluginRemoteItemRenderer {
167
167
  templateData.container.classList.toggle("disabled", element.item.enabled === false);
168
168
  templateData.status.className = "mcp-server-status";
169
169
  if (element.item.enabled === false) {
170
- templateData.status.textContent = ( localize(5632, "Disabled"));
170
+ templateData.status.textContent = ( localize(5643, "Disabled"));
171
171
  templateData.status.classList.add("disabled");
172
172
  return;
173
173
  }
174
174
  switch (element.item.status) {
175
175
  case "loading":
176
- templateData.status.textContent = ( localize(5633, "Loading"));
176
+ templateData.status.textContent = ( localize(5644, "Loading"));
177
177
  templateData.status.classList.add("running");
178
178
  break;
179
179
  case "loaded":
180
- templateData.status.textContent = ( localize(5634, "Loaded"));
180
+ templateData.status.textContent = ( localize(5645, "Loaded"));
181
181
  templateData.status.classList.add("running");
182
182
  break;
183
183
  case "degraded":
184
- templateData.status.textContent = ( localize(5635, "Warning"));
184
+ templateData.status.textContent = ( localize(5646, "Warning"));
185
185
  templateData.status.classList.add("disabled");
186
186
  break;
187
187
  case "error":
188
- templateData.status.textContent = ( localize(5636, "Error"));
188
+ templateData.status.textContent = ( localize(5647, "Error"));
189
189
  templateData.status.classList.add("disabled");
190
190
  break;
191
191
  default:
@@ -231,7 +231,7 @@ class PluginMarketplaceItemRenderer {
231
231
  renderElement(element, _index, templateData) {
232
232
  templateData.elementDisposables.clear();
233
233
  templateData.name.textContent = element.item.name;
234
- templateData.publisher.textContent = element.item.marketplace ? ( localize(5637, "by {0}", element.item.marketplace)) : "";
234
+ templateData.publisher.textContent = element.item.marketplace ? ( localize(5648, "by {0}", element.item.marketplace)) : "";
235
235
  templateData.description.textContent = element.item.description || "";
236
236
  const installUri = this.pluginInstallService.getPluginInstallUri({
237
237
  name: element.item.name,
@@ -245,14 +245,14 @@ class PluginMarketplaceItemRenderer {
245
245
  });
246
246
  const isAlreadyInstalled = ( this.agentPluginService.plugins.get().some(p => isEqual(p.uri, installUri)));
247
247
  if (isAlreadyInstalled) {
248
- templateData.installButton.label = ( localize(5638, "Installed"));
248
+ templateData.installButton.label = ( localize(5649, "Installed"));
249
249
  templateData.installButton.enabled = false;
250
250
  return;
251
251
  }
252
- templateData.installButton.label = ( localize(5639, "Install"));
252
+ templateData.installButton.label = ( localize(5650, "Install"));
253
253
  templateData.installButton.enabled = true;
254
254
  templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
255
- templateData.installButton.label = ( localize(5640, "Installing..."));
255
+ templateData.installButton.label = ( localize(5651, "Installing..."));
256
256
  templateData.installButton.enabled = false;
257
257
  try {
258
258
  await this.pluginInstallService.installPlugin({
@@ -266,9 +266,9 @@ class PluginMarketplaceItemRenderer {
266
266
  marketplaceType: element.item.marketplaceType,
267
267
  readmeUri: element.item.readmeUri
268
268
  });
269
- templateData.installButton.label = ( localize(5638, "Installed"));
269
+ templateData.installButton.label = ( localize(5649, "Installed"));
270
270
  } catch (_e) {
271
- templateData.installButton.label = ( localize(5639, "Install"));
271
+ templateData.installButton.label = ( localize(5650, "Install"));
272
272
  templateData.installButton.enabled = true;
273
273
  }
274
274
  }));
@@ -369,7 +369,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
369
369
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
370
370
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
371
371
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
372
- placeholder: ( localize(5641, "Type to search...")),
372
+ placeholder: ( localize(5652, "Type to search...")),
373
373
  inputBoxStyles: defaultInputBoxStyles
374
374
  })));
375
375
  this._register(this.searchInput.onDidChange(() => {
@@ -382,7 +382,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
382
382
  }));
383
383
  this.buttonContainer = append(this.searchAndButtonContainer, $(".list-button-group"));
384
384
  const browseButtonContainer = append(this.buttonContainer, $(".list-add-button-container"));
385
- const browseMarketplaceLabel = ( localize(5642, "Browse Marketplace"));
385
+ const browseMarketplaceLabel = ( localize(5653, "Browse Marketplace"));
386
386
  this.browseButton = this._register(( new Button(browseButtonContainer, {
387
387
  ...defaultButtonStyles,
388
388
  secondary: true,
@@ -393,7 +393,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
393
393
  this.browseButton.element.classList.add("list-add-button");
394
394
  this._register(this.browseButton.onDidClick(() => this.runPrimaryButtonAction()));
395
395
  this.addButtonContainer = append(this.buttonContainer, $(".list-add-button-container"));
396
- const addPluginLabel = ( localize(5643, "Add Plugin"));
396
+ const addPluginLabel = ( localize(5654, "Add Plugin"));
397
397
  this.addButtonSimple = this._register(( new Button(this.addButtonContainer, {
398
398
  ...defaultButtonStyles,
399
399
  secondary: true,
@@ -417,7 +417,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
417
417
  })));
418
418
  this.addButton.element.classList.add("list-add-button");
419
419
  this._register(this.addButton.onDidClick(() => this.runPrimaryAddAction()));
420
- const createPluginLabel = ( localize(5644, "Create Plugin"));
420
+ const createPluginLabel = ( localize(5655, "Create Plugin"));
421
421
  this.createPluginButton = this._register(( new Button(this.buttonContainer, {
422
422
  ...defaultButtonStyles,
423
423
  secondary: true,
@@ -438,17 +438,17 @@ let PluginListWidget = class PluginListWidget extends Disposable {
438
438
  const disabledHeader = append(this.disabledContainer, $(".empty-state-header"));
439
439
  this.disabledIcon = append(disabledHeader, $(".empty-icon"));
440
440
  const disabledText = append(disabledHeader, $(".empty-text"));
441
- disabledText.textContent = ( localize(5645, "Plugins are disabled"));
441
+ disabledText.textContent = ( localize(5656, "Plugins are disabled"));
442
442
  this.disabledMessage = append(this.disabledContainer, $(".empty-subtext"));
443
443
  this.listContainer = append(this.element, $(".mcp-list-container"));
444
444
  this.sectionHeader = append(this.element, $(".section-footer"));
445
445
  this.sectionDescription = append(this.sectionHeader, $("p.section-footer-description"));
446
446
  this.sectionDescription.textContent = ( localize(
447
- 5646,
447
+ 5657,
448
448
  "Extend your AI agent with plugins that add commands, skills, agents, hooks, and MCP servers from reusable packages."
449
449
  ));
450
450
  this.sectionLink = append(this.sectionHeader, $("a.section-footer-link"));
451
- this.sectionLink.textContent = ( localize(5647, "Learn more about agent plugins"));
451
+ this.sectionLink.textContent = ( localize(5658, "Learn more about agent plugins"));
452
452
  this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/customization/agent-plugins";
453
453
  this._register(addDisposableListener(this.sectionLink, "click", e => {
454
454
  e.preventDefault();
@@ -476,24 +476,24 @@ let PluginListWidget = class PluginListWidget extends Disposable {
476
476
  getAriaLabel(element) {
477
477
  if (element.type === "group-header") {
478
478
  return localize(
479
- 5648,
479
+ 5659,
480
480
  "{0}, {1} items, {2}",
481
481
  element.label,
482
482
  element.count,
483
- element.collapsed ? ( localize(5649, "collapsed")) : ( localize(5650, "expanded"))
483
+ element.collapsed ? ( localize(5660, "collapsed")) : ( localize(5661, "expanded"))
484
484
  );
485
485
  }
486
486
  const name = formatDisplayName(element.item.name);
487
487
  const description = element.item.description ? truncateToFirstLine(element.item.description) : undefined;
488
- const nameAndDesc = description ? ( localize(5651, "{0}. {1}", name, description)) : name;
488
+ const nameAndDesc = description ? ( localize(5662, "{0}. {1}", name, description)) : name;
489
489
  if (element.type === "plugin-item") {
490
490
  const enabled = isContributionEnabled(element.item.plugin.enablement.get());
491
- return enabled ? ( localize(5652, "{0}. Enabled", nameAndDesc)) : ( localize(5653, "{0}. Disabled", nameAndDesc));
491
+ return enabled ? ( localize(5663, "{0}. Enabled", nameAndDesc)) : ( localize(5664, "{0}. Disabled", nameAndDesc));
492
492
  }
493
493
  return nameAndDesc;
494
494
  },
495
495
  getWidgetAriaLabel() {
496
- return localize(5654, "Plugins");
496
+ return localize(5665, "Plugins");
497
497
  }
498
498
  },
499
499
  openOnSingleClick: true,
@@ -584,13 +584,13 @@ let PluginListWidget = class PluginListWidget extends Disposable {
584
584
  this.disabledLinkListener.clear();
585
585
  if (policyLocked) {
586
586
  this.disabledMessage.textContent = ( localize(
587
- 5655,
587
+ 5666,
588
588
  "Plugin integration in chat is disabled by your organization. Contact your organization administrator for more information."
589
589
  ));
590
590
  } else {
591
- this.disabledMessage.appendChild(createTextNode(( localize(5656, "Plugins are disabled in settings. "))));
591
+ this.disabledMessage.appendChild(createTextNode(( localize(5667, "Plugins are disabled in settings. "))));
592
592
  const link = append(this.disabledMessage, $("a.mcp-disabled-settings-link"));
593
- link.textContent = ( localize(5657, "Configure in settings."));
593
+ link.textContent = ( localize(5668, "Configure in settings."));
594
594
  link.href = "#";
595
595
  link.setAttribute("role", "button");
596
596
  this.disabledLinkListener.value = addDisposableListener(link, "click", e => {
@@ -615,9 +615,9 @@ let PluginListWidget = class PluginListWidget extends Disposable {
615
615
  this.toggleBrowseMode(false);
616
616
  }
617
617
  this.browseButton.element.parentElement.style.display = this.browseMode ? "none" : "";
618
- this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5642, "Browse Marketplace"))}`;
618
+ this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5653, "Browse Marketplace"))}`;
619
619
  this.browseButton.enabled = browseMarketplaceAvailable;
620
- const browseTitle = browseMarketplaceAvailable ? ( localize(5642, "Browse Marketplace")) : ( localize(5658, "Browse Marketplace is not available in VS Code for the Web."));
620
+ const browseTitle = browseMarketplaceAvailable ? ( localize(5653, "Browse Marketplace")) : ( localize(5669, "Browse Marketplace is not available in VS Code for the Web."));
621
621
  this.browseButton.setTitle(browseTitle);
622
622
  this.browseButton.element.setAttribute("aria-label", browseTitle);
623
623
  this.updateAddButton();
@@ -643,7 +643,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
643
643
  const addPrimaryTitle = primary.tooltip ?? primary.label;
644
644
  this.addButton.primaryButton.setTitle(addPrimaryTitle);
645
645
  this.addButton.primaryButton.element.setAttribute("aria-label", addPrimaryTitle);
646
- const moreLabel = ( localize(5659, "More Plugin Add Actions..."));
646
+ const moreLabel = ( localize(5670, "More Plugin Add Actions..."));
647
647
  this.addButton.dropdownButton.setTitle(moreLabel);
648
648
  this.addButton.dropdownButton.element.setAttribute("aria-label", moreLabel);
649
649
  } else {
@@ -657,8 +657,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
657
657
  buildAddActions() {
658
658
  return [...this.pluginActions, {
659
659
  id: "plugin.installFromSource",
660
- label: ( localize(5660, "Install Plugin from Source")),
661
- tooltip: ( localize(5660, "Install Plugin from Source")),
660
+ label: ( localize(5671, "Install Plugin from Source")),
661
+ tooltip: ( localize(5671, "Install Plugin from Source")),
662
662
  icon: Codicon.add,
663
663
  run: () => this.commandService.executeCommand("workbench.action.chat.installPluginFromSource")
664
664
  }];
@@ -706,7 +706,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
706
706
  this.searchInput.value = "";
707
707
  this.searchQuery = "";
708
708
  this.browseButton.element.parentElement.style.display = browse ? "none" : "";
709
- this.searchInput.setPlaceHolder(browse ? ( localize(5661, "Search plugin marketplace...")) : ( localize(5641, "Type to search...")));
709
+ this.searchInput.setPlaceHolder(browse ? ( localize(5672, "Search plugin marketplace...")) : ( localize(5652, "Type to search...")));
710
710
  if (browse) {
711
711
  void this.queryMarketplace();
712
712
  } else {
@@ -723,7 +723,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
723
723
  const cts = this.marketplaceCts = ( new CancellationTokenSource());
724
724
  this.emptyContainer.style.display = "flex";
725
725
  this.listContainer.style.display = "none";
726
- this.emptyText.textContent = ( localize(5662, "Loading marketplace..."));
726
+ this.emptyText.textContent = ( localize(5673, "Loading marketplace..."));
727
727
  this.emptySubtext.textContent = "";
728
728
  try {
729
729
  const plugins = await this.pluginMarketplaceService.fetchMarketplacePlugins(cts.token);
@@ -745,8 +745,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
745
745
  this.marketplaceItems = [];
746
746
  this.emptyContainer.style.display = "flex";
747
747
  this.listContainer.style.display = "none";
748
- this.emptyText.textContent = ( localize(5663, "Unable to load marketplace"));
749
- this.emptySubtext.textContent = ( localize(5664, "Check your connection and try again"));
748
+ this.emptyText.textContent = ( localize(5674, "Unable to load marketplace"));
749
+ this.emptySubtext.textContent = ( localize(5675, "Check your connection and try again"));
750
750
  }
751
751
  }
752
752
  }
@@ -755,10 +755,10 @@ let PluginListWidget = class PluginListWidget extends Disposable {
755
755
  this.emptyContainer.style.display = "flex";
756
756
  this.listContainer.style.display = "none";
757
757
  if (this.searchQuery.trim()) {
758
- this.emptyText.textContent = ( localize(5665, "No plugins match '{0}'", this.searchQuery));
759
- this.emptySubtext.textContent = ( localize(5666, "Try a different search term"));
758
+ this.emptyText.textContent = ( localize(5676, "No plugins match '{0}'", this.searchQuery));
759
+ this.emptySubtext.textContent = ( localize(5677, "Try a different search term"));
760
760
  } else {
761
- this.emptyText.textContent = ( localize(5667, "No plugins available"));
761
+ this.emptyText.textContent = ( localize(5678, "No plugins available"));
762
762
  this.emptySubtext.textContent = "";
763
763
  }
764
764
  } else {
@@ -788,9 +788,9 @@ let PluginListWidget = class PluginListWidget extends Disposable {
788
788
  getRemoteGroupMetadata(groupKey) {
789
789
  return {
790
790
  group: groupKey ?? "remote-host",
791
- label: ( localize(5668, "Remote")),
791
+ label: ( localize(5679, "Remote")),
792
792
  description: ( localize(
793
- 5669,
793
+ 5680,
794
794
  "Plugins configured directly on the remote agent host and available without local sync."
795
795
  ))
796
796
  };
@@ -827,17 +827,17 @@ let PluginListWidget = class PluginListWidget extends Disposable {
827
827
  this.emptyContainer.style.display = "flex";
828
828
  this.listContainer.style.display = "none";
829
829
  if (this.searchQuery.trim()) {
830
- this.emptyText.textContent = ( localize(5670, "No plugins match '{0}'", this.searchQuery));
831
- this.emptySubtext.textContent = ( localize(5666, "Try a different search term"));
830
+ this.emptyText.textContent = ( localize(5681, "No plugins match '{0}'", this.searchQuery));
831
+ this.emptySubtext.textContent = ( localize(5677, "Try a different search term"));
832
832
  } else if (this.harnessService.getActiveDescriptor().itemProvider) {
833
- this.emptyText.textContent = ( localize(5671, "No plugins configured"));
833
+ this.emptyText.textContent = ( localize(5682, "No plugins configured"));
834
834
  this.emptySubtext.textContent = ( localize(
835
- 5672,
835
+ 5683,
836
836
  "Use the toolbar to add remote plugins or install plugins from a source."
837
837
  ));
838
838
  } else {
839
- this.emptyText.textContent = ( localize(5673, "No plugins installed"));
840
- this.emptySubtext.textContent = ( localize(5674, "Browse the marketplace to discover and install plugins"));
839
+ this.emptyText.textContent = ( localize(5684, "No plugins installed"));
840
+ this.emptySubtext.textContent = ( localize(5685, "Browse the marketplace to discover and install plugins"));
841
841
  }
842
842
  } else {
843
843
  this.emptyContainer.style.display = "none";
@@ -873,9 +873,9 @@ let PluginListWidget = class PluginListWidget extends Disposable {
873
873
  if (enabledPlugins.length > 0) {
874
874
  isFirst = this.appendGroup(entries, {
875
875
  group: "enabled",
876
- label: ( localize(5675, "Enabled Locally")),
876
+ label: ( localize(5686, "Enabled Locally")),
877
877
  description: ( localize(
878
- 5676,
878
+ 5687,
879
879
  "Plugins installed in this client and available for syncing to the remote session."
880
880
  ))
881
881
  }, ( enabledPlugins.map(item => ({
@@ -886,8 +886,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
886
886
  if (disabledPlugins.length > 0) {
887
887
  this.appendGroup(entries, {
888
888
  group: "disabled",
889
- label: ( localize(5677, "Disabled Locally")),
890
- description: ( localize(5678, "Plugins installed in this client but currently disabled."))
889
+ label: ( localize(5688, "Disabled Locally")),
890
+ description: ( localize(5689, "Plugins installed in this client but currently disabled."))
891
891
  }, ( disabledPlugins.map(item => ({
892
892
  type: "plugin-item",
893
893
  item
@@ -147,7 +147,7 @@ let ChatAttachmentResolveService = class ChatAttachmentResolveService {
147
147
  }
148
148
  const readFile = await this.fileService.readFile(resource);
149
149
  if (stat.size > 30 * 1024 * 1024) {
150
- this.dialogService.error(( localize(5679, "Image is too large")), ( localize(5680, "The image {0} is too large to be attached.", fileName)));
150
+ this.dialogService.error(( localize(5690, "Image is too large")), ( localize(5691, "The image {0} is too large to be attached.", fileName)));
151
151
  throw ( new Error("Image is too large"));
152
152
  }
153
153
  dataBuffer = readFile.value;