@vscode/chat-lib 0.0.1 → 0.0.3
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/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +2 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +70 -28
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +4 -3
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +85 -109
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +14 -6
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js +6 -5
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +44 -42
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/platform/authentication/node/copilotTokenManager.d.ts.map +1 -1
- package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js +8 -4
- package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +8 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +11 -3
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.js +2 -2
- package/dist/src/_internal/platform/endpoint/common/capiClient.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +4 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +7 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/capiClientImpl.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/capiClientImpl.js +1 -1
- package/dist/src/_internal/platform/endpoint/node/capiClientImpl.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +10 -4
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/env/common/envService.d.ts +5 -0
- package/dist/src/_internal/platform/env/common/envService.d.ts.map +1 -1
- package/dist/src/_internal/platform/env/common/envService.js +2 -1
- package/dist/src/_internal/platform/env/common/envService.js.map +1 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.d.ts +3 -0
- package/dist/src/_internal/platform/env/common/nullEnvService.d.ts.map +1 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.js +8 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.d.ts +3 -3
- package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +0 -3
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +0 -5
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +2 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts +7 -0
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js +1 -0
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts +1 -0
- package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +8 -0
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js +19 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/enums.d.ts +6 -0
- package/dist/src/_internal/util/common/test/shims/enums.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/enums.js +8 -1
- package/dist/src/_internal/util/common/test/shims/enums.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +9 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
- package/dist/src/_internal/vscodeTypes.d.ts +5 -0
- package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
- package/dist/src/_internal/vscodeTypes.js +6 -1
- package/dist/src/_internal/vscodeTypes.js.map +1 -1
- package/dist/src/main.d.ts +15 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +73 -13
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +70 -31
- package/package.json +7 -9
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.d.ts +0 -42
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.d.ts.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.js +0 -125
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.js.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.d.ts +0 -60
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.d.ts.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.js +0 -416
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.js.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.d.ts +0 -30
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.d.ts.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.js +0 -64
- package/dist/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.js.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/visualization.d.ts +0 -26
- package/dist/src/_internal/extension/prompts/node/inline/visualization.d.ts.map +0 -1
- package/dist/src/_internal/extension/prompts/node/inline/visualization.js +0 -41
- package/dist/src/_internal/extension/prompts/node/inline/visualization.js.map +0 -1
- package/dist/src/_internal/platform/editing/common/abstractText.d.ts +0 -58
- package/dist/src/_internal/platform/editing/common/abstractText.d.ts.map +0 -1
- package/dist/src/_internal/platform/editing/common/abstractText.js +0 -129
- package/dist/src/_internal/platform/editing/common/abstractText.js.map +0 -1
- package/dist/src/_internal/platform/parser/node/nodes.d.ts +0 -93
- package/dist/src/_internal/platform/parser/node/nodes.d.ts.map +0 -1
- package/dist/src/_internal/platform/parser/node/nodes.js +0 -133
- package/dist/src/_internal/platform/parser/node/nodes.js.map +0 -1
- package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.d.ts +0 -18
- package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.d.ts.map +0 -1
- package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.js +0 -50
- package/dist/src/_internal/platform/telemetry/common/nullTelemetryService.js.map +0 -1
- package/dist/src/_internal/util/common/arrays.d.ts +0 -18
- package/dist/src/_internal/util/common/arrays.d.ts.map +0 -1
- package/dist/src/_internal/util/common/arrays.js +0 -80
- package/dist/src/_internal/util/common/arrays.js.map +0 -1
- package/src/_internal/extension/byok/node/openAIEndpoint.ts +0 -171
- package/src/_internal/extension/common/constants.ts +0 -90
- package/src/_internal/extension/inlineEdits/common/delayer.ts +0 -108
- package/src/_internal/extension/inlineEdits/common/editRebase.ts +0 -268
- package/src/_internal/extension/inlineEdits/common/ghNearbyNesProvider.tsx +0 -163
- package/src/_internal/extension/inlineEdits/common/nearbyCursorInlineEditProvider.ts +0 -225
- package/src/_internal/extension/inlineEdits/common/rejectionCollector.ts +0 -164
- package/src/_internal/extension/inlineEdits/node/debugRecorder.ts +0 -205
- package/src/_internal/extension/inlineEdits/node/importFiltering.ts +0 -25
- package/src/_internal/extension/inlineEdits/node/nesConfigs.ts +0 -12
- package/src/_internal/extension/inlineEdits/node/nextEditCache.ts +0 -278
- package/src/_internal/extension/inlineEdits/node/nextEditProvider.ts +0 -778
- package/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.ts +0 -983
- package/src/_internal/extension/inlineEdits/node/nextEditResult.ts +0 -40
- package/src/_internal/extension/prompt/common/importStatement.ts +0 -25
- package/src/_internal/extension/prompt/node/chatMLFetcher.ts +0 -706
- package/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.ts +0 -146
- package/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.ts +0 -527
- package/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.ts +0 -76
- package/src/_internal/extension/prompts/node/inline/visualization.ts +0 -65
- package/src/_internal/extension/vscode.proposed.activeComment.d.ts +0 -23
- package/src/_internal/extension/vscode.proposed.aiRelatedInformation.d.ts +0 -49
- package/src/_internal/extension/vscode.proposed.aiSettingsSearch.d.ts +0 -31
- package/src/_internal/extension/vscode.proposed.aiTextSearchProvider.d.ts +0 -41
- package/src/_internal/extension/vscode.proposed.authLearnMore.d.ts +0 -16
- package/src/_internal/extension/vscode.proposed.chatBinaryReferenceData.d.ts +0 -41
- package/src/_internal/extension/vscode.proposed.chatEditing.d.ts +0 -29
- package/src/_internal/extension/vscode.proposed.chatParticipantAdditions.d.ts +0 -636
- package/src/_internal/extension/vscode.proposed.chatParticipantPrivate.d.ts +0 -276
- package/src/_internal/extension/vscode.proposed.chatProvider.d.ts +0 -62
- package/src/_internal/extension/vscode.proposed.chatReadonlyPromptReference.d.ts +0 -17
- package/src/_internal/extension/vscode.proposed.chatReferenceDiagnostic.d.ts +0 -23
- package/src/_internal/extension/vscode.proposed.chatSessionsProvider.d.ts +0 -218
- package/src/_internal/extension/vscode.proposed.chatStatusItem.d.ts +0 -61
- package/src/_internal/extension/vscode.proposed.codeActionAI.d.ts +0 -16
- package/src/_internal/extension/vscode.proposed.commentReveal.d.ts +0 -32
- package/src/_internal/extension/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts +0 -8
- package/src/_internal/extension/vscode.proposed.contribCommentsViewThreadMenus.d.ts +0 -6
- package/src/_internal/extension/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +0 -7
- package/src/_internal/extension/vscode.proposed.dataChannels.d.ts +0 -19
- package/src/_internal/extension/vscode.proposed.defaultChatParticipant.d.ts +0 -52
- package/src/_internal/extension/vscode.proposed.documentFiltersExclusive.d.ts +0 -13
- package/src/_internal/extension/vscode.proposed.embeddings.d.ts +0 -33
- package/src/_internal/extension/vscode.proposed.extensionsAny.d.ts +0 -40
- package/src/_internal/extension/vscode.proposed.findFiles2.d.ts +0 -125
- package/src/_internal/extension/vscode.proposed.findTextInFiles.d.ts +0 -104
- package/src/_internal/extension/vscode.proposed.findTextInFiles2.d.ts +0 -144
- package/src/_internal/extension/vscode.proposed.inlineCompletionsAdditions.d.ts +0 -202
- package/src/_internal/extension/vscode.proposed.interactive.d.ts +0 -11
- package/src/_internal/extension/vscode.proposed.languageModelCapabilities.d.ts +0 -25
- package/src/_internal/extension/vscode.proposed.languageModelDataPart.d.ts +0 -163
- package/src/_internal/extension/vscode.proposed.languageModelSystem.d.ts +0 -17
- package/src/_internal/extension/vscode.proposed.languageModelThinkingPart.d.ts +0 -49
- package/src/_internal/extension/vscode.proposed.languageModelToolResultAudience.d.ts +0 -36
- package/src/_internal/extension/vscode.proposed.mappedEditsProvider.d.ts +0 -110
- package/src/_internal/extension/vscode.proposed.newSymbolNamesProvider.d.ts +0 -47
- package/src/_internal/extension/vscode.proposed.readonlyMessage.d.ts +0 -14
- package/src/_internal/extension/vscode.proposed.resolvers.d.ts +0 -475
- package/src/_internal/extension/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
- package/src/_internal/extension/vscode.proposed.taskProblemMatcherStatus.d.ts +0 -42
- package/src/_internal/extension/vscode.proposed.terminalDataWriteEvent.d.ts +0 -32
- package/src/_internal/extension/vscode.proposed.terminalExecuteCommandEvent.d.ts +0 -48
- package/src/_internal/extension/vscode.proposed.terminalQuickFixProvider.d.ts +0 -87
- package/src/_internal/extension/vscode.proposed.terminalSelection.d.ts +0 -16
- package/src/_internal/extension/vscode.proposed.testObserver.d.ts +0 -199
- package/src/_internal/extension/vscode.proposed.textDocumentChangeReason.d.ts +0 -30
- package/src/_internal/extension/vscode.proposed.textSearchProvider.d.ts +0 -281
- package/src/_internal/extension/vscode.proposed.textSearchProvider2.d.ts +0 -297
- package/src/_internal/extension/xtab/common/promptCrafting.ts +0 -670
- package/src/_internal/extension/xtab/node/xtabEndpoint.ts +0 -102
- package/src/_internal/extension/xtab/node/xtabProvider.ts +0 -976
- package/src/_internal/extension/xtab/node/xtabUtils.ts +0 -62
- package/src/_internal/platform/authentication/common/authentication.ts +0 -309
- package/src/_internal/platform/authentication/common/copilotToken.ts +0 -300
- package/src/_internal/platform/authentication/common/copilotTokenManager.ts +0 -59
- package/src/_internal/platform/authentication/common/copilotTokenStore.ts +0 -40
- package/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.ts +0 -96
- package/src/_internal/platform/authentication/node/copilotTokenManager.ts +0 -303
- package/src/_internal/platform/chat/common/chatMLFetcher.ts +0 -124
- package/src/_internal/platform/chat/common/chatQuotaService.ts +0 -63
- package/src/_internal/platform/chat/common/chatQuotaServiceImpl.ts +0 -96
- package/src/_internal/platform/chat/common/commonTypes.ts +0 -353
- package/src/_internal/platform/chat/common/conversationOptions.ts +0 -16
- package/src/_internal/platform/chat/common/globalStringUtils.ts +0 -54
- package/src/_internal/platform/chat/common/interactionService.ts +0 -35
- package/src/_internal/platform/configuration/common/configurationService.ts +0 -803
- package/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.ts +0 -39
- package/src/_internal/platform/configuration/common/jsonSchema.ts +0 -139
- package/src/_internal/platform/configuration/common/validator.ts +0 -242
- package/src/_internal/platform/diff/common/diffService.ts +0 -41
- package/src/_internal/platform/diff/common/diffWorker.ts +0 -83
- package/src/_internal/platform/diff/node/diffServiceImpl.ts +0 -85
- package/src/_internal/platform/editing/common/abstractText.ts +0 -177
- package/src/_internal/platform/editing/common/notebookDocumentSnapshot.ts +0 -122
- package/src/_internal/platform/editing/common/positionOffsetTransformer.ts +0 -202
- package/src/_internal/platform/editing/common/textDocumentSnapshot.ts +0 -274
- package/src/_internal/platform/endpoint/common/capiClient.ts +0 -37
- package/src/_internal/platform/endpoint/common/chatModelCapabilities.ts +0 -115
- package/src/_internal/platform/endpoint/common/domainService.ts +0 -27
- package/src/_internal/platform/endpoint/common/endpointProvider.ts +0 -104
- package/src/_internal/platform/endpoint/common/endpointTypes.ts +0 -12
- package/src/_internal/platform/endpoint/common/licenseAgreement.ts +0 -11
- package/src/_internal/platform/endpoint/common/statefulMarkerContainer.tsx +0 -85
- package/src/_internal/platform/endpoint/common/thinkingDataContainer.tsx +0 -44
- package/src/_internal/platform/endpoint/node/capiClientImpl.ts +0 -18
- package/src/_internal/platform/endpoint/node/chatEndpoint.ts +0 -435
- package/src/_internal/platform/endpoint/node/domainServiceImpl.ts +0 -80
- package/src/_internal/platform/endpoint/node/proxyXtabEndpoint.ts +0 -43
- package/src/_internal/platform/endpoint/node/responsesApi.ts +0 -326
- package/src/_internal/platform/env/common/envService.ts +0 -134
- package/src/_internal/platform/env/common/nullEnvService.ts +0 -68
- package/src/_internal/platform/env/common/packagejson.ts +0 -49
- package/src/_internal/platform/git/common/gitExtensionService.ts +0 -21
- package/src/_internal/platform/git/common/nullGitExtensionService.ts +0 -20
- package/src/_internal/platform/git/vscode/git.d.ts +0 -414
- package/src/_internal/platform/github/common/githubAPI.ts +0 -44
- package/src/_internal/platform/github/common/githubService.ts +0 -87
- package/src/_internal/platform/github/common/nullOctokitServiceImpl.ts +0 -21
- package/src/_internal/platform/ignore/common/ignoreService.ts +0 -72
- package/src/_internal/platform/inlineCompletions/common/api.ts +0 -198
- package/src/_internal/platform/inlineEdits/common/dataTypes/diagnosticData.ts +0 -32
- package/src/_internal/platform/inlineEdits/common/dataTypes/documentId.ts +0 -52
- package/src/_internal/platform/inlineEdits/common/dataTypes/edit.ts +0 -165
- package/src/_internal/platform/inlineEdits/common/dataTypes/editUtils.ts +0 -74
- package/src/_internal/platform/inlineEdits/common/dataTypes/fetchCancellationError.ts +0 -14
- package/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.ts +0 -107
- package/src/_internal/platform/inlineEdits/common/dataTypes/languageId.ts +0 -14
- package/src/_internal/platform/inlineEdits/common/dataTypes/permutation.ts +0 -69
- package/src/_internal/platform/inlineEdits/common/dataTypes/rootedLineEdit.ts +0 -49
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLength.ts +0 -74
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/combineTextEditInfos.ts +0 -132
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/length.ts +0 -184
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/textEditInfo.ts +0 -32
- package/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.ts +0 -89
- package/src/_internal/platform/inlineEdits/common/debugRecorderBookmark.ts +0 -10
- package/src/_internal/platform/inlineEdits/common/editReason.ts +0 -134
- package/src/_internal/platform/inlineEdits/common/inlineEditLogContext.ts +0 -490
- package/src/_internal/platform/inlineEdits/common/observableGit.ts +0 -49
- package/src/_internal/platform/inlineEdits/common/observableWorkspace.ts +0 -239
- package/src/_internal/platform/inlineEdits/common/responseProcessor.ts +0 -249
- package/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.ts +0 -468
- package/src/_internal/platform/inlineEdits/common/statelessNextEditProviders.ts +0 -59
- package/src/_internal/platform/inlineEdits/common/utils/observable.ts +0 -54
- package/src/_internal/platform/inlineEdits/common/utils/stringifyChatMessages.ts +0 -29
- package/src/_internal/platform/inlineEdits/common/utils/utils.ts +0 -56
- package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/historyContextProvider.ts +0 -60
- package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesHistoryContextProvider.ts +0 -353
- package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesXtabHistoryTracker.ts +0 -176
- package/src/_internal/platform/languageContextProvider/common/languageContextProviderService.ts +0 -25
- package/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.ts +0 -38
- package/src/_internal/platform/languageServer/common/languageContextService.ts +0 -186
- package/src/_internal/platform/languages/common/languageDiagnosticsService.ts +0 -67
- package/src/_internal/platform/languages/common/testLanguageDiagnosticsService.ts +0 -28
- package/src/_internal/platform/log/common/logService.ts +0 -232
- package/src/_internal/platform/nesFetch/common/completionsAPI.ts +0 -78
- package/src/_internal/platform/nesFetch/common/completionsFetchService.ts +0 -118
- package/src/_internal/platform/nesFetch/common/responseStream.ts +0 -151
- package/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.ts +0 -236
- package/src/_internal/platform/nesFetch/node/streamTransformer.ts +0 -95
- package/src/_internal/platform/networking/common/fetch.ts +0 -349
- package/src/_internal/platform/networking/common/fetcherService.ts +0 -84
- package/src/_internal/platform/networking/common/networking.ts +0 -442
- package/src/_internal/platform/networking/common/openai.ts +0 -273
- package/src/_internal/platform/networking/node/chatStream.ts +0 -137
- package/src/_internal/platform/networking/node/stream.ts +0 -749
- package/src/_internal/platform/notebook/common/alternativeContent.ts +0 -89
- package/src/_internal/platform/notebook/common/alternativeContentFormat.ts +0 -10
- package/src/_internal/platform/notebook/common/alternativeContentProvider.json.ts +0 -262
- package/src/_internal/platform/notebook/common/alternativeContentProvider.text.ts +0 -243
- package/src/_internal/platform/notebook/common/alternativeContentProvider.ts +0 -41
- package/src/_internal/platform/notebook/common/alternativeContentProvider.xml.ts +0 -205
- package/src/_internal/platform/notebook/common/alternativeNotebookDocument.ts +0 -155
- package/src/_internal/platform/notebook/common/helpers.ts +0 -212
- package/src/_internal/platform/notebook/common/notebookService.ts +0 -43
- package/src/_internal/platform/openai/node/fetch.ts +0 -596
- package/src/_internal/platform/parser/node/nodes.ts +0 -190
- package/src/_internal/platform/requestLogger/node/nullRequestLogger.ts +0 -26
- package/src/_internal/platform/requestLogger/node/requestLogger.ts +0 -383
- package/src/_internal/platform/simulationTestContext/common/simulationTestContext.ts +0 -29
- package/src/_internal/platform/snippy/common/snippyService.ts +0 -25
- package/src/_internal/platform/telemetry/common/nullExperimentationService.ts +0 -64
- package/src/_internal/platform/telemetry/common/nullTelemetryService.ts +0 -53
- package/src/_internal/platform/telemetry/common/telemetry.ts +0 -215
- package/src/_internal/platform/telemetry/common/telemetryData.ts +0 -205
- package/src/_internal/platform/thinking/common/thinking.ts +0 -61
- package/src/_internal/platform/thinking/common/thinkingUtils.ts +0 -57
- package/src/_internal/platform/tokenizer/node/parseTikTokens.ts +0 -23
- package/src/_internal/platform/tokenizer/node/tikTokenizerImpl.ts +0 -74
- package/src/_internal/platform/tokenizer/node/tikTokenizerWorker.ts +0 -24
- package/src/_internal/platform/tokenizer/node/tokenizer.ts +0 -357
- package/src/_internal/platform/workspace/common/workspaceService.ts +0 -226
- package/src/_internal/platform/workspaceRecorder/common/workspaceLog.ts +0 -118
- package/src/_internal/util/common/anomalyDetection.ts +0 -112
- package/src/_internal/util/common/arrays.ts +0 -81
- package/src/_internal/util/common/async.ts +0 -155
- package/src/_internal/util/common/cache.ts +0 -183
- package/src/_internal/util/common/crypto.ts +0 -41
- package/src/_internal/util/common/errors.ts +0 -22
- package/src/_internal/util/common/globals.d.ts +0 -12
- package/src/_internal/util/common/imageUtils.ts +0 -154
- package/src/_internal/util/common/languages.ts +0 -940
- package/src/_internal/util/common/notebooks.ts +0 -286
- package/src/_internal/util/common/result.ts +0 -71
- package/src/_internal/util/common/services.ts +0 -43
- package/src/_internal/util/common/test/shims/chatTypes.ts +0 -448
- package/src/_internal/util/common/test/shims/editing.ts +0 -233
- package/src/_internal/util/common/test/shims/enums.ts +0 -61
- package/src/_internal/util/common/test/shims/l10n.ts +0 -37
- package/src/_internal/util/common/test/shims/newSymbolName.ts +0 -23
- package/src/_internal/util/common/test/shims/terminal.ts +0 -33
- package/src/_internal/util/common/test/shims/vscodeTypesShim.ts +0 -115
- package/src/_internal/util/common/time.ts +0 -31
- package/src/_internal/util/common/tokenizer.ts +0 -30
- package/src/_internal/util/common/tracing.ts +0 -52
- package/src/_internal/util/common/types.ts +0 -33
- package/src/_internal/util/common/variableLengthQuantity.ts +0 -40
- package/src/_internal/util/node/worker.ts +0 -130
- package/src/_internal/util/vs/base/common/arrays.ts +0 -926
- package/src/_internal/util/vs/base/common/arraysFind.ts +0 -206
- package/src/_internal/util/vs/base/common/assert.ts +0 -89
- package/src/_internal/util/vs/base/common/async.ts +0 -2582
- package/src/_internal/util/vs/base/common/buffer.ts +0 -501
- package/src/_internal/util/vs/base/common/cache.ts +0 -122
- package/src/_internal/util/vs/base/common/cancellation.ts +0 -150
- package/src/_internal/util/vs/base/common/charCode.ts +0 -452
- package/src/_internal/util/vs/base/common/codicons.ts +0 -66
- package/src/_internal/util/vs/base/common/codiconsLibrary.ts +0 -618
- package/src/_internal/util/vs/base/common/codiconsUtil.ts +0 -30
- package/src/_internal/util/vs/base/common/collections.ts +0 -156
- package/src/_internal/util/vs/base/common/diff/diff.ts +0 -1317
- package/src/_internal/util/vs/base/common/diff/diffChange.ts +0 -62
- package/src/_internal/util/vs/base/common/equals.ts +0 -148
- package/src/_internal/util/vs/base/common/errors.ts +0 -342
- package/src/_internal/util/vs/base/common/event.ts +0 -1782
- package/src/_internal/util/vs/base/common/extpath.ts +0 -425
- package/src/_internal/util/vs/base/common/filters.ts +0 -928
- package/src/_internal/util/vs/base/common/functional.ts +0 -34
- package/src/_internal/util/vs/base/common/glob.ts +0 -839
- package/src/_internal/util/vs/base/common/hash.ts +0 -326
- package/src/_internal/util/vs/base/common/htmlContent.ts +0 -212
- package/src/_internal/util/vs/base/common/iconLabels.ts +0 -118
- package/src/_internal/util/vs/base/common/iterator.ts +0 -196
- package/src/_internal/util/vs/base/common/lazy.ts +0 -59
- package/src/_internal/util/vs/base/common/lifecycle.ts +0 -845
- package/src/_internal/util/vs/base/common/linkedList.ts +0 -144
- package/src/_internal/util/vs/base/common/map.ts +0 -954
- package/src/_internal/util/vs/base/common/marshallingIds.ts +0 -35
- package/src/_internal/util/vs/base/common/mime.ts +0 -136
- package/src/_internal/util/vs/base/common/naturalLanguage/korean.ts +0 -425
- package/src/_internal/util/vs/base/common/network.ts +0 -429
- package/src/_internal/util/vs/base/common/numbers.ts +0 -166
- package/src/_internal/util/vs/base/common/objects.ts +0 -242
- package/src/_internal/util/vs/base/common/observable.ts +0 -10
- package/src/_internal/util/vs/base/common/observableInternal/base.ts +0 -208
- package/src/_internal/util/vs/base/common/observableInternal/changeTracker.ts +0 -96
- package/src/_internal/util/vs/base/common/observableInternal/commonFacade/cancellation.ts +0 -9
- package/src/_internal/util/vs/base/common/observableInternal/commonFacade/deps.ts +0 -12
- package/src/_internal/util/vs/base/common/observableInternal/debugLocation.ts +0 -88
- package/src/_internal/util/vs/base/common/observableInternal/debugName.ts +0 -150
- package/src/_internal/util/vs/base/common/observableInternal/experimental/utils.ts +0 -62
- package/src/_internal/util/vs/base/common/observableInternal/index.ts +0 -61
- package/src/_internal/util/vs/base/common/observableInternal/logging/consoleObservableLogger.ts +0 -388
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerApi.d.ts +0 -154
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts +0 -80
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/devToolsLogger.ts +0 -485
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/rpc.ts +0 -103
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/utils.ts +0 -69
- package/src/_internal/util/vs/base/common/observableInternal/logging/logging.ts +0 -133
- package/src/_internal/util/vs/base/common/observableInternal/map.ts +0 -81
- package/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.ts +0 -172
- package/src/_internal/util/vs/base/common/observableInternal/observables/constObservable.ts +0 -44
- package/src/_internal/util/vs/base/common/observableInternal/observables/derived.ts +0 -190
- package/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.ts +0 -445
- package/src/_internal/util/vs/base/common/observableInternal/observables/lazyObservableValue.ts +0 -154
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.ts +0 -174
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignal.ts +0 -67
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignalFromEvent.ts +0 -62
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableValue.ts +0 -131
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableValueOpts.ts +0 -37
- package/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.ts +0 -188
- package/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.ts +0 -256
- package/src/_internal/util/vs/base/common/observableInternal/set.ts +0 -78
- package/src/_internal/util/vs/base/common/observableInternal/transaction.ts +0 -115
- package/src/_internal/util/vs/base/common/observableInternal/utils/promise.ts +0 -129
- package/src/_internal/util/vs/base/common/observableInternal/utils/runOnChange.ts +0 -65
- package/src/_internal/util/vs/base/common/observableInternal/utils/utils.ts +0 -281
- package/src/_internal/util/vs/base/common/observableInternal/utils/utilsCancellation.ts +0 -101
- package/src/_internal/util/vs/base/common/observableInternal/utils/valueWithChangeEvent.ts +0 -31
- package/src/_internal/util/vs/base/common/path.ts +0 -1591
- package/src/_internal/util/vs/base/common/platform.ts +0 -282
- package/src/_internal/util/vs/base/common/process.ts +0 -78
- package/src/_internal/util/vs/base/common/resources.ts +0 -446
- package/src/_internal/util/vs/base/common/sequence.ts +0 -36
- package/src/_internal/util/vs/base/common/sseParser.ts +0 -247
- package/src/_internal/util/vs/base/common/stopwatch.ts +0 -43
- package/src/_internal/util/vs/base/common/stream.ts +0 -792
- package/src/_internal/util/vs/base/common/strings.ts +0 -1364
- package/src/_internal/util/vs/base/common/symbols.ts +0 -11
- package/src/_internal/util/vs/base/common/themables.ts +0 -106
- package/src/_internal/util/vs/base/common/types.ts +0 -345
- package/src/_internal/util/vs/base/common/uint.ts +0 -61
- package/src/_internal/util/vs/base/common/uri.ts +0 -752
- package/src/_internal/util/vs/base/common/uuid.ts +0 -72
- package/src/_internal/util/vs/base-common.d.ts +0 -42
- package/src/_internal/util/vs/editor/common/core/editOperation.ts +0 -62
- package/src/_internal/util/vs/editor/common/core/edits/edit.ts +0 -399
- package/src/_internal/util/vs/editor/common/core/edits/lineEdit.ts +0 -414
- package/src/_internal/util/vs/editor/common/core/edits/stringEdit.ts +0 -568
- package/src/_internal/util/vs/editor/common/core/edits/textEdit.ts +0 -411
- package/src/_internal/util/vs/editor/common/core/position.ts +0 -186
- package/src/_internal/util/vs/editor/common/core/range.ts +0 -519
- package/src/_internal/util/vs/editor/common/core/ranges/lineRange.ts +0 -416
- package/src/_internal/util/vs/editor/common/core/ranges/offsetRange.ts +0 -275
- package/src/_internal/util/vs/editor/common/core/text/abstractText.ts +0 -127
- package/src/_internal/util/vs/editor/common/core/text/positionToOffset.ts +0 -26
- package/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.ts +0 -144
- package/src/_internal/util/vs/editor/common/core/text/textLength.ts +0 -150
- package/src/_internal/util/vs/editor/common/core/wordHelper.ts +0 -177
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.ts +0 -210
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.ts +0 -109
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.ts +0 -178
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.ts +0 -331
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.ts +0 -273
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.ts +0 -475
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.ts +0 -47
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.ts +0 -248
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/utils.ts +0 -76
- package/src/_internal/util/vs/editor/common/diff/legacyLinesDiffComputer.ts +0 -693
- package/src/_internal/util/vs/editor/common/diff/linesDiffComputer.ts +0 -61
- package/src/_internal/util/vs/editor/common/diff/rangeMapping.ts +0 -418
- package/src/_internal/util/vs/editor/common/model/prefixSumComputer.ts +0 -304
- package/src/_internal/util/vs/nls.messages.ts +0 -21
- package/src/_internal/util/vs/nls.ts +0 -243
- package/src/_internal/util/vs/platform/instantiation/common/descriptors.ts +0 -23
- package/src/_internal/util/vs/platform/instantiation/common/graph.ts +0 -113
- package/src/_internal/util/vs/platform/instantiation/common/instantiation.ts +0 -127
- package/src/_internal/util/vs/platform/instantiation/common/instantiationService.ts +0 -483
- package/src/_internal/util/vs/platform/instantiation/common/serviceCollection.ts +0 -34
- package/src/_internal/util/vs/vscode-globals-nls.d.ts +0 -42
- package/src/_internal/util/vs/vscode-globals-product.d.ts +0 -35
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.ts +0 -109
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/es5ClassCompat.ts +0 -34
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/location.ts +0 -51
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.ts +0 -83
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.ts +0 -296
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/position.ts +0 -195
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/range.ts +0 -167
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.ts +0 -94
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.ts +0 -103
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.ts +0 -44
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/symbolInformation.ts +0 -89
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.ts +0 -99
- package/src/_internal/vscodeTypes.ts +0 -100
- package/src/main.ts +0 -207
- package/src/package.json +0 -4063
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
|
|
6
|
-
import { IResponsePart } from '../../../platform/chat/common/chatMLFetcher';
|
|
7
|
-
import { AsyncIterableObject } from '../../../util/vs/base/common/async';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export function toLines(stream: AsyncIterableObject<IResponsePart>) {
|
|
11
|
-
return new AsyncIterableObject<string>(async (emitter) => {
|
|
12
|
-
let buffer = '';
|
|
13
|
-
|
|
14
|
-
for await (const chunk of stream) {
|
|
15
|
-
buffer += chunk.delta.text;
|
|
16
|
-
|
|
17
|
-
const parts = buffer.split(/\r?\n/);
|
|
18
|
-
buffer = parts.pop() ?? '';
|
|
19
|
-
|
|
20
|
-
emitter.emitMany(parts);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (buffer) {
|
|
24
|
-
emitter.emitOne(buffer);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Remove backticks on the first and last lines.
|
|
31
|
-
*/
|
|
32
|
-
export function linesWithBackticksRemoved(linesStream: AsyncIterableObject<string>) {
|
|
33
|
-
return new AsyncIterableObject<string>(async (emitter) => {
|
|
34
|
-
let lineN = -1;
|
|
35
|
-
|
|
36
|
-
let bufferedBacktickLine: string | undefined;
|
|
37
|
-
|
|
38
|
-
for await (const line of linesStream) {
|
|
39
|
-
++lineN;
|
|
40
|
-
|
|
41
|
-
if (bufferedBacktickLine) {
|
|
42
|
-
emitter.emitOne(bufferedBacktickLine);
|
|
43
|
-
bufferedBacktickLine = undefined;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (line.match(/^```[a-z]*$/)) {
|
|
47
|
-
if (lineN === 0) {
|
|
48
|
-
continue;
|
|
49
|
-
} else {
|
|
50
|
-
// maybe middle of stream or last line
|
|
51
|
-
// we set it to buffer; if it's midle of stream, it will be emitted
|
|
52
|
-
// if last line, it will be omitted
|
|
53
|
-
bufferedBacktickLine = line;
|
|
54
|
-
}
|
|
55
|
-
} else {
|
|
56
|
-
emitter.emitOne(line);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// ignore bufferedLine
|
|
61
|
-
});
|
|
62
|
-
}
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import type { AuthenticationGetSessionOptions, AuthenticationSession } from 'vscode';
|
|
6
|
-
import { createServiceIdentifier } from '../../../util/common/services';
|
|
7
|
-
import { Emitter, Event } from '../../../util/vs/base/common/event';
|
|
8
|
-
import { Disposable } from '../../../util/vs/base/common/lifecycle';
|
|
9
|
-
import { derived } from '../../../util/vs/base/common/observableInternal';
|
|
10
|
-
import { AuthPermissionMode, ConfigKey, IConfigurationService } from '../../configuration/common/configurationService';
|
|
11
|
-
import { ILogService } from '../../log/common/logService';
|
|
12
|
-
import { CopilotToken } from './copilotToken';
|
|
13
|
-
import { ICopilotTokenManager } from './copilotTokenManager';
|
|
14
|
-
import { ICopilotTokenStore } from './copilotTokenStore';
|
|
15
|
-
|
|
16
|
-
// Minimum set of scopes needed for Copilot to work
|
|
17
|
-
export const GITHUB_SCOPE_USER_EMAIL = ['user:email'];
|
|
18
|
-
|
|
19
|
-
// Old list of scopes still used for backwards compatibility
|
|
20
|
-
export const GITHUB_SCOPE_READ_USER = ['read:user'];
|
|
21
|
-
|
|
22
|
-
// The same scopes that GitHub Pull Request, GitHub Repositories, and others use
|
|
23
|
-
export const GITHUB_SCOPE_ALIGNED = ['read:user', 'user:email', 'repo', 'workflow'];
|
|
24
|
-
|
|
25
|
-
export class MinimalModeError extends Error {
|
|
26
|
-
constructor() {
|
|
27
|
-
super('The authentication service is in minimal mode.');
|
|
28
|
-
this.name = 'MinimalModeError';
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export const IAuthenticationService = createServiceIdentifier<IAuthenticationService>('IAuthenticationService');
|
|
33
|
-
export interface IAuthenticationService {
|
|
34
|
-
|
|
35
|
-
readonly _serviceBrand: undefined;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Whether the authentication service is in minimal mode. If true, the authentication service will not attempt to
|
|
39
|
-
* fetch the permissive token. This means that:
|
|
40
|
-
* * {@link getPermissiveGitHubSession} interactive flows will always throw an error
|
|
41
|
-
* * {@link getPermissiveGitHubSession} silent flows and {@link permissiveGitHubSession} will always return undefined
|
|
42
|
-
*/
|
|
43
|
-
readonly isMinimalMode: boolean;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Event emitter that will fire an event every time the authentication status changes. This is used for example to detect when the user
|
|
47
|
-
* logs out of GitHub or when they log in with a more permissive token.
|
|
48
|
-
*
|
|
49
|
-
* @note For best practice of handling of the user's authentication state, you should react to this event.
|
|
50
|
-
*/
|
|
51
|
-
readonly onDidAuthenticationChange: Event<void>;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @deprecated Use {@link onDidAuthenticationChange} instead. This event fires when the access token changes and not the copilot token.
|
|
55
|
-
*/
|
|
56
|
-
readonly onDidAccessTokenChange: Event<void>;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Checks if there is currently any session available in the cache. Does not make any network requests and does not
|
|
60
|
-
* call out to the underlying authentication provider.
|
|
61
|
-
*
|
|
62
|
-
* @note See {@link getAnyGitHubToken} for more information and for an async version by calling {@link getAnyGitHubSession} with `{ silent: true }`.
|
|
63
|
-
* @note For best practice of handling of the user's authentication state, you should react to {@link onDidAuthenticationChange}.
|
|
64
|
-
* @note This token will have at least the `user:email` scope to be able to access the minimum Copilot API.
|
|
65
|
-
*/
|
|
66
|
-
readonly anyGitHubSession: AuthenticationSession | undefined;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Returns a currently valid GitHub session, also known as session or auth session. Skips the cache and calls
|
|
70
|
-
* the underlying authentication provider using the options passed in.
|
|
71
|
-
*
|
|
72
|
-
* @note You should typically use the synchronous version {@link anyGitHubToken} if you are fetching a session silently.
|
|
73
|
-
* @note For best practice of handling of the user's authentication state, you should react to {@link onDidAuthenticationChange}.
|
|
74
|
-
* @note This token will have at least the `user:email` scope to be able to access the minimum Copilot API.
|
|
75
|
-
* @returns an auth session or undefined if none is found.
|
|
76
|
-
*/
|
|
77
|
-
getAnyGitHubSession(options?: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Checks if there is currently a permissive session available in the cache. Does not make any network requests and does not
|
|
81
|
-
* call out to the underlying authentication provider.
|
|
82
|
-
*
|
|
83
|
-
* @note See {@link getPermissiveGitHubToken} for more information and for an async version by calling {@link getPermissiveGitHubSession} with `{ silent: true }`.
|
|
84
|
-
* @note For best practice of handling of the user's authentication state, you should react to {@link onDidAuthenticationChange}.
|
|
85
|
-
* @returns undefined if no auth session is available or Minimal Mode is enabled. Otherwise, returns an auth session with the `repo` scope.
|
|
86
|
-
*/
|
|
87
|
-
readonly permissiveGitHubSession: AuthenticationSession | undefined;
|
|
88
|
-
/**
|
|
89
|
-
* Returns a currently valid permissive GitHub session, also known as session or auth session. Skips the cache and calls
|
|
90
|
-
* the underlying authentication provider using the options passed in.
|
|
91
|
-
*
|
|
92
|
-
* @note We have the {@link IAuthenticationChatUpgradeService} to upgrade the session to a permissive one. Use this for confirmation in Chat/Edits instead of showing the modal.
|
|
93
|
-
* @note You should typically use the synchronous version {@link getPermissiveGitHubToken} if you are fetching a session silently.
|
|
94
|
-
* @note For best practice of handling of the user's authentication state, you should react to {@link onDidAuthenticationChange}.
|
|
95
|
-
* @note This token will have at least the `repo` scope to be able to access the extended features of the Copilot API.
|
|
96
|
-
* @returns an auth session or undefined if none is found.
|
|
97
|
-
* @throws MinimalModeError {@link MinimalModeError} if the authentication service is in minimal mode.
|
|
98
|
-
*/
|
|
99
|
-
getPermissiveGitHubSession(options: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Checks if there is currently a Copilot token available in the cache. Does not make any network requests.
|
|
103
|
-
* See {@link getCopilotToken} for more information and for an async version.
|
|
104
|
-
*
|
|
105
|
-
* @note we omit token here because it is possibly expired. If you need it, use {@link getCopilotToken} instead as it includes a refresh mechanism.
|
|
106
|
-
* @note For best practice of handling of the user's authentication state, you should react to {@link onDidAuthenticationChange}.
|
|
107
|
-
*/
|
|
108
|
-
readonly copilotToken: Omit<CopilotToken, 'token'> | undefined;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Return the token needed to authenticate with the speculative decoding endpoint.
|
|
113
|
-
* This token is public as it is set via a request to the ChatMLFetcher and reset either via expiration or a 403 response from the SD endpoint.
|
|
114
|
-
* @note There is no guarantee this is a valid token and it can still reject due to 403 with the SD endpoint
|
|
115
|
-
*/
|
|
116
|
-
speculativeDecodingEndpointToken: string | undefined;
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Return a currently valid Copilot token, retrieving a fresh one if
|
|
120
|
-
* necessary.
|
|
121
|
-
*
|
|
122
|
-
* @param force will force a refresh of the token, even if not expired
|
|
123
|
-
* @returns a Copilot token or throws an error if none is found.
|
|
124
|
-
* @note For best practice of handling of the user's authentication state, you should react to {@link onDidAuthenticationChange}.
|
|
125
|
-
*/
|
|
126
|
-
getCopilotToken(force?: boolean): Promise<CopilotToken>;
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Drop the current Copilot token as we received an HTTP error while trying
|
|
130
|
-
* to use it that indicates it's no longer valid.
|
|
131
|
-
*/
|
|
132
|
-
resetCopilotToken(httpError?: number): void;
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Fired when the authentication state changes for ado.
|
|
136
|
-
*/
|
|
137
|
-
readonly onDidAdoAuthenticationChange: Event<void>;
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Returns a valid Azure DevOps session for the user
|
|
141
|
-
*/
|
|
142
|
-
getAdoAccessTokenBase64(options?: AuthenticationGetSessionOptions): Promise<string | undefined>;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export abstract class BaseAuthenticationService extends Disposable implements IAuthenticationService {
|
|
146
|
-
declare readonly _serviceBrand: undefined;
|
|
147
|
-
|
|
148
|
-
protected readonly _onDidAuthenticationChange = this._register(new Emitter<void>());
|
|
149
|
-
readonly onDidAuthenticationChange: Event<void> = this._onDidAuthenticationChange.event;
|
|
150
|
-
|
|
151
|
-
protected readonly _onDidAccessTokenChange = this._register(new Emitter<void>());
|
|
152
|
-
readonly onDidAccessTokenChange: Event<void> = this._onDidAccessTokenChange.event;
|
|
153
|
-
|
|
154
|
-
protected readonly _onDidAdoAuthenticationChange = this._register(new Emitter<void>());
|
|
155
|
-
readonly onDidAdoAuthenticationChange: Event<void> = this._onDidAdoAuthenticationChange.event;
|
|
156
|
-
|
|
157
|
-
constructor(
|
|
158
|
-
@ILogService protected readonly _logService: ILogService,
|
|
159
|
-
@ICopilotTokenStore protected readonly _tokenStore: ICopilotTokenStore,
|
|
160
|
-
@ICopilotTokenManager private readonly _tokenManager: ICopilotTokenManager,
|
|
161
|
-
@IConfigurationService protected readonly _configurationService: IConfigurationService,
|
|
162
|
-
) {
|
|
163
|
-
super();
|
|
164
|
-
this._register(_tokenManager.onDidCopilotTokenRefresh(() => {
|
|
165
|
-
this._logService.debug('Handling CopilotToken refresh.');
|
|
166
|
-
void this._handleAuthChangeEvent();
|
|
167
|
-
}));
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
//#region isMinimalMode
|
|
171
|
-
|
|
172
|
-
protected _isMinimalMode = derived(r => this._configurationService.getConfigObservable(ConfigKey.Shared.AuthPermissions).read(r) === AuthPermissionMode.Minimal);
|
|
173
|
-
get isMinimalMode(): boolean {
|
|
174
|
-
return this._isMinimalMode.get();
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
//#endregion
|
|
178
|
-
|
|
179
|
-
//#region Any GitHub Token
|
|
180
|
-
|
|
181
|
-
protected _anyGitHubSession: AuthenticationSession | undefined;
|
|
182
|
-
get anyGitHubSession(): AuthenticationSession | undefined {
|
|
183
|
-
return this._anyGitHubSession;
|
|
184
|
-
}
|
|
185
|
-
abstract getAnyGitHubSession(options?: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
|
|
186
|
-
|
|
187
|
-
//#endregion
|
|
188
|
-
|
|
189
|
-
//#region Permissive GitHub Token
|
|
190
|
-
|
|
191
|
-
protected _permissiveGitHubSession: AuthenticationSession | undefined;
|
|
192
|
-
get permissiveGitHubSession(): AuthenticationSession | undefined {
|
|
193
|
-
return this._permissiveGitHubSession;
|
|
194
|
-
}
|
|
195
|
-
abstract getPermissiveGitHubSession(options: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
|
|
196
|
-
|
|
197
|
-
//#endregion
|
|
198
|
-
|
|
199
|
-
//#region Ado
|
|
200
|
-
|
|
201
|
-
protected _anyAdoSession: AuthenticationSession | undefined;
|
|
202
|
-
get anyAdoSession(): AuthenticationSession | undefined {
|
|
203
|
-
return this._anyAdoSession;
|
|
204
|
-
}
|
|
205
|
-
protected abstract getAnyAdoSession(options?: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
|
|
206
|
-
|
|
207
|
-
//#endregion
|
|
208
|
-
|
|
209
|
-
//#region Copilot Token
|
|
210
|
-
|
|
211
|
-
private _copilotTokenError: Error | undefined;
|
|
212
|
-
get copilotToken(): CopilotToken | undefined {
|
|
213
|
-
return this._tokenStore.copilotToken;
|
|
214
|
-
}
|
|
215
|
-
async getCopilotToken(force?: boolean): Promise<CopilotToken> {
|
|
216
|
-
try {
|
|
217
|
-
await this.getAnyGitHubSession({ silent: true });
|
|
218
|
-
// TODO: could this take in an auth session?
|
|
219
|
-
const token = await this._tokenManager.getCopilotToken(force);
|
|
220
|
-
this._tokenStore.copilotToken = token;
|
|
221
|
-
this._copilotTokenError = undefined;
|
|
222
|
-
return token;
|
|
223
|
-
} catch (afterError) {
|
|
224
|
-
this._tokenStore.copilotToken = undefined;
|
|
225
|
-
const beforeError = this._copilotTokenError;
|
|
226
|
-
this._copilotTokenError = afterError;
|
|
227
|
-
// This handles the case where the user still can't get a Copilot Token,
|
|
228
|
-
// but the error has change. I.e. They go from being not signed in (no copilot token can be minted)
|
|
229
|
-
// to an account that doesn't have a valid subscription (no copilot token can be minted).
|
|
230
|
-
// NOTE: if either error is undefined, this event should be fired elsewhere already.
|
|
231
|
-
if (beforeError && afterError && beforeError.message !== afterError.message) {
|
|
232
|
-
this._onDidAuthenticationChange.fire();
|
|
233
|
-
}
|
|
234
|
-
throw afterError;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
resetCopilotToken(httpError?: number): void {
|
|
239
|
-
this._tokenStore.copilotToken = undefined;
|
|
240
|
-
this._tokenManager.resetCopilotToken(httpError);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
//#endregion
|
|
244
|
-
|
|
245
|
-
// #region Speculative decoding endpoint token
|
|
246
|
-
public speculativeDecodingEndpointToken: string | undefined;
|
|
247
|
-
// #endregion
|
|
248
|
-
|
|
249
|
-
//#region ADO Token
|
|
250
|
-
abstract getAdoAccessTokenBase64(options?: AuthenticationGetSessionOptions): Promise<string | undefined>
|
|
251
|
-
//#endregion
|
|
252
|
-
|
|
253
|
-
protected async _handleAuthChangeEvent(): Promise<void> {
|
|
254
|
-
const anyGitHubSessionBefore = this._anyGitHubSession;
|
|
255
|
-
const permissiveGitHubSessionBefore = this._permissiveGitHubSession;
|
|
256
|
-
const anyAdoSessionBefore = this._anyAdoSession;
|
|
257
|
-
const copilotTokenBefore = this._tokenStore.copilotToken;
|
|
258
|
-
const copilotTokenErrorBefore = this._copilotTokenError;
|
|
259
|
-
|
|
260
|
-
// Update caches
|
|
261
|
-
const resolved = await Promise.allSettled([
|
|
262
|
-
this.getAnyGitHubSession({ silent: true }),
|
|
263
|
-
this.getPermissiveGitHubSession({ silent: true }),
|
|
264
|
-
this.getAnyAdoSession({ silent: true }),
|
|
265
|
-
]);
|
|
266
|
-
for (const res of resolved) {
|
|
267
|
-
if (res.status === 'rejected') {
|
|
268
|
-
this._logService.error(`Error getting a session: ${res.reason}`);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
if (
|
|
273
|
-
anyGitHubSessionBefore?.accessToken !== this._anyGitHubSession?.accessToken ||
|
|
274
|
-
permissiveGitHubSessionBefore?.accessToken !== this._permissiveGitHubSession?.accessToken
|
|
275
|
-
) {
|
|
276
|
-
this._onDidAccessTokenChange.fire();
|
|
277
|
-
this._logService.debug('Auth state changed, minting a new CopilotToken...');
|
|
278
|
-
// The auth state has changed, so mint a new Copilot token
|
|
279
|
-
try {
|
|
280
|
-
await this.getCopilotToken(true);
|
|
281
|
-
} catch (e) {
|
|
282
|
-
// Ignore errors
|
|
283
|
-
}
|
|
284
|
-
this._logService.debug('Minted a new CopilotToken.');
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
if (anyAdoSessionBefore?.accessToken !== this._anyAdoSession?.accessToken) {
|
|
289
|
-
this._logService.debug(`Ado auth state changed, firing event. Had token before: ${!!anyAdoSessionBefore?.accessToken}. Has token now: ${!!this._anyAdoSession?.accessToken}.`);
|
|
290
|
-
this._onDidAdoAuthenticationChange.fire();
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// Auth state hasn't changed, but the Copilot token might have
|
|
294
|
-
try {
|
|
295
|
-
await this.getCopilotToken();
|
|
296
|
-
} catch (e) {
|
|
297
|
-
// Ignore errors
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
if (copilotTokenBefore?.token !== this._tokenStore.copilotToken?.token ||
|
|
301
|
-
// React to errors changing too (i.e. I go from zero session to a session that doesn't have Copilot access)
|
|
302
|
-
copilotTokenErrorBefore?.message !== this._copilotTokenError?.message
|
|
303
|
-
) {
|
|
304
|
-
this._logService.debug('CopilotToken state changed, firing event.');
|
|
305
|
-
this._onDidAuthenticationChange.fire();
|
|
306
|
-
}
|
|
307
|
-
this._logService.debug('Finished handling auth change event.');
|
|
308
|
-
}
|
|
309
|
-
}
|
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
|
|
6
|
-
import { CopilotUserQuotaInfo } from '../../chat/common/chatQuotaService';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* A function used to determine if the org list contains an internal organization
|
|
10
|
-
* @param orgList The list of organizations the user is a member of
|
|
11
|
-
* Whether or not it contains an internal org
|
|
12
|
-
*/
|
|
13
|
-
export function containsInternalOrg(orgList: string[]): boolean {
|
|
14
|
-
return containsGitHubOrg(orgList) || containsMicrosoftOrg(orgList);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* A function used to determine if the org list contains a GitHub organization
|
|
19
|
-
* @param orgList The list of organizations the user is a member of
|
|
20
|
-
* Whether or not it contains a GitHub org
|
|
21
|
-
*/
|
|
22
|
-
function containsGitHubOrg(orgList: string[]): boolean {
|
|
23
|
-
const GITHUB_ORGANIZATIONS = ['4535c7beffc844b46bb1ed4aa04d759a'];
|
|
24
|
-
// Check if the user is part of an allowed organization.
|
|
25
|
-
for (const org of orgList) {
|
|
26
|
-
if (GITHUB_ORGANIZATIONS.includes(org)) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* A function used to determine if the org list contains a Microsoft organization
|
|
35
|
-
* @param orgList The list of organizations the user is a member of
|
|
36
|
-
* Whether or not it contains a Microsoft org
|
|
37
|
-
*/
|
|
38
|
-
function containsMicrosoftOrg(orgList: string[]): boolean {
|
|
39
|
-
const MICROSOFT_ORGANIZATIONS = ['a5db0bcaae94032fe715fb34a5e4bce2', '7184f66dfcee98cb5f08a1cb936d5225',
|
|
40
|
-
'1cb18ac6eedd49b43d74a1c5beb0b955', 'ea9395b9a9248c05ee6847cbd24355ed'];
|
|
41
|
-
// Check if the user is part of a Microsoft organization.
|
|
42
|
-
for (const org of orgList) {
|
|
43
|
-
if (MICROSOFT_ORGANIZATIONS.includes(org)) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export class CopilotToken {
|
|
51
|
-
private readonly tokenMap: Map<string, string>;
|
|
52
|
-
constructor(private readonly _info: ExtendedTokenInfo) {
|
|
53
|
-
this.tokenMap = this.parseToken(_info.token);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
private parseToken(token: string): Map<string, string> {
|
|
57
|
-
const result = new Map<string, string>();
|
|
58
|
-
const firstPart = token?.split(':')[0];
|
|
59
|
-
const fields = firstPart?.split(';');
|
|
60
|
-
for (const field of fields) {
|
|
61
|
-
const [key, value] = field.split('=');
|
|
62
|
-
result.set(key, value);
|
|
63
|
-
}
|
|
64
|
-
return result;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
get token(): string {
|
|
68
|
-
return this._info.token;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
get sku(): string | undefined {
|
|
72
|
-
return this._info.sku;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Evaluates `has_cfi_access?` which is defined as `!has_cfb_access? && !has_cfe_access?`
|
|
77
|
-
* (cfb = copilot for business, cfe = copilot for enterprise).
|
|
78
|
-
* So it's also true for copilot free users.
|
|
79
|
-
*/
|
|
80
|
-
get isIndividual(): boolean {
|
|
81
|
-
return this._info.individual ?? false;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
get organizationList(): string[] {
|
|
85
|
-
return this._info.organization_list || [];
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
get enterpriseList(): number[] {
|
|
89
|
-
return this._info.enterprise_list || [];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
get endpoints(): { api: string; telemetry: string; proxy: string; 'origin-tracker'?: string } | undefined {
|
|
93
|
-
return this._info.endpoints;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
get isInternal() {
|
|
97
|
-
return containsInternalOrg(this.organizationList);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
get isMicrosoftInternal(): boolean {
|
|
101
|
-
return containsMicrosoftOrg(this.organizationList);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
get isGitHubInternal(): boolean {
|
|
105
|
-
return containsGitHubOrg(this.organizationList);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
get isFreeUser(): boolean {
|
|
109
|
-
return this.sku === 'free_limited_copilot';
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
get isChatQuotaExceeded(): boolean {
|
|
113
|
-
return this.isFreeUser && (this._info.limited_user_quotas?.chat ?? 1) <= 0;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
get isCompletionsQuotaExceeded(): boolean {
|
|
117
|
-
return this.isFreeUser && (this._info.limited_user_quotas?.completions ?? 1) <= 0;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
get codeQuoteEnabled(): boolean {
|
|
121
|
-
return this._info.code_quote_enabled ?? false;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
get isVscodeTeamMember(): boolean {
|
|
125
|
-
return this._info.isVscodeTeamMember;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
get copilotPlan(): 'free' | 'individual' | 'individual_pro' | 'business' | 'enterprise' {
|
|
129
|
-
if (this.isFreeUser) {
|
|
130
|
-
return 'free';
|
|
131
|
-
}
|
|
132
|
-
const plan = this._info.copilot_plan;
|
|
133
|
-
switch (plan) {
|
|
134
|
-
case 'individual':
|
|
135
|
-
case 'individual_pro':
|
|
136
|
-
case 'business':
|
|
137
|
-
case 'enterprise':
|
|
138
|
-
return plan;
|
|
139
|
-
default:
|
|
140
|
-
// Default to 'individual' for unexpected values
|
|
141
|
-
return 'individual';
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
get quotaInfo() {
|
|
146
|
-
return { quota_snapshots: this._info.quota_snapshots, quota_reset_date: this._info.quota_reset_date };
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
get username(): string {
|
|
150
|
-
return this._info.username;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
private _isTelemetryEnabled: boolean | undefined;
|
|
154
|
-
isTelemetryEnabled(): boolean {
|
|
155
|
-
if (this._isTelemetryEnabled === undefined) {
|
|
156
|
-
this._isTelemetryEnabled = this._info.telemetry === 'enabled';
|
|
157
|
-
}
|
|
158
|
-
return this._isTelemetryEnabled;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
private _isPublicSuggestionsEnabled: boolean | undefined;
|
|
162
|
-
isPublicSuggestionsEnabled(): boolean {
|
|
163
|
-
if (this._isPublicSuggestionsEnabled === undefined) {
|
|
164
|
-
this._isPublicSuggestionsEnabled = this._info.public_suggestions === 'enabled';
|
|
165
|
-
}
|
|
166
|
-
return this._isPublicSuggestionsEnabled;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
isChatEnabled(): boolean {
|
|
170
|
-
return this._info.chat_enabled ?? false;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
isCopilotIgnoreEnabled(): boolean {
|
|
174
|
-
return this._info.copilotignore_enabled ?? false;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
get isCopilotCodeReviewEnabled(): boolean {
|
|
178
|
-
return (this.getTokenValue('ccr') === '1');
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
isEditorPreviewFeaturesEnabled(): boolean {
|
|
182
|
-
// Editor preview features are disabled if the flag is present and set to 0
|
|
183
|
-
return this.getTokenValue('editor_preview_features') !== '0';
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
isMcpEnabled(): boolean {
|
|
187
|
-
// MCP is disabled if the flag is present and set to 0
|
|
188
|
-
return this.getTokenValue('mcp') !== '0';
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
getTokenValue(key: string): string | undefined {
|
|
192
|
-
return this.tokenMap.get(key);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
isExpandedClientSideIndexingEnabled(): boolean {
|
|
196
|
-
return this._info.blackbird_clientside_indexing === true;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Details of the user's telemetry consent status we get from the server during token retrieval.
|
|
202
|
-
*
|
|
203
|
-
* `unconfigured` is a transitional state for pre-GA that indicates the user is in the Technical Preview
|
|
204
|
-
* and needs to be asked about telemetry consent client-side. It can be removed post-GA as the server
|
|
205
|
-
* will never return it again.
|
|
206
|
-
*
|
|
207
|
-
* `enabled` indicates that they agreed to full telemetry.
|
|
208
|
-
*
|
|
209
|
-
* `disabled` indicates that they opted out of full telemetry so we can only send the core messages
|
|
210
|
-
* that users cannot opt-out of.
|
|
211
|
-
*
|
|
212
|
-
*/
|
|
213
|
-
export type UserTelemetryChoice = 'enabled' | 'disabled';
|
|
214
|
-
/**
|
|
215
|
-
* A notification we get from the server during token retrieval. Needs to be presented to the user.
|
|
216
|
-
*/
|
|
217
|
-
type ServerSideNotification = {
|
|
218
|
-
message: string;
|
|
219
|
-
url: string;
|
|
220
|
-
title: string;
|
|
221
|
-
};
|
|
222
|
-
/**
|
|
223
|
-
* A notification that warns the user about upcoming problems.
|
|
224
|
-
*/
|
|
225
|
-
type WarningNotification = ServerSideNotification & {
|
|
226
|
-
notification_id: string;
|
|
227
|
-
};
|
|
228
|
-
/**
|
|
229
|
-
* A notification in case of an error.
|
|
230
|
-
*/
|
|
231
|
-
type ErrorNotification = ServerSideNotification;
|
|
232
|
-
/**
|
|
233
|
-
* A server response containing a Copilot token and metadata associated with it.
|
|
234
|
-
*/
|
|
235
|
-
export interface TokenInfo {
|
|
236
|
-
// v2 format: fields:mac
|
|
237
|
-
// fields are ';' separated key=value pairs, including tid (tracking_id), dom (domain), and exp (unix_time).
|
|
238
|
-
token: string;
|
|
239
|
-
expires_at: number; // unix time UTC in seconds
|
|
240
|
-
refresh_in: number; // seconds to refresh token
|
|
241
|
-
user_notification?: WarningNotification;
|
|
242
|
-
error_details?: ErrorNotification;
|
|
243
|
-
organization_list?: string[];
|
|
244
|
-
code_quote_enabled?: boolean;
|
|
245
|
-
public_suggestions?: string;
|
|
246
|
-
telemetry?: string;
|
|
247
|
-
copilotignore_enabled?: boolean;
|
|
248
|
-
endpoints?: { api: string; telemetry: string; proxy: string; 'origin-tracker'?: string };
|
|
249
|
-
chat_enabled?: boolean;
|
|
250
|
-
limited_user_quotas?: { chat: number; completions: number };
|
|
251
|
-
enterprise_list?: number[];
|
|
252
|
-
individual?: boolean;
|
|
253
|
-
sku?: string; // e.g. 'copilot_enterprise_seat'
|
|
254
|
-
message?: string; // error message
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* A server response containing the user info for the copilot user from the /copilot_internal/user endpoint
|
|
259
|
-
*/
|
|
260
|
-
|
|
261
|
-
export interface CopilotUserInfo extends CopilotUserQuotaInfo {
|
|
262
|
-
access_type_sku: string;
|
|
263
|
-
analytics_tracking_id: string;
|
|
264
|
-
assigned_date: string;
|
|
265
|
-
can_signup_for_limited: boolean;
|
|
266
|
-
chat_enabled: boolean;
|
|
267
|
-
copilot_plan: string;
|
|
268
|
-
organization_login_list: string[];
|
|
269
|
-
organization_list: Array<{
|
|
270
|
-
login: string;
|
|
271
|
-
name: string | null;
|
|
272
|
-
}>;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
// The token info extended with additional metadata that is helpful to have
|
|
276
|
-
export type ExtendedTokenInfo = TokenInfo & { username: string; isVscodeTeamMember: boolean; blackbird_clientside_indexing?: boolean } & Pick<CopilotUserInfo, 'copilot_plan' | 'quota_snapshots' | 'quota_reset_date'>;
|
|
277
|
-
|
|
278
|
-
export type TokenEnvelope = Omit<TokenInfo, 'token' | 'organization_list'>;
|
|
279
|
-
|
|
280
|
-
export type TokenErrorReason = 'NotAuthorized' | 'FailedToGetToken' | 'TokenInvalid' | 'GitHubLoginFailed' | 'HTTP401' | 'RateLimited';
|
|
281
|
-
|
|
282
|
-
export enum TokenErrorNotificationId {
|
|
283
|
-
EnterPriseManagedUserAccount = 'enterprise_managed_user_account',
|
|
284
|
-
NotSignedUp = 'not_signed_up',
|
|
285
|
-
NoCopilotAccess = 'no_copilot_access',
|
|
286
|
-
SubscriptionEnded = 'subscription_ended',
|
|
287
|
-
ServerError = 'server_error',
|
|
288
|
-
FeatureFlagBlocked = 'feature_flag_blocked',
|
|
289
|
-
SpammyUser = 'spammy_user',
|
|
290
|
-
CodespacesDemoInactive = 'codespaces_demo_inactive', //TODO: Handle this if this is still applicable
|
|
291
|
-
SnippyNotConfigured = 'snippy_not_configured'
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
export type TokenError = {
|
|
295
|
-
reason: TokenErrorReason;
|
|
296
|
-
notification_id?: TokenErrorNotificationId;
|
|
297
|
-
message?: string; // TODO: not used yet, but will be for 466 errors
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
export type TokenInfoOrError = ({ kind: 'success' } & ExtendedTokenInfo) | ({ kind: 'failure' } & TokenError);
|