@theia/ai-mcp-ui 1.73.0-next.9 → 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.
@@ -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;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAmB,MAAM,eAAe,CAAC;AAEpE,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AACF,eAAO,MAAM,aAAa;;;CAGzB,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,cAAc,EAAE,cAAc,CAAC;IAGzC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YAE5C,qBAAqB;IASnC,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAkE3D"}
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
- const startedServers = await this.mcpFrontendService.getStartedServers();
47
- if (!startedServers || startedServers.length === 0) {
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(startedServers);
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
- console.error('Error while stopping MCP server:', error);
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.startServer(selection);
82
- const serverDescription = await this.mcpFrontendService.getServerDescription(selection);
83
- if (serverDescription && serverDescription.status) {
84
- if (serverDescription.status === ai_mcp_1.MCPServerStatus.Running
85
- || serverDescription.status === ai_mcp_1.MCPServerStatus.Connected) {
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
- this.messageService.error(core_1.nls.localize('theia/ai/mcp/error/startFailed', 'An error occurred while starting the MCP server.'));
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
- console.error('Error while starting MCP server:', error);
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":"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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-command-contribution.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-command-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/mcp-command-contribution.spec.ts"],"names":[],"mappings":""}