@theia/ai-mcp-ui 1.73.0-next.7 → 1.73.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/lib/browser/mcp-command-contribution.d.ts +26 -3
- package/lib/browser/mcp-command-contribution.d.ts.map +1 -1
- package/lib/browser/mcp-command-contribution.js +172 -23
- package/lib/browser/mcp-command-contribution.js.map +1 -1
- package/lib/browser/mcp-command-contribution.spec.d.ts +2 -0
- package/lib/browser/mcp-command-contribution.spec.d.ts.map +1 -0
- package/lib/browser/mcp-command-contribution.spec.js +395 -0
- package/lib/browser/mcp-command-contribution.spec.js.map +1 -0
- package/package.json +6 -6
- package/src/browser/mcp-command-contribution.spec.ts +480 -0
- package/src/browser/mcp-command-contribution.ts +181 -28
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AICommandHandlerFactory } from '@theia/ai-core/lib/browser/ai-command-handler-factory';
|
|
2
|
-
import { CommandContribution, CommandRegistry, MessageService } from '@theia/core';
|
|
2
|
+
import { CommandContribution, CommandRegistry, MessageService, ILogger } from '@theia/core';
|
|
3
3
|
import { QuickInputService } from '@theia/core/lib/browser';
|
|
4
|
-
import { MCPFrontendService } from '@theia/ai-mcp';
|
|
4
|
+
import { MCPFrontendService, MCPOAuthFrontendDelegate, MCPServerDescription, MCPServerStatus } from '@theia/ai-mcp';
|
|
5
5
|
export declare const StartMCPServer: {
|
|
6
6
|
id: string;
|
|
7
7
|
label: string;
|
|
@@ -10,12 +10,35 @@ export declare const StopMCPServer: {
|
|
|
10
10
|
id: string;
|
|
11
11
|
label: string;
|
|
12
12
|
};
|
|
13
|
+
export declare const SignOutMCPServer: {
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const SignInMCPServer: {
|
|
18
|
+
id: string;
|
|
19
|
+
label: string;
|
|
20
|
+
};
|
|
21
|
+
export declare const GetMCPOAuthRedirectUrl: {
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
};
|
|
13
25
|
export declare class MCPCommandContribution implements CommandContribution {
|
|
14
26
|
protected readonly commandHandlerFactory: AICommandHandlerFactory;
|
|
15
27
|
protected readonly quickInputService: QuickInputService;
|
|
16
|
-
protected messageService: MessageService;
|
|
28
|
+
protected readonly messageService: MessageService;
|
|
17
29
|
protected readonly mcpFrontendService: MCPFrontendService;
|
|
30
|
+
protected readonly logger: ILogger;
|
|
31
|
+
protected readonly oauthFrontendDelegate: MCPOAuthFrontendDelegate;
|
|
18
32
|
private getMCPServerSelection;
|
|
19
33
|
registerCommands(commandRegistry: CommandRegistry): void;
|
|
34
|
+
protected isStoppableStatus(status: MCPServerStatus | undefined): boolean;
|
|
35
|
+
protected getOAuthEnabledServerNames(): Promise<string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* The command-palette flow has no other UI surface, so the toast must match the terminal status:
|
|
38
|
+
* a generic 'start failed' for every non-success state would contradict cancellation
|
|
39
|
+
* (status=NotConnected/NotRunning, error cleared) and authorization-server denial
|
|
40
|
+
* (status=AuthenticationRequired with a localized diagnostic in `error`).
|
|
41
|
+
*/
|
|
42
|
+
protected reportStartOutcome(serverName: string, serverDescription: MCPServerDescription | undefined): void;
|
|
20
43
|
}
|
|
21
44
|
//# sourceMappingURL=mcp-command-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/mcp-command-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAO,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-command-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/mcp-command-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAO,OAAO,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAgC,kBAAkB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElJ,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AACF,eAAO,MAAM,aAAa;;;CAGzB,CAAC;AACF,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AACF,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AACF,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC;AAEF,qBACa,sBAAuB,YAAW,mBAAmB;IAE9D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;YAErD,qBAAqB;IASnC,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IA0IxD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO;cAMzD,0BAA0B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS/D;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI;CA0C9G"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MCPCommandContribution = exports.StopMCPServer = exports.StartMCPServer = void 0;
|
|
3
|
+
exports.MCPCommandContribution = exports.GetMCPOAuthRedirectUrl = exports.SignInMCPServer = exports.SignOutMCPServer = exports.StopMCPServer = exports.StartMCPServer = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
// *****************************************************************************
|
|
6
6
|
// Copyright (C) 2024 EclipseSource GmbH.
|
|
@@ -30,6 +30,18 @@ exports.StopMCPServer = {
|
|
|
30
30
|
id: 'mcp.stopserver',
|
|
31
31
|
label: core_1.nls.localize('theia/ai/mcp/stop/label', 'MCP: Stop MCP Server'),
|
|
32
32
|
};
|
|
33
|
+
exports.SignOutMCPServer = {
|
|
34
|
+
id: 'mcp.signout',
|
|
35
|
+
label: core_1.nls.localize('theia/ai/mcp/signout/label', 'MCP: Sign Out from MCP Server'),
|
|
36
|
+
};
|
|
37
|
+
exports.SignInMCPServer = {
|
|
38
|
+
id: 'mcp.signin',
|
|
39
|
+
label: core_1.nls.localize('theia/ai/mcp/signin/label', 'MCP: Sign In to MCP Server'),
|
|
40
|
+
};
|
|
41
|
+
exports.GetMCPOAuthRedirectUrl = {
|
|
42
|
+
id: 'mcp.oauth.getRedirectUrl',
|
|
43
|
+
label: core_1.nls.localize('theia/ai/mcp/getRedirectUrl/label', 'MCP: Get MCP OAuth Redirect URL'),
|
|
44
|
+
};
|
|
33
45
|
let MCPCommandContribution = class MCPCommandContribution {
|
|
34
46
|
async getMCPServerSelection(serverNames) {
|
|
35
47
|
if (!serverNames || serverNames.length === 0) {
|
|
@@ -43,19 +55,92 @@ let MCPCommandContribution = class MCPCommandContribution {
|
|
|
43
55
|
commandRegistry.registerCommand(exports.StopMCPServer, this.commandHandlerFactory({
|
|
44
56
|
execute: async () => {
|
|
45
57
|
try {
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
// Include `AuthenticationRequired` servers: stopping cancels a pending OAuth
|
|
59
|
+
// authorization, which is the only way out of an abandoned sign-in attempt.
|
|
60
|
+
const servers = await this.mcpFrontendService.getServerNames();
|
|
61
|
+
const descriptions = await Promise.all(servers.map(server => this.mcpFrontendService.getServerDescription(server)));
|
|
62
|
+
const stoppableServers = descriptions
|
|
63
|
+
.filter((description) => !!description && this.isStoppableStatus(description.status))
|
|
64
|
+
.map(description => description.name);
|
|
65
|
+
if (stoppableServers.length === 0) {
|
|
48
66
|
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/noRunningServers', 'No MCP servers running.'));
|
|
49
67
|
return;
|
|
50
68
|
}
|
|
51
|
-
const selection = await this.getMCPServerSelection(
|
|
69
|
+
const selection = await this.getMCPServerSelection(stoppableServers);
|
|
52
70
|
if (!selection) {
|
|
53
71
|
return;
|
|
54
72
|
}
|
|
55
73
|
await this.mcpFrontendService.stopServer(selection);
|
|
56
74
|
}
|
|
57
75
|
catch (error) {
|
|
58
|
-
|
|
76
|
+
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/stopFailed', 'An error occurred while stopping the MCP server.'));
|
|
77
|
+
this.logger.error('Error while stopping MCP server:', error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
commandRegistry.registerCommand(exports.SignOutMCPServer, this.commandHandlerFactory({
|
|
82
|
+
execute: async () => {
|
|
83
|
+
try {
|
|
84
|
+
// List all OAuth-enabled servers without a `hasStoredOAuthCredentials` filter: the command
|
|
85
|
+
// palette is the recovery surface for stale-scope credentials, and signing out a server
|
|
86
|
+
// with no stored credentials is a harmless no-op.
|
|
87
|
+
const oauthEnabledServers = await this.getOAuthEnabledServerNames();
|
|
88
|
+
if (oauthEnabledServers.length === 0) {
|
|
89
|
+
this.messageService.info(core_1.nls.localize('theia/ai/mcp/error/noOAuthServersConfigured', 'No OAuth-enabled MCP servers configured.'));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const selection = await this.getMCPServerSelection(oauthEnabledServers);
|
|
93
|
+
if (!selection) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
await this.mcpFrontendService.signOut(selection);
|
|
97
|
+
this.messageService.info(core_1.nls.localize('theia/ai/mcp/info/serverSignedOut', 'Signed out from MCP server "{0}".', selection));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/signOutFailed', 'An error occurred while signing out from the MCP server.'));
|
|
101
|
+
this.logger.error('Error while signing out from MCP server:', error);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
105
|
+
commandRegistry.registerCommand(exports.SignInMCPServer, this.commandHandlerFactory({
|
|
106
|
+
execute: async () => {
|
|
107
|
+
try {
|
|
108
|
+
const oauthEnabledServers = await this.getOAuthEnabledServerNames();
|
|
109
|
+
if (oauthEnabledServers.length === 0) {
|
|
110
|
+
this.messageService.info(core_1.nls.localize('theia/ai/mcp/error/noOAuthServersConfigured', 'No OAuth-enabled MCP servers configured.'));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const selection = await this.getMCPServerSelection(oauthEnabledServers);
|
|
114
|
+
if (!selection) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const signedIn = await this.mcpFrontendService.signIn(selection);
|
|
118
|
+
if (signedIn) {
|
|
119
|
+
this.messageService.info(core_1.nls.localize('theia/ai/mcp/info/serverSignedIn', 'Signed in to MCP server "{0}".', selection));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.messageService.warn(core_1.nls.localize('theia/ai/mcp/warn/signInNotCompleted', 'Sign-in to MCP server "{0}" was not completed.', selection));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/signInFailed', 'An error occurred while signing in to the MCP server.'));
|
|
127
|
+
console.error('Error while signing in to MCP server:', error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
commandRegistry.registerCommand(exports.GetMCPOAuthRedirectUrl, this.commandHandlerFactory({
|
|
132
|
+
execute: async () => {
|
|
133
|
+
try {
|
|
134
|
+
const redirectUrl = await this.oauthFrontendDelegate.getEffectiveRedirectUrl();
|
|
135
|
+
const copyAction = core_1.nls.localizeByDefault('Copy');
|
|
136
|
+
const action = await this.messageService.info(core_1.nls.localize('theia/ai/mcp/info/oauthRedirectUrl', 'MCP OAuth redirect URL: {0}', redirectUrl), copyAction);
|
|
137
|
+
if (action === copyAction) {
|
|
138
|
+
await navigator.clipboard.writeText(redirectUrl);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/getRedirectUrlFailed', 'An error occurred while determining the MCP OAuth redirect URL.'));
|
|
143
|
+
console.error('Error while determining the MCP OAuth redirect URL:', error);
|
|
59
144
|
}
|
|
60
145
|
}
|
|
61
146
|
}));
|
|
@@ -78,32 +163,87 @@ let MCPCommandContribution = class MCPCommandContribution {
|
|
|
78
163
|
if (!selection) {
|
|
79
164
|
return;
|
|
80
165
|
}
|
|
81
|
-
await this.mcpFrontendService.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
let toolNames = undefined;
|
|
87
|
-
if (serverDescription.tools) {
|
|
88
|
-
toolNames = serverDescription.tools.map(tool => tool.name).join(',');
|
|
89
|
-
}
|
|
90
|
-
this.messageService.info(core_1.nls.localize('theia/ai/mcp/info/serverStarted', 'MCP server "{0}" successfully started. Registered tools: {1}', selection, toolNames ||
|
|
91
|
-
core_1.nls.localize('theia/ai/mcp/tool/noTools', 'No tools available.')));
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (serverDescription.error) {
|
|
95
|
-
console.error('Error while starting MCP server:', serverDescription.error);
|
|
96
|
-
}
|
|
166
|
+
const selectedDescription = await this.mcpFrontendService.getServerDescription(selection);
|
|
167
|
+
if (selectedDescription?.status === ai_mcp_1.MCPServerStatus.AuthenticationRequired) {
|
|
168
|
+
// Starting in `AuthenticationRequired` would join the pending OAuth flow and change
|
|
169
|
+
// nothing; stop first so the start below begins a fresh authorization attempt.
|
|
170
|
+
await this.mcpFrontendService.stopServer(selection);
|
|
97
171
|
}
|
|
98
|
-
|
|
172
|
+
// OAuth gating happens in the backend: `startServerInteractive` sets the manager's
|
|
173
|
+
// `interactive` flag, which is what permits the OAuth provider to launch the browser.
|
|
174
|
+
// No popup preparation or OAuth-flag inspection is needed at this layer.
|
|
175
|
+
const startAttempted = await this.mcpFrontendService.startServerInteractive(selection);
|
|
176
|
+
if (!startAttempted) {
|
|
177
|
+
// A pre-flight check (untrusted workspace) already surfaced its own toast. Skip
|
|
178
|
+
// outcome reporting; the status is still NotConnected/NotRunning from before the
|
|
179
|
+
// attempt, which `reportStartOutcome` would otherwise treat as cancellation.
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const serverDescription = await this.mcpFrontendService.getServerDescription(selection);
|
|
183
|
+
this.reportStartOutcome(selection, serverDescription);
|
|
99
184
|
}
|
|
100
185
|
catch (error) {
|
|
101
186
|
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/startFailed', 'An error occurred while starting the MCP server.'));
|
|
102
|
-
|
|
187
|
+
this.logger.error('Error while starting MCP server:', error);
|
|
103
188
|
}
|
|
104
189
|
}
|
|
105
190
|
}));
|
|
106
191
|
}
|
|
192
|
+
isStoppableStatus(status) {
|
|
193
|
+
return status === ai_mcp_1.MCPServerStatus.Running
|
|
194
|
+
|| status === ai_mcp_1.MCPServerStatus.Connected
|
|
195
|
+
|| status === ai_mcp_1.MCPServerStatus.AuthenticationRequired;
|
|
196
|
+
}
|
|
197
|
+
async getOAuthEnabledServerNames() {
|
|
198
|
+
const servers = await this.mcpFrontendService.getServerNames();
|
|
199
|
+
const descriptions = await Promise.all(servers.map(server => this.mcpFrontendService.getServerDescription(server)));
|
|
200
|
+
return descriptions
|
|
201
|
+
.filter((description) => !!description && (0, ai_mcp_1.isRemoteMCPServerDescription)(description) && !!description.oauth)
|
|
202
|
+
.map(description => description.name);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* The command-palette flow has no other UI surface, so the toast must match the terminal status:
|
|
206
|
+
* a generic 'start failed' for every non-success state would contradict cancellation
|
|
207
|
+
* (status=NotConnected/NotRunning, error cleared) and authorization-server denial
|
|
208
|
+
* (status=AuthenticationRequired with a localized diagnostic in `error`).
|
|
209
|
+
*/
|
|
210
|
+
reportStartOutcome(serverName, serverDescription) {
|
|
211
|
+
if (!serverDescription || !serverDescription.status) {
|
|
212
|
+
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/startFailed', 'An error occurred while starting the MCP server.'));
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const { status, error, tools } = serverDescription;
|
|
216
|
+
if (status === ai_mcp_1.MCPServerStatus.Running || status === ai_mcp_1.MCPServerStatus.Connected) {
|
|
217
|
+
const toolNames = tools && tools.length > 0
|
|
218
|
+
? tools.map(tool => tool.name).join(',')
|
|
219
|
+
: core_1.nls.localize('theia/ai/mcp/tool/noTools', 'No tools available.');
|
|
220
|
+
this.messageService.info(core_1.nls.localize('theia/ai/mcp/info/serverStarted', 'MCP server "{0}" successfully started. Registered tools: {1}', serverName, toolNames));
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (status === ai_mcp_1.MCPServerStatus.NotConnected || status === ai_mcp_1.MCPServerStatus.NotRunning) {
|
|
224
|
+
// `handleStartupError` clears `error` on the cancel path; a generic failure toast would
|
|
225
|
+
// contradict the user's cancellation. Surface as info so the command flow has a positive signal.
|
|
226
|
+
this.messageService.info(core_1.nls.localize('theia/ai/mcp/info/signInCancelled', 'MCP server "{0}" sign-in was cancelled.', serverName));
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (status === ai_mcp_1.MCPServerStatus.AuthenticationRequired) {
|
|
230
|
+
// Authorization-server denial populates `error` with the localized diagnostic; reuse it so the
|
|
231
|
+
// toast matches the status-badge hover. Fall back to a re-auth prompt when missing.
|
|
232
|
+
this.messageService.error(error ?? core_1.nls.localize('theia/ai/mcp/error/authenticationRequired', 'MCP server "{0}" requires authentication. Start the server again to sign in.', serverName));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (status === ai_mcp_1.MCPServerStatus.Starting || status === ai_mcp_1.MCPServerStatus.Connecting) {
|
|
236
|
+
// `startServer` is awaited, so a transient status should not be observable today. Log-only rather
|
|
237
|
+
// than a generic failure toast in case the async lifecycle is widened later; the status badge
|
|
238
|
+
// will surface the eventual terminal state via the `onDidUpdateStatus` subscription.
|
|
239
|
+
this.logger.warn(`MCP server "${serverName}" returned from startServerInteractive while still ${status}; the UI will update when the server reaches a terminal state.`);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (error) {
|
|
243
|
+
this.logger.error('Error while starting MCP server:', error);
|
|
244
|
+
}
|
|
245
|
+
this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/startFailed', 'An error occurred while starting the MCP server.'));
|
|
246
|
+
}
|
|
107
247
|
};
|
|
108
248
|
exports.MCPCommandContribution = MCPCommandContribution;
|
|
109
249
|
tslib_1.__decorate([
|
|
@@ -122,6 +262,15 @@ tslib_1.__decorate([
|
|
|
122
262
|
(0, inversify_1.inject)(ai_mcp_1.MCPFrontendService),
|
|
123
263
|
tslib_1.__metadata("design:type", Object)
|
|
124
264
|
], MCPCommandContribution.prototype, "mcpFrontendService", void 0);
|
|
265
|
+
tslib_1.__decorate([
|
|
266
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
267
|
+
(0, inversify_1.named)('ai-mcp-ui:MCPCommandContribution'),
|
|
268
|
+
tslib_1.__metadata("design:type", Object)
|
|
269
|
+
], MCPCommandContribution.prototype, "logger", void 0);
|
|
270
|
+
tslib_1.__decorate([
|
|
271
|
+
(0, inversify_1.inject)(ai_mcp_1.MCPOAuthFrontendDelegate),
|
|
272
|
+
tslib_1.__metadata("design:type", Object)
|
|
273
|
+
], MCPCommandContribution.prototype, "oauthFrontendDelegate", void 0);
|
|
125
274
|
exports.MCPCommandContribution = MCPCommandContribution = tslib_1.__decorate([
|
|
126
275
|
(0, inversify_1.injectable)()
|
|
127
276
|
], MCPCommandContribution);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-command-contribution.js","sourceRoot":"","sources":["../../src/browser/mcp-command-contribution.ts"],"names":[],"mappings":";;;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,sGAAgG;AAChG,
|
|
1
|
+
{"version":3,"file":"mcp-command-contribution.js","sourceRoot":"","sources":["../../src/browser/mcp-command-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-command-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/mcp-command-contribution.spec.ts"],"names":[],"mappings":""}
|