@codingame/monaco-vscode-extensions-service-override 3.2.3 → 4.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/extensions.js +1 -82
- package/override/vs/platform/dialogs/common/dialogs.js +2 -0
- package/package.json +9 -9
- package/vscode/src/vs/base/common/console.js +3 -0
- package/vscode/src/vs/workbench/api/browser/extensionHost.contribution.js +104 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +75 -48
- package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +35 -31
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +23 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +33 -22
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +21 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +7 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +5 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +47 -22
- package/vscode/src/vs/workbench/api/browser/{mainThreadChatProvider.js → mainThreadLanguageModels.js} +25 -41
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +27 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +1 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +51 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +39 -15
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +3 -0
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +1 -0
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +13 -2
- /package/vscode/src/vs/workbench/api/browser/{mainThreadProfilContentHandlers.js → mainThreadProfileContentHandlers.js} +0 -0
package/extensions.js
CHANGED
|
@@ -37,88 +37,7 @@ import { changeUrlDomain } from './tools/url.js';
|
|
|
37
37
|
import { CustomSchemas } from '@codingame/monaco-vscode-files-service-override';
|
|
38
38
|
import { registerAssets } from 'vscode/assets';
|
|
39
39
|
import { getForcedExtensionHostKind } from 'vscode/extensions';
|
|
40
|
-
import 'vscode/
|
|
41
|
-
import 'vscode/vscode/vs/workbench/services/themes/common/colorExtensionPoint';
|
|
42
|
-
import 'vscode/vscode/vs/workbench/services/themes/common/iconExtensionPoint';
|
|
43
|
-
import 'vscode/vscode/vs/workbench/services/themes/common/tokenClassificationExtensionPoint';
|
|
44
|
-
import 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint';
|
|
45
|
-
import 'vscode/vscode/vs/workbench/api/browser/statusBarExtensionPoint';
|
|
46
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadLocalization.js';
|
|
47
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js';
|
|
48
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadChatProvider.js';
|
|
49
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js';
|
|
50
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js';
|
|
51
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js';
|
|
52
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js';
|
|
53
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadClipboard.js';
|
|
54
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadCommands.js';
|
|
55
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js';
|
|
56
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadConsole.js';
|
|
57
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDebugService.js';
|
|
58
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDecorations.js';
|
|
59
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js';
|
|
60
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDialogs.js';
|
|
61
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js';
|
|
62
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDocuments.js';
|
|
63
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js';
|
|
64
|
-
import 'vscode/vscode/vs/editor/common/config/editorOptions';
|
|
65
|
-
import 'vscode/vscode/vs/editor/contrib/snippet/browser/snippetController2';
|
|
66
|
-
import 'vscode/vscode/vs/editor/contrib/editorState/browser/keybindingCancellation';
|
|
67
|
-
import 'vscode/vscode/vs/editor/contrib/snippet/browser/snippetParser';
|
|
68
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadEditors.js';
|
|
69
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js';
|
|
70
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadErrors.js';
|
|
71
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js';
|
|
72
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js';
|
|
73
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js';
|
|
74
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js';
|
|
75
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadLanguages.js';
|
|
76
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadLogService.js';
|
|
77
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadMessageService.js';
|
|
78
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js';
|
|
79
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadOutputService.js';
|
|
80
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadProgress.js';
|
|
81
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js';
|
|
82
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js';
|
|
83
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js';
|
|
84
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js';
|
|
85
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadSpeech.js';
|
|
86
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js';
|
|
87
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadSCM.js';
|
|
88
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadSearch.js';
|
|
89
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js';
|
|
90
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadStorage.js';
|
|
91
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js';
|
|
92
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js';
|
|
93
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTheming.js';
|
|
94
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js';
|
|
95
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js';
|
|
96
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadUrls.js';
|
|
97
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js';
|
|
98
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadWindow.js';
|
|
99
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js';
|
|
100
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js';
|
|
101
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadComments.js';
|
|
102
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadNotebook.js';
|
|
103
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js';
|
|
104
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js';
|
|
105
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js';
|
|
106
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js';
|
|
107
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadInteractive.js';
|
|
108
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js';
|
|
109
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadChat.js';
|
|
110
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTask.js';
|
|
111
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadLabelService.js';
|
|
112
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js';
|
|
113
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js';
|
|
114
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTimeline.js';
|
|
115
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadTesting.js';
|
|
116
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadSecretState.js';
|
|
117
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadShare.js';
|
|
118
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadProfilContentHandlers.js';
|
|
119
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js';
|
|
120
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js';
|
|
121
|
-
import './vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js';
|
|
40
|
+
import './vscode/src/vs/workbench/api/browser/extensionHost.contribution.js';
|
|
122
41
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
|
|
123
42
|
|
|
124
43
|
let EsmWebWorkerExtensionHost = class EsmWebWorkerExtensionHost extends WebWorkerExtensionHost {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extensions-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"module": "index.js",
|
|
19
19
|
"types": "index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
22
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
23
|
-
"@codingame/monaco-vscode-quickaccess-service-override": "
|
|
24
|
-
"@codingame/monaco-vscode-extensions-service-override": "
|
|
25
|
-
"@codingame/monaco-vscode-environment-service-override": "
|
|
26
|
-
"@codingame/monaco-vscode-layout-service-override": "
|
|
27
|
-
"@codingame/monaco-vscode-host-service-override": "
|
|
28
|
-
"@codingame/monaco-vscode-base-service-override": "
|
|
21
|
+
"vscode": "npm:@codingame/monaco-vscode-api@4.0.0",
|
|
22
|
+
"@codingame/monaco-vscode-files-service-override": "4.0.0",
|
|
23
|
+
"@codingame/monaco-vscode-quickaccess-service-override": "4.0.0",
|
|
24
|
+
"@codingame/monaco-vscode-extensions-service-override": "4.0.0",
|
|
25
|
+
"@codingame/monaco-vscode-environment-service-override": "4.0.0",
|
|
26
|
+
"@codingame/monaco-vscode-layout-service-override": "4.0.0",
|
|
27
|
+
"@codingame/monaco-vscode-host-service-override": "4.0.0",
|
|
28
|
+
"@codingame/monaco-vscode-base-service-override": "4.0.0"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import 'vscode/vscode/vs/workbench/common/contributions';
|
|
2
|
+
import 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
3
|
+
import { JSONValidationExtensionPoint } from 'vscode/vscode/vs/workbench/api/common/jsonValidationExtensionPoint';
|
|
4
|
+
import { ColorExtensionPoint } from 'vscode/vscode/vs/workbench/services/themes/common/colorExtensionPoint';
|
|
5
|
+
import { IconExtensionPoint } from 'vscode/vscode/vs/workbench/services/themes/common/iconExtensionPoint';
|
|
6
|
+
import { TokenClassificationExtensionPoints } from 'vscode/vscode/vs/workbench/services/themes/common/tokenClassificationExtensionPoint';
|
|
7
|
+
import { LanguageConfigurationFileHandler } from 'vscode/vscode/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint';
|
|
8
|
+
import { StatusBarItemsExtensionPoint } from 'vscode/vscode/vs/workbench/api/browser/statusBarExtensionPoint';
|
|
9
|
+
import './mainThreadLocalization.js';
|
|
10
|
+
import './mainThreadBulkEdits.js';
|
|
11
|
+
import './mainThreadLanguageModels.js';
|
|
12
|
+
import './mainThreadChatAgents2.js';
|
|
13
|
+
import './mainThreadChatVariables.js';
|
|
14
|
+
import './mainThreadCodeInsets.js';
|
|
15
|
+
import './mainThreadCLICommands.js';
|
|
16
|
+
import './mainThreadClipboard.js';
|
|
17
|
+
import './mainThreadCommands.js';
|
|
18
|
+
import './mainThreadConfiguration.js';
|
|
19
|
+
import './mainThreadConsole.js';
|
|
20
|
+
import './mainThreadDebugService.js';
|
|
21
|
+
import './mainThreadDecorations.js';
|
|
22
|
+
import './mainThreadDiagnostics.js';
|
|
23
|
+
import './mainThreadDialogs.js';
|
|
24
|
+
import './mainThreadDocumentContentProviders.js';
|
|
25
|
+
import './mainThreadDocuments.js';
|
|
26
|
+
import './mainThreadDocumentsAndEditors.js';
|
|
27
|
+
import 'vscode/vscode/vs/base/common/event';
|
|
28
|
+
import 'vscode/vscode/vs/base/common/lifecycle';
|
|
29
|
+
import 'vscode/vscode/vs/editor/common/config/editorOptions';
|
|
30
|
+
import 'vscode/vscode/vs/editor/contrib/snippet/browser/snippetController2';
|
|
31
|
+
import 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
|
|
32
|
+
import 'vscode/vscode/vs/base/common/arrays';
|
|
33
|
+
import 'vscode/vscode/vs/base/common/strings';
|
|
34
|
+
import 'vscode/vscode/vs/base/common/cancellation';
|
|
35
|
+
import 'vscode/vscode/vs/editor/contrib/editorState/browser/keybindingCancellation';
|
|
36
|
+
import 'vscode/vscode/vs/editor/contrib/snippet/browser/snippetParser';
|
|
37
|
+
import './mainThreadEditors.js';
|
|
38
|
+
import './mainThreadEditorTabs.js';
|
|
39
|
+
import './mainThreadErrors.js';
|
|
40
|
+
import './mainThreadExtensionService.js';
|
|
41
|
+
import './mainThreadFileSystem.js';
|
|
42
|
+
import './mainThreadFileSystemEventService.js';
|
|
43
|
+
import './mainThreadLanguageFeatures.js';
|
|
44
|
+
import './mainThreadLanguages.js';
|
|
45
|
+
import './mainThreadLogService.js';
|
|
46
|
+
import './mainThreadMessageService.js';
|
|
47
|
+
import './mainThreadManagedSockets.js';
|
|
48
|
+
import './mainThreadOutputService.js';
|
|
49
|
+
import './mainThreadProgress.js';
|
|
50
|
+
import './mainThreadQuickDiff.js';
|
|
51
|
+
import './mainThreadQuickOpen.js';
|
|
52
|
+
import './mainThreadRemoteConnectionData.js';
|
|
53
|
+
import './mainThreadSaveParticipant.js';
|
|
54
|
+
import './mainThreadSpeech.js';
|
|
55
|
+
import './mainThreadEditSessionIdentityParticipant.js';
|
|
56
|
+
import './mainThreadSCM.js';
|
|
57
|
+
import './mainThreadSearch.js';
|
|
58
|
+
import './mainThreadStatusBar.js';
|
|
59
|
+
import './mainThreadStorage.js';
|
|
60
|
+
import './mainThreadTelemetry.js';
|
|
61
|
+
import './mainThreadTerminalService.js';
|
|
62
|
+
import './mainThreadTerminalShellIntegration.js';
|
|
63
|
+
import './mainThreadTheming.js';
|
|
64
|
+
import './mainThreadTreeViews.js';
|
|
65
|
+
import './mainThreadDownloadService.js';
|
|
66
|
+
import './mainThreadUrls.js';
|
|
67
|
+
import './mainThreadUriOpeners.js';
|
|
68
|
+
import './mainThreadWindow.js';
|
|
69
|
+
import './mainThreadWebviewManager.js';
|
|
70
|
+
import './mainThreadWorkspace.js';
|
|
71
|
+
import './mainThreadComments.js';
|
|
72
|
+
import './mainThreadNotebook.js';
|
|
73
|
+
import './mainThreadNotebookKernels.js';
|
|
74
|
+
import './mainThreadNotebookDocumentsAndEditors.js';
|
|
75
|
+
import './mainThreadNotebookRenderers.js';
|
|
76
|
+
import './mainThreadNotebookSaveParticipant.js';
|
|
77
|
+
import './mainThreadInteractive.js';
|
|
78
|
+
import './mainThreadInlineChat.js';
|
|
79
|
+
import './mainThreadChat.js';
|
|
80
|
+
import './mainThreadTask.js';
|
|
81
|
+
import './mainThreadLabelService.js';
|
|
82
|
+
import './mainThreadTunnelService.js';
|
|
83
|
+
import './mainThreadAuthentication.js';
|
|
84
|
+
import './mainThreadTimeline.js';
|
|
85
|
+
import './mainThreadTesting.js';
|
|
86
|
+
import './mainThreadSecretState.js';
|
|
87
|
+
import './mainThreadShare.js';
|
|
88
|
+
import './mainThreadProfileContentHandlers.js';
|
|
89
|
+
import './mainThreadAiRelatedInformation.js';
|
|
90
|
+
import './mainThreadAiEmbeddingVector.js';
|
|
91
|
+
import './mainThreadIssueReporter.js';
|
|
92
|
+
|
|
93
|
+
(class ExtensionPoints {
|
|
94
|
+
static { this.ID = 'workbench.contrib.extensionPoints'; }
|
|
95
|
+
constructor(instantiationService) {
|
|
96
|
+
this.instantiationService = instantiationService;
|
|
97
|
+
this.instantiationService.createInstance(JSONValidationExtensionPoint);
|
|
98
|
+
this.instantiationService.createInstance(ColorExtensionPoint);
|
|
99
|
+
this.instantiationService.createInstance(IconExtensionPoint);
|
|
100
|
+
this.instantiationService.createInstance(TokenClassificationExtensionPoints);
|
|
101
|
+
this.instantiationService.createInstance(LanguageConfigurationFileHandler);
|
|
102
|
+
this.instantiationService.createInstance(StatusBarItemsExtensionPoint);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
@@ -2,16 +2,19 @@ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.
|
|
|
2
2
|
import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
3
3
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
4
4
|
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
5
|
-
import {
|
|
6
|
-
import { IAuthenticationService } from 'vscode/vscode/vs/workbench/services/authentication/common/authentication';
|
|
5
|
+
import { IAuthenticationService, IAuthenticationExtensionsService } from 'vscode/vscode/vs/workbench/services/authentication/common/authentication';
|
|
7
6
|
import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
|
|
8
7
|
import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
|
|
9
|
-
import
|
|
10
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
8
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
11
9
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
12
10
|
import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
13
11
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
14
12
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
13
|
+
import { IAuthenticationAccessService } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationAccessService';
|
|
14
|
+
import { IAuthenticationUsageService } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationUsageService';
|
|
15
|
+
import { getAuthenticationProviderActivationEvent } from 'vscode/vscode/vs/workbench/services/authentication/browser/authenticationService';
|
|
16
|
+
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
17
|
+
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
|
|
15
18
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
|
|
16
19
|
|
|
17
20
|
class MainThreadAuthenticationProvider extends Disposable {
|
|
@@ -40,14 +43,17 @@ class MainThreadAuthenticationProvider extends Disposable {
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
let MainThreadAuthentication = class MainThreadAuthentication extends Disposable {
|
|
43
|
-
constructor(extHostContext, authenticationService,
|
|
46
|
+
constructor(extHostContext, authenticationService, authenticationExtensionsService, authenticationAccessService, authenticationUsageService, dialogService, notificationService, extensionService, telemetryService, openerService) {
|
|
44
47
|
super();
|
|
45
48
|
this.authenticationService = authenticationService;
|
|
49
|
+
this.authenticationExtensionsService = authenticationExtensionsService;
|
|
50
|
+
this.authenticationAccessService = authenticationAccessService;
|
|
51
|
+
this.authenticationUsageService = authenticationUsageService;
|
|
46
52
|
this.dialogService = dialogService;
|
|
47
|
-
this.storageService = storageService;
|
|
48
53
|
this.notificationService = notificationService;
|
|
49
54
|
this.extensionService = extensionService;
|
|
50
55
|
this.telemetryService = telemetryService;
|
|
56
|
+
this.openerService = openerService;
|
|
51
57
|
this._registrations = this._register(( new DisposableMap()));
|
|
52
58
|
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostAuthentication));
|
|
53
59
|
this._register(this.authenticationService.onDidChangeSessions(e => {
|
|
@@ -85,7 +91,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
85
91
|
$removeSession(providerId, sessionId) {
|
|
86
92
|
return this.authenticationService.removeSession(providerId, sessionId);
|
|
87
93
|
}
|
|
88
|
-
async loginPrompt(providerName, extensionName, recreatingSession,
|
|
94
|
+
async loginPrompt(providerName, extensionName, recreatingSession, options) {
|
|
89
95
|
const message = recreatingSession
|
|
90
96
|
? ( localizeWithPath(
|
|
91
97
|
'vs/workbench/api/browser/mainThreadAuthentication',
|
|
@@ -101,21 +107,44 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
101
107
|
extensionName,
|
|
102
108
|
providerName
|
|
103
109
|
));
|
|
104
|
-
const
|
|
105
|
-
|
|
110
|
+
const buttons = [
|
|
111
|
+
{
|
|
112
|
+
label: ( localizeWithPath(
|
|
113
|
+
'vs/workbench/api/browser/mainThreadAuthentication',
|
|
114
|
+
{ key: 'allow', comment: ['&& denotes a mnemonic'] },
|
|
115
|
+
"&&Allow"
|
|
116
|
+
)),
|
|
117
|
+
run() {
|
|
118
|
+
return true;
|
|
119
|
+
},
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
if (options?.learnMore) {
|
|
123
|
+
buttons.push({
|
|
124
|
+
label: ( localizeWithPath(
|
|
125
|
+
'vs/workbench/api/browser/mainThreadAuthentication',
|
|
126
|
+
'learnMore',
|
|
127
|
+
"Learn more"
|
|
128
|
+
)),
|
|
129
|
+
run: async () => {
|
|
130
|
+
const result = this.loginPrompt(providerName, extensionName, recreatingSession, options);
|
|
131
|
+
await this.openerService.open(URI.revive(options.learnMore), { allowCommands: true });
|
|
132
|
+
return await result;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
const { result } = await this.dialogService.prompt({
|
|
137
|
+
type: Severity$1.Info,
|
|
106
138
|
message,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
{ key: 'allow', comment: ['&& denotes a mnemonic'] },
|
|
111
|
-
"&&Allow"
|
|
112
|
-
))
|
|
139
|
+
buttons,
|
|
140
|
+
detail: options?.detail,
|
|
141
|
+
cancelButton: true,
|
|
113
142
|
});
|
|
114
|
-
return
|
|
143
|
+
return result ?? false;
|
|
115
144
|
}
|
|
116
145
|
async doGetSession(providerId, scopes, extensionId, extensionName, options) {
|
|
117
146
|
const sessions = await this.authenticationService.getSessions(providerId, scopes, true);
|
|
118
|
-
const
|
|
147
|
+
const provider = this.authenticationService.getProvider(providerId);
|
|
119
148
|
if (options.forceNewSession && options.createIfNone) {
|
|
120
149
|
throw new Error('Invalid combination of options. Please remove one of the following: forceNewSession, createIfNone');
|
|
121
150
|
}
|
|
@@ -126,36 +155,38 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
126
155
|
throw new Error('Invalid combination of options. Please remove one of the following: createIfNone, silent');
|
|
127
156
|
}
|
|
128
157
|
if (!options.forceNewSession && sessions.length) {
|
|
129
|
-
if (supportsMultipleAccounts) {
|
|
158
|
+
if (provider.supportsMultipleAccounts) {
|
|
130
159
|
if (options.clearSessionPreference) {
|
|
131
|
-
this.
|
|
160
|
+
this.authenticationExtensionsService.removeSessionPreference(providerId, extensionId, scopes);
|
|
132
161
|
}
|
|
133
162
|
else {
|
|
134
|
-
const existingSessionPreference = this.
|
|
163
|
+
const existingSessionPreference = this.authenticationExtensionsService.getSessionPreference(providerId, extensionId, scopes);
|
|
135
164
|
if (existingSessionPreference) {
|
|
136
165
|
const matchingSession = sessions.find(session => session.id === existingSessionPreference);
|
|
137
|
-
if (matchingSession && this.
|
|
166
|
+
if (matchingSession && this.authenticationAccessService.isAccessAllowed(providerId, matchingSession.account.label, extensionId)) {
|
|
138
167
|
return matchingSession;
|
|
139
168
|
}
|
|
140
169
|
}
|
|
141
170
|
}
|
|
142
171
|
}
|
|
143
|
-
else if (this.
|
|
172
|
+
else if (this.authenticationAccessService.isAccessAllowed(providerId, sessions[0].account.label, extensionId)) {
|
|
144
173
|
return sessions[0];
|
|
145
174
|
}
|
|
146
175
|
}
|
|
147
176
|
if (options.createIfNone || options.forceNewSession) {
|
|
148
|
-
|
|
149
|
-
|
|
177
|
+
let uiOptions;
|
|
178
|
+
if (typeof options.forceNewSession === 'object') {
|
|
179
|
+
uiOptions = options.forceNewSession;
|
|
180
|
+
}
|
|
150
181
|
const recreatingSession = !!(options.forceNewSession && sessions.length);
|
|
151
|
-
const isAllowed = await this.loginPrompt(
|
|
182
|
+
const isAllowed = await this.loginPrompt(provider.label, extensionName, recreatingSession, uiOptions);
|
|
152
183
|
if (!isAllowed) {
|
|
153
184
|
throw new Error('User did not consent to login.');
|
|
154
185
|
}
|
|
155
186
|
let session;
|
|
156
187
|
if (sessions?.length && !options.forceNewSession) {
|
|
157
|
-
session = supportsMultipleAccounts
|
|
158
|
-
? await this.
|
|
188
|
+
session = provider.supportsMultipleAccounts
|
|
189
|
+
? await this.authenticationExtensionsService.selectSession(providerId, extensionId, extensionName, scopes, sessions)
|
|
159
190
|
: sessions[0];
|
|
160
191
|
}
|
|
161
192
|
else {
|
|
@@ -164,30 +195,23 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
164
195
|
sessionToRecreate = options.forceNewSession.sessionToRecreate;
|
|
165
196
|
}
|
|
166
197
|
else {
|
|
167
|
-
const sessionIdToRecreate = this.
|
|
198
|
+
const sessionIdToRecreate = this.authenticationExtensionsService.getSessionPreference(providerId, extensionId, scopes);
|
|
168
199
|
sessionToRecreate = sessionIdToRecreate ? sessions.find(session => session.id === sessionIdToRecreate) : undefined;
|
|
169
200
|
}
|
|
170
201
|
session = await this.authenticationService.createSession(providerId, scopes, { activateImmediate: true, sessionToRecreate });
|
|
171
202
|
}
|
|
172
|
-
this.
|
|
173
|
-
this.
|
|
203
|
+
this.authenticationAccessService.updateAllowedExtensions(providerId, session.account.label, [{ id: extensionId, name: extensionName, allowed: true }]);
|
|
204
|
+
this.authenticationExtensionsService.updateSessionPreference(providerId, extensionId, session);
|
|
174
205
|
return session;
|
|
175
206
|
}
|
|
176
|
-
const validSession = sessions.find(session => this.
|
|
207
|
+
const validSession = sessions.find(session => this.authenticationAccessService.isAccessAllowed(providerId, session.account.label, extensionId));
|
|
177
208
|
if (validSession) {
|
|
178
|
-
if (!this.authenticationService.getSessionPreference(providerId, extensionId, scopes)) {
|
|
179
|
-
if (this.storageService.get(`${extensionName}-${providerId}`, -1 )) {
|
|
180
|
-
this.storageService.remove(`${extensionName}-${providerId}`, -1 );
|
|
181
|
-
}
|
|
182
|
-
this.authenticationService.updateAllowedExtension(providerId, validSession.account.label, extensionId, extensionName, true);
|
|
183
|
-
this.authenticationService.updateSessionPreference(providerId, extensionId, validSession);
|
|
184
|
-
}
|
|
185
209
|
return validSession;
|
|
186
210
|
}
|
|
187
211
|
if (!options.silent) {
|
|
188
212
|
sessions.length
|
|
189
|
-
? this.
|
|
190
|
-
: await this.
|
|
213
|
+
? this.authenticationExtensionsService.requestSessionAccess(providerId, extensionId, extensionName, scopes, sessions)
|
|
214
|
+
: await this.authenticationExtensionsService.requestNewSession(providerId, scopes, extensionId, extensionName);
|
|
191
215
|
}
|
|
192
216
|
return undefined;
|
|
193
217
|
}
|
|
@@ -195,17 +219,17 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
195
219
|
const session = await this.doGetSession(providerId, scopes, extensionId, extensionName, options);
|
|
196
220
|
if (session) {
|
|
197
221
|
this.sendProviderUsageTelemetry(extensionId, providerId);
|
|
198
|
-
addAccountUsage(
|
|
222
|
+
this.authenticationUsageService.addAccountUsage(providerId, session.account.label, extensionId, extensionName);
|
|
199
223
|
}
|
|
200
224
|
return session;
|
|
201
225
|
}
|
|
202
226
|
async $getSessions(providerId, scopes, extensionId, extensionName) {
|
|
203
227
|
const sessions = await this.authenticationService.getSessions(providerId, [...scopes], true);
|
|
204
|
-
const accessibleSessions = sessions.filter(s => this.
|
|
228
|
+
const accessibleSessions = sessions.filter(s => this.authenticationAccessService.isAccessAllowed(providerId, s.account.label, extensionId));
|
|
205
229
|
if (accessibleSessions.length) {
|
|
206
230
|
this.sendProviderUsageTelemetry(extensionId, providerId);
|
|
207
231
|
for (const session of accessibleSessions) {
|
|
208
|
-
addAccountUsage(
|
|
232
|
+
this.authenticationUsageService.addAccountUsage(providerId, session.account.label, extensionId, extensionName);
|
|
209
233
|
}
|
|
210
234
|
}
|
|
211
235
|
return accessibleSessions;
|
|
@@ -217,11 +241,14 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
|
|
|
217
241
|
MainThreadAuthentication = __decorate([
|
|
218
242
|
extHostNamedCustomer(MainContext.MainThreadAuthentication),
|
|
219
243
|
( __param(1, IAuthenticationService)),
|
|
220
|
-
( __param(2,
|
|
221
|
-
( __param(3,
|
|
222
|
-
( __param(4,
|
|
223
|
-
( __param(5,
|
|
224
|
-
( __param(6,
|
|
244
|
+
( __param(2, IAuthenticationExtensionsService)),
|
|
245
|
+
( __param(3, IAuthenticationAccessService)),
|
|
246
|
+
( __param(4, IAuthenticationUsageService)),
|
|
247
|
+
( __param(5, IDialogService)),
|
|
248
|
+
( __param(6, INotificationService)),
|
|
249
|
+
( __param(7, IExtensionService)),
|
|
250
|
+
( __param(8, ITelemetryService)),
|
|
251
|
+
( __param(9, IOpenerService))
|
|
225
252
|
], MainThreadAuthentication);
|
|
226
253
|
|
|
227
254
|
export { MainThreadAuthentication, MainThreadAuthenticationProvider };
|
|
@@ -39,17 +39,10 @@ let MainThreadChat = class MainThreadChat extends Disposable {
|
|
|
39
39
|
if (!session) {
|
|
40
40
|
return undefined;
|
|
41
41
|
}
|
|
42
|
-
const responderAvatarIconUri = session.responderAvatarIconUri &&
|
|
43
|
-
URI.revive(session.responderAvatarIconUri);
|
|
44
42
|
const emitter = ( new Emitter());
|
|
45
43
|
this._stateEmitters.set(session.id, emitter);
|
|
46
44
|
return {
|
|
47
45
|
id: session.id,
|
|
48
|
-
requesterUsername: session.requesterUsername,
|
|
49
|
-
requesterAvatarIconUri: URI.revive(session.requesterAvatarIconUri),
|
|
50
|
-
responderUsername: session.responderUsername,
|
|
51
|
-
responderAvatarIconUri,
|
|
52
|
-
inputPlaceholder: session.inputPlaceholder,
|
|
53
46
|
dispose: () => {
|
|
54
47
|
emitter.dispose();
|
|
55
48
|
this._stateEmitters.delete(session.id);
|
|
@@ -63,12 +56,6 @@ let MainThreadChat = class MainThreadChat extends Disposable {
|
|
|
63
56
|
async $acceptChatState(sessionId, state) {
|
|
64
57
|
this._stateEmitters.get(sessionId)?.fire(state);
|
|
65
58
|
}
|
|
66
|
-
async $sendRequestToProvider(providerId, message) {
|
|
67
|
-
const widget = await this._chatWidgetService.revealViewForProvider(providerId);
|
|
68
|
-
if (widget && widget.viewModel) {
|
|
69
|
-
this._chatService.sendRequestToProvider(widget.viewModel.sessionId, message);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
59
|
async $unregisterChatProvider(handle) {
|
|
73
60
|
this._providerRegistrations.deleteAndDispose(handle);
|
|
74
61
|
}
|
|
@@ -10,7 +10,7 @@ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/comm
|
|
|
10
10
|
import { IChatWidgetService } from 'vscode/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
11
11
|
import { ChatInputPart } from 'vscode/vscode/vs/workbench/contrib/chat/browser/chatInputPart';
|
|
12
12
|
import { AddDynamicVariableAction } from 'vscode/vscode/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables';
|
|
13
|
-
import { IChatAgentService } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatAgents';
|
|
13
|
+
import { IChatAgentService, ChatAgentLocation } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatAgents';
|
|
14
14
|
import { ChatRequestAgentPart } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
|
|
15
15
|
import { ChatRequestParser } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
|
|
16
16
|
import { IChatService } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatService';
|
|
@@ -34,7 +34,7 @@ let MainThreadChatAgents2 = class MainThreadChatAgents2 extends Disposable {
|
|
|
34
34
|
this._register(this._chatService.onDidPerformUserAction(e => {
|
|
35
35
|
if (typeof e.agentId === 'string') {
|
|
36
36
|
for (const [handle, agent] of this._agents) {
|
|
37
|
-
if (agent.
|
|
37
|
+
if (agent.id === e.agentId) {
|
|
38
38
|
if (e.action.kind === 'vote') {
|
|
39
39
|
this._proxy.$acceptFeedback(handle, e.result ?? {}, e.action.direction);
|
|
40
40
|
}
|
|
@@ -50,12 +50,15 @@ let MainThreadChatAgents2 = class MainThreadChatAgents2 extends Disposable {
|
|
|
50
50
|
$unregisterAgent(handle) {
|
|
51
51
|
this._agents.deleteAndDispose(handle);
|
|
52
52
|
}
|
|
53
|
-
$registerAgent(handle, extension,
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
id
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
$registerAgent(handle, extension, id, metadata, dynamicProps) {
|
|
54
|
+
const staticAgentRegistration = this._chatAgentService.getAgent(id);
|
|
55
|
+
if (!staticAgentRegistration && !dynamicProps) {
|
|
56
|
+
if (this._chatAgentService.getAgentsByName(id).length) {
|
|
57
|
+
throw new Error(`chatParticipant must be declared with an ID in package.json. The "id" property may be missing! "${id}"`);
|
|
58
|
+
}
|
|
59
|
+
throw new Error(`chatParticipant must be declared in package.json: ${id}`);
|
|
60
|
+
}
|
|
61
|
+
const impl = {
|
|
59
62
|
invoke: async (request, progress, history, token) => {
|
|
60
63
|
this._pendingProgress.set(request.requestId, progress);
|
|
61
64
|
try {
|
|
@@ -65,24 +68,11 @@ let MainThreadChatAgents2 = class MainThreadChatAgents2 extends Disposable {
|
|
|
65
68
|
this._pendingProgress.delete(request.requestId);
|
|
66
69
|
}
|
|
67
70
|
},
|
|
68
|
-
provideFollowups: async (request, result, token) => {
|
|
71
|
+
provideFollowups: async (request, result, history, token) => {
|
|
69
72
|
if (!this._agents.get(handle)?.hasFollowups) {
|
|
70
73
|
return [];
|
|
71
74
|
}
|
|
72
|
-
return this._proxy.$provideFollowups(request, handle, result, token);
|
|
73
|
-
},
|
|
74
|
-
getLastSlashCommands: (model) => {
|
|
75
|
-
return lastSlashCommands.get(model);
|
|
76
|
-
},
|
|
77
|
-
provideSlashCommands: async (model, history, token) => {
|
|
78
|
-
if (!this._agents.get(handle)?.hasSlashCommands) {
|
|
79
|
-
return [];
|
|
80
|
-
}
|
|
81
|
-
const commands = await this._proxy.$provideSlashCommands(handle, { history }, token);
|
|
82
|
-
if (model) {
|
|
83
|
-
lastSlashCommands.set(model, commands);
|
|
84
|
-
}
|
|
85
|
-
return commands;
|
|
75
|
+
return this._proxy.$provideFollowups(request, handle, result, { history }, token);
|
|
86
76
|
},
|
|
87
77
|
provideWelcomeMessage: (token) => {
|
|
88
78
|
return this._proxy.$provideWelcomeMessage(handle, token);
|
|
@@ -90,11 +80,26 @@ let MainThreadChatAgents2 = class MainThreadChatAgents2 extends Disposable {
|
|
|
90
80
|
provideSampleQuestions: (token) => {
|
|
91
81
|
return this._proxy.$provideSampleQuestions(handle, token);
|
|
92
82
|
}
|
|
93
|
-
}
|
|
83
|
+
};
|
|
84
|
+
let disposable;
|
|
85
|
+
if (!staticAgentRegistration && dynamicProps) {
|
|
86
|
+
disposable = this._chatAgentService.registerDynamicAgent({
|
|
87
|
+
id,
|
|
88
|
+
name: dynamicProps.name,
|
|
89
|
+
description: dynamicProps.description,
|
|
90
|
+
extensionId: extension,
|
|
91
|
+
metadata: revive(metadata),
|
|
92
|
+
slashCommands: [],
|
|
93
|
+
locations: [ChatAgentLocation.Panel]
|
|
94
|
+
}, impl);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
disposable = this._chatAgentService.registerAgentImplementation(id, impl);
|
|
98
|
+
}
|
|
94
99
|
this._agents.set(handle, {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
id: id,
|
|
101
|
+
extensionId: extension,
|
|
102
|
+
dispose: disposable.dispose,
|
|
98
103
|
hasFollowups: metadata.hasFollowups
|
|
99
104
|
});
|
|
100
105
|
}
|
|
@@ -103,9 +108,8 @@ let MainThreadChatAgents2 = class MainThreadChatAgents2 extends Disposable {
|
|
|
103
108
|
if (!data) {
|
|
104
109
|
throw new Error(`No agent with handle ${handle} registered`);
|
|
105
110
|
}
|
|
106
|
-
data.hasSlashCommands = metadataUpdate.hasSlashCommands;
|
|
107
111
|
data.hasFollowups = metadataUpdate.hasFollowups;
|
|
108
|
-
this._chatAgentService.updateAgent(data.
|
|
112
|
+
this._chatAgentService.updateAgent(data.id, revive(metadataUpdate));
|
|
109
113
|
}
|
|
110
114
|
async $handleProgressChunk(requestId, progress) {
|
|
111
115
|
const revivedProgress = revive(progress);
|
|
@@ -128,8 +132,8 @@ let MainThreadChatAgents2 = class MainThreadChatAgents2 extends Disposable {
|
|
|
128
132
|
}
|
|
129
133
|
const parsedRequest = this._instantiationService.createInstance(ChatRequestParser).parseChatRequest(widget.viewModel.sessionId, model.getValue()).parts;
|
|
130
134
|
const agentPart = parsedRequest.find((part) => part instanceof ChatRequestAgentPart);
|
|
131
|
-
const
|
|
132
|
-
if (agentPart?.agent.id !==
|
|
135
|
+
const thisAgentId = this._agents.get(handle)?.id;
|
|
136
|
+
if (agentPart?.agent.id !== thisAgentId) {
|
|
133
137
|
return;
|
|
134
138
|
}
|
|
135
139
|
const range = computeCompletionRanges(model, position, wordRegex);
|