@vscode/chat-lib 0.0.1 → 0.0.2
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/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/platform/configuration/common/configurationService.d.ts +1 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +1 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.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/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/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/vscodeTypesShim.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +8 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
- package/dist/src/_internal/vscodeTypes.d.ts +4 -0
- package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
- package/dist/src/_internal/vscodeTypes.js +5 -1
- package/dist/src/_internal/vscodeTypes.js.map +1 -1
- package/dist/src/main.d.ts +5 -0
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +12 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +46 -19
- package/package.json +3 -6
- 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,90 +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 { ChatLocation } from '../../platform/chat/common/commonTypes';
|
|
7
|
-
|
|
8
|
-
export const enum Intent {
|
|
9
|
-
Explain = 'explain',
|
|
10
|
-
Review = 'review',
|
|
11
|
-
Tests = 'tests',
|
|
12
|
-
Fix = 'fix',
|
|
13
|
-
New = 'new',
|
|
14
|
-
NewNotebook = 'newNotebook',
|
|
15
|
-
notebookEditor = 'notebookEditor',
|
|
16
|
-
Search = 'search',
|
|
17
|
-
SemanticSearch = 'semanticSearch',
|
|
18
|
-
Terminal = 'terminal',
|
|
19
|
-
TerminalExplain = 'terminalExplain',
|
|
20
|
-
VSCode = 'vscode',
|
|
21
|
-
Workspace = 'workspace',
|
|
22
|
-
Unknown = 'unknown',
|
|
23
|
-
StartDebugging = 'startDebugging',
|
|
24
|
-
SetupTests = 'setupTests',
|
|
25
|
-
Editor = 'editor',
|
|
26
|
-
Doc = 'doc',
|
|
27
|
-
Edit = 'edit',
|
|
28
|
-
Edit2 = 'edit2',
|
|
29
|
-
Agent = 'editAgent',
|
|
30
|
-
Generate = 'generate',
|
|
31
|
-
SearchPanel = 'searchPanel',
|
|
32
|
-
SearchKeywords = 'searchKeywords',
|
|
33
|
-
AskAgent = 'askAgent',
|
|
34
|
-
ChatReplay = 'chatReplay'
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export const GITHUB_PLATFORM_AGENT = 'github.copilot-dynamic.platform';
|
|
38
|
-
|
|
39
|
-
// TODO@jrieken THIS IS WEIRD. We should read this from package.json
|
|
40
|
-
export const agentsToCommands: Partial<Record<Intent, Record<string, Intent>>> = {
|
|
41
|
-
[Intent.Workspace]: {
|
|
42
|
-
'explain': Intent.Explain,
|
|
43
|
-
'edit': Intent.Edit,
|
|
44
|
-
'review': Intent.Review,
|
|
45
|
-
'tests': Intent.Tests,
|
|
46
|
-
'fix': Intent.Fix,
|
|
47
|
-
'new': Intent.New,
|
|
48
|
-
'newNotebook': Intent.NewNotebook,
|
|
49
|
-
'semanticSearch': Intent.SemanticSearch,
|
|
50
|
-
'setupTests': Intent.SetupTests,
|
|
51
|
-
},
|
|
52
|
-
[Intent.VSCode]: {
|
|
53
|
-
'search': Intent.Search,
|
|
54
|
-
'startDebugging': Intent.StartDebugging,
|
|
55
|
-
},
|
|
56
|
-
[Intent.Terminal]: {
|
|
57
|
-
'explain': Intent.TerminalExplain
|
|
58
|
-
},
|
|
59
|
-
[Intent.Editor]: {
|
|
60
|
-
'doc': Intent.Doc,
|
|
61
|
-
'fix': Intent.Fix,
|
|
62
|
-
'explain': Intent.Explain,
|
|
63
|
-
'review': Intent.Review,
|
|
64
|
-
'tests': Intent.Tests,
|
|
65
|
-
'edit': Intent.Edit,
|
|
66
|
-
'generate': Intent.Generate
|
|
67
|
-
},
|
|
68
|
-
[Intent.ChatReplay]: {
|
|
69
|
-
'chatReplay': Intent.ChatReplay
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
// TODO@roblourens gotta tighten up the terminology of "commands", "intents", etc...
|
|
74
|
-
export function getAgentForIntent(intentId: Intent, location: ChatLocation): { agent: string; command?: string } | undefined {
|
|
75
|
-
if (Object.keys(agentsToCommands).includes(intentId)) {
|
|
76
|
-
return { agent: intentId };
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
for (const [agent, commands] of Object.entries(agentsToCommands)) {
|
|
80
|
-
if (location === ChatLocation.Editor && agent !== Intent.Editor) {
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (Object.values(commands).includes(intentId)) {
|
|
85
|
-
return { agent, command: intentId };
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export const EXTENSION_ID = 'GitHub.copilot-chat';
|
|
@@ -1,108 +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 { ConfigKey, IConfigurationService } from '../../../platform/configuration/common/configurationService';
|
|
7
|
-
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
|
|
8
|
-
|
|
9
|
-
export class DelaySession {
|
|
10
|
-
private extraDebounce = 0;
|
|
11
|
-
|
|
12
|
-
constructor(
|
|
13
|
-
private baseDebounceTime: number,
|
|
14
|
-
private readonly expectedTotalTime: number | undefined,
|
|
15
|
-
private readonly providerInvocationTime: number = Date.now(),
|
|
16
|
-
) {
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public setExtraDebounce(extraDebounce: number): void {
|
|
20
|
-
this.extraDebounce = extraDebounce;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
getDebounceTime() {
|
|
24
|
-
const expectedDebounceTime = this.expectedTotalTime === undefined
|
|
25
|
-
? this.baseDebounceTime + this.extraDebounce
|
|
26
|
-
: Math.min(this.baseDebounceTime + this.extraDebounce, this.expectedTotalTime);
|
|
27
|
-
|
|
28
|
-
const timeAlreadySpent = Date.now() - this.providerInvocationTime;
|
|
29
|
-
const actualDebounceTime = Math.max(0, expectedDebounceTime - timeAlreadySpent);
|
|
30
|
-
|
|
31
|
-
return actualDebounceTime;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
getArtificialDelay() {
|
|
35
|
-
if (this.expectedTotalTime === undefined) {
|
|
36
|
-
return 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const timeAlreadySpent = Date.now() - this.providerInvocationTime;
|
|
40
|
-
const delay = Math.max(0, this.expectedTotalTime - timeAlreadySpent);
|
|
41
|
-
return delay;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export class Delayer {
|
|
46
|
-
|
|
47
|
-
private _recentUserActions: { time: number; kind: 'accepted' | 'rejected' }[] = [];
|
|
48
|
-
|
|
49
|
-
constructor(
|
|
50
|
-
@IConfigurationService private readonly _configurationService: IConfigurationService,
|
|
51
|
-
@IExperimentationService private readonly _experimentationService: IExperimentationService,
|
|
52
|
-
) {
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public createDelaySession(requestTime: number | undefined): DelaySession {
|
|
56
|
-
const baseDebounceTime = this._configurationService.getExperimentBasedConfig(ConfigKey.Internal.InlineEditsDebounce, this._experimentationService);
|
|
57
|
-
|
|
58
|
-
const backoffDebounceEnabled = this._configurationService.getExperimentBasedConfig(ConfigKey.Internal.InlineEditsBackoffDebounceEnabled, this._experimentationService);
|
|
59
|
-
const expectedTotalTime = backoffDebounceEnabled ? this._getExpectedTotalTime(baseDebounceTime) : undefined;
|
|
60
|
-
|
|
61
|
-
return new DelaySession(baseDebounceTime, expectedTotalTime, requestTime);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public handleAcceptance(): void {
|
|
65
|
-
this._recordUserAction('accepted');
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public handleRejection(): void {
|
|
69
|
-
this._recordUserAction('rejected');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
private _recordUserAction(kind: 'accepted' | 'rejected') {
|
|
73
|
-
this._recentUserActions.push({ time: Date.now(), kind });
|
|
74
|
-
// keep at most 10 user actions
|
|
75
|
-
this._recentUserActions = this._recentUserActions.slice(-10);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
private _getExpectedTotalTime(baseDebounceTime: number): number {
|
|
79
|
-
const DEBOUNCE_DECAY_TIME_MS = 10 * 60 * 1000; // 10 minutes
|
|
80
|
-
const MAX_DEBOUNCE_TIME = 3000; // 3 seconds
|
|
81
|
-
const MIN_DEBOUNCE_TIME = 50; // 50 ms
|
|
82
|
-
const REJECTION_WEIGHT = 1.5;
|
|
83
|
-
const ACCEPTANCE_WEIGHT = 0.8;
|
|
84
|
-
const now = Date.now();
|
|
85
|
-
let multiplier = 1;
|
|
86
|
-
|
|
87
|
-
// Calculate impact of each action with time decay
|
|
88
|
-
for (const action of this._recentUserActions) {
|
|
89
|
-
const timeSinceAction = now - action.time;
|
|
90
|
-
if (timeSinceAction > DEBOUNCE_DECAY_TIME_MS) {
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Exponential decay: impact decreases as time passes
|
|
95
|
-
const decayFactor = Math.exp(-timeSinceAction / DEBOUNCE_DECAY_TIME_MS);
|
|
96
|
-
const actionWeight = action.kind === 'rejected' ? REJECTION_WEIGHT : ACCEPTANCE_WEIGHT;
|
|
97
|
-
multiplier *= 1 + ((actionWeight - 1) * decayFactor);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
let debounceTime = baseDebounceTime * multiplier;
|
|
101
|
-
|
|
102
|
-
// Clamp the debounce time to reasonable bounds
|
|
103
|
-
debounceTime = Math.min(MAX_DEBOUNCE_TIME, Math.max(MIN_DEBOUNCE_TIME, debounceTime));
|
|
104
|
-
|
|
105
|
-
return debounceTime;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
}
|
|
@@ -1,268 +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 { SingleEdits } from '../../../platform/inlineEdits/common/dataTypes/edit';
|
|
7
|
-
import * as errors from '../../../util/common/errors';
|
|
8
|
-
import { ITracer } from '../../../util/common/tracing';
|
|
9
|
-
import { AnnotatedStringEdit, AnnotatedStringReplacement, IEditData, StringEdit, StringReplacement, VoidEditData } from '../../../util/vs/editor/common/core/edits/stringEdit';
|
|
10
|
-
import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
|
|
11
|
-
import { StringText } from '../../../util/vs/editor/common/core/text/abstractText';
|
|
12
|
-
import { DefaultLinesDiffComputer } from '../../../util/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer';
|
|
13
|
-
import { ILinesDiffComputerOptions } from '../../../util/vs/editor/common/diff/linesDiffComputer';
|
|
14
|
-
|
|
15
|
-
const TROUBLESHOOT_EDIT_CONSISTENCY = false;
|
|
16
|
-
|
|
17
|
-
export interface NesRebaseConfigs {
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export class EditDataWithIndex implements IEditData<EditDataWithIndex> {
|
|
21
|
-
constructor(
|
|
22
|
-
public readonly index: number
|
|
23
|
-
) { }
|
|
24
|
-
|
|
25
|
-
join(data: EditDataWithIndex): EditDataWithIndex | undefined {
|
|
26
|
-
if (this.index !== data.index) {
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
return this;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function tryRebase(originalDocument: string, editWindow: OffsetRange | undefined, originalEdits: readonly StringReplacement[], detailedEdits: AnnotatedStringReplacement<EditDataWithIndex>[][], userEditSince: StringEdit, currentDocumentContent: string, currentSelection: readonly OffsetRange[], resolution: 'strict' | 'lenient', tracer: ITracer, nesConfigs: NesRebaseConfigs = {}): { rebasedEdit: StringReplacement; rebasedEditIndex: number }[] | 'outsideEditWindow' | 'rebaseFailed' | 'error' | 'inconsistentEdits' {
|
|
34
|
-
const start = Date.now();
|
|
35
|
-
try {
|
|
36
|
-
return _tryRebase(originalDocument, editWindow, originalEdits, detailedEdits, userEditSince, currentDocumentContent, currentSelection, resolution, tracer, nesConfigs);
|
|
37
|
-
} catch (err) {
|
|
38
|
-
tracer.trace(`Rebase error: ${errors.toString(err)}`);
|
|
39
|
-
return 'error';
|
|
40
|
-
} finally {
|
|
41
|
-
tracer.trace(`Rebase duration: ${Date.now() - start}ms`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function _tryRebase(originalDocument: string, editWindow: OffsetRange | undefined, originalEdits: readonly StringReplacement[], detailedEdits: AnnotatedStringReplacement<EditDataWithIndex>[][], userEditSinceOrig: StringEdit, currentDocumentContent: string, currentSelection: readonly OffsetRange[], resolution: 'strict' | 'lenient', tracer: ITracer, nesConfigs: NesRebaseConfigs) {
|
|
46
|
-
if (!checkEditConsistency(originalDocument, userEditSinceOrig, currentDocumentContent, tracer, true)) {
|
|
47
|
-
return 'inconsistentEdits';
|
|
48
|
-
}
|
|
49
|
-
const userEditSince = userEditSinceOrig.removeCommonSuffixAndPrefix(originalDocument);
|
|
50
|
-
const cursorRange = currentSelection[0];
|
|
51
|
-
if (editWindow && cursorRange) {
|
|
52
|
-
const updatedEditWindow = userEditSince.applyToOffsetRangeOrUndefined(editWindow);
|
|
53
|
-
if (!updatedEditWindow?.containsRange(cursorRange)) {
|
|
54
|
-
return 'outsideEditWindow';
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (detailedEdits.length < originalEdits.length) {
|
|
58
|
-
let intermediateDocument = originalDocument;
|
|
59
|
-
for (let index = 0; index < detailedEdits.length; index++) {
|
|
60
|
-
const edit = originalEdits[index];
|
|
61
|
-
intermediateDocument = StringEdit.single(edit).apply(intermediateDocument);
|
|
62
|
-
}
|
|
63
|
-
for (let index = detailedEdits.length; index < originalEdits.length; index++) {
|
|
64
|
-
const edit = originalEdits[index];
|
|
65
|
-
const editData = new EditDataWithIndex(index);
|
|
66
|
-
detailedEdits[index] = computeDiff(edit.replaceRange.substring(intermediateDocument), edit.newText, edit.replaceRange.start, editData, {
|
|
67
|
-
ignoreTrimWhitespace: false,
|
|
68
|
-
computeMoves: false,
|
|
69
|
-
extendToSubwords: true,
|
|
70
|
-
maxComputationTimeMs: 500,
|
|
71
|
-
}) || [new AnnotatedStringReplacement(edit.replaceRange, edit.newText, editData)];
|
|
72
|
-
intermediateDocument = StringEdit.single(edit).apply(intermediateDocument);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
const diffedEdit = AnnotatedStringEdit.compose(detailedEdits.map(edits => AnnotatedStringEdit.create(edits)));
|
|
76
|
-
const rebasedEdit = tryRebaseEdits(originalDocument, diffedEdit, userEditSince, resolution, nesConfigs);
|
|
77
|
-
if (!rebasedEdit) {
|
|
78
|
-
return 'rebaseFailed';
|
|
79
|
-
}
|
|
80
|
-
const grouped = rebasedEdit.replacements.reduce((acc, item) => {
|
|
81
|
-
(acc[item.data.index] ||= []).push(item);
|
|
82
|
-
return acc;
|
|
83
|
-
}, [] as (AnnotatedStringReplacement<EditDataWithIndex>[] | undefined)[]);
|
|
84
|
-
const resultEdits: { rebasedEdit: StringReplacement; rebasedEditIndex: number }[] = [];
|
|
85
|
-
for (let index = 0; index < grouped.length; index++) {
|
|
86
|
-
const group = grouped[index];
|
|
87
|
-
if (!group) {
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
const range = OffsetRange.fromTo(group[0].replaceRange.start, group[group.length - 1].replaceRange.endExclusive);
|
|
91
|
-
const newText = group.map((edit, i, a) => {
|
|
92
|
-
if (i > 0) {
|
|
93
|
-
return currentDocumentContent.substring(a[i - 1].replaceRange.endExclusive, edit.replaceRange.start) + edit.newText;
|
|
94
|
-
} else {
|
|
95
|
-
return edit.newText;
|
|
96
|
-
}
|
|
97
|
-
}).join('');
|
|
98
|
-
const resultEdit = StringReplacement.replace(range, newText);
|
|
99
|
-
if (!resultEdit.removeCommonSuffixAndPrefix(currentDocumentContent).isEmpty) {
|
|
100
|
-
resultEdits.push({ rebasedEdit: resultEdit, rebasedEditIndex: index });
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (resolution === 'strict' && resultEdits.length > 0 && new SingleEdits(originalEdits).apply(originalDocument) !== StringEdit.create(resultEdits.map(r => r.rebasedEdit)).apply(currentDocumentContent)) {
|
|
104
|
-
tracer.trace('Result consistency check failed.');
|
|
105
|
-
return 'inconsistentEdits';
|
|
106
|
-
}
|
|
107
|
-
return resultEdits;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export function checkEditConsistency(original: string, edit: StringEdit, current: string, tracer: ITracer, enabled = TROUBLESHOOT_EDIT_CONSISTENCY) {
|
|
111
|
-
if (!enabled) {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
const consistent = edit.apply(original) === current;
|
|
115
|
-
if (!consistent) {
|
|
116
|
-
tracer.trace('Edit consistency check failed.');
|
|
117
|
-
}
|
|
118
|
-
return consistent;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export function tryRebaseStringEdits<T extends IEditData<T>>(content: string, ours: StringEdit, base: StringEdit, resolution: 'strict' | 'lenient', nesConfigs: NesRebaseConfigs = {}): StringEdit | undefined {
|
|
122
|
-
return tryRebaseEdits(content, ours.mapData(r => new VoidEditData()), base, resolution, nesConfigs)?.toStringEdit();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function tryRebaseEdits<T extends IEditData<T>>(content: string, ours: AnnotatedStringEdit<T>, baseOrig: StringEdit, resolution: 'strict' | 'lenient', nesConfigs: NesRebaseConfigs): AnnotatedStringEdit<T> | undefined {
|
|
126
|
-
const base = baseOrig.removeCommonSuffixAndPrefix(content);
|
|
127
|
-
|
|
128
|
-
const newEdits: AnnotatedStringReplacement<T>[] = [];
|
|
129
|
-
|
|
130
|
-
let baseIdx = 0;
|
|
131
|
-
let ourIdx = 0;
|
|
132
|
-
let offset = 0;
|
|
133
|
-
|
|
134
|
-
while (ourIdx < ours.replacements.length || baseIdx < base.replacements.length) {
|
|
135
|
-
// take the edit that starts first
|
|
136
|
-
const baseEdit = base.replacements[baseIdx];
|
|
137
|
-
const ourEdit = ours.replacements[ourIdx];
|
|
138
|
-
|
|
139
|
-
if (!ourEdit) {
|
|
140
|
-
if (resolution === 'strict') {
|
|
141
|
-
// baseEdit does not match but interleaves
|
|
142
|
-
return undefined;
|
|
143
|
-
}
|
|
144
|
-
// We processed all our edits
|
|
145
|
-
break;
|
|
146
|
-
} else if (!baseEdit) {
|
|
147
|
-
// no more edits from base
|
|
148
|
-
newEdits.push(ourEdit.delta(offset));
|
|
149
|
-
ourIdx++;
|
|
150
|
-
} else {
|
|
151
|
-
let ourE = ourEdit;
|
|
152
|
-
if (!ourE.replaceRange.containsRange(baseEdit.replaceRange)) {
|
|
153
|
-
// Try to shift our edit to include the base edit.
|
|
154
|
-
if (ourE.replaceRange.start > baseEdit.replaceRange.start) {
|
|
155
|
-
// Expand our edit to the left to include the base edit.
|
|
156
|
-
const added = content.substring(baseEdit.replaceRange.start, ourE.replaceRange.start);
|
|
157
|
-
const updated = added + ourE.newText;
|
|
158
|
-
// Remove the same text from the right.
|
|
159
|
-
if (updated.endsWith(added)) {
|
|
160
|
-
ourE = new AnnotatedStringReplacement(
|
|
161
|
-
OffsetRange.fromTo(baseEdit.replaceRange.start, ourE.replaceRange.endExclusive - added.length),
|
|
162
|
-
updated.substring(0, updated.length - added.length),
|
|
163
|
-
ourE.data,
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Skipping the case where there is another edit for now because we might have to merge with it first.
|
|
168
|
-
else if (ourIdx === ours.replacements.length - 1 && ourE.replaceRange.endExclusive < baseEdit.replaceRange.endExclusive) {
|
|
169
|
-
// Expand our edit to the right to include the base edit.
|
|
170
|
-
const added = content.substring(ourE.replaceRange.endExclusive, baseEdit.replaceRange.endExclusive);
|
|
171
|
-
const updated = ourE.newText + added;
|
|
172
|
-
// Remove the same text from the left.
|
|
173
|
-
if (updated.startsWith(added)) {
|
|
174
|
-
ourE = new AnnotatedStringReplacement(
|
|
175
|
-
OffsetRange.fromTo(ourE.replaceRange.start + added.length, baseEdit.replaceRange.endExclusive),
|
|
176
|
-
updated.substring(added.length),
|
|
177
|
-
ourE.data,
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
if (ourE.replaceRange.intersectsOrTouches(baseEdit.replaceRange)) {
|
|
183
|
-
if (ourE.replaceRange.containsRange(baseEdit.replaceRange) && ourE.newText.length >= baseEdit.newText.length) {
|
|
184
|
-
let delta = 0;
|
|
185
|
-
let ourNewTextOffset = 0;
|
|
186
|
-
let baseE = baseEdit;
|
|
187
|
-
let previousBaseE: StringReplacement | undefined;
|
|
188
|
-
while (baseE && ourE.replaceRange.containsRange(baseE.replaceRange)) {
|
|
189
|
-
ourNewTextOffset = agreementIndexOf(content, ourE, baseE, previousBaseE, ourNewTextOffset, resolution, nesConfigs);
|
|
190
|
-
if (ourNewTextOffset === -1) {
|
|
191
|
-
// Conflicting
|
|
192
|
-
return undefined;
|
|
193
|
-
}
|
|
194
|
-
delta += baseE.newText.length - baseE.replaceRange.length;
|
|
195
|
-
previousBaseE = baseE;
|
|
196
|
-
baseE = base.replacements[++baseIdx];
|
|
197
|
-
}
|
|
198
|
-
newEdits.push(new AnnotatedStringReplacement(
|
|
199
|
-
new OffsetRange(ourE.replaceRange.start + offset, ourE.replaceRange.endExclusive + offset + delta),
|
|
200
|
-
ourE.newText,
|
|
201
|
-
ourE.data,
|
|
202
|
-
));
|
|
203
|
-
ourIdx++;
|
|
204
|
-
offset += delta;
|
|
205
|
-
} else {
|
|
206
|
-
// Conflicting
|
|
207
|
-
return undefined;
|
|
208
|
-
}
|
|
209
|
-
} else if (ourEdit.replaceRange.start < baseEdit.replaceRange.start) {
|
|
210
|
-
// Our edit starts first
|
|
211
|
-
newEdits.push(new AnnotatedStringReplacement(
|
|
212
|
-
ourEdit.replaceRange.delta(offset),
|
|
213
|
-
ourEdit.newText,
|
|
214
|
-
ourEdit.data,
|
|
215
|
-
));
|
|
216
|
-
ourIdx++;
|
|
217
|
-
} else {
|
|
218
|
-
if (resolution === 'strict') {
|
|
219
|
-
// baseEdit does not match but interleaves
|
|
220
|
-
return undefined;
|
|
221
|
-
}
|
|
222
|
-
baseIdx++;
|
|
223
|
-
offset += baseEdit.newText.length - baseEdit.replaceRange.length;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return AnnotatedStringEdit.create(newEdits);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
export const maxAgreementOffset = 10; // If the user's typing is more than this into the suggestion we consider it a miss.
|
|
232
|
-
export const maxImperfectAgreementLength = 5; // If the user's typing is longer than this and the suggestion is not a perfect match we consider it a miss.
|
|
233
|
-
|
|
234
|
-
function agreementIndexOf<T extends IEditData<T>>(content: string, ourE: AnnotatedStringReplacement<T>, baseE: StringReplacement, previousBaseE: StringReplacement | undefined, ourNewTextOffset: number, resolution: 'strict' | 'lenient', nesConfigs: NesRebaseConfigs) {
|
|
235
|
-
const minStart = previousBaseE ? previousBaseE.replaceRange.endExclusive : ourE.replaceRange.start;
|
|
236
|
-
if (minStart < baseE.replaceRange.start) {
|
|
237
|
-
baseE = new StringReplacement(
|
|
238
|
-
OffsetRange.fromTo(minStart, baseE.replaceRange.endExclusive),
|
|
239
|
-
content.substring(minStart, baseE.replaceRange.start) + baseE.newText
|
|
240
|
-
);
|
|
241
|
-
}
|
|
242
|
-
const j = ourE.newText.indexOf(baseE.newText, ourNewTextOffset);
|
|
243
|
-
if (resolution === 'strict' && j > maxAgreementOffset) {
|
|
244
|
-
return -1;
|
|
245
|
-
}
|
|
246
|
-
if (resolution === 'strict' && j > 0 && baseE.newText.length > maxImperfectAgreementLength) {
|
|
247
|
-
return -1;
|
|
248
|
-
}
|
|
249
|
-
return j !== -1 ? j + baseE.newText.length : -1;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
function computeDiff(original: string, modified: string, offset: number, editData: EditDataWithIndex, options: ILinesDiffComputerOptions): AnnotatedStringReplacement<EditDataWithIndex>[] | undefined {
|
|
253
|
-
const originalLines = original.split(/\r\n|\r|\n/);
|
|
254
|
-
const modifiedLines = modified.split(/\r\n|\r|\n/);
|
|
255
|
-
const diffComputer = new DefaultLinesDiffComputer();
|
|
256
|
-
const result = diffComputer.computeDiff(originalLines, modifiedLines, options);
|
|
257
|
-
if (result.hitTimeout) {
|
|
258
|
-
return undefined;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
const originalText = new StringText(original);
|
|
262
|
-
const modifiedText = new StringText(modified);
|
|
263
|
-
return result.changes.map(change => (change.innerChanges || []).map(innerChange => {
|
|
264
|
-
const range = originalText.getTransformer().getOffsetRange(innerChange.originalRange);
|
|
265
|
-
const newText = modifiedText.getValueOfRange(innerChange.modifiedRange);
|
|
266
|
-
return new AnnotatedStringReplacement(range.delta(offset), newText, editData);
|
|
267
|
-
})).flat();
|
|
268
|
-
}
|
|
@@ -1,163 +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 { StatelessNextEditDocument } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
|
|
7
|
-
import { LineEdit } from '../../../util/vs/editor/common/core/edits/lineEdit';
|
|
8
|
-
import { StringEdit } from '../../../util/vs/editor/common/core/edits/stringEdit';
|
|
9
|
-
import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
|
|
10
|
-
|
|
11
|
-
const N_GRAM_UNDO_RATIO_TO_FILTER_OUT = 0.7;
|
|
12
|
-
|
|
13
|
-
export function editWouldDeleteWhatWasJustInserted(activeDocument: StatelessNextEditDocument, lineEdit: LineEdit) {
|
|
14
|
-
let edit = lineEdit.toEdit(activeDocument.documentAfterEdits);
|
|
15
|
-
// ! important: reduce it to the minimal set of changes
|
|
16
|
-
edit = edit.normalizeOnSource(activeDocument.documentAfterEdits.value);
|
|
17
|
-
if (!editIsDeletion(edit)) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
// We are deleting something. Is it what was just inserted?
|
|
21
|
-
for (let i = activeDocument.recentEdits.edits.length - 1; i >= 0; i--) {
|
|
22
|
-
const recentEdit = activeDocument.recentEdits.edits[i];
|
|
23
|
-
const rebaseResult = edit.tryRebase(recentEdit);
|
|
24
|
-
if (!rebaseResult) {
|
|
25
|
-
// the edit we want to do cannot be rebased, which indicates that it would interfere with a recent edit
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
edit = rebaseResult;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function editIsDeletion(edit: StringEdit): boolean {
|
|
34
|
-
const deletedChars = edit.replacements.reduce((acc, singleEdit) => acc + singleEdit.replaceRange.length, 0);
|
|
35
|
-
const insertedChars = edit.replacements.reduce((acc, singleEdit) => acc + singleEdit.newText.length, 0);
|
|
36
|
-
return insertedChars === 0 && deletedChars > 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Represents information loss/gain (4-grams) via an edit.
|
|
41
|
-
*/
|
|
42
|
-
export class InformationDelta {
|
|
43
|
-
|
|
44
|
-
constructor(
|
|
45
|
-
public readonly inserted: Set<string> = new Set<string>(),
|
|
46
|
-
public readonly deleted: Set<string> = new Set<string>()
|
|
47
|
-
) { }
|
|
48
|
-
|
|
49
|
-
combine(other: InformationDelta) {
|
|
50
|
-
return new InformationDelta(setUnion(this.inserted, other.inserted), setUnion(this.deleted, other.deleted));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
isUndoneBy(other: InformationDelta) {
|
|
54
|
-
const otherReallyNewInsertions = setMinus(other.inserted, other.deleted);
|
|
55
|
-
const otherReallyDeleted = setMinus(other.deleted, other.inserted);
|
|
56
|
-
|
|
57
|
-
const otherReallyDeletesMyInserts = setIntersectionCount(otherReallyDeleted, this.inserted);
|
|
58
|
-
const otherReallyInsertsMyDeletes = setIntersectionCount(otherReallyNewInsertions, this.deleted);
|
|
59
|
-
|
|
60
|
-
if (otherReallyDeleted.size > 6 && otherReallyDeletesMyInserts / otherReallyDeleted.size > N_GRAM_UNDO_RATIO_TO_FILTER_OUT) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (otherReallyNewInsertions.size > 6 && otherReallyInsertsMyDeletes / otherReallyNewInsertions.size > N_GRAM_UNDO_RATIO_TO_FILTER_OUT) {
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export function getInformationDelta(source: string, edit: StringEdit): InformationDelta {
|
|
73
|
-
const inserted = new Set<string>();
|
|
74
|
-
const deleted = new Set<string>();
|
|
75
|
-
const tryAddDeleted = (deletedRange: OffsetRange | undefined) => {
|
|
76
|
-
if (!deletedRange) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const deletedText = source.substring(deletedRange.start, deletedRange.endExclusive);
|
|
80
|
-
for (let line of deletedText.split(/\r\n|\r|\n/)) {
|
|
81
|
-
line = line.trim();
|
|
82
|
-
for (const piece of to4grams(line)) {
|
|
83
|
-
deleted.add(piece);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const tryAddInserted = (insertedText: string) => {
|
|
88
|
-
for (let line of insertedText.split(/\r\n|\r|\n/)) {
|
|
89
|
-
line = line.trim();
|
|
90
|
-
for (const piece of to4grams(line)) {
|
|
91
|
-
inserted.add(piece);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
for (const e of edit.replacements) {
|
|
96
|
-
const e1 = e.removeCommonPrefix(source).removeCommonSuffix(source);
|
|
97
|
-
const e2 = e.removeCommonSuffix(source).removeCommonPrefix(source);
|
|
98
|
-
if (e1.isEmpty) {
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
tryAddDeleted(e1.replaceRange);
|
|
102
|
-
tryAddDeleted(e2.replaceRange);
|
|
103
|
-
tryAddDeleted(e1.replaceRange.intersect(e2.replaceRange));
|
|
104
|
-
|
|
105
|
-
// tryAddInserted(e1.newText);
|
|
106
|
-
// tryAddInserted(e2.newText);
|
|
107
|
-
// e1 might have a suffix overlap with the prefix of e1
|
|
108
|
-
tryAddInserted(trimOverlap(e1.newText, e2.newText));
|
|
109
|
-
}
|
|
110
|
-
return new InformationDelta(inserted, deleted);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function trimOverlap(stringToEliminateEnd: string, stringToEliminateStart: string): string {
|
|
114
|
-
const length = Math.min(stringToEliminateEnd.length, stringToEliminateStart.length);
|
|
115
|
-
for (let trimLength = 0; trimLength < length; trimLength++) {
|
|
116
|
-
const str1 = stringToEliminateEnd.slice(0, stringToEliminateEnd.length - trimLength);
|
|
117
|
-
const str2 = stringToEliminateStart.slice(trimLength);
|
|
118
|
-
if (str1 === str2) {
|
|
119
|
-
return str1;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return '';
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function to4grams(text: string) {
|
|
126
|
-
const result: string[] = [];
|
|
127
|
-
for (let i = 4; i < text.length; i++) {
|
|
128
|
-
const ngram = text.slice(i - 4, i);
|
|
129
|
-
result.push(ngram);
|
|
130
|
-
}
|
|
131
|
-
return result;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function setUnion(a: Set<string>, b: Set<string>): Set<string> {
|
|
135
|
-
const result = new Set<string>();
|
|
136
|
-
for (const el of a) {
|
|
137
|
-
result.add(el);
|
|
138
|
-
}
|
|
139
|
-
for (const el of b) {
|
|
140
|
-
result.add(el);
|
|
141
|
-
}
|
|
142
|
-
return result;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function setMinus(a: Set<string>, b: Set<string>): Set<string> {
|
|
146
|
-
const result = new Set<string>();
|
|
147
|
-
for (const el of a) {
|
|
148
|
-
if (!b.has(el)) {
|
|
149
|
-
result.add(el);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return result;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function setIntersectionCount(a: Set<string>, b: Set<string>): number {
|
|
156
|
-
let result = 0;
|
|
157
|
-
for (const el of a) {
|
|
158
|
-
if (b.has(el)) {
|
|
159
|
-
result++;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return result;
|
|
163
|
-
}
|