@codingame/monaco-vscode-mcp-service-override 37.2.0 → 37.3.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.
- package/common.d.ts +2 -0
- package/common.js +56 -0
- package/index.d.ts +1 -2
- package/index.js +1 -52
- package/package.json +10 -2
- package/session.d.ts +1 -0
- package/session.js +2 -0
- package/vscode/src/vs/platform/mcp/common/allowedMcpServersService.js +3 -3
- package/vscode/src/vs/platform/mcp/common/mcpGalleryService.js +8 -8
- package/vscode/src/vs/platform/mcp/common/mcpResourceScannerService.js +7 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +18 -18
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcp.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpAddContextContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.js +108 -108
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpElicitationService.js +47 -47
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpGatewayService.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpLanguageFeatures.js +37 -37
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpMigration.js +20 -16
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpResourceQuickAccess.js +52 -50
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditor.js +45 -43
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerIcons.js +5 -5
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerWidgets.js +5 -5
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServersView.js +18 -18
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpWorkbenchService.js +14 -14
- package/vscode/src/vs/workbench/contrib/mcp/common/discovery/extensionMcpDiscovery.js +8 -6
- package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAbstract.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAdapters.js +2 -2
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpContextKeys.js +13 -13
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpGatewayToolBrokerChannel.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistry.js +25 -25
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpResourceFilesystem.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingLog.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingService.js +28 -24
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpSandboxService.js +6 -6
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConnection.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerRequestHandler.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpService.js +13 -11
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpService.js +13 -18
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpUsageService.js +3 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpDevMode.service.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpDevMode.service.js +0 -6
|
@@ -27,8 +27,8 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
|
|
|
27
27
|
|
|
28
28
|
const noneItem = {
|
|
29
29
|
id: undefined,
|
|
30
|
-
label: ( localize(
|
|
31
|
-
description: ( localize(
|
|
30
|
+
label: ( localize(16019, "None")),
|
|
31
|
+
description: ( localize(16020, "No selection")),
|
|
32
32
|
alwaysShow: true
|
|
33
33
|
};
|
|
34
34
|
function isFormElicitation(params) {
|
|
@@ -117,11 +117,11 @@ let McpElicitationService = class McpElicitationService {
|
|
|
117
117
|
}
|
|
118
118
|
const handle = this._notificationService.notify({
|
|
119
119
|
message: elicitation.message,
|
|
120
|
-
source: ( localize(
|
|
120
|
+
source: ( localize(16021, "MCP Server ({0})", server.definition.label)),
|
|
121
121
|
severity: Severity.Info,
|
|
122
122
|
actions: {
|
|
123
|
-
primary: [store.add(( new Action("mcp.elicit.give", ( localize(
|
|
124
|
-
secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(
|
|
123
|
+
primary: [store.add(( new Action("mcp.elicit.give", ( localize(16022, "Respond")), undefined, true, () => resolve(this._doElicitForm(elicitation, token)))))],
|
|
124
|
+
secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(16023, "Cancel")), undefined, true, () => resolve({
|
|
125
125
|
action: "decline"
|
|
126
126
|
}))))]
|
|
127
127
|
}
|
|
@@ -163,7 +163,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
163
163
|
if (chatModel instanceof ChatModel) {
|
|
164
164
|
const request = chatModel.getRequests().at(-1);
|
|
165
165
|
if (request) {
|
|
166
|
-
const part = ( new ChatElicitationRequestPart(( localize(
|
|
166
|
+
const part = ( new ChatElicitationRequestPart(( localize(16024, "Authorization Required")), ( new MarkdownString()).appendText(elicitation.message).appendMarkdown("\n\n" + ( localize(16025, "Open this URL?"))).appendCodeblock("", elicitation.url), ( localize(16026, "{0} (MCP Server)", server.definition.label)), ( localize(16027, "Open {0}", ( URI.parse(elicitation.url)).authority)), ( localize(16028, "Cancel")), async () => {
|
|
167
167
|
const result = await this._doElicitUrl(elicitation, token);
|
|
168
168
|
resolve(result);
|
|
169
169
|
completePromise.then(() => part.hide());
|
|
@@ -178,12 +178,12 @@ let McpElicitationService = class McpElicitationService {
|
|
|
178
178
|
}
|
|
179
179
|
} else {
|
|
180
180
|
const handle = this._notificationService.notify({
|
|
181
|
-
message: elicitation.message + " " + ( localize(
|
|
182
|
-
source: ( localize(
|
|
181
|
+
message: elicitation.message + " " + ( localize(16029, "This will open {0}", elicitation.url)),
|
|
182
|
+
source: ( localize(16021, "MCP Server ({0})", server.definition.label)),
|
|
183
183
|
severity: Severity.Info,
|
|
184
184
|
actions: {
|
|
185
|
-
primary: [store.add(( new Action("mcp.elicit.url.open2", ( localize(
|
|
186
|
-
secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(
|
|
185
|
+
primary: [store.add(( new Action("mcp.elicit.url.open2", ( localize(16030, "Open URL")), undefined, true, () => resolve(this._doElicitUrl(elicitation, token)))))],
|
|
186
|
+
secondary: [store.add(( new Action("mcp.elicit.cancel", ( localize(16023, "Cancel")), undefined, true, () => resolve({
|
|
187
187
|
action: "decline"
|
|
188
188
|
}))))]
|
|
189
189
|
}
|
|
@@ -259,17 +259,17 @@ let McpElicitationService = class McpElicitationService {
|
|
|
259
259
|
}
|
|
260
260
|
} else if (isLegacyTitledEnumSchema(schema)) {
|
|
261
261
|
result = await this._handleEnumField(quickPick, {
|
|
262
|
-
enum:
|
|
262
|
+
enum: schema.enum.map((v, i) => ({
|
|
263
263
|
const: v,
|
|
264
264
|
title: schema.enumNames[i]
|
|
265
|
-
}))
|
|
265
|
+
})),
|
|
266
266
|
default: schema.default
|
|
267
267
|
}, isRequired, store, token);
|
|
268
268
|
} else if (isUntitledEnumSchema(schema)) {
|
|
269
269
|
result = await this._handleEnumField(quickPick, {
|
|
270
|
-
enum:
|
|
270
|
+
enum: schema.enum.map(v => ({
|
|
271
271
|
const: v
|
|
272
|
-
}))
|
|
272
|
+
})),
|
|
273
273
|
default: schema.default
|
|
274
274
|
}, isRequired, store, token);
|
|
275
275
|
} else if (isTitledSingleEnumSchema(schema)) {
|
|
@@ -284,9 +284,9 @@ let McpElicitationService = class McpElicitationService {
|
|
|
284
284
|
}, isRequired, store, token);
|
|
285
285
|
} else if (isUntitledMultiEnumSchema(schema)) {
|
|
286
286
|
result = await this._handleMultiEnumField(quickPick, {
|
|
287
|
-
enum:
|
|
287
|
+
enum: schema.items.enum.map(v => ({
|
|
288
288
|
const: v
|
|
289
|
-
}))
|
|
289
|
+
})),
|
|
290
290
|
default: schema.default
|
|
291
291
|
}, isRequired, store, token);
|
|
292
292
|
} else {
|
|
@@ -325,12 +325,12 @@ let McpElicitationService = class McpElicitationService {
|
|
|
325
325
|
_getFieldPlaceholder(schema, required) {
|
|
326
326
|
let placeholder = schema.description || "";
|
|
327
327
|
if (!required) {
|
|
328
|
-
placeholder = placeholder ? `${placeholder} (${( localize(
|
|
328
|
+
placeholder = placeholder ? `${placeholder} (${( localize(16031, "Optional"))})` : ( localize(16031, "Optional"));
|
|
329
329
|
}
|
|
330
330
|
return placeholder;
|
|
331
331
|
}
|
|
332
332
|
async _handleEnumField(quickPick, schema, required, store, token) {
|
|
333
|
-
const items =
|
|
333
|
+
const items = schema.enum.map((
|
|
334
334
|
{
|
|
335
335
|
const: value,
|
|
336
336
|
title
|
|
@@ -339,7 +339,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
339
339
|
id: value,
|
|
340
340
|
label: value,
|
|
341
341
|
description: title
|
|
342
|
-
}))
|
|
342
|
+
}));
|
|
343
343
|
if (!required) {
|
|
344
344
|
items.push(noneItem);
|
|
345
345
|
}
|
|
@@ -371,7 +371,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
371
371
|
}));
|
|
372
372
|
}
|
|
373
373
|
async _handleMultiEnumField(quickPick, schema, required, store, token) {
|
|
374
|
-
const items =
|
|
374
|
+
const items = schema.enum.map((
|
|
375
375
|
{
|
|
376
376
|
const: value,
|
|
377
377
|
title
|
|
@@ -382,7 +382,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
382
382
|
description: title,
|
|
383
383
|
picked: !!schema.default?.includes(value),
|
|
384
384
|
pickable: true
|
|
385
|
-
}))
|
|
385
|
+
}));
|
|
386
386
|
if (!required) {
|
|
387
387
|
items.push(noneItem);
|
|
388
388
|
}
|
|
@@ -402,7 +402,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
402
402
|
} else {
|
|
403
403
|
resolve({
|
|
404
404
|
type: "value",
|
|
405
|
-
value:
|
|
405
|
+
value: quickPick.selectedItems.map(i => i.id).filter(isDefined)
|
|
406
406
|
});
|
|
407
407
|
}
|
|
408
408
|
}));
|
|
@@ -434,7 +434,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
434
434
|
items.push({
|
|
435
435
|
id: "$default",
|
|
436
436
|
label: `${schema.default}`,
|
|
437
|
-
description: ( localize(
|
|
437
|
+
description: ( localize(16032, "Default value"))
|
|
438
438
|
});
|
|
439
439
|
}
|
|
440
440
|
}
|
|
@@ -503,13 +503,13 @@ let McpElicitationService = class McpElicitationService {
|
|
|
503
503
|
if (schema.minLength && value.length < schema.minLength) {
|
|
504
504
|
return {
|
|
505
505
|
isValid: false,
|
|
506
|
-
message: ( localize(
|
|
506
|
+
message: ( localize(16033, "Minimum length is {0}", schema.minLength))
|
|
507
507
|
};
|
|
508
508
|
}
|
|
509
509
|
if (schema.maxLength && value.length > schema.maxLength) {
|
|
510
510
|
return {
|
|
511
511
|
isValid: false,
|
|
512
|
-
message: ( localize(
|
|
512
|
+
message: ( localize(16034, "Maximum length is {0}", schema.maxLength))
|
|
513
513
|
};
|
|
514
514
|
}
|
|
515
515
|
if (schema.format) {
|
|
@@ -530,7 +530,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
530
530
|
isValid: true
|
|
531
531
|
} : {
|
|
532
532
|
isValid: false,
|
|
533
|
-
message: ( localize(
|
|
533
|
+
message: ( localize(16035, "Please enter a valid email address"))
|
|
534
534
|
};
|
|
535
535
|
case "uri":
|
|
536
536
|
if (URL.canParse(value)) {
|
|
@@ -540,7 +540,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
540
540
|
} else {
|
|
541
541
|
return {
|
|
542
542
|
isValid: false,
|
|
543
|
-
message: ( localize(
|
|
543
|
+
message: ( localize(16036, "Please enter a valid URI"))
|
|
544
544
|
};
|
|
545
545
|
}
|
|
546
546
|
case "date":
|
|
@@ -549,7 +549,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
549
549
|
if (!dateRegex.test(value)) {
|
|
550
550
|
return {
|
|
551
551
|
isValid: false,
|
|
552
|
-
message: ( localize(
|
|
552
|
+
message: ( localize(16037, "Please enter a valid date (YYYY-MM-DD)"))
|
|
553
553
|
};
|
|
554
554
|
}
|
|
555
555
|
const date = ( new Date(value));
|
|
@@ -557,7 +557,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
557
557
|
isValid: true
|
|
558
558
|
} : {
|
|
559
559
|
isValid: false,
|
|
560
|
-
message: ( localize(
|
|
560
|
+
message: ( localize(16037, "Please enter a valid date (YYYY-MM-DD)"))
|
|
561
561
|
};
|
|
562
562
|
}
|
|
563
563
|
case "date-time":
|
|
@@ -567,7 +567,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
567
567
|
isValid: true
|
|
568
568
|
} : {
|
|
569
569
|
isValid: false,
|
|
570
|
-
message: ( localize(
|
|
570
|
+
message: ( localize(16038, "Please enter a valid date-time"))
|
|
571
571
|
};
|
|
572
572
|
}
|
|
573
573
|
default:
|
|
@@ -581,25 +581,25 @@ let McpElicitationService = class McpElicitationService {
|
|
|
581
581
|
if (isNaN(parsed)) {
|
|
582
582
|
return {
|
|
583
583
|
isValid: false,
|
|
584
|
-
message: ( localize(
|
|
584
|
+
message: ( localize(16039, "Please enter a valid number"))
|
|
585
585
|
};
|
|
586
586
|
}
|
|
587
587
|
if (schema.type === "integer" && !Number.isInteger(parsed)) {
|
|
588
588
|
return {
|
|
589
589
|
isValid: false,
|
|
590
|
-
message: ( localize(
|
|
590
|
+
message: ( localize(16040, "Please enter a valid integer"))
|
|
591
591
|
};
|
|
592
592
|
}
|
|
593
593
|
if (schema.minimum !== undefined && parsed < schema.minimum) {
|
|
594
594
|
return {
|
|
595
595
|
isValid: false,
|
|
596
|
-
message: ( localize(
|
|
596
|
+
message: ( localize(16041, "Minimum value is {0}", schema.minimum))
|
|
597
597
|
};
|
|
598
598
|
}
|
|
599
599
|
if (schema.maximum !== undefined && parsed > schema.maximum) {
|
|
600
600
|
return {
|
|
601
601
|
isValid: false,
|
|
602
|
-
message: ( localize(
|
|
602
|
+
message: ( localize(16042, "Maximum value is {0}", schema.maximum))
|
|
603
603
|
};
|
|
604
604
|
}
|
|
605
605
|
return {
|
|
@@ -628,11 +628,11 @@ let McpElicitationService = class McpElicitationService {
|
|
|
628
628
|
allowFreeformInput: false,
|
|
629
629
|
options: [{
|
|
630
630
|
id: "true",
|
|
631
|
-
label: ( localize(
|
|
631
|
+
label: ( localize(16043, "True")),
|
|
632
632
|
value: "true"
|
|
633
633
|
}, {
|
|
634
634
|
id: "false",
|
|
635
|
-
label: ( localize(
|
|
635
|
+
label: ( localize(16044, "False")),
|
|
636
636
|
value: "false"
|
|
637
637
|
}],
|
|
638
638
|
defaultValue: schema.default !== undefined ? String(schema.default) : undefined
|
|
@@ -645,11 +645,11 @@ let McpElicitationService = class McpElicitationService {
|
|
|
645
645
|
description,
|
|
646
646
|
required: isRequired,
|
|
647
647
|
allowFreeformInput: false,
|
|
648
|
-
options:
|
|
648
|
+
options: schema.enum.map((v, i) => ({
|
|
649
649
|
id: v,
|
|
650
650
|
label: schema.enumNames[i] ? `${v} - ${schema.enumNames[i]}` : v,
|
|
651
651
|
value: v
|
|
652
|
-
}))
|
|
652
|
+
})),
|
|
653
653
|
defaultValue: schema.default
|
|
654
654
|
});
|
|
655
655
|
} else if (isTitledSingleEnumSchema(schema)) {
|
|
@@ -660,7 +660,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
660
660
|
description,
|
|
661
661
|
required: isRequired,
|
|
662
662
|
allowFreeformInput: false,
|
|
663
|
-
options:
|
|
663
|
+
options: schema.oneOf.map((
|
|
664
664
|
{
|
|
665
665
|
const: value,
|
|
666
666
|
title: optTitle
|
|
@@ -669,7 +669,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
669
669
|
id: value,
|
|
670
670
|
label: optTitle ? `${value} - ${optTitle}` : value,
|
|
671
671
|
value
|
|
672
|
-
}))
|
|
672
|
+
})),
|
|
673
673
|
defaultValue: schema.default
|
|
674
674
|
});
|
|
675
675
|
} else if (isUntitledEnumSchema(schema)) {
|
|
@@ -680,11 +680,11 @@ let McpElicitationService = class McpElicitationService {
|
|
|
680
680
|
description,
|
|
681
681
|
required: isRequired,
|
|
682
682
|
allowFreeformInput: false,
|
|
683
|
-
options:
|
|
683
|
+
options: schema.enum.map(v => ({
|
|
684
684
|
id: v,
|
|
685
685
|
label: v,
|
|
686
686
|
value: v
|
|
687
|
-
}))
|
|
687
|
+
})),
|
|
688
688
|
defaultValue: schema.default
|
|
689
689
|
});
|
|
690
690
|
} else if (isTitledMultiEnumSchema(schema)) {
|
|
@@ -695,7 +695,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
695
695
|
description,
|
|
696
696
|
required: isRequired,
|
|
697
697
|
allowFreeformInput: false,
|
|
698
|
-
options:
|
|
698
|
+
options: schema.items.anyOf.map((
|
|
699
699
|
{
|
|
700
700
|
const: value,
|
|
701
701
|
title: optTitle
|
|
@@ -704,7 +704,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
704
704
|
id: value,
|
|
705
705
|
label: optTitle ? `${value} - ${optTitle}` : value,
|
|
706
706
|
value
|
|
707
|
-
}))
|
|
707
|
+
})),
|
|
708
708
|
defaultValue: schema.default
|
|
709
709
|
});
|
|
710
710
|
} else if (isUntitledMultiEnumSchema(schema)) {
|
|
@@ -715,11 +715,11 @@ let McpElicitationService = class McpElicitationService {
|
|
|
715
715
|
description,
|
|
716
716
|
required: isRequired,
|
|
717
717
|
allowFreeformInput: false,
|
|
718
|
-
options:
|
|
718
|
+
options: schema.items.enum.map(v => ({
|
|
719
719
|
id: v,
|
|
720
720
|
label: v,
|
|
721
721
|
value: v
|
|
722
|
-
}))
|
|
722
|
+
})),
|
|
723
723
|
defaultValue: schema.default
|
|
724
724
|
});
|
|
725
725
|
} else {
|
|
@@ -795,7 +795,7 @@ let McpElicitationService = class McpElicitationService {
|
|
|
795
795
|
}
|
|
796
796
|
} else if (schema.type === "array") {
|
|
797
797
|
if (Array.isArray(rawValue)) {
|
|
798
|
-
content[propertyName] =
|
|
798
|
+
content[propertyName] = rawValue.map(v => String(v));
|
|
799
799
|
}
|
|
800
800
|
} else {
|
|
801
801
|
content[propertyName] = String(rawValue);
|
|
@@ -37,10 +37,10 @@ let BrowserMcpGatewayService = class BrowserMcpGatewayService {
|
|
|
37
37
|
this._logService.info(
|
|
38
38
|
`[McpGateway][BrowserWorkbench] Remote gateway created with ${servers.length} server(s)`
|
|
39
39
|
);
|
|
40
|
-
const onDidChangeServers =
|
|
40
|
+
const onDidChangeServers = Event.map(Event.filter(
|
|
41
41
|
channel.listen("onDidChangeGatewayServers"),
|
|
42
42
|
e => e.gatewayId === info.gatewayId
|
|
43
|
-
), e => reviveServers(e.servers))
|
|
43
|
+
), e => reviveServers(e.servers));
|
|
44
44
|
return {
|
|
45
45
|
servers,
|
|
46
46
|
onDidChangeServers,
|
|
@@ -61,10 +61,10 @@ let BrowserMcpGatewayService = class BrowserMcpGatewayService {
|
|
|
61
61
|
};
|
|
62
62
|
BrowserMcpGatewayService = ( __decorate([( __param(0, IRemoteAgentService)), ( __param(1, ILogService))], BrowserMcpGatewayService));
|
|
63
63
|
function reviveServers(servers) {
|
|
64
|
-
return
|
|
64
|
+
return servers.map(s => ({
|
|
65
65
|
label: s.label,
|
|
66
66
|
address: URI.revive(s.address)
|
|
67
|
-
}))
|
|
67
|
+
}));
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
export { BrowserMcpGatewayService };
|
|
@@ -202,7 +202,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
202
202
|
diagnostics.push({
|
|
203
203
|
severity: MarkerSeverity.Warning,
|
|
204
204
|
message: ( localize(
|
|
205
|
-
|
|
205
|
+
16045,
|
|
206
206
|
"Variable `{0}` not found, did you mean ${{1}}?",
|
|
207
207
|
name,
|
|
208
208
|
getClosestMatchingVariable(name) + (arg ? `:${arg}` : "")
|
|
@@ -288,7 +288,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
288
288
|
range,
|
|
289
289
|
command: {
|
|
290
290
|
id: McpCommandIds.ServerOptions,
|
|
291
|
-
title: "$(circle-slash) " + ( localize(
|
|
291
|
+
title: "$(circle-slash) " + ( localize(16046, "Disabled")),
|
|
292
292
|
arguments: [server.definition.id]
|
|
293
293
|
}
|
|
294
294
|
});
|
|
@@ -302,14 +302,14 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
302
302
|
range,
|
|
303
303
|
command: {
|
|
304
304
|
id: McpCommandIds.ShowOutput,
|
|
305
|
-
title: "$(error) " + ( localize(
|
|
305
|
+
title: "$(error) " + ( localize(16047, "Error")),
|
|
306
306
|
arguments: [server.definition.id]
|
|
307
307
|
}
|
|
308
308
|
}, {
|
|
309
309
|
range,
|
|
310
310
|
command: {
|
|
311
311
|
id: McpCommandIds.RestartServer,
|
|
312
|
-
title: ( localize(
|
|
312
|
+
title: ( localize(16048, "Restart")),
|
|
313
313
|
arguments: [server.definition.id, {
|
|
314
314
|
autoTrustChanges: true
|
|
315
315
|
}]
|
|
@@ -320,7 +320,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
320
320
|
range,
|
|
321
321
|
command: {
|
|
322
322
|
id: McpCommandIds.RestartServer,
|
|
323
|
-
title: ( localize(
|
|
323
|
+
title: ( localize(16049, "Debug")),
|
|
324
324
|
arguments: [server.definition.id, {
|
|
325
325
|
debug: true,
|
|
326
326
|
autoTrustChanges: true
|
|
@@ -334,14 +334,14 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
334
334
|
range,
|
|
335
335
|
command: {
|
|
336
336
|
id: McpCommandIds.ShowOutput,
|
|
337
|
-
title: "$(loading~spin) " + ( localize(
|
|
337
|
+
title: "$(loading~spin) " + ( localize(16050, "Starting")),
|
|
338
338
|
arguments: [server.definition.id]
|
|
339
339
|
}
|
|
340
340
|
}, {
|
|
341
341
|
range,
|
|
342
342
|
command: {
|
|
343
343
|
id: McpCommandIds.StopServer,
|
|
344
|
-
title: ( localize(
|
|
344
|
+
title: ( localize(16051, "Cancel")),
|
|
345
345
|
arguments: [server.definition.id]
|
|
346
346
|
}
|
|
347
347
|
});
|
|
@@ -351,21 +351,21 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
351
351
|
range,
|
|
352
352
|
command: {
|
|
353
353
|
id: McpCommandIds.ShowOutput,
|
|
354
|
-
title: "$(check) " + ( localize(
|
|
354
|
+
title: "$(check) " + ( localize(16052, "Running")),
|
|
355
355
|
arguments: [server.definition.id]
|
|
356
356
|
}
|
|
357
357
|
}, {
|
|
358
358
|
range,
|
|
359
359
|
command: {
|
|
360
360
|
id: McpCommandIds.StopServer,
|
|
361
|
-
title: ( localize(
|
|
361
|
+
title: ( localize(16053, "Stop")),
|
|
362
362
|
arguments: [server.definition.id]
|
|
363
363
|
}
|
|
364
364
|
}, {
|
|
365
365
|
range,
|
|
366
366
|
command: {
|
|
367
367
|
id: McpCommandIds.RestartServer,
|
|
368
|
-
title: ( localize(
|
|
368
|
+
title: ( localize(16048, "Restart")),
|
|
369
369
|
arguments: [server.definition.id, {
|
|
370
370
|
autoTrustChanges: true
|
|
371
371
|
}]
|
|
@@ -376,7 +376,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
376
376
|
range,
|
|
377
377
|
command: {
|
|
378
378
|
id: McpCommandIds.RestartServer,
|
|
379
|
-
title: ( localize(
|
|
379
|
+
title: ( localize(16049, "Debug")),
|
|
380
380
|
arguments: [server.definition.id, {
|
|
381
381
|
autoTrustChanges: true,
|
|
382
382
|
debug: true
|
|
@@ -390,7 +390,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
390
390
|
range,
|
|
391
391
|
command: {
|
|
392
392
|
id: McpCommandIds.StartServer,
|
|
393
|
-
title: "$(debug-start) " + ( localize(
|
|
393
|
+
title: "$(debug-start) " + ( localize(16054, "Start")),
|
|
394
394
|
arguments: [server.definition.id, {
|
|
395
395
|
autoTrustChanges: true
|
|
396
396
|
}]
|
|
@@ -401,7 +401,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
401
401
|
range,
|
|
402
402
|
command: {
|
|
403
403
|
id: McpCommandIds.StartServer,
|
|
404
|
-
title: ( localize(
|
|
404
|
+
title: ( localize(16049, "Debug")),
|
|
405
405
|
arguments: [server.definition.id, {
|
|
406
406
|
autoTrustChanges: true,
|
|
407
407
|
debug: true
|
|
@@ -417,7 +417,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
417
417
|
range,
|
|
418
418
|
command: {
|
|
419
419
|
id: "",
|
|
420
|
-
title: ( localize(
|
|
420
|
+
title: ( localize(16055, "{0} tools", toolCount))
|
|
421
421
|
}
|
|
422
422
|
});
|
|
423
423
|
}
|
|
@@ -427,7 +427,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
427
427
|
range,
|
|
428
428
|
command: {
|
|
429
429
|
id: McpCommandIds.StartPromptForServer,
|
|
430
|
-
title: ( localize(
|
|
430
|
+
title: ( localize(16056, "{0} prompts", promptCount)),
|
|
431
431
|
arguments: [server]
|
|
432
432
|
}
|
|
433
433
|
});
|
|
@@ -436,7 +436,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
436
436
|
range,
|
|
437
437
|
command: {
|
|
438
438
|
id: McpCommandIds.ServerOptions,
|
|
439
|
-
title: ( localize(
|
|
439
|
+
title: ( localize(16057, "More...")),
|
|
440
440
|
arguments: [server.definition.id]
|
|
441
441
|
}
|
|
442
442
|
});
|
|
@@ -474,9 +474,9 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
474
474
|
}
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
|
-
const existingSecrets = await Promise.all(
|
|
477
|
+
const existingSecrets = await Promise.all(candidates.map(
|
|
478
478
|
c => this._secretStorageService.get(mcpOAuthClientSecretStorageKey(c.mcpServerUrl, c.clientId))
|
|
479
|
-
))
|
|
479
|
+
));
|
|
480
480
|
for (let i = 0; i < candidates.length; i++) {
|
|
481
481
|
const {
|
|
482
482
|
clientId,
|
|
@@ -485,7 +485,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
485
485
|
clientIdOffset
|
|
486
486
|
} = candidates[i];
|
|
487
487
|
const existing = existingSecrets[i];
|
|
488
|
-
const title = existing ? ( localize(
|
|
488
|
+
const title = existing ? ( localize(16058, "Replace Client Secret")) : ( localize(16059, "Set Client Secret"));
|
|
489
489
|
lenses.push({
|
|
490
490
|
range: Range.fromPositions(model.getPositionAt(clientIdOffset)),
|
|
491
491
|
command: {
|
|
@@ -507,7 +507,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
507
507
|
range,
|
|
508
508
|
command: {
|
|
509
509
|
id: McpCommandIds.AgentHostServerOptions,
|
|
510
|
-
title: "$(circle-slash) " + ( localize(
|
|
510
|
+
title: "$(circle-slash) " + ( localize(16046, "Disabled")),
|
|
511
511
|
arguments: [agentHostSession, server.id]
|
|
512
512
|
}
|
|
513
513
|
});
|
|
@@ -519,7 +519,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
519
519
|
range,
|
|
520
520
|
command: {
|
|
521
521
|
id: McpCommandIds.AgentHostServerOptions,
|
|
522
|
-
title: "$(error) " + ( localize(
|
|
522
|
+
title: "$(error) " + ( localize(16047, "Error")),
|
|
523
523
|
arguments: [agentHostSession, server.id]
|
|
524
524
|
}
|
|
525
525
|
});
|
|
@@ -527,7 +527,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
527
527
|
range,
|
|
528
528
|
command: {
|
|
529
529
|
id: McpCommandIds.StartServer,
|
|
530
|
-
title: ( localize(
|
|
530
|
+
title: ( localize(16054, "Start")),
|
|
531
531
|
arguments: [commandArg]
|
|
532
532
|
}
|
|
533
533
|
});
|
|
@@ -537,7 +537,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
537
537
|
range,
|
|
538
538
|
command: {
|
|
539
539
|
id: McpCommandIds.AgentHostServerOptions,
|
|
540
|
-
title: "$(loading~spin) " + ( localize(
|
|
540
|
+
title: "$(loading~spin) " + ( localize(16050, "Starting")),
|
|
541
541
|
arguments: [agentHostSession, server.id]
|
|
542
542
|
}
|
|
543
543
|
});
|
|
@@ -545,7 +545,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
545
545
|
range,
|
|
546
546
|
command: {
|
|
547
547
|
id: McpCommandIds.StopServer,
|
|
548
|
-
title: ( localize(
|
|
548
|
+
title: ( localize(16051, "Cancel")),
|
|
549
549
|
arguments: [commandArg]
|
|
550
550
|
}
|
|
551
551
|
});
|
|
@@ -555,7 +555,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
555
555
|
range,
|
|
556
556
|
command: {
|
|
557
557
|
id: McpCommandIds.AgentHostServerOptions,
|
|
558
|
-
title: "$(check) " + ( localize(
|
|
558
|
+
title: "$(check) " + ( localize(16052, "Running")),
|
|
559
559
|
arguments: [agentHostSession, server.id]
|
|
560
560
|
}
|
|
561
561
|
});
|
|
@@ -563,7 +563,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
563
563
|
range,
|
|
564
564
|
command: {
|
|
565
565
|
id: McpCommandIds.StopServer,
|
|
566
|
-
title: ( localize(
|
|
566
|
+
title: ( localize(16053, "Stop")),
|
|
567
567
|
arguments: [commandArg]
|
|
568
568
|
}
|
|
569
569
|
});
|
|
@@ -573,7 +573,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
573
573
|
range,
|
|
574
574
|
command: {
|
|
575
575
|
id: McpCommandIds.AgentHostServerOptions,
|
|
576
|
-
title: "$(account) " + ( localize(
|
|
576
|
+
title: "$(account) " + ( localize(16060, "Authentication Required")),
|
|
577
577
|
arguments: [agentHostSession, server.id]
|
|
578
578
|
}
|
|
579
579
|
});
|
|
@@ -581,7 +581,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
581
581
|
range,
|
|
582
582
|
command: {
|
|
583
583
|
id: McpCommandIds.StopServer,
|
|
584
|
-
title: ( localize(
|
|
584
|
+
title: ( localize(16053, "Stop")),
|
|
585
585
|
arguments: [commandArg]
|
|
586
586
|
}
|
|
587
587
|
});
|
|
@@ -591,7 +591,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
591
591
|
range,
|
|
592
592
|
command: {
|
|
593
593
|
id: McpCommandIds.StartServer,
|
|
594
|
-
title: "$(debug-start) " + ( localize(
|
|
594
|
+
title: "$(debug-start) " + ( localize(16054, "Start")),
|
|
595
595
|
arguments: [commandArg]
|
|
596
596
|
}
|
|
597
597
|
});
|
|
@@ -602,7 +602,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
602
602
|
range,
|
|
603
603
|
command: {
|
|
604
604
|
id: "",
|
|
605
|
-
title: otherRunningSessionCount === 1 ? ( localize(
|
|
605
|
+
title: otherRunningSessionCount === 1 ? ( localize(16061, "(Running in 1 session)")) : ( localize(16062, "(Running in {0} sessions)", otherRunningSessionCount))
|
|
606
606
|
}
|
|
607
607
|
});
|
|
608
608
|
}
|
|
@@ -611,7 +611,7 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
611
611
|
range,
|
|
612
612
|
command: {
|
|
613
613
|
id: McpCommandIds.AgentHostServerOptions,
|
|
614
|
-
title: ( localize(
|
|
614
|
+
title: ( localize(16057, "More...")),
|
|
615
615
|
arguments: [agentHostSession, server.id]
|
|
616
616
|
}
|
|
617
617
|
});
|
|
@@ -737,19 +737,19 @@ let McpLanguageFeatures = class McpLanguageFeatures extends Disposable {
|
|
|
737
737
|
function pushAnnotation(savedId, offset, saved) {
|
|
738
738
|
const tooltip = ( new MarkdownString([createMarkdownCommandLink({
|
|
739
739
|
id: McpCommandIds.EditStoredInput,
|
|
740
|
-
text: ( localize(
|
|
740
|
+
text: ( localize(16063, "Edit")),
|
|
741
741
|
arguments: [savedId, model.uri, mcpConfigurationSection, inConfig.target],
|
|
742
|
-
tooltip: ( localize(
|
|
742
|
+
tooltip: ( localize(16064, "Edit saved value"))
|
|
743
743
|
}), createMarkdownCommandLink({
|
|
744
744
|
id: McpCommandIds.RemoveStoredInput,
|
|
745
|
-
text: ( localize(
|
|
745
|
+
text: ( localize(16065, "Clear")),
|
|
746
746
|
arguments: [inConfig.scope, savedId],
|
|
747
|
-
tooltip: ( localize(
|
|
747
|
+
tooltip: ( localize(16066, "Clear saved value"))
|
|
748
748
|
}), createMarkdownCommandLink({
|
|
749
749
|
id: McpCommandIds.RemoveStoredInput,
|
|
750
|
-
text: ( localize(
|
|
750
|
+
text: ( localize(16067, "Clear All")),
|
|
751
751
|
arguments: [inConfig.scope],
|
|
752
|
-
tooltip: ( localize(
|
|
752
|
+
tooltip: ( localize(16068, "Clear all saved values"))
|
|
753
753
|
})].join(" | "), {
|
|
754
754
|
isTrusted: true
|
|
755
755
|
}));
|