@codingame/monaco-vscode-mcp-service-override 23.0.2 → 23.0.4

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 (25) hide show
  1. package/package.json +15 -15
  2. package/vscode/src/vs/workbench/contrib/mcp/browser/mcp.contribution.js +3 -3
  3. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpAddContextContribution.js +2 -2
  4. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.js +55 -55
  5. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpElicitationService.js +18 -18
  6. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpLanguageFeatures.js +18 -18
  7. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpMigration.js +5 -5
  8. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpResourceQuickAccess.js +7 -7
  9. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.js +32 -32
  10. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditor.js +34 -34
  11. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditorInput.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerIcons.js +5 -5
  13. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerWidgets.js +5 -5
  14. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServersView.js +17 -17
  15. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpWorkbenchService.js +8 -8
  16. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/extensionMcpDiscovery.js +4 -4
  17. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAbstract.js +1 -1
  18. package/vscode/src/vs/workbench/contrib/mcp/common/mcpContextKeys.js +4 -4
  19. package/vscode/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.js +6 -6
  20. package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistry.js +12 -12
  21. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingLog.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingService.js +11 -11
  23. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +9 -9
  24. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConnection.js +3 -3
  25. package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpService.js +9 -9
@@ -155,7 +155,7 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
155
155
  const details = append(header, $('.details'));
156
156
  const title = append(details, $('.title'));
157
157
  const name = append(title, $('span.name.clickable', { role: 'heading', tabIndex: 0 }));
158
- this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), name, ( localize(8740, "Extension name"))));
158
+ this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), name, ( localize(8744, "Extension name"))));
159
159
  const subtitle = append(details, $('.subtitle'));
160
160
  const subTitleEntryContainers = [];
161
161
  const publisherContainer = append(subtitle, $('.subtitle-entry'));
@@ -294,18 +294,18 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
294
294
  this.currentIdentifier = extension.id;
295
295
  }
296
296
  if (extension.readmeUrl || extension.gallery?.readme) {
297
- template.navbar.push(McpServerEditorTab.Readme, ( localize(8741, "Details")), ( localize(8742, "Extension details, rendered from the extension's 'README.md' file")));
297
+ template.navbar.push(McpServerEditorTab.Readme, ( localize(8745, "Details")), ( localize(8746, "Extension details, rendered from the extension's 'README.md' file")));
298
298
  }
299
299
  if (extension.gallery || extension.local?.manifest) {
300
- template.navbar.push(McpServerEditorTab.Manifest, ( localize(8743, "Manifest")), ( localize(8744, "Server manifest details")));
300
+ template.navbar.push(McpServerEditorTab.Manifest, ( localize(8747, "Manifest")), ( localize(8748, "Server manifest details")));
301
301
  }
302
302
  if (extension.config) {
303
- template.navbar.push(McpServerEditorTab.Configuration, ( localize(8745, "Configuration")), ( localize(8746, "Server configuration details")));
303
+ template.navbar.push(McpServerEditorTab.Configuration, ( localize(8749, "Configuration")), ( localize(8750, "Server configuration details")));
304
304
  }
305
305
  this.transientDisposables.add(this.mcpWorkbenchService.onChange(e => {
306
306
  if (e === extension) {
307
307
  if (e.config && !( template.navbar.has(McpServerEditorTab.Configuration))) {
308
- template.navbar.push(McpServerEditorTab.Configuration, ( localize(8745, "Configuration")), ( localize(8746, "Server configuration details")), extension.readmeUrl ? 1 : 0);
308
+ template.navbar.push(McpServerEditorTab.Configuration, ( localize(8749, "Configuration")), ( localize(8750, "Server configuration details")), extension.readmeUrl ? 1 : 0);
309
309
  }
310
310
  if (!e.config && ( template.navbar.has(McpServerEditorTab.Configuration))) {
311
311
  template.navbar.remove(McpServerEditorTab.Configuration);
@@ -504,7 +504,7 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
504
504
  const layout = () => details.classList.toggle('narrow', this.dimension && this.dimension.width < 500);
505
505
  layout();
506
506
  this.contentDisposables.add(toDisposable(insert(this.layoutParticipants, { layout })));
507
- const activeElement = await this.openMarkdown(extension, this.mcpServerReadme.get(), ( localize(8747, "No README available.")), readmeContainer, WebviewIndex.Readme, ( localize(8748, "Readme")), token);
507
+ const activeElement = await this.openMarkdown(extension, this.mcpServerReadme.get(), ( localize(8751, "No README available.")), readmeContainer, WebviewIndex.Readme, ( localize(8752, "Readme")), token);
508
508
  this.renderAdditionalDetails(additionalDetailsContainer, extension);
509
509
  return activeElement;
510
510
  }
@@ -544,7 +544,7 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
544
544
  content.removeChild(content.firstChild);
545
545
  }
546
546
  const noManifestMessage = append(content, $('.no-manifest'));
547
- noManifestMessage.textContent = ( localize(8749, "No manifest available for this MCP server."));
547
+ noManifestMessage.textContent = ( localize(8753, "No manifest available for this MCP server."));
548
548
  }
549
549
  const scrollableContent = ( new DomScrollableElement(content, {}));
550
550
  const layout = () => scrollableContent.scanDomNode();
@@ -557,29 +557,29 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
557
557
  const config = mcpServer.config;
558
558
  if (!config) {
559
559
  const noConfigMessage = append(container, $('.no-config'));
560
- noConfigMessage.textContent = ( localize(8750, "No configuration available for this MCP server."));
560
+ noConfigMessage.textContent = ( localize(8754, "No configuration available for this MCP server."));
561
561
  return;
562
562
  }
563
563
  const nameSection = append(container, $('.config-section'));
564
564
  const nameLabel = append(nameSection, $('.config-label'));
565
- nameLabel.textContent = ( localize(8751, "Name:"));
565
+ nameLabel.textContent = ( localize(8755, "Name:"));
566
566
  const nameValue = append(nameSection, $('.config-value'));
567
567
  nameValue.textContent = mcpServer.name;
568
568
  const typeSection = append(container, $('.config-section'));
569
569
  const typeLabel = append(typeSection, $('.config-label'));
570
- typeLabel.textContent = ( localize(8752, "Type:"));
570
+ typeLabel.textContent = ( localize(8756, "Type:"));
571
571
  const typeValue = append(typeSection, $('.config-value'));
572
572
  typeValue.textContent = config.type;
573
573
  if (config.type === McpServerType.LOCAL) {
574
574
  const commandSection = append(container, $('.config-section'));
575
575
  const commandLabel = append(commandSection, $('.config-label'));
576
- commandLabel.textContent = ( localize(8753, "Command:"));
576
+ commandLabel.textContent = ( localize(8757, "Command:"));
577
577
  const commandValue = append(commandSection, $('code.config-value'));
578
578
  commandValue.textContent = config.command;
579
579
  if (config.args && config.args.length > 0) {
580
580
  const argsSection = append(container, $('.config-section'));
581
581
  const argsLabel = append(argsSection, $('.config-label'));
582
- argsLabel.textContent = ( localize(8754, "Arguments:"));
582
+ argsLabel.textContent = ( localize(8758, "Arguments:"));
583
583
  const argsValue = append(argsSection, $('code.config-value'));
584
584
  argsValue.textContent = config.args.join(' ');
585
585
  }
@@ -587,7 +587,7 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
587
587
  else if (config.type === McpServerType.REMOTE) {
588
588
  const urlSection = append(container, $('.config-section'));
589
589
  const urlLabel = append(urlSection, $('.config-label'));
590
- urlLabel.textContent = ( localize(8755, "URL:"));
590
+ urlLabel.textContent = ( localize(8759, "URL:"));
591
591
  const urlValue = append(urlSection, $('code.config-value'));
592
592
  urlValue.textContent = config.url;
593
593
  }
@@ -604,13 +604,13 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
604
604
  }
605
605
  packages.push(pkg);
606
606
  }
607
- append(container, $('.manifest-section', undefined, $('.manifest-section-title', undefined, ( localize(8756, "Packages")))));
607
+ append(container, $('.manifest-section', undefined, $('.manifest-section-title', undefined, ( localize(8760, "Packages")))));
608
608
  for (const [packageType, packages] of packagesByType) {
609
609
  const packageSection = append(container, $('.package-section', undefined, $('.package-section-title', undefined, packageType.toUpperCase())));
610
610
  const packagesGrid = append(packageSection, $('.package-details'));
611
611
  for (let i = 0; i < packages.length; i++) {
612
612
  const pkg = packages[i];
613
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8757, "Package:"))), $('.detail-value', undefined, pkg.identifier)));
613
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8761, "Package:"))), $('.detail-value', undefined, pkg.identifier)));
614
614
  if (pkg.packageArguments && pkg.packageArguments.length > 0) {
615
615
  const argStrings = [];
616
616
  for (const arg of pkg.packageArguments) {
@@ -627,7 +627,7 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
627
627
  }
628
628
  }
629
629
  }
630
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8758, "Package Arguments:"))), $('code.detail-value', undefined, argStrings.join(' '))));
630
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8762, "Package Arguments:"))), $('code.detail-value', undefined, argStrings.join(' '))));
631
631
  }
632
632
  if (pkg.runtimeArguments && pkg.runtimeArguments.length > 0) {
633
633
  const argStrings = [];
@@ -645,11 +645,11 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
645
645
  }
646
646
  }
647
647
  }
648
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8759, "Runtime Arguments:"))), $('code.detail-value', undefined, argStrings.join(' '))));
648
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8763, "Runtime Arguments:"))), $('code.detail-value', undefined, argStrings.join(' '))));
649
649
  }
650
650
  if (pkg.environmentVariables && pkg.environmentVariables.length > 0) {
651
651
  const envStrings = ( pkg.environmentVariables.map((envVar) => `${envVar.name}=${envVar.value ?? ''}`));
652
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8760, "Environment Variables:"))), $('code.detail-value', undefined, envStrings.join(' '))));
652
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8764, "Environment Variables:"))), $('code.detail-value', undefined, envStrings.join(' '))));
653
653
  }
654
654
  if (i < packages.length - 1) {
655
655
  append(packagesGrid, $('.package-separator'));
@@ -658,16 +658,16 @@ let McpServerEditor = class McpServerEditor extends EditorPane {
658
658
  }
659
659
  }
660
660
  if (manifest.remotes && manifest.remotes.length > 0) {
661
- const packageSection = append(container, $('.package-section', undefined, $('.package-section-title', undefined, ( localize(8761, "Remote")).toLocaleUpperCase())));
661
+ const packageSection = append(container, $('.package-section', undefined, $('.package-section-title', undefined, ( localize(8765, "Remote")).toLocaleUpperCase())));
662
662
  for (const remote of manifest.remotes) {
663
663
  const packagesGrid = append(packageSection, $('.package-details'));
664
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8755, "URL:"))), $('.detail-value', undefined, remote.url)));
664
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8759, "URL:"))), $('.detail-value', undefined, remote.url)));
665
665
  if (remote.type) {
666
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8762, "Transport:"))), $('.detail-value', undefined, remote.type)));
666
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8766, "Transport:"))), $('.detail-value', undefined, remote.type)));
667
667
  }
668
668
  if (remote.headers && remote.headers.length > 0) {
669
669
  const headerStrings = ( remote.headers.map((header) => `${header.name}: ${header.value ?? ''}`));
670
- append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8763, "Headers:"))), $('.detail-value', undefined, headerStrings.join(', '))));
670
+ append(packagesGrid, $('.package-detail', undefined, $('.detail-label', undefined, ( localize(8767, "Headers:"))), $('.detail-value', undefined, headerStrings.join(', '))));
671
671
  }
672
672
  }
673
673
  }
@@ -742,7 +742,7 @@ let AdditionalDetailsWidget = class AdditionalDetailsWidget extends Disposable {
742
742
  renderTags(container, extension) {
743
743
  if (extension.gallery?.topics?.length) {
744
744
  const categoriesContainer = append(container, $('.categories-container.additional-details-element'));
745
- append(categoriesContainer, $('.additional-details-title', undefined, ( localize(8764, "Tags"))));
745
+ append(categoriesContainer, $('.additional-details-title', undefined, ( localize(8768, "Tags"))));
746
746
  const categoriesElement = append(categoriesContainer, $('.categories'));
747
747
  for (const category of extension.gallery.topics) {
748
748
  append(categoriesElement, $('span.category', { tabindex: '0' }, category));
@@ -754,7 +754,7 @@ let AdditionalDetailsWidget = class AdditionalDetailsWidget extends Disposable {
754
754
  const manifest = await this.mcpGalleryManifestService.getMcpGalleryManifest();
755
755
  if (extension.repository) {
756
756
  try {
757
- resources.push([( localize(8765, "Repository")), ThemeIcon.fromId(Codicon.repo.id), ( URI.parse(extension.repository))]);
757
+ resources.push([( localize(8769, "Repository")), ThemeIcon.fromId(Codicon.repo.id), ( URI.parse(extension.repository))]);
758
758
  }
759
759
  catch (error) { }
760
760
  }
@@ -762,14 +762,14 @@ let AdditionalDetailsWidget = class AdditionalDetailsWidget extends Disposable {
762
762
  const supportUri = getMcpGalleryManifestResourceUri(manifest, McpGalleryResourceType.ContactSupportUri);
763
763
  if (supportUri) {
764
764
  try {
765
- resources.push([( localize(8766, "Contact Support")), ThemeIcon.fromId(Codicon.commentDiscussion.id), ( URI.parse(supportUri))]);
765
+ resources.push([( localize(8770, "Contact Support")), ThemeIcon.fromId(Codicon.commentDiscussion.id), ( URI.parse(supportUri))]);
766
766
  }
767
767
  catch (error) { }
768
768
  }
769
769
  }
770
770
  if (resources.length) {
771
771
  const extensionResourcesContainer = append(container, $('.resources-container.additional-details-element'));
772
- append(extensionResourcesContainer, $('.additional-details-title', undefined, ( localize(8767, "Resources"))));
772
+ append(extensionResourcesContainer, $('.additional-details-title', undefined, ( localize(8771, "Resources"))));
773
773
  const resourcesElement = append(extensionResourcesContainer, $('.resources'));
774
774
  for (const [label, icon, uri] of resources) {
775
775
  const resourceElement = append(resourcesElement, $('.resource'));
@@ -782,32 +782,32 @@ let AdditionalDetailsWidget = class AdditionalDetailsWidget extends Disposable {
782
782
  }
783
783
  renderInstallInfo(container, extension) {
784
784
  const installInfoContainer = append(container, $('.more-info-container.additional-details-element'));
785
- append(installInfoContainer, $('.additional-details-title', undefined, ( localize(8768, "Installation"))));
785
+ append(installInfoContainer, $('.additional-details-title', undefined, ( localize(8772, "Installation"))));
786
786
  const installInfo = append(installInfoContainer, $('.more-info'));
787
- append(installInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8769, "Identifier"))), $('code', undefined, extension.name)));
787
+ append(installInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8773, "Identifier"))), $('code', undefined, extension.name)));
788
788
  if (extension.version) {
789
- append(installInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8770, "Version"))), $('code', undefined, extension.version)));
789
+ append(installInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8774, "Version"))), $('code', undefined, extension.version)));
790
790
  }
791
791
  }
792
792
  renderMarketplaceInfo(container, extension) {
793
793
  const gallery = extension.gallery;
794
794
  const moreInfoContainer = append(container, $('.more-info-container.additional-details-element'));
795
- append(moreInfoContainer, $('.additional-details-title', undefined, ( localize(8771, "Marketplace"))));
795
+ append(moreInfoContainer, $('.additional-details-title', undefined, ( localize(8775, "Marketplace"))));
796
796
  const moreInfo = append(moreInfoContainer, $('.more-info'));
797
797
  if (gallery) {
798
798
  if (!extension.local) {
799
- append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8769, "Identifier"))), $('code', undefined, extension.name)));
799
+ append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8773, "Identifier"))), $('code', undefined, extension.name)));
800
800
  if (gallery.version) {
801
- append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8770, "Version"))), $('code', undefined, gallery.version)));
801
+ append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8774, "Version"))), $('code', undefined, gallery.version)));
802
802
  }
803
803
  }
804
804
  if (gallery.lastUpdated) {
805
- append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8772, "Last Released"))), $('div', {
805
+ append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8776, "Last Released"))), $('div', {
806
806
  'title': ( ( new Date(gallery.lastUpdated)).toString())
807
807
  }, fromNow(gallery.lastUpdated, true, true, true))));
808
808
  }
809
809
  if (gallery.publishDate) {
810
- append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8773, "Published"))), $('div', {
810
+ append(moreInfo, $('.more-info-entry', undefined, $('div.more-info-entry-name', undefined, ( localize(8777, "Published"))), $('div', {
811
811
  'title': ( ( new Date(gallery.publishDate)).toString())
812
812
  }, fromNow(gallery.publishDate, true, true, true))));
813
813
  }
@@ -8,7 +8,7 @@ import { join } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
8
8
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
9
  import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/iconRegistry';
10
10
 
11
- const MCPServerEditorIcon = registerIcon('mcp-server-editor-icon', Codicon.mcp, ( localize(8774, 'Icon of the MCP Server editor.')));
11
+ const MCPServerEditorIcon = registerIcon('mcp-server-editor-icon', Codicon.mcp, ( localize(8778, 'Icon of the MCP Server editor.')));
12
12
  class McpServerEditorInput extends EditorInput {
13
13
  static { this.ID = 'workbench.mcpServer.input2'; }
14
14
  get typeId() {
@@ -29,7 +29,7 @@ class McpServerEditorInput extends EditorInput {
29
29
  }
30
30
  get mcpServer() { return this._mcpServer; }
31
31
  getName() {
32
- return localize(8775, "MCP Server: {0}", this._mcpServer.label);
32
+ return localize(8779, "MCP Server: {0}", this._mcpServer.label);
33
33
  }
34
34
  getIcon() {
35
35
  return MCPServerEditorIcon;
@@ -3,10 +3,10 @@ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codi
3
3
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
4
  import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/iconRegistry';
5
5
 
6
- const mcpServerIcon = registerIcon('mcp-server', Codicon.mcp, ( localize(8776, 'Icon used for the MCP server.')));
7
- const mcpServerRemoteIcon = registerIcon('mcp-server-remote', Codicon.remote, ( localize(8777, 'Icon to indicate that an MCP server is for the remote user scope.')));
8
- const mcpServerWorkspaceIcon = registerIcon('mcp-server-workspace', Codicon.rootFolder, ( localize(8778, 'Icon to indicate that an MCP server is for the workspace scope.')));
9
- const mcpStarredIcon = registerIcon('mcp-server-starred', Codicon.starFull, ( localize(8779, 'Icon shown along with the starred status.')));
10
- const mcpLicenseIcon = registerIcon('mcp-server-license', Codicon.law, ( localize(8780, 'Icon shown along with the license status.')));
6
+ const mcpServerIcon = registerIcon('mcp-server', Codicon.mcp, ( localize(8780, 'Icon used for the MCP server.')));
7
+ const mcpServerRemoteIcon = registerIcon('mcp-server-remote', Codicon.remote, ( localize(8781, 'Icon to indicate that an MCP server is for the remote user scope.')));
8
+ const mcpServerWorkspaceIcon = registerIcon('mcp-server-workspace', Codicon.rootFolder, ( localize(8782, 'Icon to indicate that an MCP server is for the workspace scope.')));
9
+ const mcpStarredIcon = registerIcon('mcp-server-starred', Codicon.starFull, ( localize(8783, 'Icon shown along with the starred status.')));
10
+ const mcpLicenseIcon = registerIcon('mcp-server-license', Codicon.law, ( localize(8784, 'Icon shown along with the license status.')));
11
11
 
12
12
  export { mcpLicenseIcon, mcpServerIcon, mcpServerRemoteIcon, mcpServerWorkspaceIcon, mcpStarredIcon };
@@ -154,7 +154,7 @@ let PublisherWidget = class PublisherWidget extends McpServerWidget {
154
154
  this.element.classList.toggle('clickable', !!this.mcpServer.gallery?.publisherUrl);
155
155
  this.element.setAttribute('role', 'button');
156
156
  this.element.tabIndex = 0;
157
- this.containerHover = this.disposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, ( localize(8781, "Publisher ({0})", this.mcpServer.publisherDisplayName))));
157
+ this.containerHover = this.disposables.add(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, ( localize(8785, "Publisher ({0})", this.mcpServer.publisherDisplayName))));
158
158
  append(this.element, publisherDisplayName);
159
159
  if (this.mcpServer.gallery?.publisherDomain?.verified) {
160
160
  append(this.element, verifiedPublisher);
@@ -162,7 +162,7 @@ let PublisherWidget = class PublisherWidget extends McpServerWidget {
162
162
  verifiedPublisher.tabIndex = 0;
163
163
  verifiedPublisher.setAttribute('role', 'button');
164
164
  this.containerHover.update(( localize(
165
- 8782,
165
+ 8786,
166
166
  "This publisher has verified ownership of {0}",
167
167
  this.mcpServer.gallery?.publisherDomain.link
168
168
  )));
@@ -296,12 +296,12 @@ let McpServerHoverWidget = class McpServerHoverWidget extends McpServerWidget {
296
296
  let addSeparator = false;
297
297
  if (this.mcpServer.local?.scope === LocalMcpServerScope.Workspace) {
298
298
  markdown.appendMarkdown(`$(${mcpServerWorkspaceIcon.id})&nbsp;`);
299
- markdown.appendMarkdown(( localize(8783, "Workspace MCP Server")));
299
+ markdown.appendMarkdown(( localize(8787, "Workspace MCP Server")));
300
300
  addSeparator = true;
301
301
  }
302
302
  if (this.mcpServer.local?.scope === LocalMcpServerScope.RemoteUser) {
303
303
  markdown.appendMarkdown(`$(${mcpServerRemoteIcon.id})&nbsp;`);
304
- markdown.appendMarkdown(( localize(8784, "Remote MCP Server")));
304
+ markdown.appendMarkdown(( localize(8788, "Remote MCP Server")));
305
305
  addSeparator = true;
306
306
  }
307
307
  if (this.mcpServer.installState === McpServerInstallState.Installed) {
@@ -416,7 +416,7 @@ let McpServerStatusWidget = class McpServerStatusWidget extends McpServerWidget
416
416
  McpServerStatusWidget = ( __decorate([
417
417
  ( __param(2, IMarkdownRendererService))
418
418
  ], McpServerStatusWidget));
419
- const mcpStarredIconColor = registerColor('mcpIcon.starForeground', { light: '#DF6100', dark: '#FF8E00', hcDark: '#FF8E00', hcLight: textLinkForeground }, ( localize(8785, "The icon color for mcp starred.")), false);
419
+ const mcpStarredIconColor = registerColor('mcpIcon.starForeground', { light: '#DF6100', dark: '#FF8E00', hcDark: '#FF8E00', hcLight: textLinkForeground }, ( localize(8789, "The icon color for mcp starred.")), false);
420
420
  registerThemingParticipant((theme, collector) => {
421
421
  const mcpStarredIconColorValue = theme.getColor(mcpStarredIconColor);
422
422
  if (mcpStarredIconColorValue) {
@@ -106,7 +106,7 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
106
106
  return mcpServer?.label ?? '';
107
107
  },
108
108
  getWidgetAriaLabel() {
109
- return localize(8786, "MCP Servers");
109
+ return localize(8790, "MCP Servers");
110
110
  }
111
111
  },
112
112
  overrideStyles: getLocationBasedViewColors(this.viewDescriptorService.getViewLocationById(this.id)).listOverrideStyles,
@@ -194,42 +194,42 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
194
194
  const iconElement = append(iconContainer, $('span'));
195
195
  iconElement.className = ThemeIcon.asClassName(mcpServerIcon);
196
196
  const title = append(welcomeContent, $('.mcp-welcome-title'));
197
- title.textContent = ( localize(8787, "MCP Servers"));
198
- const settingsCommandLink = ( markdownCommandLink({ id: 'workbench.action.openSettings', arguments: [`@id:${mcpGalleryServiceEnablementConfig}`], title: mcpGalleryServiceEnablementConfig, tooltip: ( localize(8788, "Open Settings")) }).toString());
197
+ title.textContent = ( localize(8791, "MCP Servers"));
198
+ const settingsCommandLink = ( markdownCommandLink({ id: 'workbench.action.openSettings', arguments: [`@id:${mcpGalleryServiceEnablementConfig}`], title: mcpGalleryServiceEnablementConfig, tooltip: ( localize(8792, "Open Settings")) }).toString());
199
199
  const description = append(welcomeContent, $('.mcp-welcome-description'));
200
200
  const markdownResult = this._register(this.markdownRendererService.render(( new MarkdownString(( localize(
201
- 8789,
201
+ 8793,
202
202
  "Browse and install [Model Context Protocol (MCP) servers](https://code.visualstudio.com/docs/copilot/customization/mcp-servers) directly from VS Code to extend agent mode with extra tools for connecting to databases, invoking APIs and performing specialized tasks."
203
203
  )), { isTrusted: { enabledCommands: ['workbench.action.openSettings'] } }))
204
204
  .appendMarkdown('\n\n')
205
205
  .appendMarkdown(( localize(
206
- 8790,
206
+ 8794,
207
207
  "This feature is currently in preview. You can disable it anytime using the setting {0}.",
208
208
  settingsCommandLink
209
209
  )))));
210
210
  description.appendChild(markdownResult.element);
211
211
  const buttonContainer = append(welcomeContent, $('.mcp-welcome-button-container'));
212
212
  const button = this._register(( new Button(buttonContainer, {
213
- title: ( localize(8791, "Enable MCP Servers Marketplace")),
213
+ title: ( localize(8795, "Enable MCP Servers Marketplace")),
214
214
  ...defaultButtonStyles
215
215
  })));
216
- button.label = ( localize(8791, "Enable MCP Servers Marketplace"));
216
+ button.label = ( localize(8795, "Enable MCP Servers Marketplace"));
217
217
  this._register(button.onDidClick(async () => {
218
218
  const { result } = await this.dialogService.prompt({
219
219
  type: 'info',
220
- message: ( localize(8792, "Enable MCP Servers Marketplace?")),
220
+ message: ( localize(8796, "Enable MCP Servers Marketplace?")),
221
221
  custom: {
222
222
  markdownDetails: [{
223
223
  markdown: ( new MarkdownString(( localize(
224
- 8790,
224
+ 8794,
225
225
  "This feature is currently in preview. You can disable it anytime using the setting {0}.",
226
226
  settingsCommandLink
227
227
  )), { isTrusted: true }))
228
228
  }]
229
229
  },
230
230
  buttons: [
231
- { label: ( localize(8793, "Enable")), run: () => true },
232
- { label: ( localize(8794, "Cancel")), run: () => false }
231
+ { label: ( localize(8797, "Enable")), run: () => true },
232
+ { label: ( localize(8798, "Cancel")), run: () => false }
233
233
  ]
234
234
  });
235
235
  if (result) {
@@ -249,7 +249,7 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
249
249
  }
250
250
  else if (count === 0) {
251
251
  this.bodyTemplate.messageSeverityIcon.className = '';
252
- this.bodyTemplate.messageBox.textContent = ( localize(8795, "No MCP Servers found."));
252
+ this.bodyTemplate.messageBox.textContent = ( localize(8799, "No MCP Servers found."));
253
253
  }
254
254
  if (this.bodyTemplate.messageBox.textContent) {
255
255
  alert(this.bodyTemplate.messageBox.textContent);
@@ -445,7 +445,7 @@ class McpServersViewsContribution extends Disposable {
445
445
  ( Registry.as(Extensions.ViewsRegistry)).registerViews([
446
446
  {
447
447
  id: InstalledMcpServersViewId,
448
- name: ( localize2(8796, "MCP Servers - Installed")),
448
+ name: ( localize2(8800, "MCP Servers - Installed")),
449
449
  ctorDescriptor: ( new SyncDescriptor(McpServersListView, [{}])),
450
450
  when: ( ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext)),
451
451
  weight: 40,
@@ -454,7 +454,7 @@ class McpServersViewsContribution extends Disposable {
454
454
  },
455
455
  {
456
456
  id: 'workbench.views.mcp.default.marketplace',
457
- name: ( localize2(8797, "MCP Servers")),
457
+ name: ( localize2(8801, "MCP Servers")),
458
458
  ctorDescriptor: ( new SyncDescriptor(DefaultBrowseMcpServersView, [{}])),
459
459
  when: ( ContextKeyExpr.and(DefaultViewsContext, ( HasInstalledMcpServersContext.toNegated()), ( ChatContextKeys.Setup.hidden.negate()), ( McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available)), ( ContextKeyExpr.or(( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`)), ( ProductQualityContext.notEqualsTo('stable')), ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`)))))),
460
460
  weight: 40,
@@ -463,13 +463,13 @@ class McpServersViewsContribution extends Disposable {
463
463
  },
464
464
  {
465
465
  id: 'workbench.views.mcp.marketplace',
466
- name: ( localize2(8797, "MCP Servers")),
466
+ name: ( localize2(8801, "MCP Servers")),
467
467
  ctorDescriptor: ( new SyncDescriptor(McpServersListView, [{}])),
468
468
  when: ( ContextKeyExpr.and(SearchMcpServersContext, ( McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available)), ( ContextKeyExpr.or(( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`)), ( ProductQualityContext.notEqualsTo('stable')), ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`)))))),
469
469
  },
470
470
  {
471
471
  id: 'workbench.views.mcp.default.welcomeView',
472
- name: ( localize2(8797, "MCP Servers")),
472
+ name: ( localize2(8801, "MCP Servers")),
473
473
  ctorDescriptor: ( new SyncDescriptor(DefaultBrowseMcpServersView, [{ showWelcome: true }])),
474
474
  when: ( ContextKeyExpr.and(DefaultViewsContext, ( HasInstalledMcpServersContext.toNegated()), ( ChatContextKeys.Setup.hidden.negate()), ( McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available)), ( ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`)).negate()), ( ProductQualityContext.isEqualTo('stable')), ( ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`)).negate()))),
475
475
  weight: 40,
@@ -478,7 +478,7 @@ class McpServersViewsContribution extends Disposable {
478
478
  },
479
479
  {
480
480
  id: 'workbench.views.mcp.welcomeView',
481
- name: ( localize2(8797, "MCP Servers")),
481
+ name: ( localize2(8801, "MCP Servers")),
482
482
  ctorDescriptor: ( new SyncDescriptor(McpServersListView, [{ showWelcome: true }])),
483
483
  when: ( ContextKeyExpr.and(SearchMcpServersContext, ( McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available)), ( ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`)).negate()), ( ProductQualityContext.isEqualTo('stable')), ( ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`)).negate()))),
484
484
  }
@@ -366,7 +366,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
366
366
  const existing = result.get(server.name);
367
367
  if (existing) {
368
368
  this.logService.warn(( localize(
369
- 8798,
369
+ 8802,
370
370
  "Overwriting mcp server '{0}' from {1} with {2}.",
371
371
  server.name,
372
372
  server.mcpResource.path,
@@ -379,7 +379,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
379
379
  const existing = result.get(server.name);
380
380
  if (existing) {
381
381
  this.logService.warn(( localize(
382
- 8798,
382
+ 8802,
383
383
  "Overwriting mcp server '{0}' from {1} with {2}.",
384
384
  server.name,
385
385
  server.mcpResource.path,
@@ -392,7 +392,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
392
392
  }
393
393
  canInstall(mcpServer) {
394
394
  if (!(mcpServer instanceof McpWorkbenchServer)) {
395
- return ( new MarkdownString()).appendText(( localize(8799, "The provided object is not an mcp server.")));
395
+ return ( new MarkdownString()).appendText(( localize(8803, "The provided object is not an mcp server.")));
396
396
  }
397
397
  if (mcpServer.gallery) {
398
398
  const result = this.mcpManagementService.canInstall(mcpServer.gallery);
@@ -409,7 +409,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
409
409
  return result;
410
410
  }
411
411
  return ( new MarkdownString()).appendText(( localize(
412
- 8800,
412
+ 8804,
413
413
  "Cannot install the '{0}' MCP Server because it is not available in this setup.",
414
414
  mcpServer.label
415
415
  )));
@@ -512,7 +512,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
512
512
  id: USER_CONFIG_ID,
513
513
  key: 'userLocalValue',
514
514
  target: ConfigurationTarget.USER_LOCAL,
515
- label: ( localize(8801, 'Global in {0}', this.productService.nameShort)),
515
+ label: ( localize(8805, 'Global in {0}', this.productService.nameShort)),
516
516
  scope: StorageScope.PROFILE,
517
517
  order: McpCollectionSortOrder.User,
518
518
  uri: mcpResource,
@@ -671,7 +671,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
671
671
  message: {
672
672
  severity: Severity.Warning,
673
673
  text: ( new MarkdownString(( localize(
674
- 8802,
674
+ 8806,
675
675
  "This MCP Server is disabled because MCP servers are configured to be disabled in the Editor. Please check your [settings]({0}).",
676
676
  settingsCommandLink
677
677
  ))))
@@ -685,7 +685,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
685
685
  message: {
686
686
  severity: Severity.Warning,
687
687
  text: ( new MarkdownString(( localize(
688
- 8803,
688
+ 8807,
689
689
  "This MCP Server is disabled because it is configured to be disabled in the Editor. Please check your [settings]({0}).",
690
690
  settingsCommandLink
691
691
  ))))
@@ -699,7 +699,7 @@ let McpWorkbenchService = class McpWorkbenchService extends Disposable {
699
699
  message: {
700
700
  severity: Severity.Warning,
701
701
  text: ( new MarkdownString(( localize(
702
- 8803,
702
+ 8807,
703
703
  "This MCP Server is disabled because it is configured to be disabled in the Editor. Please check your [settings]({0}).",
704
704
  settingsCommandLink
705
705
  ))))
@@ -135,20 +135,20 @@ let ExtensionMcpDiscovery = ExtensionMcpDiscovery_1 = class ExtensionMcpDiscover
135
135
  }
136
136
  static _validate(user) {
137
137
  if (!Array.isArray(user.value)) {
138
- user.collector.error(( localize(8804, "Expected an array of MCP collections")));
138
+ user.collector.error(( localize(8808, "Expected an array of MCP collections")));
139
139
  return false;
140
140
  }
141
141
  for (const contribution of user.value) {
142
142
  if (typeof contribution.id !== 'string' || isFalsyOrWhitespace(contribution.id)) {
143
- user.collector.error(( localize(8805, "Expected 'id' to be a non-empty string.")));
143
+ user.collector.error(( localize(8809, "Expected 'id' to be a non-empty string.")));
144
144
  return false;
145
145
  }
146
146
  if (typeof contribution.label !== 'string' || isFalsyOrWhitespace(contribution.label)) {
147
- user.collector.error(( localize(8806, "Expected 'label' to be a non-empty string.")));
147
+ user.collector.error(( localize(8810, "Expected 'label' to be a non-empty string.")));
148
148
  return false;
149
149
  }
150
150
  if (contribution.when !== undefined && (typeof contribution.when !== 'string' || isFalsyOrWhitespace(contribution.when))) {
151
- user.collector.error(( localize(8807, "Expected 'when' to be a non-empty string.")));
151
+ user.collector.error(( localize(8811, "Expected 'when' to be a non-empty string.")));
152
152
  return false;
153
153
  }
154
154
  }
@@ -83,7 +83,7 @@ let NativeFilesystemMcpDiscovery = class NativeFilesystemMcpDiscovery extends Fi
83
83
  this.suffix = '';
84
84
  if (remoteAuthority) {
85
85
  this.suffix = ' ' + ( localize(
86
- 8808,
86
+ 8812,
87
87
  ' on {0}',
88
88
  labelService.getHostLabel(Schemas.vscodeRemote, remoteAuthority)
89
89
  ));
@@ -15,19 +15,19 @@ var McpContextKeys;
15
15
  McpContextKeys.serverCount = ( new RawContextKey(
16
16
  'mcp.serverCount',
17
17
  undefined,
18
- { type: 'number', description: ( localize(8840, "Context key that has the number of registered MCP servers")) }
18
+ { type: 'number', description: ( localize(8844, "Context key that has the number of registered MCP servers")) }
19
19
  ));
20
20
  McpContextKeys.hasUnknownTools = ( new RawContextKey(
21
21
  'mcp.hasUnknownTools',
22
22
  undefined,
23
- { type: 'boolean', description: ( localize(8841, "Indicates whether there are MCP servers with unknown tools.")) }
23
+ { type: 'boolean', description: ( localize(8845, "Indicates whether there are MCP servers with unknown tools.")) }
24
24
  ));
25
25
  McpContextKeys.hasServersWithErrors = ( new RawContextKey(
26
26
  'mcp.hasServersWithErrors',
27
27
  undefined,
28
- { type: 'boolean', description: ( localize(8842, "Indicates whether there are any MCP servers with errors.")) }
28
+ { type: 'boolean', description: ( localize(8846, "Indicates whether there are any MCP servers with errors.")) }
29
29
  ));
30
- McpContextKeys.toolsCount = ( new RawContextKey('mcp.toolsCount', undefined, { type: 'number', description: ( localize(8843, "Context key that has the number of registered MCP tools")) }));
30
+ McpContextKeys.toolsCount = ( new RawContextKey('mcp.toolsCount', undefined, { type: 'number', description: ( localize(8847, "Context key that has the number of registered MCP tools")) }));
31
31
  })(McpContextKeys || (McpContextKeys = {}));
32
32
  let McpContextKeysController = class McpContextKeysController extends Disposable {
33
33
  static { this.ID = 'workbench.contrib.mcp.contextKey'; }
@@ -45,7 +45,7 @@ let McpLanguageModelToolContribution = class McpLanguageModelToolContribution ex
45
45
  const source = mcpServerToSourceData(server);
46
46
  const toolSet = store.add(this._toolsService.createToolSet(source, server.definition.id, server.definition.label, {
47
47
  icon: Codicon.mcp,
48
- description: ( localize(8844, "{0}: All Tools", server.definition.label))
48
+ description: ( localize(8848, "{0}: All Tools", server.definition.label))
49
49
  }));
50
50
  return { toolSet, source };
51
51
  }));
@@ -138,14 +138,14 @@ let McpToolImplementation = class McpToolImplementation {
138
138
  const tool = this._tool;
139
139
  const server = this._server;
140
140
  const mcpToolWarning = ( localize(
141
- 8845,
141
+ 8849,
142
142
  "Note that MCP servers or malicious conversation content may attempt to misuse '{0}' through tools.",
143
143
  this._productService.nameShort
144
144
  ));
145
145
  const title = tool.definition.annotations?.title || tool.definition.title || ('`' + tool.definition.name + '`');
146
146
  const confirm = {};
147
147
  if (!tool.definition.annotations?.readOnlyHint) {
148
- confirm.title = ( new MarkdownString(( localize(8846, "Run {0}", title))));
148
+ confirm.title = ( new MarkdownString(( localize(8850, "Run {0}", title))));
149
149
  confirm.message = ( new MarkdownString(tool.definition.description, { supportThemeIcons: true }));
150
150
  confirm.disclaimer = mcpToolWarning;
151
151
  confirm.allowAutoConfirm = true;
@@ -155,9 +155,9 @@ let McpToolImplementation = class McpToolImplementation {
155
155
  }
156
156
  return {
157
157
  confirmationMessages: confirm,
158
- invocationMessage: ( new MarkdownString(( localize(8847, "Running {0}", title)))),
159
- pastTenseMessage: ( new MarkdownString(( localize(8848, "Ran {0} ", title)))),
160
- originMessage: ( localize(8849, "{0} (MCP Server)", server.definition.label)),
158
+ invocationMessage: ( new MarkdownString(( localize(8851, "Running {0}", title)))),
159
+ pastTenseMessage: ( new MarkdownString(( localize(8852, "Ran {0} ", title)))),
160
+ originMessage: ( localize(8853, "{0} (MCP Server)", server.definition.label)),
161
161
  toolSpecificData: {
162
162
  kind: 'input',
163
163
  rawInput: context.parameters