@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,59 +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 { createServiceIdentifier } from '../../../util/common/services';
|
|
7
|
-
import { Event } from '../../../util/vs/base/common/event';
|
|
8
|
-
import { CopilotToken, TokenError, TokenErrorReason } from './copilotToken';
|
|
9
|
-
|
|
10
|
-
export const ICopilotTokenManager = createServiceIdentifier<ICopilotTokenManager>('ICopilotTokenManager');
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated Use `IAuthenticationService` instead
|
|
14
|
-
*/
|
|
15
|
-
export interface ICopilotTokenManager {
|
|
16
|
-
|
|
17
|
-
readonly _serviceBrand: undefined;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Event emitter that will fire an event every time a token refresh is requested.
|
|
21
|
-
*
|
|
22
|
-
* This is used for example in the repo enablement code (lib/src/enablement.ts),
|
|
23
|
-
* where we need to clear the list of cached repos whenever we request a new token.
|
|
24
|
-
*/
|
|
25
|
-
readonly onDidCopilotTokenRefresh: Event<void>;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Return a currently valid Copilot token, retrieving a fresh one if
|
|
29
|
-
* necessary.
|
|
30
|
-
*
|
|
31
|
-
* Note that a Copilot token manager should not provide a Copilot token unless
|
|
32
|
-
* telemetry consent has been obtained. If this is not checked by the token manager
|
|
33
|
-
* implementation itself, then anything constructing or initialising it should not
|
|
34
|
-
* do so without checking this. force will force a refresh of the token, even not expired
|
|
35
|
-
*/
|
|
36
|
-
getCopilotToken(force?: boolean): Promise<CopilotToken>;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Drop the current Copilot token as we received an HTTP error while trying
|
|
40
|
-
* to use it that indicates it's no longer valid.
|
|
41
|
-
*/
|
|
42
|
-
resetCopilotToken(httpError?: number): void;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export function nowSeconds(): number {
|
|
46
|
-
return Math.floor(Date.now() / 1000);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export type NotGitHubLoginFailed = { kind: 'success' } | { kind: 'failure'; reason: Exclude<TokenErrorReason, 'GitHubLoginFailed'> };
|
|
50
|
-
|
|
51
|
-
//#region Testing Copilot Token Mangers
|
|
52
|
-
|
|
53
|
-
/** Intended for use as an add-on to `CopilotTokenManager`,
|
|
54
|
-
* that checks that a valid Copilot token is available. For tests.
|
|
55
|
-
*/
|
|
56
|
-
export interface CheckCopilotToken {
|
|
57
|
-
/** Check that the object has access to a valid Copilot token. */
|
|
58
|
-
checkCopilotToken(): Promise<{ status: 'OK' } | (TokenError & { reason: Exclude<TokenErrorReason, 'GitHubLoginFailed'> })>;
|
|
59
|
-
}
|
|
@@ -1,40 +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 { createServiceIdentifier } from '../../../util/common/services';
|
|
6
|
-
import { Emitter, Event } from '../../../util/vs/base/common/event';
|
|
7
|
-
import { Disposable } from '../../../util/vs/base/common/lifecycle';
|
|
8
|
-
import type { CopilotToken } from './copilotToken';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export const ICopilotTokenStore = createServiceIdentifier<ICopilotTokenStore>('ICopilotTokenStore');
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* A simple store that holds the Copilot Token. This is used in the networking & telemetry
|
|
15
|
-
* services to avoid cyclical dependencies with the auth service.
|
|
16
|
-
* @important Please use the `IAuthenticationService` for any other usecase.
|
|
17
|
-
*/
|
|
18
|
-
export interface ICopilotTokenStore {
|
|
19
|
-
readonly _serviceBrand: undefined;
|
|
20
|
-
copilotToken: CopilotToken | undefined;
|
|
21
|
-
onDidStoreUpdate: Event<void>;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export class CopilotTokenStore extends Disposable implements ICopilotTokenStore {
|
|
25
|
-
declare readonly _serviceBrand: undefined;
|
|
26
|
-
private _copilotToken: CopilotToken | undefined;
|
|
27
|
-
private readonly _onDidStoreUpdate = this._register(new Emitter<void>());
|
|
28
|
-
onDidStoreUpdate: Event<void> = this._onDidStoreUpdate.event;
|
|
29
|
-
|
|
30
|
-
get copilotToken(): CopilotToken | undefined {
|
|
31
|
-
return this._copilotToken;
|
|
32
|
-
}
|
|
33
|
-
set copilotToken(token: CopilotToken | undefined) {
|
|
34
|
-
const oldToken = this._copilotToken?.token;
|
|
35
|
-
this._copilotToken = token;
|
|
36
|
-
if (oldToken !== token?.token) {
|
|
37
|
-
this._onDidStoreUpdate.fire();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,96 +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 type { AuthenticationGetSessionOptions, AuthenticationSession } from 'vscode';
|
|
7
|
-
import { IConfigurationService } from '../../configuration/common/configurationService';
|
|
8
|
-
import { ILogService } from '../../log/common/logService';
|
|
9
|
-
import { BaseAuthenticationService, GITHUB_SCOPE_ALIGNED, GITHUB_SCOPE_USER_EMAIL, IAuthenticationService, MinimalModeError } from './authentication';
|
|
10
|
-
import { CopilotToken } from './copilotToken';
|
|
11
|
-
import { ICopilotTokenManager } from './copilotTokenManager';
|
|
12
|
-
import { ICopilotTokenStore } from './copilotTokenStore';
|
|
13
|
-
|
|
14
|
-
export class StaticGitHubAuthenticationService extends BaseAuthenticationService {
|
|
15
|
-
|
|
16
|
-
private _githubToken: string | undefined;
|
|
17
|
-
get githubToken(): string {
|
|
18
|
-
if (!this._githubToken) {
|
|
19
|
-
this._githubToken = this.tokenProvider();
|
|
20
|
-
}
|
|
21
|
-
return this._githubToken;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private readonly tokenProvider: { (): string };
|
|
25
|
-
|
|
26
|
-
constructor(
|
|
27
|
-
tokenProvider: { (): string },
|
|
28
|
-
@ILogService logService: ILogService,
|
|
29
|
-
@ICopilotTokenStore tokenStore: ICopilotTokenStore,
|
|
30
|
-
@ICopilotTokenManager tokenManager: ICopilotTokenManager,
|
|
31
|
-
@IConfigurationService configurationService: IConfigurationService
|
|
32
|
-
) {
|
|
33
|
-
super(logService, tokenStore, tokenManager, configurationService);
|
|
34
|
-
this.tokenProvider = tokenProvider;
|
|
35
|
-
|
|
36
|
-
const that = this;
|
|
37
|
-
this._anyGitHubSession = {
|
|
38
|
-
get id() { return that.githubToken; },
|
|
39
|
-
get accessToken() { return that.githubToken; },
|
|
40
|
-
scopes: GITHUB_SCOPE_USER_EMAIL,
|
|
41
|
-
account: {
|
|
42
|
-
id: 'user',
|
|
43
|
-
label: 'User'
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
this._permissiveGitHubSession = {
|
|
48
|
-
get id() { return that.githubToken; },
|
|
49
|
-
get accessToken() { return that.githubToken; },
|
|
50
|
-
scopes: GITHUB_SCOPE_ALIGNED,
|
|
51
|
-
account: {
|
|
52
|
-
id: 'user',
|
|
53
|
-
label: 'User'
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
getAnyGitHubSession(_options?: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined> {
|
|
59
|
-
return Promise.resolve(this._anyGitHubSession);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
getPermissiveGitHubSession(options: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined> {
|
|
63
|
-
if (this.isMinimalMode) {
|
|
64
|
-
if (options.createIfNone || options.forceNewSession) {
|
|
65
|
-
throw new MinimalModeError();
|
|
66
|
-
}
|
|
67
|
-
return Promise.resolve(undefined);
|
|
68
|
-
}
|
|
69
|
-
return Promise.resolve(this._permissiveGitHubSession);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
override async getCopilotToken(force?: boolean): Promise<CopilotToken> {
|
|
73
|
-
return await super.getCopilotToken(force);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
setCopilotToken(token: CopilotToken): void {
|
|
77
|
-
this._tokenStore.copilotToken = token;
|
|
78
|
-
this._onDidAuthenticationChange.fire();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
override getAnyAdoSession(_options?: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined> {
|
|
83
|
-
return Promise.resolve(undefined);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
override getAdoAccessTokenBase64(options?: AuthenticationGetSessionOptions): Promise<string | undefined> {
|
|
87
|
-
return Promise.resolve(undefined);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export function setCopilotToken(authenticationService: IAuthenticationService, token: CopilotToken): void {
|
|
92
|
-
if (!(authenticationService instanceof StaticGitHubAuthenticationService)) {
|
|
93
|
-
throw new Error('This function should only be used with StaticGitHubAuthenticationService');
|
|
94
|
-
}
|
|
95
|
-
(authenticationService as StaticGitHubAuthenticationService).setCopilotToken(token);
|
|
96
|
-
}
|
|
@@ -1,303 +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 { RequestType } from '@vscode/copilot-api';
|
|
7
|
-
import { Emitter } from '../../../util/vs/base/common/event';
|
|
8
|
-
import { Disposable, toDisposable } from '../../../util/vs/base/common/lifecycle';
|
|
9
|
-
import { SyncDescriptor } from '../../../util/vs/platform/instantiation/common/descriptors';
|
|
10
|
-
import { IConfigurationService } from '../../configuration/common/configurationService';
|
|
11
|
-
import { ICAPIClientService } from '../../endpoint/common/capiClient';
|
|
12
|
-
import { IDomainService } from '../../endpoint/common/domainService';
|
|
13
|
-
import { IEnvService } from '../../env/common/envService';
|
|
14
|
-
import { BaseOctoKitService, VSCodeTeamId } from '../../github/common/githubService';
|
|
15
|
-
import { NullBaseOctoKitService } from '../../github/common/nullOctokitServiceImpl';
|
|
16
|
-
import { ILogService } from '../../log/common/logService';
|
|
17
|
-
import { FetchOptions, IFetcherService, Response, jsonVerboseError } from '../../networking/common/fetcherService';
|
|
18
|
-
import { ITelemetryService } from '../../telemetry/common/telemetry';
|
|
19
|
-
import { TelemetryData } from '../../telemetry/common/telemetryData';
|
|
20
|
-
import { CopilotToken, CopilotUserInfo, ExtendedTokenInfo, TokenInfo, TokenInfoOrError, containsInternalOrg } from '../common/copilotToken';
|
|
21
|
-
import { CheckCopilotToken, ICopilotTokenManager, NotGitHubLoginFailed, nowSeconds } from '../common/copilotTokenManager';
|
|
22
|
-
|
|
23
|
-
export const tokenErrorString = `Tests: either GITHUB_PAT or GITHUB_OAUTH_TOKEN must be set. Run "npm run get_token" to get one.`;
|
|
24
|
-
|
|
25
|
-
export function getStaticGitHubToken() {
|
|
26
|
-
if (process.env.GITHUB_PAT) {
|
|
27
|
-
return process.env.GITHUB_PAT;
|
|
28
|
-
}
|
|
29
|
-
if (process.env.GITHUB_OAUTH_TOKEN) {
|
|
30
|
-
return process.env.GITHUB_OAUTH_TOKEN;
|
|
31
|
-
}
|
|
32
|
-
throw new Error(tokenErrorString);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function getOrCreateTestingCopilotTokenManager(): SyncDescriptor<ICopilotTokenManager & CheckCopilotToken> {
|
|
36
|
-
let result: SyncDescriptor<ICopilotTokenManager & CheckCopilotToken> | undefined;
|
|
37
|
-
if (process.env.GITHUB_PAT) {
|
|
38
|
-
result = new SyncDescriptor(FixedCopilotTokenManager, [process.env.GITHUB_PAT]);
|
|
39
|
-
}
|
|
40
|
-
if (process.env.GITHUB_OAUTH_TOKEN) {
|
|
41
|
-
result = new SyncDescriptor(CopilotTokenManagerFromGitHubToken, [process.env.GITHUB_OAUTH_TOKEN]);
|
|
42
|
-
}
|
|
43
|
-
if (!result) {
|
|
44
|
-
throw new Error(tokenErrorString);
|
|
45
|
-
}
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
//TODO: Move this to common
|
|
50
|
-
export abstract class BaseCopilotTokenManager extends Disposable implements ICopilotTokenManager {
|
|
51
|
-
declare readonly _serviceBrand: undefined;
|
|
52
|
-
|
|
53
|
-
protected _isDisposed = false;
|
|
54
|
-
|
|
55
|
-
//#region Events
|
|
56
|
-
private readonly _copilotTokenRefreshEmitter = this._register(new Emitter<void>());
|
|
57
|
-
readonly onDidCopilotTokenRefresh = this._copilotTokenRefreshEmitter.event;
|
|
58
|
-
|
|
59
|
-
//#endregion
|
|
60
|
-
constructor(
|
|
61
|
-
protected readonly _baseOctokitservice: BaseOctoKitService,
|
|
62
|
-
protected readonly _logService: ILogService,
|
|
63
|
-
protected readonly _telemetryService: ITelemetryService,
|
|
64
|
-
protected readonly _domainService: IDomainService,
|
|
65
|
-
protected readonly _capiClientService: ICAPIClientService,
|
|
66
|
-
protected readonly _fetcherService: IFetcherService,
|
|
67
|
-
protected readonly _envService: IEnvService
|
|
68
|
-
) {
|
|
69
|
-
super();
|
|
70
|
-
this._register(toDisposable(() => this._isDisposed = true));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
//#region Property getters and setters
|
|
74
|
-
private _copilotToken: ExtendedTokenInfo | undefined;
|
|
75
|
-
get copilotToken(): ExtendedTokenInfo | undefined {
|
|
76
|
-
return this._copilotToken;
|
|
77
|
-
}
|
|
78
|
-
set copilotToken(token: ExtendedTokenInfo | undefined) {
|
|
79
|
-
if (token !== this._copilotToken) {
|
|
80
|
-
this._copilotToken = token;
|
|
81
|
-
this._copilotTokenRefreshEmitter.fire();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
//#endregion
|
|
86
|
-
//#region Abstract methods
|
|
87
|
-
abstract getCopilotToken(force?: boolean): Promise<CopilotToken>;
|
|
88
|
-
|
|
89
|
-
//#endregion
|
|
90
|
-
//#region Public methods
|
|
91
|
-
resetCopilotToken(httpError?: number): void {
|
|
92
|
-
if (httpError !== undefined) {
|
|
93
|
-
this._telemetryService.sendGHTelemetryEvent('auth.reset_token_' + httpError);
|
|
94
|
-
}
|
|
95
|
-
this._logService.debug(`Resetting copilot token on HTTP error ${httpError || 'unknown'}`);
|
|
96
|
-
this.copilotToken = undefined;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Fetches a Copilot token from the GitHub token.
|
|
101
|
-
* @param githubToken A GitHub token to mint a Copilot token from.
|
|
102
|
-
* @returns A Copilot token info or an error.
|
|
103
|
-
* @todo this should be not be public, but it is for now to allow testing.
|
|
104
|
-
*/
|
|
105
|
-
async authFromGitHubToken(
|
|
106
|
-
githubToken: string,
|
|
107
|
-
ghUsername: string
|
|
108
|
-
): Promise<TokenInfoOrError & NotGitHubLoginFailed> {
|
|
109
|
-
this._telemetryService.sendGHTelemetryEvent('auth.new_login');
|
|
110
|
-
const [response, userInfo] = await Promise.all([
|
|
111
|
-
this.fetchCopilotToken(githubToken),
|
|
112
|
-
this.fetchCopilotUserInfo(githubToken)
|
|
113
|
-
]);
|
|
114
|
-
if (!response) {
|
|
115
|
-
this._logService.warn('Failed to get copilot token');
|
|
116
|
-
this._telemetryService.sendGHTelemetryErrorEvent('auth.request_failed');
|
|
117
|
-
return { kind: 'failure', reason: 'FailedToGetToken' };
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// FIXME: Unverified type after inputting response
|
|
121
|
-
const tokenInfo: undefined | TokenInfo = await jsonVerboseError(response);
|
|
122
|
-
if (!tokenInfo) {
|
|
123
|
-
this._logService.warn('Failed to get copilot token');
|
|
124
|
-
this._telemetryService.sendGHTelemetryErrorEvent('auth.request_read_failed');
|
|
125
|
-
return { kind: 'failure', reason: 'FailedToGetToken' };
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (response.status === 401) {
|
|
129
|
-
this._logService.warn('Failed to get copilot token due to 401 status');
|
|
130
|
-
this._telemetryService.sendGHTelemetryErrorEvent('auth.unknown_401');
|
|
131
|
-
return { kind: 'failure', reason: 'HTTP401' };
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (response.status === 403 && tokenInfo.message?.startsWith('API rate limit exceeded')) {
|
|
135
|
-
this._logService.warn('Failed to get copilot token due to exceeding API rate limit');
|
|
136
|
-
this._telemetryService.sendGHTelemetryErrorEvent('auth.rate_limited');
|
|
137
|
-
return { kind: 'failure', reason: 'RateLimited' };
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (!response.ok || !tokenInfo.token) {
|
|
141
|
-
this._logService.warn(`Invalid copilot token: missing token: ${response.status} ${response.statusText}`);
|
|
142
|
-
const data = TelemetryData.createAndMarkAsIssued({
|
|
143
|
-
status: response.status.toString(),
|
|
144
|
-
status_text: response.statusText,
|
|
145
|
-
});
|
|
146
|
-
this._telemetryService.sendGHTelemetryErrorEvent('auth.invalid_token', data.properties, data.measurements);
|
|
147
|
-
const error_details = tokenInfo.error_details;
|
|
148
|
-
return { kind: 'failure', reason: 'NotAuthorized', ...error_details };
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const expires_at = tokenInfo.expires_at;
|
|
152
|
-
// some users have clocks adjusted ahead, expires_at will immediately be less than current clock time;
|
|
153
|
-
// adjust expires_at to the refresh time + a buffer to avoid expiring the token before the refresh can fire.
|
|
154
|
-
tokenInfo.expires_at = nowSeconds() + tokenInfo.refresh_in + 60; // extra buffer to allow refresh to happen successfully
|
|
155
|
-
|
|
156
|
-
// extend the token envelope
|
|
157
|
-
const login = ghUsername ?? 'unknown';
|
|
158
|
-
let isVscodeTeamMember = false;
|
|
159
|
-
// VS Code team members are guaranteed to be a part of an internal org so we can check that first to minimize API calls
|
|
160
|
-
if (containsInternalOrg(tokenInfo.organization_list ?? [])) {
|
|
161
|
-
isVscodeTeamMember = !!(await this._baseOctokitservice.getTeamMembershipWithToken(VSCodeTeamId, githubToken, login));
|
|
162
|
-
}
|
|
163
|
-
const extendedInfo: ExtendedTokenInfo = {
|
|
164
|
-
...tokenInfo,
|
|
165
|
-
copilot_plan: userInfo.copilot_plan,
|
|
166
|
-
quota_snapshots: userInfo.quota_snapshots,
|
|
167
|
-
quota_reset_date: userInfo.quota_reset_date,
|
|
168
|
-
username: login,
|
|
169
|
-
isVscodeTeamMember,
|
|
170
|
-
};
|
|
171
|
-
const telemetryData = TelemetryData.createAndMarkAsIssued(
|
|
172
|
-
{},
|
|
173
|
-
{
|
|
174
|
-
adjusted_expires_at: tokenInfo.expires_at,
|
|
175
|
-
expires_at: expires_at, // track original expires_at
|
|
176
|
-
current_time: nowSeconds(),
|
|
177
|
-
}
|
|
178
|
-
);
|
|
179
|
-
|
|
180
|
-
this._telemetryService.sendGHTelemetryEvent('auth.new_token', telemetryData.properties, telemetryData.measurements);
|
|
181
|
-
|
|
182
|
-
return { kind: 'success', ...extendedInfo };
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
//#endregion
|
|
186
|
-
|
|
187
|
-
//#region Private methods
|
|
188
|
-
private async fetchCopilotToken(githubToken: string) {
|
|
189
|
-
const options: FetchOptions = {
|
|
190
|
-
headers: {
|
|
191
|
-
Authorization: `token ${githubToken}`,
|
|
192
|
-
'X-GitHub-Api-Version': '2025-04-01'
|
|
193
|
-
},
|
|
194
|
-
verifyJSONAndRetry: true,
|
|
195
|
-
};
|
|
196
|
-
return await this._capiClientService.makeRequest<Response>(options, { type: RequestType.CopilotToken });
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
private async fetchCopilotUserInfo(githubToken: string): Promise<CopilotUserInfo> {
|
|
200
|
-
const response = await this._capiClientService.makeRequest<Response>({
|
|
201
|
-
headers: {
|
|
202
|
-
Authorization: `token ${githubToken}`,
|
|
203
|
-
'X-GitHub-Api-Version': '2025-04-01',
|
|
204
|
-
}
|
|
205
|
-
}, { type: RequestType.CopilotUserInfo });
|
|
206
|
-
const data = await response.json();
|
|
207
|
-
return data;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
//#region FixedCopilotTokenManager
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* A `CopilotTokenManager` that always returns the same token.
|
|
215
|
-
* Mostly only useful for short periods, e.g. tests or single completion requests,
|
|
216
|
-
* as these tokens typically expire after a few hours.
|
|
217
|
-
* @todo Move this to a test layer
|
|
218
|
-
*/
|
|
219
|
-
|
|
220
|
-
export class FixedCopilotTokenManager extends BaseCopilotTokenManager implements CheckCopilotToken {
|
|
221
|
-
constructor(
|
|
222
|
-
private _completionsToken: string,
|
|
223
|
-
@ILogService logService: ILogService,
|
|
224
|
-
@ITelemetryService telemetryService: ITelemetryService,
|
|
225
|
-
@ICAPIClientService capiClientService: ICAPIClientService,
|
|
226
|
-
@IDomainService domainService: IDomainService,
|
|
227
|
-
@IFetcherService fetcherService: IFetcherService,
|
|
228
|
-
@IEnvService envService: IEnvService
|
|
229
|
-
) {
|
|
230
|
-
super(new NullBaseOctoKitService(capiClientService, fetcherService, logService, telemetryService), logService, telemetryService, domainService, capiClientService, fetcherService, envService);
|
|
231
|
-
this.copilotToken = { token: _completionsToken, expires_at: 0, refresh_in: 0, username: 'fixedTokenManager', isVscodeTeamMember: false, copilot_plan: 'unknown' };
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
set completionsToken(token: string) {
|
|
235
|
-
this._completionsToken = token;
|
|
236
|
-
this.copilotToken = { token, expires_at: 0, refresh_in: 0, username: 'fixedTokenManager', isVscodeTeamMember: false, copilot_plan: 'unknown' };
|
|
237
|
-
}
|
|
238
|
-
get completionsToken(): string {
|
|
239
|
-
return this._completionsToken;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
async getCopilotToken(): Promise<CopilotToken> {
|
|
243
|
-
return new CopilotToken(this.copilotToken!);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
async checkCopilotToken(): Promise<{ status: 'OK' }> {
|
|
247
|
-
// assume it's valid
|
|
248
|
-
return { status: 'OK' };
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
//#endregion
|
|
253
|
-
|
|
254
|
-
//#region CopilotTokenManagerFromGitHubToken
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Given a GitHub token, return a Copilot token, refreshing it as needed.
|
|
258
|
-
* The caller that initializes the object is responsible for checking telemetry consent before
|
|
259
|
-
* using the object.
|
|
260
|
-
*/
|
|
261
|
-
export class CopilotTokenManagerFromGitHubToken extends BaseCopilotTokenManager implements CheckCopilotToken {
|
|
262
|
-
|
|
263
|
-
constructor(
|
|
264
|
-
private readonly githubToken: string,
|
|
265
|
-
private readonly githubUsername: string,
|
|
266
|
-
@ILogService logService: ILogService,
|
|
267
|
-
@ITelemetryService telemetryService: ITelemetryService,
|
|
268
|
-
@IDomainService domainService: IDomainService,
|
|
269
|
-
@ICAPIClientService capiClientService: ICAPIClientService,
|
|
270
|
-
@IFetcherService fetcherService: IFetcherService,
|
|
271
|
-
@IEnvService envService: IEnvService,
|
|
272
|
-
@IConfigurationService protected readonly configurationService: IConfigurationService
|
|
273
|
-
) {
|
|
274
|
-
super(new NullBaseOctoKitService(capiClientService, fetcherService, logService, telemetryService), logService, telemetryService, domainService, capiClientService, fetcherService, envService);
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
async getCopilotToken(force?: boolean): Promise<CopilotToken> {
|
|
278
|
-
if (!this.copilotToken || this.copilotToken.expires_at < nowSeconds() - (60 * 5 /* 5min */) || force) {
|
|
279
|
-
const tokenResult = await this.authFromGitHubToken(this.githubToken, this.githubUsername);
|
|
280
|
-
if (tokenResult.kind === 'failure') {
|
|
281
|
-
throw Error(
|
|
282
|
-
`Failed to get copilot token: ${tokenResult.reason.toString()} ${tokenResult.message ?? ''}`
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
this.copilotToken = { ...tokenResult };
|
|
286
|
-
}
|
|
287
|
-
return new CopilotToken(this.copilotToken);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
async checkCopilotToken() {
|
|
291
|
-
if (!this.copilotToken || this.copilotToken.expires_at < nowSeconds()) {
|
|
292
|
-
const tokenResult = await this.authFromGitHubToken(this.githubToken, this.githubUsername);
|
|
293
|
-
if (tokenResult.kind === 'failure') {
|
|
294
|
-
return tokenResult;
|
|
295
|
-
}
|
|
296
|
-
this.copilotToken = { ...tokenResult };
|
|
297
|
-
}
|
|
298
|
-
const result: { status: 'OK' } = {
|
|
299
|
-
status: 'OK',
|
|
300
|
-
};
|
|
301
|
-
return result;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
@@ -1,124 +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 type { CancellationToken } from 'vscode';
|
|
7
|
-
import { createServiceIdentifier } from '../../../util/common/services';
|
|
8
|
-
import { AsyncIterableObject, AsyncIterableSource } from '../../../util/vs/base/common/async';
|
|
9
|
-
import { Event } from '../../../util/vs/base/common/event';
|
|
10
|
-
import { FinishedCallback, IResponseDelta, OptionalChatRequestParams } from '../../networking/common/fetch';
|
|
11
|
-
import { IChatEndpoint, IMakeChatRequestOptions } from '../../networking/common/networking';
|
|
12
|
-
import { ChatResponse, ChatResponses } from './commonTypes';
|
|
13
|
-
|
|
14
|
-
export interface Source {
|
|
15
|
-
readonly extensionId?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface IResponsePart {
|
|
19
|
-
readonly text: string;
|
|
20
|
-
readonly delta: IResponseDelta;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface IFetchMLOptions extends IMakeChatRequestOptions {
|
|
24
|
-
endpoint: IChatEndpoint;
|
|
25
|
-
requestOptions: OptionalChatRequestParams;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export const IChatMLFetcher = createServiceIdentifier<IChatMLFetcher>('IChatMLFetcher');
|
|
30
|
-
|
|
31
|
-
export interface IChatMLFetcher {
|
|
32
|
-
|
|
33
|
-
readonly _serviceBrand: undefined;
|
|
34
|
-
|
|
35
|
-
readonly onDidMakeChatMLRequest: Event<{ readonly model: string; readonly source?: Source; readonly tokenCount?: number }>;
|
|
36
|
-
|
|
37
|
-
fetchOne(options: IFetchMLOptions, token: CancellationToken): Promise<ChatResponse>;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
|
|
41
|
-
*/
|
|
42
|
-
fetchMany(options: IFetchMLOptions, token: CancellationToken): Promise<ChatResponses>;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export class FetchStreamSource {
|
|
46
|
-
|
|
47
|
-
private _stream = new AsyncIterableSource<IResponsePart>();
|
|
48
|
-
private _paused?: (IResponsePart | undefined)[];
|
|
49
|
-
|
|
50
|
-
// This means that we will only show one instance of each annotation type, but the IDs are not correct and there is no other way
|
|
51
|
-
private _seenAnnotationTypes = new Set<string>();
|
|
52
|
-
|
|
53
|
-
public get stream(): AsyncIterableObject<IResponsePart> {
|
|
54
|
-
return this._stream.asyncIterable;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
constructor() { }
|
|
58
|
-
|
|
59
|
-
pause() {
|
|
60
|
-
this._paused ??= [];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
unpause() {
|
|
64
|
-
const toEmit = this._paused;
|
|
65
|
-
if (!toEmit) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
this._paused = undefined;
|
|
70
|
-
for (const part of toEmit) {
|
|
71
|
-
if (part) {
|
|
72
|
-
this.update(part.text, part.delta);
|
|
73
|
-
} else {
|
|
74
|
-
this.resolve();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
update(text: string, delta: IResponseDelta): void {
|
|
80
|
-
if (this._paused) {
|
|
81
|
-
this._paused.push({ text, delta });
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (delta.codeVulnAnnotations) {
|
|
86
|
-
// We can only display vulnerabilities inside codeblocks, and it's ok to discard annotations that fell outside of them
|
|
87
|
-
const numTripleBackticks = text.match(/(^|\n)```/g)?.length ?? 0;
|
|
88
|
-
const insideCodeblock = numTripleBackticks % 2 === 1;
|
|
89
|
-
if (!insideCodeblock || text.match(/(^|\n)```\w*\s*$/)) { // Not inside a codeblock, or right on the start triple-backtick of a codeblock
|
|
90
|
-
delta.codeVulnAnnotations = undefined;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (delta.codeVulnAnnotations) {
|
|
95
|
-
delta.codeVulnAnnotations = delta.codeVulnAnnotations.filter(annotation => !this._seenAnnotationTypes.has(annotation.details.type));
|
|
96
|
-
delta.codeVulnAnnotations.forEach(annotation => this._seenAnnotationTypes.add(annotation.details.type));
|
|
97
|
-
}
|
|
98
|
-
this._stream.emitOne({ text, delta });
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
resolve(): void {
|
|
102
|
-
if (this._paused) {
|
|
103
|
-
this._paused.push(undefined);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
this._stream.resolve();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export class FetchStreamRecorder {
|
|
112
|
-
public readonly callback: FinishedCallback;
|
|
113
|
-
public readonly deltas: IResponseDelta[] = [];
|
|
114
|
-
|
|
115
|
-
constructor(
|
|
116
|
-
callback: FinishedCallback | undefined
|
|
117
|
-
) {
|
|
118
|
-
this.callback = async (text: string, index: number, delta: IResponseDelta): Promise<number | undefined> => {
|
|
119
|
-
const result = callback ? await callback(text, index, delta) : undefined;
|
|
120
|
-
this.deltas.push(delta);
|
|
121
|
-
return result;
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
}
|
|
@@ -1,63 +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 { createServiceIdentifier } from '../../../util/common/services';
|
|
7
|
-
import { IHeaders } from '../../networking/common/fetcherService';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* This is the quota info we get from the `copilot_internal/user` endpoint.
|
|
11
|
-
* It is accessed via the copilot token object
|
|
12
|
-
*/
|
|
13
|
-
export interface CopilotUserQuotaInfo {
|
|
14
|
-
quota_reset_date?: string;
|
|
15
|
-
quota_snapshots?: {
|
|
16
|
-
chat: {
|
|
17
|
-
quota_id: string;
|
|
18
|
-
entitlement: number;
|
|
19
|
-
remaining: number;
|
|
20
|
-
unlimited: boolean;
|
|
21
|
-
overage_count: number;
|
|
22
|
-
overage_permitted: boolean;
|
|
23
|
-
percent_remaining: number;
|
|
24
|
-
};
|
|
25
|
-
completions: {
|
|
26
|
-
quota_id: string;
|
|
27
|
-
entitlement: number;
|
|
28
|
-
remaining: number;
|
|
29
|
-
unlimited: boolean;
|
|
30
|
-
overage_count: number;
|
|
31
|
-
overage_permitted: boolean;
|
|
32
|
-
percent_remaining: number;
|
|
33
|
-
};
|
|
34
|
-
premium_interactions: {
|
|
35
|
-
quota_id: string;
|
|
36
|
-
entitlement: number;
|
|
37
|
-
remaining: number;
|
|
38
|
-
unlimited: boolean;
|
|
39
|
-
overage_count: number;
|
|
40
|
-
overage_permitted: boolean;
|
|
41
|
-
percent_remaining: number;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface IChatQuota {
|
|
47
|
-
quota: number;
|
|
48
|
-
used: number;
|
|
49
|
-
unlimited: boolean;
|
|
50
|
-
overageUsed: number;
|
|
51
|
-
overageEnabled: boolean;
|
|
52
|
-
resetDate: Date;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface IChatQuotaService {
|
|
56
|
-
readonly _serviceBrand: undefined;
|
|
57
|
-
quotaExhausted: boolean;
|
|
58
|
-
overagesEnabled: boolean;
|
|
59
|
-
processQuotaHeaders(headers: IHeaders): void;
|
|
60
|
-
clearQuota(): void;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export const IChatQuotaService = createServiceIdentifier<IChatQuotaService>('IChatQuotaService');
|