@codingame/monaco-vscode-mcp-service-override 27.0.0 → 28.0.0

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 (39) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/mcp/common/allowedMcpServersService.js +1 -1
  3. package/vscode/src/vs/platform/mcp/common/mcpGalleryService.js +2 -2
  4. package/vscode/src/vs/platform/mcp/common/mcpResourceScannerService.d.ts +1 -0
  5. package/vscode/src/vs/platform/mcp/common/mcpResourceScannerService.js +8 -7
  6. package/vscode/src/vs/workbench/contrib/mcp/browser/mcp.contribution.js +3 -3
  7. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpAddContextContribution.js +2 -2
  8. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.js +58 -58
  9. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpElicitationService.js +24 -24
  10. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpGatewayService.d.ts +3 -1
  11. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpGatewayService.js +20 -3
  12. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpGatewayToolBrokerContribution.d.ts +2 -1
  13. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpGatewayToolBrokerContribution.js +4 -3
  14. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpLanguageFeatures.js +18 -18
  15. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpMigration.js +4 -4
  16. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpResourceQuickAccess.js +8 -8
  17. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServersView.js +17 -17
  18. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpWorkbenchService.js +8 -8
  19. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/extensionMcpDiscovery.js +4 -4
  20. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/installedMcpServersDiscovery.js +2 -2
  21. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAbstract.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAdapters.js +2 -1
  23. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/pluginMcpDiscovery.js +3 -3
  24. package/vscode/src/vs/workbench/contrib/mcp/common/mcpContextKeys.js +4 -4
  25. package/vscode/src/vs/workbench/contrib/mcp/common/mcpGatewayToolBrokerChannel.d.ts +17 -1
  26. package/vscode/src/vs/workbench/contrib/mcp/common/mcpGatewayToolBrokerChannel.js +121 -21
  27. package/vscode/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.js +6 -6
  28. package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistry.d.ts +5 -1
  29. package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistry.js +29 -15
  30. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingLog.js +1 -1
  31. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingService.d.ts +1 -0
  32. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingService.js +28 -18
  33. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSandboxService.d.ts +15 -2
  34. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSandboxService.js +174 -22
  35. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConnection.d.ts +6 -1
  36. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConnection.js +61 -3
  37. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerRequestHandler.d.ts +3 -2
  38. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerRequestHandler.js +7 -3
  39. package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpService.js +9 -9
@@ -25,8 +25,8 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
25
25
 
26
26
  const noneItem = {
27
27
  id: undefined,
28
- label: ( localize(10032, "None")),
29
- description: ( localize(10033, "No selection")),
28
+ label: ( localize(10218, "None")),
29
+ description: ( localize(10219, "No selection")),
30
30
  alwaysShow: true
31
31
  };
32
32
  function isFormElicitation(params) {
@@ -78,7 +78,7 @@ let McpElicitationService = class McpElicitationService {
78
78
  if (chatModel instanceof ChatModel) {
79
79
  const request = chatModel.getRequests().at(-1);
80
80
  if (request) {
81
- const part = ( new ChatElicitationRequestPart(( localize(10034, "Request for Input")), elicitation.message, ( localize(10035, "{0} (MCP Server)", server.definition.label)), ( localize(10036, "Respond")), ( localize(10037, "Cancel")), async () => {
81
+ const part = ( new ChatElicitationRequestPart(( localize(10220, "Request for Input")), elicitation.message, ( localize(10221, "{0} (MCP Server)", server.definition.label)), ( localize(10222, "Respond")), ( localize(10223, "Cancel")), async () => {
82
82
  const p = this._doElicitForm(elicitation, token);
83
83
  resolve(p);
84
84
  const result = await p;
@@ -95,11 +95,11 @@ let McpElicitationService = class McpElicitationService {
95
95
  } else {
96
96
  const handle = this._notificationService.notify({
97
97
  message: elicitation.message,
98
- source: ( localize(10038, "MCP Server ({0})", server.definition.label)),
98
+ source: ( localize(10224, "MCP Server ({0})", server.definition.label)),
99
99
  severity: Severity.Info,
100
100
  actions: {
101
- primary: [store.add(( new Action("mcp.elicit.give", ( localize(10039, "Respond")), undefined, true, () => resolve(this._doElicitForm(elicitation, token)))))],
102
- secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(10040, "Cancel")), undefined, true, () => resolve({
101
+ primary: [store.add(( new Action("mcp.elicit.give", ( localize(10225, "Respond")), undefined, true, () => resolve(this._doElicitForm(elicitation, token)))))],
102
+ secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(10226, "Cancel")), undefined, true, () => resolve({
103
103
  action: "decline"
104
104
  }))))]
105
105
  }
@@ -142,7 +142,7 @@ let McpElicitationService = class McpElicitationService {
142
142
  if (chatModel instanceof ChatModel) {
143
143
  const request = chatModel.getRequests().at(-1);
144
144
  if (request) {
145
- const part = ( new ChatElicitationRequestPart(( localize(10041, "Authorization Required")), ( new MarkdownString()).appendText(elicitation.message).appendMarkdown("\n\n" + ( localize(10042, "Open this URL?"))).appendCodeblock("", elicitation.url), ( localize(10035, "{0} (MCP Server)", server.definition.label)), ( localize(10043, "Open {0}", ( URI.parse(elicitation.url)).authority)), ( localize(10037, "Cancel")), async () => {
145
+ const part = ( new ChatElicitationRequestPart(( localize(10227, "Authorization Required")), ( new MarkdownString()).appendText(elicitation.message).appendMarkdown("\n\n" + ( localize(10228, "Open this URL?"))).appendCodeblock("", elicitation.url), ( localize(10221, "{0} (MCP Server)", server.definition.label)), ( localize(10229, "Open {0}", ( URI.parse(elicitation.url)).authority)), ( localize(10223, "Cancel")), async () => {
146
146
  const result = await this._doElicitUrl(elicitation, token);
147
147
  resolve(result);
148
148
  completePromise.then(() => part.hide());
@@ -157,12 +157,12 @@ let McpElicitationService = class McpElicitationService {
157
157
  }
158
158
  } else {
159
159
  const handle = this._notificationService.notify({
160
- message: elicitation.message + " " + ( localize(10044, "This will open {0}", elicitation.url)),
161
- source: ( localize(10038, "MCP Server ({0})", server.definition.label)),
160
+ message: elicitation.message + " " + ( localize(10230, "This will open {0}", elicitation.url)),
161
+ source: ( localize(10224, "MCP Server ({0})", server.definition.label)),
162
162
  severity: Severity.Info,
163
163
  actions: {
164
- primary: [store.add(( new Action("mcp.elicit.url.open2", ( localize(10045, "Open URL")), undefined, true, () => resolve(this._doElicitUrl(elicitation, token)))))],
165
- secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(10040, "Cancel")), undefined, true, () => resolve({
164
+ primary: [store.add(( new Action("mcp.elicit.url.open2", ( localize(10231, "Open URL")), undefined, true, () => resolve(this._doElicitUrl(elicitation, token)))))],
165
+ secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(10226, "Cancel")), undefined, true, () => resolve({
166
166
  action: "decline"
167
167
  }))))]
168
168
  }
@@ -304,7 +304,7 @@ let McpElicitationService = class McpElicitationService {
304
304
  _getFieldPlaceholder(schema, required) {
305
305
  let placeholder = schema.description || "";
306
306
  if (!required) {
307
- placeholder = placeholder ? `${placeholder} (${( localize(10046, "Optional"))})` : ( localize(10046, "Optional"));
307
+ placeholder = placeholder ? `${placeholder} (${( localize(10232, "Optional"))})` : ( localize(10232, "Optional"));
308
308
  }
309
309
  return placeholder;
310
310
  }
@@ -413,7 +413,7 @@ let McpElicitationService = class McpElicitationService {
413
413
  items.push({
414
414
  id: "$default",
415
415
  label: `${schema.default}`,
416
- description: ( localize(10047, "Default value"))
416
+ description: ( localize(10233, "Default value"))
417
417
  });
418
418
  }
419
419
  }
@@ -482,13 +482,13 @@ let McpElicitationService = class McpElicitationService {
482
482
  if (schema.minLength && value.length < schema.minLength) {
483
483
  return {
484
484
  isValid: false,
485
- message: ( localize(10048, "Minimum length is {0}", schema.minLength))
485
+ message: ( localize(10234, "Minimum length is {0}", schema.minLength))
486
486
  };
487
487
  }
488
488
  if (schema.maxLength && value.length > schema.maxLength) {
489
489
  return {
490
490
  isValid: false,
491
- message: ( localize(10049, "Maximum length is {0}", schema.maxLength))
491
+ message: ( localize(10235, "Maximum length is {0}", schema.maxLength))
492
492
  };
493
493
  }
494
494
  if (schema.format) {
@@ -509,7 +509,7 @@ let McpElicitationService = class McpElicitationService {
509
509
  isValid: true
510
510
  } : {
511
511
  isValid: false,
512
- message: ( localize(10050, "Please enter a valid email address"))
512
+ message: ( localize(10236, "Please enter a valid email address"))
513
513
  };
514
514
  case "uri":
515
515
  if (URL.canParse(value)) {
@@ -519,7 +519,7 @@ let McpElicitationService = class McpElicitationService {
519
519
  } else {
520
520
  return {
521
521
  isValid: false,
522
- message: ( localize(10051, "Please enter a valid URI"))
522
+ message: ( localize(10237, "Please enter a valid URI"))
523
523
  };
524
524
  }
525
525
  case "date":
@@ -528,7 +528,7 @@ let McpElicitationService = class McpElicitationService {
528
528
  if (!dateRegex.test(value)) {
529
529
  return {
530
530
  isValid: false,
531
- message: ( localize(10052, "Please enter a valid date (YYYY-MM-DD)"))
531
+ message: ( localize(10238, "Please enter a valid date (YYYY-MM-DD)"))
532
532
  };
533
533
  }
534
534
  const date = ( new Date(value));
@@ -536,7 +536,7 @@ let McpElicitationService = class McpElicitationService {
536
536
  isValid: true
537
537
  } : {
538
538
  isValid: false,
539
- message: ( localize(10052, "Please enter a valid date (YYYY-MM-DD)"))
539
+ message: ( localize(10238, "Please enter a valid date (YYYY-MM-DD)"))
540
540
  };
541
541
  }
542
542
  case "date-time":
@@ -546,7 +546,7 @@ let McpElicitationService = class McpElicitationService {
546
546
  isValid: true
547
547
  } : {
548
548
  isValid: false,
549
- message: ( localize(10053, "Please enter a valid date-time"))
549
+ message: ( localize(10239, "Please enter a valid date-time"))
550
550
  };
551
551
  }
552
552
  default:
@@ -560,25 +560,25 @@ let McpElicitationService = class McpElicitationService {
560
560
  if (isNaN(parsed)) {
561
561
  return {
562
562
  isValid: false,
563
- message: ( localize(10054, "Please enter a valid number"))
563
+ message: ( localize(10240, "Please enter a valid number"))
564
564
  };
565
565
  }
566
566
  if (schema.type === "integer" && !Number.isInteger(parsed)) {
567
567
  return {
568
568
  isValid: false,
569
- message: ( localize(10055, "Please enter a valid integer"))
569
+ message: ( localize(10241, "Please enter a valid integer"))
570
570
  };
571
571
  }
572
572
  if (schema.minimum !== undefined && parsed < schema.minimum) {
573
573
  return {
574
574
  isValid: false,
575
- message: ( localize(10056, "Minimum value is {0}", schema.minimum))
575
+ message: ( localize(10242, "Minimum value is {0}", schema.minimum))
576
576
  };
577
577
  }
578
578
  if (schema.maximum !== undefined && parsed > schema.maximum) {
579
579
  return {
580
580
  isValid: false,
581
- message: ( localize(10057, "Maximum value is {0}", schema.maximum))
581
+ message: ( localize(10243, "Maximum value is {0}", schema.maximum))
582
582
  };
583
583
  }
584
584
  return {
@@ -1,3 +1,4 @@
1
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
1
2
  import { IRemoteAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service";
2
3
  import { IMcpGatewayResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpGatewayService";
3
4
  import { IWorkbenchMcpGatewayService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpGatewayService.service";
@@ -12,7 +13,8 @@ import { IWorkbenchMcpGatewayService } from "@codingame/monaco-vscode-api/vscode
12
13
  */
13
14
  export declare class BrowserMcpGatewayService implements IWorkbenchMcpGatewayService {
14
15
  private readonly _remoteAgentService;
16
+ private readonly _logService;
15
17
  readonly _serviceBrand: undefined;
16
- constructor(_remoteAgentService: IRemoteAgentService);
18
+ constructor(_remoteAgentService: IRemoteAgentService, _logService: ILogService);
17
19
  createGateway(inRemote: boolean): Promise<IMcpGatewayResult | undefined>;
18
20
  }
@@ -2,33 +2,50 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
4
  import { ProxyChannel } from '@codingame/monaco-vscode-api/vscode/vs/base/parts/ipc/common/ipc';
5
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
5
6
  import { McpGatewayChannelName } from '../../../../platform/mcp/common/mcpGateway.js';
6
7
  import { IRemoteAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
7
8
 
8
9
  let BrowserMcpGatewayService = class BrowserMcpGatewayService {
9
- constructor(_remoteAgentService) {
10
+ constructor(_remoteAgentService, _logService) {
10
11
  this._remoteAgentService = _remoteAgentService;
12
+ this._logService = _logService;
11
13
  }
12
14
  async createGateway(inRemote) {
15
+ this._logService.debug(
16
+ `[McpGateway][BrowserWorkbench] createGateway requested (inRemote=${inRemote})`
17
+ );
13
18
  if (!inRemote) {
19
+ this._logService.info(
20
+ "[McpGateway][BrowserWorkbench] Cannot create local gateway in browser environment"
21
+ );
14
22
  return undefined;
15
23
  }
16
24
  const connection = this._remoteAgentService.getConnection();
17
25
  if (!connection) {
26
+ this._logService.info(
27
+ "[McpGateway][BrowserWorkbench] No remote connection available (serverless web)"
28
+ );
18
29
  return undefined;
19
30
  }
31
+ this._logService.info("[McpGateway][BrowserWorkbench] Creating remote gateway via remote server");
20
32
  return connection.withChannel(McpGatewayChannelName, async channel => {
21
33
  const service = ProxyChannel.toService(channel);
22
34
  const info = await service.createGateway(undefined);
35
+ const address = URI.revive(info.address);
36
+ this._logService.info(`[McpGateway][BrowserWorkbench] Remote gateway created: ${address}`);
23
37
  return {
24
- address: URI.revive(info.address),
38
+ address,
25
39
  dispose: () => {
40
+ this._logService.info(
41
+ `[McpGateway][BrowserWorkbench] Disposing remote gateway: ${info.gatewayId}`
42
+ );
26
43
  service.disposeGateway(info.gatewayId);
27
44
  }
28
45
  };
29
46
  });
30
47
  }
31
48
  };
32
- BrowserMcpGatewayService = ( __decorate([( __param(0, IRemoteAgentService))], BrowserMcpGatewayService));
49
+ BrowserMcpGatewayService = ( __decorate([( __param(0, IRemoteAgentService)), ( __param(1, ILogService))], BrowserMcpGatewayService));
33
50
 
34
51
  export { BrowserMcpGatewayService };
@@ -1,6 +1,7 @@
1
1
  import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
2
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
2
3
  import { IRemoteAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service";
3
4
  import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
4
5
  export declare class McpGatewayToolBrokerContribution implements IWorkbenchContribution {
5
- constructor(remoteAgentService: IRemoteAgentService, mcpService: IMcpService);
6
+ constructor(remoteAgentService: IRemoteAgentService, mcpService: IMcpService, logService: ILogService);
6
7
  }
@@ -1,15 +1,16 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
3
4
  import { McpGatewayToolBrokerChannelName } from '../../../../platform/mcp/common/mcpGateway.js';
4
5
  import { IRemoteAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
5
6
  import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
6
7
  import { McpGatewayToolBrokerChannel } from '../common/mcpGatewayToolBrokerChannel.js';
7
8
 
8
9
  let McpGatewayToolBrokerContribution = class McpGatewayToolBrokerContribution {
9
- constructor(remoteAgentService, mcpService) {
10
- remoteAgentService.getConnection()?.registerChannel(McpGatewayToolBrokerChannelName, ( new McpGatewayToolBrokerChannel(mcpService)));
10
+ constructor(remoteAgentService, mcpService, logService) {
11
+ remoteAgentService.getConnection()?.registerChannel(McpGatewayToolBrokerChannelName, ( new McpGatewayToolBrokerChannel(mcpService, logService)));
11
12
  }
12
13
  };
13
- McpGatewayToolBrokerContribution = ( __decorate([( __param(0, IRemoteAgentService)), ( __param(1, IMcpService))], McpGatewayToolBrokerContribution));
14
+ McpGatewayToolBrokerContribution = ( __decorate([( __param(0, IRemoteAgentService)), ( __param(1, IMcpService)), ( __param(2, ILogService))], McpGatewayToolBrokerContribution));
14
15
 
15
16
  export { McpGatewayToolBrokerContribution };
@@ -115,7 +115,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
115
115
  diagnostics.push({
116
116
  severity: MarkerSeverity.Warning,
117
117
  message: ( localize(
118
- 10058,
118
+ 10244,
119
119
  "Variable `{0}` not found, did you mean ${{1}}?",
120
120
  name,
121
121
  getClosestMatchingVariable(name) + (arg ? `:${arg}` : "")
@@ -181,14 +181,14 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
181
181
  range,
182
182
  command: {
183
183
  id: McpCommandIds.ShowOutput,
184
- title: "$(error) " + ( localize(10059, "Error")),
184
+ title: "$(error) " + ( localize(10245, "Error")),
185
185
  arguments: [server.definition.id]
186
186
  }
187
187
  }, {
188
188
  range,
189
189
  command: {
190
190
  id: McpCommandIds.RestartServer,
191
- title: ( localize(10060, "Restart")),
191
+ title: ( localize(10246, "Restart")),
192
192
  arguments: [server.definition.id, {
193
193
  autoTrustChanges: true
194
194
  }]
@@ -199,7 +199,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
199
199
  range,
200
200
  command: {
201
201
  id: McpCommandIds.RestartServer,
202
- title: ( localize(10061, "Debug")),
202
+ title: ( localize(10247, "Debug")),
203
203
  arguments: [server.definition.id, {
204
204
  debug: true,
205
205
  autoTrustChanges: true
@@ -213,14 +213,14 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
213
213
  range,
214
214
  command: {
215
215
  id: McpCommandIds.ShowOutput,
216
- title: "$(loading~spin) " + ( localize(10062, "Starting")),
216
+ title: "$(loading~spin) " + ( localize(10248, "Starting")),
217
217
  arguments: [server.definition.id]
218
218
  }
219
219
  }, {
220
220
  range,
221
221
  command: {
222
222
  id: McpCommandIds.StopServer,
223
- title: ( localize(10063, "Cancel")),
223
+ title: ( localize(10249, "Cancel")),
224
224
  arguments: [server.definition.id]
225
225
  }
226
226
  });
@@ -230,21 +230,21 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
230
230
  range,
231
231
  command: {
232
232
  id: McpCommandIds.ShowOutput,
233
- title: "$(check) " + ( localize(10064, "Running")),
233
+ title: "$(check) " + ( localize(10250, "Running")),
234
234
  arguments: [server.definition.id]
235
235
  }
236
236
  }, {
237
237
  range,
238
238
  command: {
239
239
  id: McpCommandIds.StopServer,
240
- title: ( localize(10065, "Stop")),
240
+ title: ( localize(10251, "Stop")),
241
241
  arguments: [server.definition.id]
242
242
  }
243
243
  }, {
244
244
  range,
245
245
  command: {
246
246
  id: McpCommandIds.RestartServer,
247
- title: ( localize(10060, "Restart")),
247
+ title: ( localize(10246, "Restart")),
248
248
  arguments: [server.definition.id, {
249
249
  autoTrustChanges: true
250
250
  }]
@@ -255,7 +255,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
255
255
  range,
256
256
  command: {
257
257
  id: McpCommandIds.RestartServer,
258
- title: ( localize(10061, "Debug")),
258
+ title: ( localize(10247, "Debug")),
259
259
  arguments: [server.definition.id, {
260
260
  autoTrustChanges: true,
261
261
  debug: true
@@ -269,7 +269,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
269
269
  range,
270
270
  command: {
271
271
  id: McpCommandIds.StartServer,
272
- title: "$(debug-start) " + ( localize(10066, "Start")),
272
+ title: "$(debug-start) " + ( localize(10252, "Start")),
273
273
  arguments: [server.definition.id, {
274
274
  autoTrustChanges: true
275
275
  }]
@@ -280,7 +280,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
280
280
  range,
281
281
  command: {
282
282
  id: McpCommandIds.StartServer,
283
- title: ( localize(10061, "Debug")),
283
+ title: ( localize(10247, "Debug")),
284
284
  arguments: [server.definition.id, {
285
285
  autoTrustChanges: true,
286
286
  debug: true
@@ -296,7 +296,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
296
296
  range,
297
297
  command: {
298
298
  id: "",
299
- title: ( localize(10067, "{0} tools", toolCount))
299
+ title: ( localize(10253, "{0} tools", toolCount))
300
300
  }
301
301
  });
302
302
  }
@@ -306,7 +306,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
306
306
  range,
307
307
  command: {
308
308
  id: McpCommandIds.StartPromptForServer,
309
- title: ( localize(10068, "{0} prompts", promptCount)),
309
+ title: ( localize(10254, "{0} prompts", promptCount)),
310
310
  arguments: [server]
311
311
  }
312
312
  });
@@ -315,7 +315,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
315
315
  range,
316
316
  command: {
317
317
  id: McpCommandIds.ServerOptions,
318
- title: ( localize(10069, "More...")),
318
+ title: ( localize(10255, "More...")),
319
319
  arguments: [server.definition.id]
320
320
  }
321
321
  });
@@ -390,15 +390,15 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
390
390
  function pushAnnotation(savedId, offset, saved) {
391
391
  const tooltip = ( new MarkdownString([createMarkdownCommandLink({
392
392
  id: McpCommandIds.EditStoredInput,
393
- title: ( localize(10070, "Edit")),
393
+ title: ( localize(10256, "Edit")),
394
394
  arguments: [savedId, model.uri, mcpConfigurationSection, inConfig.target]
395
395
  }), createMarkdownCommandLink({
396
396
  id: McpCommandIds.RemoveStoredInput,
397
- title: ( localize(10071, "Clear")),
397
+ title: ( localize(10257, "Clear")),
398
398
  arguments: [inConfig.scope, savedId]
399
399
  }), createMarkdownCommandLink({
400
400
  id: McpCommandIds.RemoveStoredInput,
401
- title: ( localize(10072, "Clear All")),
401
+ title: ( localize(10258, "Clear All")),
402
402
  arguments: [inConfig.scope]
403
403
  })].join(" | "), {
404
404
  isTrusted: true
@@ -98,16 +98,16 @@ let McpConfigMigrationContribution = class McpConfigMigrationContribution extend
98
98
  }
99
99
  showMcpConfigErrorNotification(isRemote) {
100
100
  const message = isRemote ? ( localize(
101
- 10073,
101
+ 10259,
102
102
  "MCP servers should no longer be configured in remote user settings. Use the dedicated MCP configuration instead."
103
103
  )) : ( localize(
104
- 10074,
104
+ 10260,
105
105
  "MCP servers should no longer be configured in user settings. Use the dedicated MCP configuration instead."
106
106
  ));
107
- const openConfigLabel = isRemote ? ( localize(10075, "Open Remote User MCP Configuration")) : ( localize(10076, "Open User MCP Configuration"));
107
+ const openConfigLabel = isRemote ? ( localize(10261, "Open Remote User MCP Configuration")) : ( localize(10262, "Open User MCP Configuration"));
108
108
  const commandId = isRemote ? McpCommandIds.OpenRemoteUserMcp : McpCommandIds.OpenUserMcp;
109
109
  this.notificationService.prompt(Severity.Error, message, [{
110
- label: ( localize(10077, "Update Now")),
110
+ label: ( localize(10263, "Update Now")),
111
111
  run: async () => {
112
112
  await this.migrateMcpConfig();
113
113
  await this.commandService.executeCommand(commandId);
@@ -74,7 +74,7 @@ let McpResourcePickHelper = class McpResourcePickHelper extends Disposable {
74
74
  id: resource.template.template,
75
75
  label: resource.title || resource.name,
76
76
  description: resource.description,
77
- detail: ( localize(10093, "Resource template: {0}", resource.template.template)),
77
+ detail: ( localize(10279, "Resource template: {0}", resource.template.template)),
78
78
  iconPath
79
79
  };
80
80
  }
@@ -221,7 +221,7 @@ let McpResourcePickHelper = class McpResourcePickHelper extends Disposable {
221
221
  return uri;
222
222
  }
223
223
  this._notificationService.warn(( localize(
224
- 10094,
224
+ 10280,
225
225
  "The resource {0} was not found.",
226
226
  (McpResourceURI.toServer(uri).resourceURL.toString())
227
227
  )));
@@ -266,13 +266,13 @@ let McpResourcePickHelper = class McpResourcePickHelper extends Disposable {
266
266
  }
267
267
  }
268
268
  let placeholder = ( localize(
269
- 10095,
269
+ 10281,
270
270
  "Value for ${0} in {1}",
271
271
  variable.name.toUpperCase(),
272
272
  rt.template.resolve(variablesWithPlaceholders).replaceAll("%24", "$")
273
273
  ));
274
274
  if (variable.optional) {
275
- placeholder += " (" + ( localize(10096, "Optional")) + ")";
275
+ placeholder += " (" + ( localize(10282, "Optional")) + ")";
276
276
  }
277
277
  input.placeholder = placeholder;
278
278
  input.value = "";
@@ -292,7 +292,7 @@ let McpResourcePickHelper = class McpResourcePickHelper extends Disposable {
292
292
  } else if (variable.optional) {
293
293
  items.unshift({
294
294
  id: currentID,
295
- label: ( localize(10097, "<Empty>"))
295
+ label: ( localize(10283, "<Empty>"))
296
296
  });
297
297
  }
298
298
  input.items = items;
@@ -463,7 +463,7 @@ let AbstractMcpResourceAccessPick = class AbstractMcpResourceAccessPick {
463
463
  picker.keepScrollPosition = true;
464
464
  const store = ( new DisposableStore());
465
465
  const goBackId = "_goback_";
466
- const attachButton = ( localize(10098, "Attach to chat"));
466
+ const attachButton = ( localize(10284, "Attach to chat"));
467
467
  const helper = store.add(this._instantiationService.createInstance(McpResourcePickHelper));
468
468
  if (this._scopeTo) {
469
469
  helper.explicitServers = [this._scopeTo];
@@ -491,7 +491,7 @@ let AbstractMcpResourceAccessPick = class AbstractMcpResourceAccessPick {
491
491
  if (helper.checkIfNestedResources()) {
492
492
  const goBackItem = {
493
493
  id: goBackId,
494
- label: ( localize(10099, "Go back ↩")),
494
+ label: ( localize(10285, "Go back ↩")),
495
495
  alwaysShow: true
496
496
  };
497
497
  items.push(goBackItem);
@@ -573,7 +573,7 @@ let McpResourceQuickPick = class McpResourceQuickPick extends AbstractMcpResourc
573
573
  const qp = store.add(this._quickInputService.createQuickPick({
574
574
  useSeparators: true
575
575
  }));
576
- qp.placeholder = ( localize(10100, "Search for resources"));
576
+ qp.placeholder = ( localize(10286, "Search for resources"));
577
577
  store.add(this.applyToPick(qp, token));
578
578
  store.add(qp.onDidHide(() => store.dispose()));
579
579
  qp.show();
@@ -142,7 +142,7 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
142
142
  return mcpServer?.label ?? "";
143
143
  },
144
144
  getWidgetAriaLabel() {
145
- return localize(10170, "MCP Servers");
145
+ return localize(10356, "MCP Servers");
146
146
  }
147
147
  },
148
148
  overrideStyles: getLocationBasedViewColors(this.viewDescriptorService.getViewLocationById(this.id)).listOverrideStyles,
@@ -251,43 +251,43 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
251
251
  const iconElement = append(iconContainer, $("span"));
252
252
  iconElement.className = ThemeIcon.asClassName(mcpServerIcon);
253
253
  const title = append(welcomeContent, $(".mcp-welcome-title"));
254
- title.textContent = ( localize(10171, "MCP Servers"));
254
+ title.textContent = ( localize(10357, "MCP Servers"));
255
255
  const settingsCommandLink = ( createMarkdownCommandLink({
256
256
  id: "workbench.action.openSettings",
257
257
  arguments: [`@id:${mcpGalleryServiceEnablementConfig}`],
258
258
  title: mcpGalleryServiceEnablementConfig,
259
- tooltip: ( localize(10172, "Open Settings"))
259
+ tooltip: ( localize(10358, "Open Settings"))
260
260
  }).toString());
261
261
  const description = append(welcomeContent, $(".mcp-welcome-description"));
262
262
  const markdownResult = this._register(this.markdownRendererService.render(( new MarkdownString(( localize(
263
- 10173,
263
+ 10359,
264
264
  "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."
265
265
  )), {
266
266
  isTrusted: {
267
267
  enabledCommands: ["workbench.action.openSettings"]
268
268
  }
269
269
  })).appendMarkdown("\n\n").appendMarkdown(( localize(
270
- 10174,
270
+ 10360,
271
271
  "This feature is currently in preview. You can disable it anytime using the setting {0}.",
272
272
  settingsCommandLink
273
273
  )))));
274
274
  description.appendChild(markdownResult.element);
275
275
  const buttonContainer = append(welcomeContent, $(".mcp-welcome-button-container"));
276
276
  const button = this._register(( new Button(buttonContainer, {
277
- title: ( localize(10175, "Enable MCP Servers Marketplace")),
277
+ title: ( localize(10361, "Enable MCP Servers Marketplace")),
278
278
  ...defaultButtonStyles
279
279
  })));
280
- button.label = ( localize(10175, "Enable MCP Servers Marketplace"));
280
+ button.label = ( localize(10361, "Enable MCP Servers Marketplace"));
281
281
  this._register(button.onDidClick(async () => {
282
282
  const {
283
283
  result
284
284
  } = await this.dialogService.prompt({
285
285
  type: "info",
286
- message: ( localize(10176, "Enable MCP Servers Marketplace?")),
286
+ message: ( localize(10362, "Enable MCP Servers Marketplace?")),
287
287
  custom: {
288
288
  markdownDetails: [{
289
289
  markdown: ( new MarkdownString(( localize(
290
- 10174,
290
+ 10360,
291
291
  "This feature is currently in preview. You can disable it anytime using the setting {0}.",
292
292
  settingsCommandLink
293
293
  )), {
@@ -296,10 +296,10 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
296
296
  }]
297
297
  },
298
298
  buttons: [{
299
- label: ( localize(10177, "Enable")),
299
+ label: ( localize(10363, "Enable")),
300
300
  run: () => true
301
301
  }, {
302
- label: ( localize(10178, "Cancel")),
302
+ label: ( localize(10364, "Cancel")),
303
303
  run: () => false
304
304
  }]
305
305
  });
@@ -319,7 +319,7 @@ let McpServersListView = class McpServersListView extends AbstractExtensionsList
319
319
  this.bodyTemplate.messageBox.textContent = message.text;
320
320
  } else if (count === 0) {
321
321
  this.bodyTemplate.messageSeverityIcon.className = "";
322
- this.bodyTemplate.messageBox.textContent = ( localize(10179, "No MCP Servers found."));
322
+ this.bodyTemplate.messageBox.textContent = ( localize(10365, "No MCP Servers found."));
323
323
  }
324
324
  if (this.bodyTemplate.messageBox.textContent) {
325
325
  alert(this.bodyTemplate.messageBox.textContent);
@@ -533,7 +533,7 @@ class McpServersViewsContribution extends Disposable {
533
533
  super();
534
534
  ( Registry.as(Extensions.ViewsRegistry)).registerViews([{
535
535
  id: InstalledMcpServersViewId,
536
- name: ( localize2(10180, "MCP Servers - Installed")),
536
+ name: ( localize2(10366, "MCP Servers - Installed")),
537
537
  ctorDescriptor: ( new SyncDescriptor(McpServersListView, [{}])),
538
538
  when: ( ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext, ( ChatContextKeys.Setup.hidden.negate()))),
539
539
  weight: 40,
@@ -541,7 +541,7 @@ class McpServersViewsContribution extends Disposable {
541
541
  canToggleVisibility: true
542
542
  }, {
543
543
  id: "workbench.views.mcp.default.marketplace",
544
- name: ( localize2(10181, "MCP Servers")),
544
+ name: ( localize2(10367, "MCP Servers")),
545
545
  ctorDescriptor: ( new SyncDescriptor(DefaultBrowseMcpServersView, [{}])),
546
546
  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}`)))))),
547
547
  weight: 40,
@@ -549,12 +549,12 @@ class McpServersViewsContribution extends Disposable {
549
549
  canToggleVisibility: true
550
550
  }, {
551
551
  id: "workbench.views.mcp.marketplace",
552
- name: ( localize2(10181, "MCP Servers")),
552
+ name: ( localize2(10367, "MCP Servers")),
553
553
  ctorDescriptor: ( new SyncDescriptor(McpServersListView, [{}])),
554
554
  when: ( ContextKeyExpr.and(SearchMcpServersContext, ( ChatContextKeys.Setup.hidden.negate()), ( McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available)), ( ContextKeyExpr.or(( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`)), ( ProductQualityContext.notEqualsTo("stable")), ( ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))))))
555
555
  }, {
556
556
  id: "workbench.views.mcp.default.welcomeView",
557
- name: ( localize2(10181, "MCP Servers")),
557
+ name: ( localize2(10367, "MCP Servers")),
558
558
  ctorDescriptor: ( new SyncDescriptor(DefaultBrowseMcpServersView, [{
559
559
  showWelcome: true
560
560
  }])),
@@ -564,7 +564,7 @@ class McpServersViewsContribution extends Disposable {
564
564
  canToggleVisibility: true
565
565
  }, {
566
566
  id: "workbench.views.mcp.welcomeView",
567
- name: ( localize2(10181, "MCP Servers")),
567
+ name: ( localize2(10367, "MCP Servers")),
568
568
  ctorDescriptor: ( new SyncDescriptor(McpServersListView, [{
569
569
  showWelcome: true
570
570
  }])),