@codingame/monaco-vscode-mcp-service-override 33.0.7 → 34.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.
- package/package.json +3 -3
- package/vscode/src/vs/platform/mcp/common/allowedMcpServersService.js +1 -1
- package/vscode/src/vs/platform/mcp/common/mcpGalleryService.js +2 -2
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcp.contribution.js +5 -4
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpAddContextContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.js +150 -63
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpElicitationService.js +25 -25
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpLanguageFeatures.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpLanguageFeatures.js +86 -25
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpMigration.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpResourceQuickAccess.js +8 -8
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditor.js +37 -37
- 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 +9 -9
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServersView.js +17 -17
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpWorkbenchService.js +34 -11
- package/vscode/src/vs/workbench/contrib/mcp/common/discovery/extensionMcpDiscovery.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAbstract.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAdapters.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpContextKeys.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.js +6 -6
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistry.js +13 -13
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingLog.js +1 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingService.js +11 -11
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpSandboxService.js +15 -4
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConnection.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpService.js +7 -25
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpAccessService.d.ts +15 -0
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpAccessService.js +26 -1
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpService.js +9 -9
|
@@ -31,6 +31,7 @@ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
31
31
|
import { mcpAutoStartConfig, McpAutoStartValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpManagement';
|
|
32
32
|
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
33
33
|
import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
|
|
34
|
+
import { ISecretStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/secrets/common/secrets.service';
|
|
34
35
|
import { defaultCheckboxStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
|
|
35
36
|
import { spinningLoading } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/iconRegistry';
|
|
36
37
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
@@ -57,7 +58,7 @@ import { TEXT_FILE_EDITOR_ID } from '@codingame/monaco-vscode-api/vscode/vs/work
|
|
|
57
58
|
import { McpCommandIds } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpCommandIds';
|
|
58
59
|
import { McpContextKeys } from '../common/mcpContextKeys.js';
|
|
59
60
|
import { IMcpRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpRegistryTypes.service';
|
|
60
|
-
import { McpConnectionState, McpCapability, McpServerCacheState, LazyCollectionState, McpStartServerInteraction, InstalledMcpServersViewId, HasInstalledMcpServersContext, mcpPromptPrefix } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
|
|
61
|
+
import { McpConnectionState, McpCapability, McpServerCacheState, LazyCollectionState, McpStartServerInteraction, mcpOAuthClientSecretStorageKey, InstalledMcpServersViewId, HasInstalledMcpServersContext, mcpPromptPrefix } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
|
|
61
62
|
import { IMcpService, IMcpSamplingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
|
|
62
63
|
import { startServerAndWaitForLiveTools } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypesUtils';
|
|
63
64
|
import { McpAddConfigurationCommand, McpInstallFromManifestCommand } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration';
|
|
@@ -78,7 +79,7 @@ class ListMcpServerCommand extends Action2 {
|
|
|
78
79
|
constructor() {
|
|
79
80
|
super({
|
|
80
81
|
id: McpCommandIds.ListServer,
|
|
81
|
-
title: ( localize2(
|
|
82
|
+
title: ( localize2(11148, "List Servers")),
|
|
82
83
|
icon: Codicon.server,
|
|
83
84
|
category,
|
|
84
85
|
f1: true,
|
|
@@ -99,7 +100,7 @@ class ListMcpServerCommand extends Action2 {
|
|
|
99
100
|
const pick = quickInput.createQuickPick({
|
|
100
101
|
useSeparators: true
|
|
101
102
|
});
|
|
102
|
-
pick.placeholder = ( localize(
|
|
103
|
+
pick.placeholder = ( localize(11149, "Select an MCP Server"));
|
|
103
104
|
mcpService.activateCollections();
|
|
104
105
|
store.add(pick);
|
|
105
106
|
store.add(autorun(reader => {
|
|
@@ -110,8 +111,8 @@ class ListMcpServerCommand extends Action2 {
|
|
|
110
111
|
const firstRun = pick.items.length === 0;
|
|
111
112
|
pick.items = [{
|
|
112
113
|
id: "$add",
|
|
113
|
-
label: ( localize(
|
|
114
|
-
description: ( localize(
|
|
114
|
+
label: ( localize(11150, "Add Server")),
|
|
115
|
+
description: ( localize(11151, "Add a new server configuration")),
|
|
115
116
|
alwaysShow: true,
|
|
116
117
|
iconClass: ThemeIcon.asClassName(Codicon.add)
|
|
117
118
|
}, ...( Object.values(servers)).filter(s => s.length).flatMap(servers => [{
|
|
@@ -123,7 +124,7 @@ class ListMcpServerCommand extends Action2 {
|
|
|
123
124
|
return {
|
|
124
125
|
id: server.definition.id,
|
|
125
126
|
label: server.definition.label,
|
|
126
|
-
description: disabled ? ( localize(
|
|
127
|
+
description: disabled ? ( localize(11152, "Disabled")) : ( McpConnectionState.toString(server.connectionState.read(reader)))
|
|
127
128
|
};
|
|
128
129
|
}))])];
|
|
129
130
|
if (firstRun && pick.items.length > 3) {
|
|
@@ -152,7 +153,7 @@ class McpConfirmationServerOptionsCommand extends Action2 {
|
|
|
152
153
|
constructor() {
|
|
153
154
|
super({
|
|
154
155
|
id: McpCommandIds.ServerOptionsInConfirmation,
|
|
155
|
-
title: ( localize2(
|
|
156
|
+
title: ( localize2(11153, "Server Options")),
|
|
156
157
|
category,
|
|
157
158
|
icon: Codicon.settingsGear,
|
|
158
159
|
f1: false,
|
|
@@ -183,7 +184,7 @@ class McpServerOptionsCommand extends Action2 {
|
|
|
183
184
|
constructor() {
|
|
184
185
|
super({
|
|
185
186
|
id: McpCommandIds.ServerOptions,
|
|
186
|
-
title: ( localize2(
|
|
187
|
+
title: ( localize2(11153, "Server Options")),
|
|
187
188
|
category,
|
|
188
189
|
f1: false
|
|
189
190
|
});
|
|
@@ -208,25 +209,25 @@ class McpServerOptionsCommand extends Action2 {
|
|
|
208
209
|
const disabled = isContributionDisabled(server.enablement.get());
|
|
209
210
|
items.push({
|
|
210
211
|
type: "separator",
|
|
211
|
-
label: ( localize(
|
|
212
|
+
label: ( localize(11154, "Status"))
|
|
212
213
|
});
|
|
213
214
|
if (disabled) {
|
|
214
215
|
items.push({
|
|
215
|
-
label: ( localize(
|
|
216
|
+
label: ( localize(11155, "Enable Server (Workspace)")),
|
|
216
217
|
action: "enable"
|
|
217
218
|
});
|
|
218
219
|
} else if (McpConnectionState.canBeStarted(serverState.state)) {
|
|
219
220
|
items.push({
|
|
220
|
-
label: ( localize(
|
|
221
|
+
label: ( localize(11156, "Start Server")),
|
|
221
222
|
action: "start"
|
|
222
223
|
});
|
|
223
224
|
} else {
|
|
224
225
|
items.push({
|
|
225
|
-
label: ( localize(
|
|
226
|
+
label: ( localize(11157, "Stop Server")),
|
|
226
227
|
action: "stop"
|
|
227
228
|
});
|
|
228
229
|
items.push({
|
|
229
|
-
label: ( localize(
|
|
230
|
+
label: ( localize(11158, "Restart Server")),
|
|
230
231
|
action: "restart"
|
|
231
232
|
});
|
|
232
233
|
}
|
|
@@ -234,26 +235,26 @@ class McpServerOptionsCommand extends Action2 {
|
|
|
234
235
|
const configTarget = serverDefinition?.presentation?.origin || collection?.presentation?.origin;
|
|
235
236
|
if (configTarget) {
|
|
236
237
|
items.push({
|
|
237
|
-
label: ( localize(
|
|
238
|
+
label: ( localize(11159, "Show Configuration")),
|
|
238
239
|
action: "config"
|
|
239
240
|
});
|
|
240
241
|
}
|
|
241
242
|
items.push({
|
|
242
|
-
label: ( localize(
|
|
243
|
+
label: ( localize(11160, "Show Output")),
|
|
243
244
|
action: "showOutput"
|
|
244
245
|
});
|
|
245
246
|
items.push({
|
|
246
247
|
type: "separator",
|
|
247
|
-
label: ( localize(
|
|
248
|
+
label: ( localize(11161, "Sampling"))
|
|
248
249
|
}, {
|
|
249
|
-
label: ( localize(
|
|
250
|
-
description: ( localize(
|
|
250
|
+
label: ( localize(11162, "Configure Model Access")),
|
|
251
|
+
description: ( localize(11163, "Set the models the server can use via MCP sampling")),
|
|
251
252
|
action: "configSampling"
|
|
252
253
|
});
|
|
253
254
|
if (samplingService.hasLogs(server)) {
|
|
254
255
|
items.push({
|
|
255
|
-
label: ( localize(
|
|
256
|
-
description: ( localize(
|
|
256
|
+
label: ( localize(11164, "Show Sampling Requests")),
|
|
257
|
+
description: ( localize(11165, "Show the sampling requests for this server")),
|
|
257
258
|
action: "samplingLog"
|
|
258
259
|
});
|
|
259
260
|
}
|
|
@@ -261,15 +262,15 @@ class McpServerOptionsCommand extends Action2 {
|
|
|
261
262
|
if (capabilities === undefined || (capabilities & McpCapability.Resources)) {
|
|
262
263
|
items.push({
|
|
263
264
|
type: "separator",
|
|
264
|
-
label: ( localize(
|
|
265
|
+
label: ( localize(11166, "Resources"))
|
|
265
266
|
});
|
|
266
267
|
items.push({
|
|
267
|
-
label: ( localize(
|
|
268
|
+
label: ( localize(11167, "Browse Resources")),
|
|
268
269
|
action: "resources"
|
|
269
270
|
});
|
|
270
271
|
}
|
|
271
272
|
const pick = await quickInputService.pick(items, {
|
|
272
|
-
placeHolder: ( localize(
|
|
273
|
+
placeHolder: ( localize(11168, "Select action for '{0}'", server.definition.label))
|
|
273
274
|
});
|
|
274
275
|
if (!pick) {
|
|
275
276
|
return;
|
|
@@ -320,7 +321,7 @@ class McpServerOptionsCommand extends Action2 {
|
|
|
320
321
|
editorService.openEditor({
|
|
321
322
|
resource: undefined,
|
|
322
323
|
contents: samplingService.getLogText(server),
|
|
323
|
-
label: ( localize(
|
|
324
|
+
label: ( localize(11169, "MCP Sampling: {0}", server.definition.label))
|
|
324
325
|
});
|
|
325
326
|
break;
|
|
326
327
|
default:
|
|
@@ -337,14 +338,14 @@ class McpServerOptionsCommand extends Action2 {
|
|
|
337
338
|
if (accountQuery.entities().getEntityCount().total > 1) {
|
|
338
339
|
result.push({
|
|
339
340
|
action: "disconnect",
|
|
340
|
-
label: ( localize(
|
|
341
|
+
label: ( localize(11170, "Disconnect Account")),
|
|
341
342
|
description: `(${accountName})`,
|
|
342
343
|
accountQuery
|
|
343
344
|
});
|
|
344
345
|
} else {
|
|
345
346
|
result.push({
|
|
346
347
|
action: "signout",
|
|
347
|
-
label: ( localize(
|
|
348
|
+
label: ( localize(11171, "Sign Out")),
|
|
348
349
|
description: `(${accountName})`,
|
|
349
350
|
accountQuery
|
|
350
351
|
});
|
|
@@ -513,24 +514,24 @@ let MCPServerActionRendering = class MCPServerActionRendering extends Disposable
|
|
|
513
514
|
text: s.definition.label,
|
|
514
515
|
id: McpCommandIds.ServerOptions,
|
|
515
516
|
arguments: [s.definition.id],
|
|
516
|
-
tooltip: ( localize(
|
|
517
|
+
tooltip: ( localize(11172, "Show server options for {0}", s.definition.label))
|
|
517
518
|
});
|
|
518
519
|
const single = servers.length === 1;
|
|
519
520
|
const names = ( ( servers.map(s => isServer(s) ? link(s) : "`" + s.label + "`")).map(l => single ? l : `- ${l}`)).join("\n");
|
|
520
521
|
let markdown;
|
|
521
522
|
if (state === DisplayedState.NewTools) {
|
|
522
523
|
markdown = ( new MarkdownString(single ? ( localize(
|
|
523
|
-
|
|
524
|
+
11173,
|
|
524
525
|
"MCP server {0} has been updated and may have new tools available.",
|
|
525
526
|
names
|
|
526
527
|
)) : ( localize(
|
|
527
|
-
|
|
528
|
+
11174,
|
|
528
529
|
"MCP servers have been updated and may have new tools available:\n\n{0}",
|
|
529
530
|
names
|
|
530
531
|
))));
|
|
531
532
|
} else if (state === DisplayedState.Error) {
|
|
532
|
-
markdown = ( new MarkdownString(single ? ( localize(
|
|
533
|
-
|
|
533
|
+
markdown = ( new MarkdownString(single ? ( localize(11175, "MCP server {0} was unable to start successfully.", names)) : ( localize(
|
|
534
|
+
11176,
|
|
534
535
|
"Multiple MCP servers were unable to start successfully:\n\n{0}",
|
|
535
536
|
names
|
|
536
537
|
))));
|
|
@@ -557,7 +558,7 @@ let MCPServerActionRendering = class MCPServerActionRendering extends Disposable
|
|
|
557
558
|
const divider = $("hr.mcp-hover-divider");
|
|
558
559
|
container.appendChild(divider);
|
|
559
560
|
const checkboxContainer = $("div.mcp-hover-setting");
|
|
560
|
-
const settingLabelStr = ( localize(
|
|
561
|
+
const settingLabelStr = ( localize(11177, "Automatically start MCP servers when sending a chat message"));
|
|
561
562
|
const checkbox = store.add(( new Checkbox(settingLabelStr, config.get() !== McpAutoStartValue.Never, {
|
|
562
563
|
...defaultCheckboxStyles
|
|
563
564
|
})));
|
|
@@ -585,11 +586,11 @@ let MCPServerActionRendering = class MCPServerActionRendering extends Disposable
|
|
|
585
586
|
} = displayedStateCurrent.get()
|
|
586
587
|
) {
|
|
587
588
|
if (state === DisplayedState.NewTools) {
|
|
588
|
-
return localize(
|
|
589
|
+
return localize(11178, "New tools available ({0})", servers.length || 1);
|
|
589
590
|
} else if (state === DisplayedState.Error) {
|
|
590
|
-
return localize(
|
|
591
|
+
return localize(11179, "Error loading {0} tool(s)", servers.length || 1);
|
|
591
592
|
} else if (state === DisplayedState.Refreshing) {
|
|
592
|
-
return localize(
|
|
593
|
+
return localize(11180, "Discovering tools...");
|
|
593
594
|
} else {
|
|
594
595
|
return null;
|
|
595
596
|
}
|
|
@@ -607,7 +608,7 @@ class ResetMcpTrustCommand extends Action2 {
|
|
|
607
608
|
constructor() {
|
|
608
609
|
super({
|
|
609
610
|
id: McpCommandIds.ResetTrust,
|
|
610
|
-
title: ( localize2(
|
|
611
|
+
title: ( localize2(11181, "Reset Trust")),
|
|
611
612
|
category,
|
|
612
613
|
f1: true,
|
|
613
614
|
precondition: ( ContextKeyExpr.and(McpContextKeys.toolsCount.greater(0), ( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate())))
|
|
@@ -622,7 +623,7 @@ class ResetMcpCachedTools extends Action2 {
|
|
|
622
623
|
constructor() {
|
|
623
624
|
super({
|
|
624
625
|
id: McpCommandIds.ResetCachedTools,
|
|
625
|
-
title: ( localize2(
|
|
626
|
+
title: ( localize2(11182, "Reset Cached Tools")),
|
|
626
627
|
category,
|
|
627
628
|
f1: true,
|
|
628
629
|
precondition: ( ContextKeyExpr.and(McpContextKeys.toolsCount.greater(0), ( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate())))
|
|
@@ -637,9 +638,9 @@ class AddConfigurationAction extends Action2 {
|
|
|
637
638
|
constructor() {
|
|
638
639
|
super({
|
|
639
640
|
id: McpCommandIds.AddConfiguration,
|
|
640
|
-
title: ( localize2(
|
|
641
|
+
title: ( localize2(11183, "Add Server...")),
|
|
641
642
|
metadata: {
|
|
642
|
-
description: ( localize2(
|
|
643
|
+
description: ( localize2(11184, "Installs a new Model Context protocol to the mcp.json settings"))
|
|
643
644
|
},
|
|
644
645
|
category,
|
|
645
646
|
f1: true,
|
|
@@ -661,9 +662,9 @@ class InstallFromManifestAction extends Action2 {
|
|
|
661
662
|
constructor() {
|
|
662
663
|
super({
|
|
663
664
|
id: McpCommandIds.InstallFromManifest,
|
|
664
|
-
title: ( localize2(
|
|
665
|
+
title: ( localize2(11185, "Install Server from Manifest...")),
|
|
665
666
|
metadata: {
|
|
666
|
-
description: ( localize2(
|
|
667
|
+
description: ( localize2(11186, "Install an MCP server from a JSON manifest file"))
|
|
667
668
|
},
|
|
668
669
|
category,
|
|
669
670
|
f1: true,
|
|
@@ -679,7 +680,7 @@ class RemoveStoredInput extends Action2 {
|
|
|
679
680
|
constructor() {
|
|
680
681
|
super({
|
|
681
682
|
id: McpCommandIds.RemoveStoredInput,
|
|
682
|
-
title: ( localize2(
|
|
683
|
+
title: ( localize2(11182, "Reset Cached Tools")),
|
|
683
684
|
category,
|
|
684
685
|
f1: false
|
|
685
686
|
});
|
|
@@ -692,7 +693,7 @@ class EditStoredInput extends Action2 {
|
|
|
692
693
|
constructor() {
|
|
693
694
|
super({
|
|
694
695
|
id: McpCommandIds.EditStoredInput,
|
|
695
|
-
title: ( localize2(
|
|
696
|
+
title: ( localize2(11187, "Edit Stored Input")),
|
|
696
697
|
category,
|
|
697
698
|
f1: false
|
|
698
699
|
});
|
|
@@ -702,11 +703,97 @@ class EditStoredInput extends Action2 {
|
|
|
702
703
|
accessor.get(IMcpRegistry).editSavedInput(inputId, workspaceFolder || undefined, configSection, target);
|
|
703
704
|
}
|
|
704
705
|
}
|
|
706
|
+
class SetOAuthClientSecret extends Action2 {
|
|
707
|
+
constructor() {
|
|
708
|
+
super({
|
|
709
|
+
id: McpCommandIds.SetOAuthClientSecret,
|
|
710
|
+
title: ( localize2(11188, "Set OAuth Client Secret")),
|
|
711
|
+
category,
|
|
712
|
+
f1: false
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
async run(accessor, clientId, mcpServerUrl, serverName) {
|
|
716
|
+
const quickInputService = accessor.get(IQuickInputService);
|
|
717
|
+
const secretStorageService = accessor.get(ISecretStorageService);
|
|
718
|
+
const key = mcpOAuthClientSecretStorageKey(mcpServerUrl, clientId);
|
|
719
|
+
const existing = await secretStorageService.get(key);
|
|
720
|
+
const deleteButton = {
|
|
721
|
+
iconClass: ThemeIcon.asClassName(Codicon.trash),
|
|
722
|
+
tooltip: ( localize(11189, "Delete stored client secret"))
|
|
723
|
+
};
|
|
724
|
+
const revealButton = {
|
|
725
|
+
iconClass: ThemeIcon.asClassName(Codicon.eye),
|
|
726
|
+
tooltip: ( localize(11190, "Show client secret"))
|
|
727
|
+
};
|
|
728
|
+
const hideButton = {
|
|
729
|
+
iconClass: ThemeIcon.asClassName(Codicon.eyeClosed),
|
|
730
|
+
tooltip: ( localize(11191, "Hide client secret"))
|
|
731
|
+
};
|
|
732
|
+
const result = await ( new Promise(resolve => {
|
|
733
|
+
const input = quickInputService.createInputBox();
|
|
734
|
+
input.title = existing ? ( localize(11192, "Replace Client Secret for {0}", serverName)) : ( localize(11193, "Set Client Secret for {0}", serverName));
|
|
735
|
+
input.prompt = ( localize(11194, "Enter the client secret for OAuth client '{0}'.", clientId));
|
|
736
|
+
input.placeholder = existing ? ( localize(11195, "Enter a new client secret to replace the stored value")) : ( localize(11196, "Enter client secret"));
|
|
737
|
+
input.password = true;
|
|
738
|
+
input.ignoreFocusOut = true;
|
|
739
|
+
if (existing) {
|
|
740
|
+
input.value = existing;
|
|
741
|
+
input.valueSelection = [0, existing.length];
|
|
742
|
+
}
|
|
743
|
+
const updateButtons = () => {
|
|
744
|
+
const toggleButton = input.password ? revealButton : hideButton;
|
|
745
|
+
input.buttons = existing ? [toggleButton, deleteButton] : [toggleButton];
|
|
746
|
+
};
|
|
747
|
+
updateButtons();
|
|
748
|
+
const disposables = ( new DisposableStore());
|
|
749
|
+
disposables.add(input.onDidAccept(() => {
|
|
750
|
+
const value = input.value;
|
|
751
|
+
if (value.length === 0) {
|
|
752
|
+
resolve({
|
|
753
|
+
kind: "delete"
|
|
754
|
+
});
|
|
755
|
+
input.hide();
|
|
756
|
+
return;
|
|
757
|
+
}
|
|
758
|
+
resolve({
|
|
759
|
+
kind: "accept",
|
|
760
|
+
value
|
|
761
|
+
});
|
|
762
|
+
input.hide();
|
|
763
|
+
}));
|
|
764
|
+
disposables.add(input.onDidTriggerButton(btn => {
|
|
765
|
+
if (btn === deleteButton) {
|
|
766
|
+
resolve({
|
|
767
|
+
kind: "delete"
|
|
768
|
+
});
|
|
769
|
+
input.hide();
|
|
770
|
+
} else if (btn === revealButton || btn === hideButton) {
|
|
771
|
+
input.password = !input.password;
|
|
772
|
+
updateButtons();
|
|
773
|
+
}
|
|
774
|
+
}));
|
|
775
|
+
disposables.add(input.onDidHide(() => {
|
|
776
|
+
resolve(undefined);
|
|
777
|
+
disposables.dispose();
|
|
778
|
+
input.dispose();
|
|
779
|
+
}));
|
|
780
|
+
input.show();
|
|
781
|
+
}));
|
|
782
|
+
if (!result) {
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
785
|
+
if (result.kind === "delete") {
|
|
786
|
+
await secretStorageService.delete(key);
|
|
787
|
+
} else {
|
|
788
|
+
await secretStorageService.set(key, result.value);
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
705
792
|
class ShowConfiguration extends Action2 {
|
|
706
793
|
constructor() {
|
|
707
794
|
super({
|
|
708
795
|
id: McpCommandIds.ShowConfiguration,
|
|
709
|
-
title: ( localize2(
|
|
796
|
+
title: ( localize2(11197, "Show Configuration")),
|
|
710
797
|
category,
|
|
711
798
|
f1: false
|
|
712
799
|
});
|
|
@@ -736,7 +823,7 @@ class ShowOutput extends Action2 {
|
|
|
736
823
|
constructor() {
|
|
737
824
|
super({
|
|
738
825
|
id: McpCommandIds.ShowOutput,
|
|
739
|
-
title: ( localize2(
|
|
826
|
+
title: ( localize2(11198, "Show Output")),
|
|
740
827
|
category,
|
|
741
828
|
f1: false
|
|
742
829
|
});
|
|
@@ -749,7 +836,7 @@ class RestartServer extends Action2 {
|
|
|
749
836
|
constructor() {
|
|
750
837
|
super({
|
|
751
838
|
id: McpCommandIds.RestartServer,
|
|
752
|
-
title: ( localize2(
|
|
839
|
+
title: ( localize2(11199, "Restart Server")),
|
|
753
840
|
category,
|
|
754
841
|
f1: false
|
|
755
842
|
});
|
|
@@ -768,7 +855,7 @@ class StartServer extends Action2 {
|
|
|
768
855
|
constructor() {
|
|
769
856
|
super({
|
|
770
857
|
id: McpCommandIds.StartServer,
|
|
771
|
-
title: ( localize2(
|
|
858
|
+
title: ( localize2(11200, "Start Server")),
|
|
772
859
|
category,
|
|
773
860
|
f1: false
|
|
774
861
|
});
|
|
@@ -793,7 +880,7 @@ class StopServer extends Action2 {
|
|
|
793
880
|
constructor() {
|
|
794
881
|
super({
|
|
795
882
|
id: McpCommandIds.StopServer,
|
|
796
|
-
title: ( localize2(
|
|
883
|
+
title: ( localize2(11201, "Stop Server")),
|
|
797
884
|
category,
|
|
798
885
|
f1: false
|
|
799
886
|
});
|
|
@@ -807,8 +894,8 @@ class McpBrowseCommand extends Action2 {
|
|
|
807
894
|
constructor() {
|
|
808
895
|
super({
|
|
809
896
|
id: McpCommandIds.Browse,
|
|
810
|
-
title: ( localize2(
|
|
811
|
-
tooltip: ( localize2(
|
|
897
|
+
title: ( localize2(11202, "MCP Servers")),
|
|
898
|
+
tooltip: ( localize2(11203, "Browse MCP Servers")),
|
|
812
899
|
category,
|
|
813
900
|
icon: Codicon.search,
|
|
814
901
|
precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate()))),
|
|
@@ -831,7 +918,7 @@ class McpBrowseCommand extends Action2 {
|
|
|
831
918
|
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
|
|
832
919
|
command: {
|
|
833
920
|
id: McpCommandIds.Browse,
|
|
834
|
-
title: ( localize2(
|
|
921
|
+
title: ( localize2(11204, "Browse MCP Servers")),
|
|
835
922
|
category,
|
|
836
923
|
precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate())))
|
|
837
924
|
}
|
|
@@ -840,7 +927,7 @@ class ShowInstalledMcpServersCommand extends Action2 {
|
|
|
840
927
|
constructor() {
|
|
841
928
|
super({
|
|
842
929
|
id: McpCommandIds.ShowInstalled,
|
|
843
|
-
title: ( localize2(
|
|
930
|
+
title: ( localize2(11205, "Show Installed Servers")),
|
|
844
931
|
category,
|
|
845
932
|
precondition: ( ContextKeyExpr.and(HasInstalledMcpServersContext, ( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate()))),
|
|
846
933
|
f1: true
|
|
@@ -858,7 +945,7 @@ class ShowInstalledMcpServersCommand extends Action2 {
|
|
|
858
945
|
MenuRegistry.appendMenuItem(CHAT_CONFIG_MENU_ID, {
|
|
859
946
|
command: {
|
|
860
947
|
id: McpCommandIds.ShowInstalled,
|
|
861
|
-
title: ( localize2(
|
|
948
|
+
title: ( localize2(11206, "MCP Servers"))
|
|
862
949
|
},
|
|
863
950
|
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals("view", ChatViewId)))),
|
|
864
951
|
order: 10,
|
|
@@ -883,7 +970,7 @@ class OpenUserMcpResourceCommand extends OpenMcpResourceCommand {
|
|
|
883
970
|
constructor() {
|
|
884
971
|
super({
|
|
885
972
|
id: McpCommandIds.OpenUserMcp,
|
|
886
|
-
title: ( localize2(
|
|
973
|
+
title: ( localize2(11207, "Open User Configuration")),
|
|
887
974
|
category,
|
|
888
975
|
f1: true,
|
|
889
976
|
precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate())))
|
|
@@ -898,7 +985,7 @@ class OpenRemoteUserMcpResourceCommand extends OpenMcpResourceCommand {
|
|
|
898
985
|
constructor() {
|
|
899
986
|
super({
|
|
900
987
|
id: McpCommandIds.OpenRemoteUserMcp,
|
|
901
|
-
title: ( localize2(
|
|
988
|
+
title: ( localize2(11208, "Open Remote User Configuration")),
|
|
902
989
|
category,
|
|
903
990
|
f1: true,
|
|
904
991
|
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate()))), ( RemoteNameContext.notEqualsTo(""))))
|
|
@@ -915,7 +1002,7 @@ class OpenWorkspaceFolderMcpResourceCommand extends Action2 {
|
|
|
915
1002
|
constructor() {
|
|
916
1003
|
super({
|
|
917
1004
|
id: McpCommandIds.OpenWorkspaceFolderMcp,
|
|
918
|
-
title: ( localize2(
|
|
1005
|
+
title: ( localize2(11209, "Open Workspace Folder MCP Configuration")),
|
|
919
1006
|
category,
|
|
920
1007
|
f1: true,
|
|
921
1008
|
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate()))), ( WorkspaceFolderCountContext.notEqualsTo(0))))
|
|
@@ -938,7 +1025,7 @@ class OpenWorkspaceMcpResourceCommand extends Action2 {
|
|
|
938
1025
|
constructor() {
|
|
939
1026
|
super({
|
|
940
1027
|
id: McpCommandIds.OpenWorkspaceMcp,
|
|
941
|
-
title: ( localize2(
|
|
1028
|
+
title: ( localize2(11210, "Open Workspace MCP Configuration")),
|
|
942
1029
|
category,
|
|
943
1030
|
f1: true,
|
|
944
1031
|
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate()))), ( WorkbenchStateContext.isEqualTo("workspace"))))
|
|
@@ -959,7 +1046,7 @@ class McpBrowseResourcesCommand extends Action2 {
|
|
|
959
1046
|
constructor() {
|
|
960
1047
|
super({
|
|
961
1048
|
id: McpCommandIds.BrowseResources,
|
|
962
|
-
title: ( localize2(
|
|
1049
|
+
title: ( localize2(11211, "Browse Resources...")),
|
|
963
1050
|
category,
|
|
964
1051
|
precondition: ( ContextKeyExpr.and(McpContextKeys.serverCount.greater(0), ( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabledInWorkspace.negate()))),
|
|
965
1052
|
f1: true
|
|
@@ -977,7 +1064,7 @@ class McpConfigureSamplingModels extends Action2 {
|
|
|
977
1064
|
constructor() {
|
|
978
1065
|
super({
|
|
979
1066
|
id: McpCommandIds.ConfigureSamplingModels,
|
|
980
|
-
title: ( localize2(
|
|
1067
|
+
title: ( localize2(11212, "Configure SamplingModel")),
|
|
981
1068
|
category
|
|
982
1069
|
});
|
|
983
1070
|
}
|
|
@@ -1003,7 +1090,7 @@ class McpConfigureSamplingModels extends Action2 {
|
|
|
1003
1090
|
);
|
|
1004
1091
|
const picked = await quickInputService.pick(allItems, {
|
|
1005
1092
|
placeHolder: ( localize(
|
|
1006
|
-
|
|
1093
|
+
11213,
|
|
1007
1094
|
"Pick the models {0} can access via MCP sampling",
|
|
1008
1095
|
server.definition.label
|
|
1009
1096
|
)),
|
|
@@ -1019,7 +1106,7 @@ class McpStartPromptingServerCommand extends Action2 {
|
|
|
1019
1106
|
constructor() {
|
|
1020
1107
|
super({
|
|
1021
1108
|
id: McpCommandIds.StartPromptForServer,
|
|
1022
|
-
title: ( localize2(
|
|
1109
|
+
title: ( localize2(11214, "Start Prompting Server")),
|
|
1023
1110
|
category,
|
|
1024
1111
|
f1: false
|
|
1025
1112
|
});
|
|
@@ -1049,7 +1136,7 @@ class McpSkipCurrentAutostartCommand extends Action2 {
|
|
|
1049
1136
|
constructor() {
|
|
1050
1137
|
super({
|
|
1051
1138
|
id: McpCommandIds.SkipCurrentAutostart,
|
|
1052
|
-
title: ( localize2(
|
|
1139
|
+
title: ( localize2(11215, "Skip Current Autostart")),
|
|
1053
1140
|
category,
|
|
1054
1141
|
f1: false
|
|
1055
1142
|
});
|
|
@@ -1059,4 +1146,4 @@ class McpSkipCurrentAutostartCommand extends Action2 {
|
|
|
1059
1146
|
}
|
|
1060
1147
|
}
|
|
1061
1148
|
|
|
1062
|
-
export { AddConfigurationAction, EditStoredInput, InstallFromManifestAction, ListMcpServerCommand, MCPServerActionRendering, McpBrowseCommand, McpBrowseResourcesCommand, McpConfigureSamplingModels, McpConfirmationServerOptionsCommand, McpServerOptionsCommand, McpSkipCurrentAutostartCommand, McpStartPromptingServerCommand, OpenRemoteUserMcpResourceCommand, OpenUserMcpResourceCommand, OpenWorkspaceFolderMcpResourceCommand, OpenWorkspaceMcpResourceCommand, RemoveStoredInput, ResetMcpCachedTools, ResetMcpTrustCommand, RestartServer, ShowConfiguration, ShowInstalledMcpServersCommand, ShowOutput, StartServer, StopServer };
|
|
1149
|
+
export { AddConfigurationAction, EditStoredInput, InstallFromManifestAction, ListMcpServerCommand, MCPServerActionRendering, McpBrowseCommand, McpBrowseResourcesCommand, McpConfigureSamplingModels, McpConfirmationServerOptionsCommand, McpServerOptionsCommand, McpSkipCurrentAutostartCommand, McpStartPromptingServerCommand, OpenRemoteUserMcpResourceCommand, OpenUserMcpResourceCommand, OpenWorkspaceFolderMcpResourceCommand, OpenWorkspaceMcpResourceCommand, RemoveStoredInput, ResetMcpCachedTools, ResetMcpTrustCommand, RestartServer, SetOAuthClientSecret, ShowConfiguration, ShowInstalledMcpServersCommand, ShowOutput, StartServer, StopServer };
|