@codingame/monaco-vscode-extensions-service-override 25.1.2 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/index.js +7 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/base/common/console.js +24 -15
  4. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +4 -1
  5. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +149 -84
  6. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +20 -12
  7. package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +38 -21
  8. package/vscode/src/vs/platform/remote/common/managedSocket.js +7 -10
  9. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +5 -2
  10. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +5 -2
  11. package/vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js +4 -1
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +200 -143
  13. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +10 -14
  14. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +41 -31
  15. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +9 -12
  16. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +168 -115
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +11 -13
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.d.ts +5 -5
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.js +42 -15
  20. package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +8 -7
  21. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +4 -2
  22. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +170 -99
  23. package/vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js +2 -5
  24. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +4 -9
  25. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +13 -12
  26. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +16 -19
  27. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +127 -70
  28. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -26
  29. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +5 -11
  30. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +199 -97
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +1 -4
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +88 -73
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +5 -5
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +16 -12
  35. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +10 -8
  36. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +14 -6
  37. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +52 -37
  38. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +78 -58
  39. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -7
  40. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +75 -63
  41. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +99 -91
  42. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +93 -55
  43. package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +3 -7
  44. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +85 -60
  45. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +49 -45
  46. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +114 -72
  47. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +4 -7
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +1 -4
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +2 -2
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +381 -238
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +7 -3
  52. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +90 -13
  53. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +81 -58
  54. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +9 -10
  55. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -7
  56. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +6 -10
  57. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +12 -10
  58. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.d.ts +3 -2
  59. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +162 -97
  60. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +32 -26
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +38 -32
  62. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +48 -46
  63. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +22 -18
  64. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -8
  65. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +35 -21
  66. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +31 -28
  67. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -7
  68. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +47 -23
  69. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +15 -12
  70. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +17 -18
  71. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +6 -7
  72. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +83 -66
  73. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +1 -5
  74. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +250 -92
  75. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +6 -8
  76. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +37 -26
  77. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +34 -21
  78. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +3 -6
  79. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +19 -14
  80. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +41 -16
  81. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +18 -17
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +145 -145
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +19 -11
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +176 -80
  85. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +52 -21
  86. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +26 -24
  87. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +1 -4
  88. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +5 -8
  89. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +4 -1
  90. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +106 -46
  91. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +83 -65
  92. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +20 -20
  93. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +14 -9
  94. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +17 -9
  95. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +49 -38
  96. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +10 -13
  97. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +38 -27
  98. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +5 -11
  99. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +4 -1
  100. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +73 -43
  101. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +2 -2
  102. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +17 -10
  103. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +17 -11
  104. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +107 -80
  105. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +336 -175
  106. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +126 -71
  107. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +76 -54
  108. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +1 -2
  109. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -0
  110. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +343 -192
  111. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +5 -3
  112. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +0 -1
  113. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +75 -68
  114. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +135 -36
  115. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +22 -18
  116. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +14 -12
  117. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +21 -9
  118. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +48 -25
  119. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.d.ts +24 -0
  120. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +300 -0
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { mapFindFirst } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
4
- import { disposableTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { RunOnceScheduler, disposableTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
5
5
  import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
6
6
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
7
7
  import { Disposable, DisposableMap, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
@@ -26,10 +26,23 @@ import { ExtensionHostKind, extensionHostKindToString } from '@codingame/monaco-
26
26
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
27
27
  import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
28
28
  import { ExtHostContext, MainContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol';
29
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
29
30
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
30
31
 
31
32
  let MainThreadMcp = class MainThreadMcp extends Disposable {
32
- constructor(_extHostContext, _mcpRegistry, dialogService, _authenticationService, authenticationMcpServersService, authenticationMCPServerAccessService, authenticationMCPServerUsageService, _dynamicAuthenticationProviderStorageService, _extensionService, _contextKeyService, _telemetryService) {
33
+ constructor(
34
+ _extHostContext,
35
+ _mcpRegistry,
36
+ dialogService,
37
+ _authenticationService,
38
+ authenticationMcpServersService,
39
+ authenticationMCPServerAccessService,
40
+ authenticationMCPServerUsageService,
41
+ _dynamicAuthenticationProviderStorageService,
42
+ _extensionService,
43
+ _contextKeyService,
44
+ _telemetryService
45
+ ) {
33
46
  super();
34
47
  this._extHostContext = _extHostContext;
35
48
  this._mcpRegistry = _mcpRegistry;
@@ -47,7 +60,9 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
47
60
  this._serverDefinitions = ( new Map());
48
61
  this._serverAuthTracking = ( new McpServerAuthTracker());
49
62
  this._collectionDefinitions = this._register(( new DisposableMap()));
50
- this._register(_authenticationService.onDidChangeSessions(e => this._onDidChangeAuthSessions(e.providerId, e.label)));
63
+ this._register(
64
+ _authenticationService.onDidChangeSessions(e => this._onDidChangeAuthSessions(e.providerId, e.label))
65
+ );
51
66
  const proxy = this._proxy = ( _extHostContext.getProxy(ExtHostContext.ExtHostMcp));
52
67
  this._register(this._mcpRegistry.registerDelegate({
53
68
  priority: _extHostContext.extensionHostKind === ExtensionHostKind.LocalWebWorker ? 0 : 1,
@@ -64,7 +79,10 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
64
79
  return true;
65
80
  },
66
81
  async substituteVariables(serverDefinition, launch) {
67
- const ser = await proxy.$substituteVariables(serverDefinition.variableReplacement?.folder?.uri, McpServerLaunch.toSerialized(launch));
82
+ const ser = await proxy.$substituteVariables(
83
+ serverDefinition.variableReplacement?.folder?.uri,
84
+ McpServerLaunch.toSerialized(launch)
85
+ );
68
86
  return McpServerLaunch.fromSerialized(ser);
69
87
  },
70
88
  start: (_collection, serverDefiniton, resolveLaunch, options) => {
@@ -79,20 +97,41 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
79
97
  proxy.$startMcp(id, {
80
98
  launch: resolveLaunch,
81
99
  defaultCwd: serverDefiniton.variableReplacement?.folder?.uri,
82
- errorOnUserInteraction: options?.errorOnUserInteraction,
100
+ errorOnUserInteraction: options?.errorOnUserInteraction
83
101
  });
84
102
  return launch;
85
- },
103
+ }
104
+ }));
105
+ const onDidChangeMcpServerDefinitionsTrigger = this._register(( new RunOnceScheduler(() => this._publishServerDefinitions(), 500)));
106
+ this._register(autorun(reader => {
107
+ const collections = this._mcpRegistry.collections.read(reader);
108
+ for (const collection of collections) {
109
+ collection.serverDefinitions.read(reader);
110
+ }
111
+ if (!onDidChangeMcpServerDefinitionsTrigger.isScheduled()) {
112
+ onDidChangeMcpServerDefinitionsTrigger.schedule();
113
+ }
86
114
  }));
115
+ onDidChangeMcpServerDefinitionsTrigger.schedule();
116
+ }
117
+ _publishServerDefinitions() {
118
+ const collections = this._mcpRegistry.collections.get();
119
+ const allServers = [];
120
+ for (const collection of collections) {
121
+ const servers = collection.serverDefinitions.get();
122
+ for (const server of servers) {
123
+ allServers.push(McpServerDefinition.toSerialized(server));
124
+ }
125
+ }
126
+ this._proxy.$onDidChangeMcpServerDefinitions(allServers);
87
127
  }
88
128
  $upsertMcpCollection(collection, serversDto) {
89
129
  const servers = ( serversDto.map(McpServerDefinition.fromSerialized));
90
130
  const existing = this._collectionDefinitions.get(collection.id);
91
131
  if (existing) {
92
132
  existing.servers.set(servers, undefined);
93
- }
94
- else {
95
- const serverDefinitions = observableValue('mcpServers', servers);
133
+ } else {
134
+ const serverDefinitions = observableValue("mcpServers", servers);
96
135
  const extensionId = ( new ExtensionIdentifier(collection.extensionId));
97
136
  const store = ( new DisposableStore());
98
137
  const handle = store.add(( new MutableDisposable()));
@@ -100,28 +139,27 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
100
139
  handle.value ??= this._mcpRegistry.registerCollection({
101
140
  ...collection,
102
141
  source: extensionId,
103
- resolveServerLanch: collection.canResolveLaunch ? (async (def) => {
142
+ resolveServerLanch: collection.canResolveLaunch ? (async def => {
104
143
  const r = await this._proxy.$resolveMcpLaunch(collection.id, def.label);
105
144
  return r ? McpServerLaunch.fromSerialized(r) : undefined;
106
145
  }) : undefined,
107
146
  trustBehavior: collection.isTrustedByDefault ? McpServerTrust.Kind.Trusted : McpServerTrust.Kind.TrustedOnNonce,
108
147
  remoteAuthority: this._extHostContext.remoteAuthority,
109
- serverDefinitions,
148
+ serverDefinitions
110
149
  });
111
150
  };
112
- const whenClauseStr = mapFindFirst(this._extensionService.extensions, e => ExtensionIdentifier.equals(extensionId, e.identifier)
113
- ? e.contributes?.mcpServerDefinitionProviders?.find(p => extensionPrefixedIdentifier(extensionId, p.id) === collection.id)?.when
114
- : undefined);
151
+ const whenClauseStr = mapFindFirst(
152
+ this._extensionService.extensions,
153
+ e => ExtensionIdentifier.equals(extensionId, e.identifier) ? e.contributes?.mcpServerDefinitionProviders?.find(p => extensionPrefixedIdentifier(extensionId, p.id) === collection.id)?.when : undefined
154
+ );
115
155
  const whenClause = whenClauseStr && ContextKeyExpr.deserialize(whenClauseStr);
116
156
  if (!whenClause) {
117
157
  register();
118
- }
119
- else {
158
+ } else {
120
159
  const evaluate = () => {
121
160
  if (this._contextKeyService.contextMatchesRules(whenClause)) {
122
161
  register();
123
- }
124
- else {
162
+ } else {
125
163
  handle.clear();
126
164
  }
127
165
  };
@@ -130,7 +168,7 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
130
168
  }
131
169
  this._collectionDefinitions.set(collection.id, {
132
170
  servers: serverDefinitions,
133
- dispose: () => store.dispose(),
171
+ dispose: () => store.dispose()
134
172
  });
135
173
  }
136
174
  }
@@ -151,7 +189,7 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
151
189
  }
152
190
  }
153
191
  $onDidPublishLog(id, level, log) {
154
- if (typeof level === 'string') {
192
+ if (typeof level === "string") {
155
193
  level = LogLevel.Info;
156
194
  log = level;
157
195
  }
@@ -167,7 +205,14 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
167
205
  }
168
206
  return this._getSessionForProvider(id, server, providerId, scopes, undefined, options.errorOnUserInteraction);
169
207
  }
170
- async $getTokenFromServerMetadata(id, authDetails, { errorOnUserInteraction, forceNewRegistration } = {}) {
208
+ async $getTokenFromServerMetadata(
209
+ id,
210
+ authDetails,
211
+ {
212
+ errorOnUserInteraction,
213
+ forceNewRegistration
214
+ } = {}
215
+ ) {
171
216
  const server = this._serverDefinitions.get(id);
172
217
  if (!server) {
173
218
  return undefined;
@@ -178,23 +223,43 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
178
223
  let providerId = await this._authenticationService.getOrActivateProviderIdForServer(authorizationServer, resourceServer);
179
224
  if (forceNewRegistration && providerId) {
180
225
  if (!this._authenticationService.isDynamicAuthenticationProvider(providerId)) {
181
- throw ( new Error('Cannot force new registration for a non-dynamic authentication provider.'));
226
+ throw ( new Error("Cannot force new registration for a non-dynamic authentication provider."));
182
227
  }
183
228
  this._authenticationService.unregisterAuthenticationProvider(providerId);
184
229
  await this._dynamicAuthenticationProviderStorageService.removeDynamicProvider(providerId);
185
230
  providerId = undefined;
186
231
  }
187
232
  if (!providerId) {
188
- const provider = await this._authenticationService.createDynamicAuthenticationProvider(authorizationServer, authDetails.authorizationServerMetadata, authDetails.resourceMetadata);
233
+ const provider = await this._authenticationService.createDynamicAuthenticationProvider(
234
+ authorizationServer,
235
+ authDetails.authorizationServerMetadata,
236
+ authDetails.resourceMetadata
237
+ );
189
238
  if (!provider) {
190
239
  return undefined;
191
240
  }
192
241
  providerId = provider.id;
193
242
  }
194
- return this._getSessionForProvider(id, server, providerId, resolvedScopes, authorizationServer, errorOnUserInteraction);
243
+ return this._getSessionForProvider(
244
+ id,
245
+ server,
246
+ providerId,
247
+ resolvedScopes,
248
+ authorizationServer,
249
+ errorOnUserInteraction
250
+ );
195
251
  }
196
- async _getSessionForProvider(serverId, server, providerId, scopes, authorizationServer, errorOnUserInteraction = false) {
197
- const sessions = await this._authenticationService.getSessions(providerId, scopes, { authorizationServer }, true);
252
+ async _getSessionForProvider(
253
+ serverId,
254
+ server,
255
+ providerId,
256
+ scopes,
257
+ authorizationServer,
258
+ errorOnUserInteraction = false
259
+ ) {
260
+ const sessions = await this._authenticationService.getSessions(providerId, scopes, {
261
+ authorizationServer
262
+ }, true);
198
263
  const accountNamePreference = this.authenticationMcpServersService.getAccountPreference(server.id, providerId);
199
264
  let matchingAccountPreferenceSession;
200
265
  if (accountNamePreference) {
@@ -204,7 +269,13 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
204
269
  let session;
205
270
  if (sessions.length) {
206
271
  if (matchingAccountPreferenceSession && this.authenticationMCPServerAccessService.isAccessAllowed(providerId, matchingAccountPreferenceSession.account.label, server.id)) {
207
- this.authenticationMCPServerUsageService.addAccountUsage(providerId, matchingAccountPreferenceSession.account.label, scopes, server.id, server.label);
272
+ this.authenticationMCPServerUsageService.addAccountUsage(
273
+ providerId,
274
+ matchingAccountPreferenceSession.account.label,
275
+ scopes,
276
+ server.id,
277
+ server.label
278
+ );
208
279
  this._serverAuthTracking.track(providerId, serverId, scopes);
209
280
  return matchingAccountPreferenceSession.accessToken;
210
281
  }
@@ -215,23 +286,20 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
215
286
  }
216
287
  }
217
288
  if (errorOnUserInteraction) {
218
- throw ( new UserInteractionRequiredError('authentication'));
289
+ throw ( new UserInteractionRequiredError("authentication"));
219
290
  }
220
291
  const isAllowed = await this.loginPrompt(server.label, provider.label, false);
221
292
  if (!isAllowed) {
222
- throw ( new Error('User did not consent to login.'));
293
+ throw ( new Error("User did not consent to login."));
223
294
  }
224
295
  if (sessions.length) {
225
296
  if (provider.supportsMultipleAccounts && errorOnUserInteraction) {
226
- throw ( new UserInteractionRequiredError('authentication'));
297
+ throw ( new UserInteractionRequiredError("authentication"));
227
298
  }
228
- session = provider.supportsMultipleAccounts
229
- ? await this.authenticationMcpServersService.selectSession(providerId, server.id, server.label, scopes, sessions)
230
- : sessions[0];
231
- }
232
- else {
299
+ session = provider.supportsMultipleAccounts ? await this.authenticationMcpServersService.selectSession(providerId, server.id, server.label, scopes, sessions) : sessions[0];
300
+ } else {
233
301
  if (errorOnUserInteraction) {
234
- throw ( new UserInteractionRequiredError('authentication'));
302
+ throw ( new UserInteractionRequiredError("authentication"));
235
303
  }
236
304
  const accountToCreate = matchingAccountPreferenceSession?.account;
237
305
  do {
@@ -240,11 +308,13 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
240
308
  account: accountToCreate,
241
309
  authorizationServer
242
310
  });
243
- } while (accountToCreate
244
- && accountToCreate.label !== session.account.label
245
- && !(await this.continueWithIncorrectAccountPrompt(session.account.label, accountToCreate.label)));
311
+ } while (accountToCreate && accountToCreate.label !== session.account.label && !(await this.continueWithIncorrectAccountPrompt(session.account.label, accountToCreate.label)));
246
312
  }
247
- this.authenticationMCPServerAccessService.updateAllowedMcpServers(providerId, session.account.label, [{ id: server.id, name: server.label, allowed: true }]);
313
+ this.authenticationMCPServerAccessService.updateAllowedMcpServers(providerId, session.account.label, [{
314
+ id: server.id,
315
+ name: server.label,
316
+ allowed: true
317
+ }]);
248
318
  this.authenticationMcpServersService.updateAccountPreference(server.id, providerId, session.account);
249
319
  this.authenticationMCPServerUsageService.addAccountUsage(providerId, session.account.label, scopes, server.id, server.label);
250
320
  this._serverAuthTracking.track(providerId, serverId, scopes);
@@ -252,25 +322,22 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
252
322
  }
253
323
  async continueWithIncorrectAccountPrompt(chosenAccountLabel, requestedAccountLabel) {
254
324
  const result = await this.dialogService.prompt({
255
- message: ( localize(2535, "Incorrect account detected")),
325
+ message: ( localize(2538, "Incorrect account detected")),
256
326
  detail: ( localize(
257
- 2536,
327
+ 2539,
258
328
  "The chosen account, {0}, does not match the requested account, {1}.",
259
329
  chosenAccountLabel,
260
330
  requestedAccountLabel
261
331
  )),
262
332
  type: Severity.Warning,
263
333
  cancelButton: true,
264
- buttons: [
265
- {
266
- label: ( localize(2537, 'Keep {0}', chosenAccountLabel)),
267
- run: () => chosenAccountLabel
268
- },
269
- {
270
- label: ( localize(2538, 'Login with {0}', requestedAccountLabel)),
271
- run: () => requestedAccountLabel
272
- }
273
- ],
334
+ buttons: [{
335
+ label: ( localize(2540, "Keep {0}", chosenAccountLabel)),
336
+ run: () => chosenAccountLabel
337
+ }, {
338
+ label: ( localize(2541, "Login with {0}", requestedAccountLabel)),
339
+ run: () => requestedAccountLabel
340
+ }]
274
341
  });
275
342
  if (!result.result) {
276
343
  throw ( new CancellationError());
@@ -282,7 +349,10 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
282
349
  if (!serversUsingProvider) {
283
350
  return;
284
351
  }
285
- for (const { serverId, scopes } of serversUsingProvider) {
352
+ for (const {
353
+ serverId,
354
+ scopes
355
+ } of serversUsingProvider) {
286
356
  const server = this._servers.get(serverId);
287
357
  const serverDefinition = this._serverDefinitions.get(serverId);
288
358
  if (!server || !serverDefinition) {
@@ -294,11 +364,10 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
294
364
  }
295
365
  try {
296
366
  await this._getSessionForProvider(serverId, serverDefinition, providerId, scopes, undefined, true);
297
- }
298
- catch (e) {
367
+ } catch (e) {
299
368
  if (UserInteractionRequiredError.is(e)) {
300
369
  server.pushLog(LogLevel.Warning, ( localize(
301
- 2539,
370
+ 2542,
302
371
  "Authentication session for {0} removed, stopping server",
303
372
  providerLabel
304
373
  )));
@@ -308,35 +377,33 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
308
377
  }
309
378
  }
310
379
  $logMcpAuthSetup(data) {
311
- this._telemetryService.publicLog2('mcp/authSetup', data);
380
+ this._telemetryService.publicLog2("mcp/authSetup", data);
312
381
  }
313
382
  async loginPrompt(mcpLabel, providerLabel, recreatingSession) {
314
- const message = recreatingSession
315
- ? ( localize(
316
- 2540,
383
+ const message = recreatingSession ? ( localize(
384
+ 2543,
317
385
  "The MCP Server Definition '{0}' wants you to authenticate to {1}.",
318
386
  mcpLabel,
319
387
  providerLabel
320
- ))
321
- : ( localize(
322
- 2541,
388
+ )) : ( localize(
389
+ 2544,
323
390
  "The MCP Server Definition '{0}' wants to authenticate to {1}.",
324
391
  mcpLabel,
325
392
  providerLabel
326
393
  ));
327
- const buttons = [
328
- {
329
- label: ( localize(2542, "&&Allow")),
330
- run() {
331
- return true;
332
- },
394
+ const buttons = [{
395
+ label: ( localize(2545, "&&Allow")),
396
+ run() {
397
+ return true;
333
398
  }
334
- ];
335
- const { result } = await this.dialogService.prompt({
399
+ }];
400
+ const {
401
+ result
402
+ } = await this.dialogService.prompt({
336
403
  type: Severity.Info,
337
404
  message,
338
405
  buttons,
339
- cancelButton: true,
406
+ cancelButton: true
340
407
  });
341
408
  return result ?? false;
342
409
  }
@@ -350,36 +417,25 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
350
417
  super.dispose();
351
418
  }
352
419
  };
353
- MainThreadMcp = __decorate([
354
- extHostNamedCustomer(MainContext.MainThreadMcp),
355
- ( __param(1, IMcpRegistry)),
356
- ( __param(2, IDialogService)),
357
- ( __param(3, IAuthenticationService)),
358
- ( __param(4, IAuthenticationMcpService)),
359
- ( __param(5, IAuthenticationMcpAccessService)),
360
- ( __param(6, IAuthenticationMcpUsageService)),
361
- ( __param(7, IDynamicAuthenticationProviderStorageService)),
362
- ( __param(8, IExtensionService)),
363
- ( __param(9, IContextKeyService)),
364
- ( __param(10, ITelemetryService))
365
- ], MainThreadMcp);
420
+ MainThreadMcp = __decorate([extHostNamedCustomer(MainContext.MainThreadMcp), ( __param(1, IMcpRegistry)), ( __param(2, IDialogService)), ( __param(3, IAuthenticationService)), ( __param(4, IAuthenticationMcpService)), ( __param(5, IAuthenticationMcpAccessService)), ( __param(6, IAuthenticationMcpUsageService)), ( __param(7, IDynamicAuthenticationProviderStorageService)), ( __param(8, IExtensionService)), ( __param(9, IContextKeyService)), ( __param(10, ITelemetryService))], MainThreadMcp);
366
421
  class ExtHostMcpServerLaunch extends Disposable {
367
422
  pushLog(level, message) {
368
- this._onDidLog.fire({ message, level });
423
+ this._onDidLog.fire({
424
+ message,
425
+ level
426
+ });
369
427
  }
370
428
  pushMessage(message) {
371
429
  let parsed;
372
430
  try {
373
431
  parsed = JSON.parse(message);
374
- }
375
- catch (e) {
432
+ } catch (e) {
376
433
  this.pushLog(LogLevel.Warning, `Failed to parse message: ${JSON.stringify(message)}`);
377
434
  }
378
435
  if (parsed) {
379
436
  if (Array.isArray(parsed)) {
380
437
  parsed.forEach(p => this._onDidReceiveMessage.fire(p));
381
- }
382
- else {
438
+ } else {
383
439
  this._onDidReceiveMessage.fire(parsed);
384
440
  }
385
441
  }
@@ -388,19 +444,26 @@ class ExtHostMcpServerLaunch extends Disposable {
388
444
  super();
389
445
  this.stop = stop;
390
446
  this.send = send;
391
- this.state = observableValue('mcpServerState', { state: McpConnectionState.Kind.Starting });
447
+ this.state = observableValue("mcpServerState", {
448
+ state: McpConnectionState.Kind.Starting
449
+ });
392
450
  this._onDidLog = this._register(( new Emitter()));
393
451
  this.onDidLog = this._onDidLog.event;
394
452
  this._onDidReceiveMessage = this._register(( new Emitter()));
395
453
  this.onDidReceiveMessage = this._onDidReceiveMessage.event;
396
454
  this._register(disposableTimeout(() => {
397
- this.pushLog(LogLevel.Info, `Starting server from ${extensionHostKindToString(extHostKind)} extension host`);
455
+ this.pushLog(
456
+ LogLevel.Info,
457
+ `Starting server from ${extensionHostKindToString(extHostKind)} extension host`
458
+ );
398
459
  }));
399
460
  }
400
461
  extHostDispose() {
401
462
  if (McpConnectionState.isRunning(this.state.get())) {
402
- this.pushLog(LogLevel.Warning, 'Extension host shut down, server will stop.');
403
- this.state.set({ state: McpConnectionState.Kind.Stopped }, undefined);
463
+ this.pushLog(LogLevel.Warning, "Extension host shut down, server will stop.");
464
+ this.state.set({
465
+ state: McpConnectionState.Kind.Stopped
466
+ }, undefined);
404
467
  }
405
468
  this.dispose();
406
469
  }
@@ -418,7 +481,10 @@ class McpServerAuthTracker {
418
481
  track(providerId, serverId, scopes) {
419
482
  const servers = this._tracking.get(providerId) || [];
420
483
  const filtered = servers.filter(s => s.serverId !== serverId);
421
- filtered.push({ serverId, scopes });
484
+ filtered.push({
485
+ serverId,
486
+ scopes
487
+ });
422
488
  this._tracking.set(providerId, filtered);
423
489
  }
424
490
  untrack(serverId) {
@@ -426,8 +492,7 @@ class McpServerAuthTracker {
426
492
  const filtered = servers.filter(s => s.serverId !== serverId);
427
493
  if (filtered.length === 0) {
428
494
  this._tracking.delete(providerId);
429
- }
430
- else {
495
+ } else {
431
496
  this._tracking.set(providerId, filtered);
432
497
  }
433
498
  }
@@ -13,12 +13,19 @@ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
13
13
 
14
14
  var MainThreadMessageService_1;
15
15
  let MainThreadMessageService = class MainThreadMessageService {
16
- static { MainThreadMessageService_1 = this; }
17
- static { this.URGENT_NOTIFICATION_SOURCES = [
18
- 'vscode.github-authentication',
19
- 'vscode.microsoft-authentication'
20
- ]; }
21
- constructor(extHostContext, _notificationService, _commandService, _dialogService, extensionService) {
16
+ static {
17
+ MainThreadMessageService_1 = this;
18
+ }
19
+ static {
20
+ this.URGENT_NOTIFICATION_SOURCES = ["vscode.github-authentication", "vscode.microsoft-authentication"];
21
+ }
22
+ constructor(
23
+ extHostContext,
24
+ _notificationService,
25
+ _commandService,
26
+ _dialogService,
27
+ extensionService
28
+ ) {
22
29
  this._notificationService = _notificationService;
23
30
  this._commandService = _commandService;
24
31
  this._dialogService = _dialogService;
@@ -34,8 +41,7 @@ let MainThreadMessageService = class MainThreadMessageService {
34
41
  $showMessage(severity, message, options, commands) {
35
42
  if (options.modal) {
36
43
  return this._showModalMessage(severity, message, options.detail, commands, options.useCustom);
37
- }
38
- else {
44
+ } else {
39
45
  return this._showMessage(severity, message, commands, options);
40
46
  }
41
47
  }
@@ -60,22 +66,25 @@ let MainThreadMessageService = class MainThreadMessageService {
60
66
  sourceIsUrgent = MainThreadMessageService_1.URGENT_NOTIFICATION_SOURCES.includes(source.id);
61
67
  }
62
68
  if (!source) {
63
- source = ( localize(2543, "Extension"));
69
+ source = ( localize(2546, "Extension"));
64
70
  }
65
71
  const secondaryActions = [];
66
72
  if (options.source) {
67
73
  secondaryActions.push(toAction({
68
74
  id: options.source.identifier.value,
69
- label: ( localize(2544, "Manage Extension")),
75
+ label: ( localize(2547, "Manage Extension")),
70
76
  run: () => {
71
- return this._commandService.executeCommand('_extensions.manage', options.source.identifier.value);
77
+ return this._commandService.executeCommand("_extensions.manage", options.source.identifier.value);
72
78
  }
73
79
  }));
74
80
  }
75
81
  const messageHandle = this._notificationService.notify({
76
82
  severity,
77
83
  message,
78
- actions: { primary: primaryActions, secondary: secondaryActions },
84
+ actions: {
85
+ primary: primaryActions,
86
+ secondary: secondaryActions
87
+ },
79
88
  source,
80
89
  priority: sourceIsUrgent ? NotificationPriority.URGENT : NotificationPriority.DEFAULT,
81
90
  sticky: sourceIsUrgent
@@ -95,26 +104,26 @@ let MainThreadMessageService = class MainThreadMessageService {
95
104
  };
96
105
  if (command.isCloseAffordance) {
97
106
  cancelButton = button;
98
- }
99
- else {
107
+ } else {
100
108
  buttons.push(button);
101
109
  }
102
110
  }
103
111
  if (!cancelButton) {
104
112
  if (buttons.length > 0) {
105
113
  cancelButton = {
106
- label: ( localize(2545, "Cancel")),
114
+ label: ( localize(2548, "Cancel")),
107
115
  run: () => undefined
108
116
  };
109
- }
110
- else {
117
+ } else {
111
118
  cancelButton = {
112
- label: ( localize(2546, "&&OK")),
119
+ label: ( localize(2549, "&&OK")),
113
120
  run: () => undefined
114
121
  };
115
122
  }
116
123
  }
117
- const { result } = await this._dialogService.prompt({
124
+ const {
125
+ result
126
+ } = await this._dialogService.prompt({
118
127
  type: severity,
119
128
  message,
120
129
  detail,
@@ -125,12 +134,9 @@ let MainThreadMessageService = class MainThreadMessageService {
125
134
  return result;
126
135
  }
127
136
  };
128
- MainThreadMessageService = MainThreadMessageService_1 = __decorate([
129
- extHostNamedCustomer(MainContext.MainThreadMessageService),
130
- ( __param(1, INotificationService)),
131
- ( __param(2, ICommandService)),
132
- ( __param(3, IDialogService)),
133
- ( __param(4, IExtensionService))
134
- ], MainThreadMessageService);
137
+ MainThreadMessageService = MainThreadMessageService_1 = __decorate(
138
+ [extHostNamedCustomer(MainContext.MainThreadMessageService), ( __param(1, INotificationService)), ( __param(2, ICommandService)), ( __param(3, IDialogService)), ( __param(4, IExtensionService))],
139
+ MainThreadMessageService
140
+ );
135
141
 
136
142
  export { MainThreadMessageService };