@vscode/chat-lib 0.3.1-2 → 0.3.1-21
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/byok/node/openAIEndpoint.d.ts +1 -6
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.js +9 -20
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.js.map +1 -1
- package/dist/src/_internal/extension/common/constants.d.ts +0 -1
- package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
- package/dist/src/_internal/extension/common/constants.js +2 -1
- package/dist/src/_internal/extension/common/constants.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.js +5 -4
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts +4 -2
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js +38 -5
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.d.ts +4 -4
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js +58 -48
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.d.ts +3 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.js +5 -5
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +215 -125
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.d.ts +4 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js +31 -18
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/diagnostics.js +4 -4
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/diagnostics.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.d.ts +3 -3
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.js +9 -9
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/rejectionCollector.d.ts +3 -2
- package/dist/src/_internal/extension/inlineEdits/common/rejectionCollector.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/rejectionCollector.js +10 -11
- package/dist/src/_internal/extension/inlineEdits/common/rejectionCollector.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.d.ts +52 -8
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.js +208 -41
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +14 -4
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +53 -39
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +25 -4
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +474 -172
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +16 -8
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +53 -27
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/power/common/powerService.d.ts +22 -0
- package/dist/src/_internal/extension/power/common/powerService.d.ts.map +1 -0
- package/dist/src/_internal/extension/power/common/powerService.js +20 -0
- package/dist/src/_internal/extension/power/common/powerService.js.map +1 -0
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +4 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +46 -10
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/inlineSuggestion.d.ts +15 -0
- package/dist/src/_internal/extension/xtab/common/inlineSuggestion.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/inlineSuggestion.js +43 -0
- package/dist/src/_internal/extension/xtab/common/inlineSuggestion.js.map +1 -0
- package/dist/src/_internal/extension/xtab/common/lintErrors.d.ts +4 -4
- package/dist/src/_internal/extension/xtab/common/lintErrors.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/lintErrors.js +70 -26
- package/dist/src/_internal/extension/xtab/common/lintErrors.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts +4 -4
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js +84 -19
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/terminalOutput.d.ts +20 -0
- package/dist/src/_internal/extension/xtab/common/terminalOutput.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/terminalOutput.js +105 -0
- package/dist/src/_internal/extension/xtab/common/terminalOutput.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +2 -3
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +2 -1
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +2 -2
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +50 -4
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +53 -9
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +384 -170
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts +1 -4
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js +21 -39
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +7 -2
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.js +11 -4
- package/dist/src/_internal/platform/authentication/common/copilotToken.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 +1 -0
- package/dist/src/_internal/platform/authentication/node/copilotTokenManager.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.d.ts +2 -2
- package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.js +8 -8
- package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +51 -10
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +53 -15
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +3 -2
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +22 -26
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +9 -5
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointTypes.d.ts +1 -0
- package/dist/src/_internal/platform/endpoint/common/endpointTypes.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointTypes.js +1 -0
- package/dist/src/_internal/platform/endpoint/common/endpointTypes.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/phaseDataContainer.d.ts +16 -0
- package/dist/src/_internal/platform/endpoint/common/phaseDataContainer.d.ts.map +1 -0
- package/dist/src/_internal/platform/endpoint/common/phaseDataContainer.js +37 -0
- package/dist/src/_internal/platform/endpoint/common/phaseDataContainer.js.map +1 -0
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js +1 -1
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +6 -13
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +18 -53
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.js +1 -1
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +22 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +193 -59
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +25 -3
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/env/common/envService.d.ts +6 -0
- package/dist/src/_internal/platform/env/common/envService.d.ts.map +1 -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 +4 -0
- package/dist/src/_internal/platform/env/common/nullEnvService.js.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.d.ts +4 -3
- package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.js +4 -2
- package/dist/src/_internal/platform/github/common/githubAPI.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.d.ts +43 -4
- package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.js +18 -6
- package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +100 -3
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +230 -2
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +11 -5
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +33 -18
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.d.ts +30 -5
- package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.js +69 -2
- package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +39 -7
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +43 -6
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js +23 -24
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js.map +1 -1
- package/dist/src/_internal/platform/log/common/logService.d.ts +68 -0
- package/dist/src/_internal/platform/log/common/logService.d.ts.map +1 -1
- package/dist/src/_internal/platform/log/common/logService.js +227 -29
- package/dist/src/_internal/platform/log/common/logService.js.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts +5 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js +121 -6
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/streamTransformer.d.ts +1 -4
- package/dist/src/_internal/platform/nesFetch/node/streamTransformer.d.ts.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/streamTransformer.js +1 -21
- package/dist/src/_internal/platform/nesFetch/node/streamTransformer.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts +18 -5
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js +55 -27
- package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.d.ts +8 -1
- package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.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 +17 -13
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js +4 -4
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.d.ts +35 -1
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.js +21 -1
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +2 -2
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +37 -2
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js +54 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts +2 -0
- package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.js +1 -0
- package/dist/src/_internal/platform/telemetry/common/telemetry.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetryData.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetryData.js +3 -0
- package/dist/src/_internal/platform/telemetry/common/telemetryData.js.map +1 -1
- package/dist/src/_internal/platform/terminal/common/terminalService.d.ts +111 -0
- package/dist/src/_internal/platform/terminal/common/terminalService.d.ts.map +1 -0
- package/dist/src/_internal/platform/terminal/common/terminalService.js +83 -0
- package/dist/src/_internal/platform/terminal/common/terminalService.js.map +1 -0
- package/dist/src/_internal/platform/workspace/common/workspaceService.d.ts +9 -3
- package/dist/src/_internal/platform/workspace/common/workspaceService.d.ts.map +1 -1
- package/dist/src/_internal/platform/workspace/common/workspaceService.js +8 -2
- package/dist/src/_internal/platform/workspace/common/workspaceService.js.map +1 -1
- package/dist/src/_internal/util/common/asyncIterableUtils.d.ts +17 -0
- package/dist/src/_internal/util/common/asyncIterableUtils.d.ts.map +1 -0
- package/dist/src/_internal/util/common/asyncIterableUtils.js +94 -0
- package/dist/src/_internal/util/common/asyncIterableUtils.js.map +1 -0
- package/dist/src/_internal/util/common/backwardCompatSetting.d.ts +12 -0
- package/dist/src/_internal/util/common/backwardCompatSetting.d.ts.map +1 -0
- package/dist/src/_internal/util/common/backwardCompatSetting.js +21 -0
- package/dist/src/_internal/util/common/backwardCompatSetting.js.map +1 -0
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +52 -3
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js +63 -5
- package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/themes.d.ts +13 -0
- package/dist/src/_internal/util/common/test/shims/themes.d.ts.map +1 -0
- package/dist/src/_internal/util/common/test/shims/themes.js +27 -0
- package/dist/src/_internal/util/common/test/shims/themes.js.map +1 -0
- 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/util/vs/base/common/arrays.d.ts +13 -1
- package/dist/src/_internal/util/vs/base/common/arrays.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/arrays.js +26 -0
- package/dist/src/_internal/util/vs/base/common/arrays.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/arraysFind.d.ts +6 -3
- package/dist/src/_internal/util/vs/base/common/arraysFind.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/arraysFind.js +19 -1
- package/dist/src/_internal/util/vs/base/common/arraysFind.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/assert.d.ts +1 -0
- package/dist/src/_internal/util/vs/base/common/assert.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/assert.js +4 -0
- package/dist/src/_internal/util/vs/base/common/assert.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/async.d.ts +7 -0
- package/dist/src/_internal/util/vs/base/common/async.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/async.js +39 -2
- package/dist/src/_internal/util/vs/base/common/async.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/buffer.js +2 -2
- package/dist/src/_internal/util/vs/base/common/buffer.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/cancellation.d.ts +1 -1
- package/dist/src/_internal/util/vs/base/common/cancellation.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/cancellation.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codicons.d.ts +31 -5
- package/dist/src/_internal/util/vs/base/common/codicons.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.d.ts +31 -5
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.js +31 -5
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/collections.d.ts +2 -2
- package/dist/src/_internal/util/vs/base/common/collections.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/collections.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/equals.d.ts +46 -14
- package/dist/src/_internal/util/vs/base/common/equals.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/equals.js +84 -36
- package/dist/src/_internal/util/vs/base/common/equals.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/event.d.ts +30 -2
- package/dist/src/_internal/util/vs/base/common/event.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/event.js +105 -19
- package/dist/src/_internal/util/vs/base/common/event.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/filters.d.ts +1 -0
- package/dist/src/_internal/util/vs/base/common/filters.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/filters.js +23 -3
- package/dist/src/_internal/util/vs/base/common/filters.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/glob.d.ts +7 -3
- package/dist/src/_internal/util/vs/base/common/glob.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/glob.js +42 -30
- package/dist/src/_internal/util/vs/base/common/glob.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/htmlContent.d.ts +6 -1
- package/dist/src/_internal/util/vs/base/common/htmlContent.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/htmlContent.js +12 -4
- package/dist/src/_internal/util/vs/base/common/htmlContent.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/iterator.d.ts +2 -2
- package/dist/src/_internal/util/vs/base/common/iterator.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/iterator.js +1 -1
- package/dist/src/_internal/util/vs/base/common/iterator.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/lifecycle.d.ts +6 -2
- package/dist/src/_internal/util/vs/base/common/lifecycle.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/lifecycle.js +10 -5
- package/dist/src/_internal/util/vs/base/common/lifecycle.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/linkedList.d.ts +1 -0
- package/dist/src/_internal/util/vs/base/common/linkedList.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/linkedList.js +9 -0
- package/dist/src/_internal/util/vs/base/common/linkedList.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/map.d.ts +4 -4
- package/dist/src/_internal/util/vs/base/common/map.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/map.js +8 -5
- package/dist/src/_internal/util/vs/base/common/map.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/marshallingIds.d.ts +1 -1
- package/dist/src/_internal/util/vs/base/common/marshallingIds.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/mime.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/mime.js +7 -5
- package/dist/src/_internal/util/vs/base/common/mime.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/network.d.ts +10 -2
- package/dist/src/_internal/util/vs/base/common/network.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/network.js +10 -3
- package/dist/src/_internal/util/vs/base/common/network.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/normalization.d.ts +11 -0
- package/dist/src/_internal/util/vs/base/common/normalization.d.ts.map +1 -0
- package/dist/src/_internal/util/vs/base/common/normalization.js +61 -0
- package/dist/src/_internal/util/vs/base/common/normalization.js.map +1 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/base.d.ts +4 -4
- package/dist/src/_internal/util/vs/base/common/observableInternal/base.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/base.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/debugLocation.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/debugLocation.js +1 -2
- package/dist/src/_internal/util/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/debugName.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/debugName.js +0 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.d.ts +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.js +5 -4
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/logging/debugGetDependencyGraph.d.ts +5 -2
- package/dist/src/_internal/util/vs/base/common/observableInternal/logging/debugGetDependencyGraph.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +39 -11
- package/dist/src/_internal/util/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/map.d.ts +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/map.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/map.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.d.ts +10 -4
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.js +17 -6
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/derived.d.ts +2 -2
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/derived.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.js +11 -8
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.d.ts +1 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.d.ts +2 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.js +16 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.d.ts +5 -3
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.js +51 -27
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/platform.d.ts +0 -1
- package/dist/src/_internal/util/vs/base/common/platform.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/platform.js +0 -4
- package/dist/src/_internal/util/vs/base/common/platform.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/strings.d.ts +10 -2
- package/dist/src/_internal/util/vs/base/common/strings.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/strings.js +80 -26
- package/dist/src/_internal/util/vs/base/common/strings.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/types.d.ts +14 -0
- package/dist/src/_internal/util/vs/base/common/types.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/types.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/edits/edit.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/edits/stringEdit.d.ts +5 -0
- package/dist/src/_internal/util/vs/editor/common/core/edits/stringEdit.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/edits/stringEdit.js +45 -7
- package/dist/src/_internal/util/vs/editor/common/core/edits/stringEdit.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/edits/textEdit.d.ts +12 -1
- package/dist/src/_internal/util/vs/editor/common/core/edits/textEdit.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/edits/textEdit.js +355 -0
- package/dist/src/_internal/util/vs/editor/common/core/edits/textEdit.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/range.d.ts +3 -0
- package/dist/src/_internal/util/vs/editor/common/core/range.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/range.js +3 -0
- package/dist/src/_internal/util/vs/editor/common/core/range.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.d.ts +7 -0
- package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.js +13 -0
- package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.d.ts +5 -2
- package/dist/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.js +24 -10
- package/dist/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.js.map +1 -1
- package/dist/src/_internal/util/vs/nls.d.ts +2 -1
- package/dist/src/_internal/util/vs/nls.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/nls.js +10 -9
- package/dist/src/_internal/util/vs/nls.js.map +1 -1
- package/dist/src/_internal/util/vs/platform/instantiation/common/instantiation.d.ts +0 -1
- package/dist/src/_internal/util/vs/platform/instantiation/common/instantiation.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/platform/instantiation/common/instantiation.js.map +1 -1
- package/dist/src/_internal/util/vs/platform/instantiation/common/instantiationService.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/platform/instantiation/common/instantiationService.js +1 -8
- package/dist/src/_internal/util/vs/platform/instantiation/common/instantiationService.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.d.ts +8 -2
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/location.d.ts +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/location.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/location.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.d.ts +3 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.js +10 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.d.ts +13 -13
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/position.d.ts +5 -2
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/position.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/position.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/range.d.ts +2 -2
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/range.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/range.js +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/range.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.d.ts +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.js +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.d.ts +3 -3
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.js +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.d.ts +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/symbolInformation.d.ts +6 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/symbolInformation.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.d.ts +6 -2
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.js +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.js.map +1 -1
- package/dist/src/_internal/vscodeTypes.d.ts +7 -0
- package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
- package/dist/src/_internal/vscodeTypes.js +9 -2
- package/dist/src/_internal/vscodeTypes.js.map +1 -1
- package/dist/src/main.d.ts +4 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +15 -3
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +726 -264
- package/package.json +3 -3
- package/dist/src/_internal/util/common/tracing.d.ts +0 -51
- package/dist/src/_internal/util/common/tracing.d.ts.map +0 -1
- package/dist/src/_internal/util/common/tracing.js +0 -96
- package/dist/src/_internal/util/common/tracing.js.map +0 -1
- package/dist/src/_internal/util/vs/nls.messages.d.ts +0 -3
- package/dist/src/_internal/util/vs/nls.messages.d.ts.map +0 -1
- package/dist/src/_internal/util/vs/nls.messages.js +0 -22
- package/dist/src/_internal/util/vs/nls.messages.js.map +0 -1
|
@@ -47,7 +47,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
47
47
|
};
|
|
48
48
|
var XtabProvider_1;
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.XtabProvider = void 0;
|
|
50
|
+
exports.EditIntentParseMode = exports.XtabProvider = void 0;
|
|
51
|
+
exports.computeAreaAroundEditWindowLinesRange = computeAreaAroundEditWindowLinesRange;
|
|
52
|
+
exports.mapChatFetcherErrorToNoNextEditReason = mapChatFetcherErrorToNoNextEditReason;
|
|
53
|
+
exports.overrideModelConfig = overrideModelConfig;
|
|
54
|
+
exports.pickSystemPrompt = pickSystemPrompt;
|
|
55
|
+
exports.determineLanguageContextOptions = determineLanguageContextOptions;
|
|
56
|
+
exports.getPredictionContents = getPredictionContents;
|
|
57
|
+
exports.parseEditIntentFromStream = parseEditIntentFromStream;
|
|
51
58
|
exports.findMergeConflictMarkersRange = findMergeConflictMarkersRange;
|
|
52
59
|
const chatMLFetcher_1 = require("../../../platform/chat/common/chatMLFetcher");
|
|
53
60
|
const commonTypes_1 = require("../../../platform/chat/common/commonTypes");
|
|
@@ -69,6 +76,7 @@ const simulationTestContext_1 = require("../../../platform/simulationTestContext
|
|
|
69
76
|
const nullExperimentationService_1 = require("../../../platform/telemetry/common/nullExperimentationService");
|
|
70
77
|
const workspaceService_1 = require("../../../platform/workspace/common/workspaceService");
|
|
71
78
|
const async_1 = require("../../../util/common/async");
|
|
79
|
+
const asyncIterableUtils_1 = require("../../../util/common/asyncIterableUtils");
|
|
72
80
|
const errors = __importStar(require("../../../util/common/errors"));
|
|
73
81
|
const result_1 = require("../../../util/common/result");
|
|
74
82
|
const assert_1 = require("../../../util/vs/base/common/assert");
|
|
@@ -84,10 +92,12 @@ const vscodeTypesShim_1 = require("../../../util/common/test/shims/vscodeTypesSh
|
|
|
84
92
|
const nearbyCursorInlineEditProvider_1 = require("../../inlineEdits/common/nearbyCursorInlineEditProvider");
|
|
85
93
|
const userInteractionMonitor_1 = require("../../inlineEdits/common/userInteractionMonitor");
|
|
86
94
|
const importFiltering_1 = require("../../inlineEdits/node/importFiltering");
|
|
95
|
+
const inlineSuggestion_1 = require("../common/inlineSuggestion");
|
|
87
96
|
const lintErrors_1 = require("../common/lintErrors");
|
|
88
97
|
const promptCrafting_1 = require("../common/promptCrafting");
|
|
89
98
|
const systemMessages_1 = require("../common/systemMessages");
|
|
90
99
|
const tags_1 = require("../common/tags");
|
|
100
|
+
const terminalOutput_1 = require("../common/terminalOutput");
|
|
91
101
|
const xtabCurrentDocument_1 = require("../common/xtabCurrentDocument");
|
|
92
102
|
const xtabCustomDiffPatchResponseHandler_1 = require("./xtabCustomDiffPatchResponseHandler");
|
|
93
103
|
const xtabEndpoint_1 = require("./xtabEndpoint");
|
|
@@ -124,7 +134,8 @@ let XtabProvider = class XtabProvider {
|
|
|
124
134
|
this.ID = XtabProvider_1.ID;
|
|
125
135
|
this.showNextEditPreference = "always" /* ShowNextEditPreference.Always */;
|
|
126
136
|
this.forceUseDefaultModel = false;
|
|
127
|
-
this.userInteractionMonitor =
|
|
137
|
+
this.userInteractionMonitor = this.instaService.createInstance(userInteractionMonitor_1.UserInteractionMonitor);
|
|
138
|
+
this.terminalMonitor = this.instaService.createInstance(terminalOutput_1.TerminalMonitor);
|
|
128
139
|
this.nextCursorPredictor = this.instaService.createInstance(xtabNextCursorPredictor_1.XtabNextCursorPredictor, XtabProvider_1.computeTokens);
|
|
129
140
|
}
|
|
130
141
|
handleAcceptance() {
|
|
@@ -133,56 +144,50 @@ let XtabProvider = class XtabProvider {
|
|
|
133
144
|
handleRejection() {
|
|
134
145
|
this.userInteractionMonitor.handleRejection();
|
|
135
146
|
}
|
|
136
|
-
|
|
137
|
-
|
|
147
|
+
handleIgnored() {
|
|
148
|
+
this.userInteractionMonitor.handleIgnored();
|
|
149
|
+
}
|
|
150
|
+
async *provideNextEdit(request, logger, logContext, cancellationToken) {
|
|
151
|
+
const telemetry = new statelessNextEditProvider_1.StatelessNextEditTelemetryBuilder(request.headerRequestId);
|
|
138
152
|
logContext.setProviderStartTime();
|
|
139
153
|
try {
|
|
140
154
|
if (request.xtabEditHistory.length === 0) {
|
|
141
|
-
|
|
155
|
+
const noSuggestionReason = new statelessNextEditProvider_1.NoNextEditReason.ActiveDocumentHasNoEdits();
|
|
156
|
+
return new statelessNextEditProvider_1.WithStatelessProviderTelemetry(noSuggestionReason, telemetry.build(result_1.Result.error(noSuggestionReason)));
|
|
142
157
|
}
|
|
143
158
|
const delaySession = this.userInteractionMonitor.createDelaySession(request.providerRequestStartDateTime);
|
|
144
|
-
const iterator = this.doGetNextEdit(request, delaySession,
|
|
159
|
+
const iterator = this.doGetNextEdit(request, delaySession, logger, logContext, cancellationToken, telemetry, RetryState.NotRetrying.INSTANCE);
|
|
145
160
|
let res = await iterator.next(); // for-async-await loop doesn't work because we need to access the final return value
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
nextEditResult = result_1.Result.error(res.value);
|
|
150
|
-
pushEdit(nextEditResult);
|
|
161
|
+
while (!res.done) {
|
|
162
|
+
yield new statelessNextEditProvider_1.WithStatelessProviderTelemetry(res.value, telemetry.build(result_1.Result.ok(undefined)));
|
|
163
|
+
res = await iterator.next();
|
|
151
164
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
nextEditResult = result_1.Result.ok(undefined);
|
|
155
|
-
(async () => {
|
|
156
|
-
let nEdits = 0;
|
|
157
|
-
while (!res.done) {
|
|
158
|
-
nEdits++;
|
|
159
|
-
pushEdit(result_1.Result.ok(res.value));
|
|
160
|
-
res = await iterator.next();
|
|
161
|
-
}
|
|
162
|
-
pushEdit(result_1.Result.error(res.value));
|
|
163
|
-
})().catch((err) => {
|
|
164
|
-
const error = errors.fromUnknown(err);
|
|
165
|
-
logContext.addLog(`Error while streaming further edits: ${errors.fromUnknown(err)}`);
|
|
166
|
-
pushEdit(result_1.Result.error(new statelessNextEditProvider_1.NoNextEditReason.Unexpected(error)));
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
if (nextEditResult.isError() && nextEditResult.err instanceof statelessNextEditProvider_1.NoNextEditReason.GotCancelled) {
|
|
165
|
+
const noNextEditReason = res.value;
|
|
166
|
+
if (noNextEditReason instanceof statelessNextEditProvider_1.NoNextEditReason.GotCancelled) {
|
|
170
167
|
logContext.setIsSkipped();
|
|
171
168
|
}
|
|
172
|
-
return new statelessNextEditProvider_1.
|
|
169
|
+
return new statelessNextEditProvider_1.WithStatelessProviderTelemetry(noNextEditReason, telemetry.build(result_1.Result.error(noNextEditReason)));
|
|
173
170
|
}
|
|
174
171
|
catch (err) {
|
|
175
|
-
|
|
172
|
+
const error = errors.fromUnknown(err);
|
|
173
|
+
const noSuggestionReason = new statelessNextEditProvider_1.NoNextEditReason.Unexpected(error);
|
|
174
|
+
return new statelessNextEditProvider_1.WithStatelessProviderTelemetry(noSuggestionReason, telemetry.build(result_1.Result.error(noSuggestionReason)));
|
|
176
175
|
}
|
|
177
176
|
finally {
|
|
178
177
|
logContext.setProviderEndTime();
|
|
179
178
|
}
|
|
180
179
|
}
|
|
181
|
-
doGetNextEdit(request, delaySession,
|
|
182
|
-
return this.doGetNextEditWithSelection(request, (0, nearbyCursorInlineEditProvider_1.getOrDeduceSelectionFromLastEdit)(request.getActiveDocument()), delaySession,
|
|
180
|
+
doGetNextEdit(request, delaySession, logger, logContext, cancellationToken, telemetryBuilder, retryState) {
|
|
181
|
+
return this.doGetNextEditWithSelection(request, (0, nearbyCursorInlineEditProvider_1.getOrDeduceSelectionFromLastEdit)(request.getActiveDocument()), delaySession, logger, logContext, cancellationToken, telemetryBuilder, retryState);
|
|
183
182
|
}
|
|
184
|
-
async *doGetNextEditWithSelection(request, selection, delaySession, parentTracer, logContext, cancellationToken, telemetryBuilder, retryState
|
|
185
|
-
|
|
183
|
+
async *doGetNextEditWithSelection(request, selection, delaySession, parentTracer, logContext, cancellationToken, telemetryBuilder, retryState,
|
|
184
|
+
/**
|
|
185
|
+
* For cursor jump scenarios, this is the edit window around the original cursor position
|
|
186
|
+
* (before the jump). When provided, yielded edits will include this as `originalWindow`
|
|
187
|
+
* so the cache can serve the edit when the cursor is in either location.
|
|
188
|
+
*/
|
|
189
|
+
originalEditWindow) {
|
|
190
|
+
const tracer = parentTracer.createSubLogger(['XtabProvider', 'doGetNextEditWithSelection']);
|
|
186
191
|
const activeDocument = request.getActiveDocument();
|
|
187
192
|
if (selection === null) {
|
|
188
193
|
return new statelessNextEditProvider_1.NoNextEditReason.Uncategorized(new Error('NoSelection'));
|
|
@@ -196,15 +201,23 @@ let XtabProvider = class XtabProvider {
|
|
|
196
201
|
const cursorLine = currentDocument.lines[currentDocument.cursorLineOffset];
|
|
197
202
|
// check if there's any non-whitespace character after the cursor in the line
|
|
198
203
|
const isCursorAtEndOfLine = cursorLine.substring(cursorPosition.column - 1).match(/^\s*$/) !== null;
|
|
199
|
-
|
|
204
|
+
telemetryBuilder.setIsCursorAtLineEnd(isCursorAtEndOfLine);
|
|
205
|
+
// Apply extra debounce based on cursor position - only one applies
|
|
206
|
+
const isInlineSuggestionPosition = (0, inlineSuggestion_1.isInlineSuggestion)(currentDocument, cursorPosition);
|
|
207
|
+
telemetryBuilder.setIsInlineSuggestion(!!isInlineSuggestionPosition);
|
|
208
|
+
const inlineSuggestionDebounce = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsExtraDebounceInlineSuggestion, this.expService);
|
|
209
|
+
if (isInlineSuggestionPosition && inlineSuggestionDebounce > 0) {
|
|
210
|
+
tracer.trace('Debouncing for inline suggestion position');
|
|
211
|
+
delaySession.setExtraDebounce(inlineSuggestionDebounce);
|
|
212
|
+
}
|
|
213
|
+
else if (isCursorAtEndOfLine) {
|
|
200
214
|
tracer.trace('Debouncing for cursor at end of line');
|
|
201
215
|
delaySession.setExtraDebounce(this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsExtraDebounceEndOfLine, this.expService));
|
|
202
216
|
}
|
|
203
217
|
else {
|
|
204
|
-
tracer.trace('
|
|
218
|
+
tracer.trace('No extra debounce applied');
|
|
205
219
|
}
|
|
206
|
-
|
|
207
|
-
const areaAroundEditWindowLinesRange = this.computeAreaAroundEditWindowLinesRange(currentDocument);
|
|
220
|
+
const areaAroundEditWindowLinesRange = computeAreaAroundEditWindowLinesRange(currentDocument);
|
|
208
221
|
const editWindowLinesRange = this.computeEditWindowLinesRange(currentDocument, request, tracer, telemetryBuilder);
|
|
209
222
|
const cursorOriginalLinesOffset = Math.max(0, currentDocument.cursorLineOffset - editWindowLinesRange.start);
|
|
210
223
|
const editWindowLastLineLength = currentDocument.transformer.getLineLength(editWindowLinesRange.endExclusive);
|
|
@@ -219,8 +232,8 @@ let XtabProvider = class XtabProvider {
|
|
|
219
232
|
const shouldRemoveCursorTagFromResponse = !doesIncludeCursorTag; // we'd like to remove the tag only if the original edit-window didn't include the tag
|
|
220
233
|
const taggedCurrentFileContentResult = (0, promptCrafting_1.constructTaggedFile)(currentDocument, editWindowLinesRange, areaAroundEditWindowLinesRange, promptOptions, XtabProvider_1.computeTokens, {
|
|
221
234
|
includeLineNumbers: {
|
|
222
|
-
areaAroundCodeToEdit:
|
|
223
|
-
currentFileContent: promptOptions.
|
|
235
|
+
areaAroundCodeToEdit: xtabPromptOptions.IncludeLineNumbersOption.None,
|
|
236
|
+
currentFileContent: promptOptions.currentFile.includeLineNumbers,
|
|
224
237
|
}
|
|
225
238
|
});
|
|
226
239
|
if (taggedCurrentFileContentResult.isError()) {
|
|
@@ -229,8 +242,8 @@ let XtabProvider = class XtabProvider {
|
|
|
229
242
|
const { clippedTaggedCurrentDoc, areaAroundCodeToEdit } = taggedCurrentFileContentResult.val;
|
|
230
243
|
telemetryBuilder.setNLinesOfCurrentFileInPrompt(clippedTaggedCurrentDoc.lines.length);
|
|
231
244
|
const { aggressivenessLevel, userHappinessScore } = this.userInteractionMonitor.getAggressivenessLevel();
|
|
232
|
-
// Log aggressiveness level and user happiness score when using
|
|
233
|
-
if (
|
|
245
|
+
// Log aggressiveness level and user happiness score when using an aggressiveness-aware prompting strategy
|
|
246
|
+
if ((0, xtabPromptOptions_1.isAggressivenessStrategy)(promptOptions.promptingStrategy)) {
|
|
234
247
|
telemetryBuilder.setXtabAggressivenessLevel(aggressivenessLevel);
|
|
235
248
|
if (userHappinessScore !== undefined) {
|
|
236
249
|
telemetryBuilder.setXtabUserHappinessScore(userHappinessScore);
|
|
@@ -240,13 +253,13 @@ let XtabProvider = class XtabProvider {
|
|
|
240
253
|
if (cancellationToken.isCancellationRequested) {
|
|
241
254
|
return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('afterLanguageContextAwait');
|
|
242
255
|
}
|
|
243
|
-
const lintErrors =
|
|
256
|
+
const lintErrors = new lintErrors_1.LintErrors(activeDocument.id, currentDocument, this.langDiagService);
|
|
244
257
|
const promptPieces = new promptCrafting_1.PromptPieces(currentDocument, editWindowLinesRange, areaAroundEditWindowLinesRange, activeDocument, request.xtabEditHistory, clippedTaggedCurrentDoc.lines, areaAroundCodeToEdit, langCtx, aggressivenessLevel, lintErrors, XtabProvider_1.computeTokens, promptOptions);
|
|
245
258
|
const userPrompt = (0, promptCrafting_1.getUserPrompt)(promptPieces);
|
|
246
259
|
const responseFormat = xtabPromptOptions.ResponseFormat.fromPromptingStrategy(promptOptions.promptingStrategy);
|
|
247
260
|
const prediction = this.getPredictedOutput(activeDocument, editWindowLines, responseFormat);
|
|
248
261
|
const messages = (0, xtabUtils_1.constructMessages)({
|
|
249
|
-
systemMsg:
|
|
262
|
+
systemMsg: pickSystemPrompt(promptOptions.promptingStrategy),
|
|
250
263
|
userMsg: userPrompt,
|
|
251
264
|
});
|
|
252
265
|
logContext.setPrompt(messages);
|
|
@@ -260,13 +273,24 @@ let XtabProvider = class XtabProvider {
|
|
|
260
273
|
if (cancellationToken.isCancellationRequested) {
|
|
261
274
|
return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('afterDebounce');
|
|
262
275
|
}
|
|
276
|
+
// Fire-and-forget: collect lint errors and terminal output for telemetry in background to avoid blocking the main path
|
|
277
|
+
Promise.resolve().then(() => {
|
|
278
|
+
const lintErrorsData = lintErrors.getData();
|
|
279
|
+
telemetryBuilder.setLintErrors(lintErrorsData);
|
|
280
|
+
logContext.setDiagnosticsData(lintErrorsData);
|
|
281
|
+
const terminalOutputData = this.terminalMonitor.getData();
|
|
282
|
+
telemetryBuilder.setTerminalOutput(terminalOutputData);
|
|
283
|
+
logContext.setTerminalData(terminalOutputData);
|
|
284
|
+
});
|
|
263
285
|
request.fetchIssued = true;
|
|
264
286
|
const cursorLineOffset = cursorPosition.column;
|
|
265
287
|
return yield* this.streamEditsWithFiltering(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLinesRange, promptPieces, prediction, {
|
|
266
288
|
shouldRemoveCursorTagFromResponse,
|
|
267
289
|
responseFormat,
|
|
268
290
|
retryState,
|
|
269
|
-
|
|
291
|
+
aggressivenessLevel,
|
|
292
|
+
userHappinessScore,
|
|
293
|
+
}, delaySession, tracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow);
|
|
270
294
|
}
|
|
271
295
|
getAndProcessLanguageContext(request, delaySession, activeDocument, cursorPosition, promptOptions, tracer, logContext, cancellationToken) {
|
|
272
296
|
const recordingEnabled = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsLogContextRecorderEnabled);
|
|
@@ -276,7 +300,6 @@ let XtabProvider = class XtabProvider {
|
|
|
276
300
|
const langCtxPromise = this.getLanguageContext(request, delaySession, activeDocument, cursorPosition, tracer, logContext, cancellationToken);
|
|
277
301
|
// if recording, add diagnostics for the file to the recording and hook up the language context promise to write to the recording
|
|
278
302
|
if (recordingEnabled) {
|
|
279
|
-
logContext.setFileDiagnostics(this.langDiagService.getAllDiagnostics());
|
|
280
303
|
langCtxPromise.then(langCtxs => {
|
|
281
304
|
if (langCtxs) {
|
|
282
305
|
logContext.setLanguageContext(langCtxs);
|
|
@@ -301,7 +324,7 @@ let XtabProvider = class XtabProvider {
|
|
|
301
324
|
const cursorPositionVscode = new vscodeTypesShim_1.Position(cursorPosition.lineNumber - 1, cursorPosition.column - 1);
|
|
302
325
|
const ctxRequest = {
|
|
303
326
|
opportunityId: request.opportunityId,
|
|
304
|
-
completionId: request.
|
|
327
|
+
completionId: request.headerRequestId,
|
|
305
328
|
documentContext: {
|
|
306
329
|
uri: textDoc.uri.toString(),
|
|
307
330
|
languageId: textDoc.languageId,
|
|
@@ -350,9 +373,9 @@ let XtabProvider = class XtabProvider {
|
|
|
350
373
|
}
|
|
351
374
|
}
|
|
352
375
|
async *streamEditsWithFiltering(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, // cursor offset within the line it's in; 1-based
|
|
353
|
-
editWindowLineRange, promptPieces, prediction, opts, delaySession, parentTracer, telemetryBuilder, logContext, cancellationToken) {
|
|
354
|
-
const tracer = parentTracer.
|
|
355
|
-
const iterator = this.streamEdits(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLineRange, promptPieces, prediction, opts, delaySession, tracer, telemetryBuilder, logContext, cancellationToken);
|
|
376
|
+
editWindowLineRange, promptPieces, prediction, opts, delaySession, parentTracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow) {
|
|
377
|
+
const tracer = parentTracer.createSubLogger('streamEditsWithFiltering');
|
|
378
|
+
const iterator = this.streamEdits(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLineRange, promptPieces, prediction, opts, delaySession, tracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow);
|
|
356
379
|
let nEdits = 0;
|
|
357
380
|
let r = await iterator.next();
|
|
358
381
|
while (!r.done) {
|
|
@@ -377,8 +400,8 @@ let XtabProvider = class XtabProvider {
|
|
|
377
400
|
return r.value;
|
|
378
401
|
}
|
|
379
402
|
async *streamEdits(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, // cursor offset within the line it's in; 1-based
|
|
380
|
-
editWindowLineRange, promptPieces, prediction, opts, delaySession, parentTracer, telemetryBuilder, logContext, cancellationToken) {
|
|
381
|
-
const tracer = parentTracer.
|
|
403
|
+
editWindowLineRange, promptPieces, prediction, opts, delaySession, parentTracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow) {
|
|
404
|
+
const tracer = parentTracer.createSubLogger('streamEdits');
|
|
382
405
|
const useFetcher = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.NextEditSuggestionsFetcher, this.expService) || undefined;
|
|
383
406
|
const fetchStreamSource = new chatMLFetcher_1.FetchStreamSource();
|
|
384
407
|
const fetchRequestStopWatch = new stopwatch_1.StopWatch();
|
|
@@ -386,6 +409,7 @@ let XtabProvider = class XtabProvider {
|
|
|
386
409
|
let chatResponseFailure;
|
|
387
410
|
let ttft;
|
|
388
411
|
const firstTokenReceived = new async_2.DeferredPromise();
|
|
412
|
+
logContext.setHeaderRequestId(request.headerRequestId);
|
|
389
413
|
telemetryBuilder.setFetchStartedAt();
|
|
390
414
|
logContext.setFetchStartTime();
|
|
391
415
|
// we must not await this promise because we want to stream edits as they come in
|
|
@@ -414,9 +438,13 @@ let XtabProvider = class XtabProvider {
|
|
|
414
438
|
},
|
|
415
439
|
userInitiatedRequest: undefined,
|
|
416
440
|
telemetryProperties: {
|
|
417
|
-
requestId: request.
|
|
441
|
+
requestId: request.headerRequestId,
|
|
418
442
|
},
|
|
419
443
|
useFetcher,
|
|
444
|
+
customMetadata: {
|
|
445
|
+
aggressivenessLevel: opts.aggressivenessLevel,
|
|
446
|
+
userHappinessScore: opts.userHappinessScore,
|
|
447
|
+
},
|
|
420
448
|
}, cancellationToken);
|
|
421
449
|
telemetryBuilder.setResponse(fetchResultPromise.then((response) => ({ response, ttft })));
|
|
422
450
|
logContext.setFullResponse(fetchResultPromise.then((response) => response.type === commonTypes_1.ChatFetchResponseType.Success ? response.value : undefined));
|
|
@@ -428,7 +456,7 @@ let XtabProvider = class XtabProvider {
|
|
|
428
456
|
this.forceUseDefaultModel = true;
|
|
429
457
|
return yield* this.doGetNextEdit(request, delaySession, tracer, logContext, cancellationToken, telemetryBuilder, opts.retryState); // use the same retry state
|
|
430
458
|
}
|
|
431
|
-
return
|
|
459
|
+
return mapChatFetcherErrorToNoNextEditReason(fetchRes);
|
|
432
460
|
}
|
|
433
461
|
fetchResultPromise
|
|
434
462
|
.then((response) => {
|
|
@@ -448,26 +476,47 @@ let XtabProvider = class XtabProvider {
|
|
|
448
476
|
fetchStreamSource.resolve();
|
|
449
477
|
logContext.setResponse(responseSoFar);
|
|
450
478
|
});
|
|
451
|
-
const llmLinesStream = (
|
|
479
|
+
const llmLinesStream = asyncIterableUtils_1.AsyncIterUtilsExt.splitLines(asyncIterableUtils_1.AsyncIterUtils.map(fetchStreamSource.stream, (chunk) => chunk.delta.text));
|
|
452
480
|
// logging of times
|
|
453
481
|
// removal of cursor tag if option is set
|
|
454
|
-
const linesStream = (()
|
|
482
|
+
const linesStream = (async function* () {
|
|
455
483
|
let i = 0;
|
|
456
|
-
|
|
484
|
+
for await (const v of llmLinesStream) {
|
|
457
485
|
const trace = `Line ${i++} emitted with latency ${fetchRequestStopWatch.elapsed()} ms`;
|
|
458
486
|
tracer.trace(trace);
|
|
459
|
-
|
|
487
|
+
yield opts.shouldRemoveCursorTagFromResponse
|
|
460
488
|
? v.replaceAll(tags_1.PromptTags.CURSOR, '')
|
|
461
489
|
: v;
|
|
462
|
-
}
|
|
490
|
+
}
|
|
463
491
|
})();
|
|
464
492
|
const isFromCursorJump = opts.retryState instanceof RetryState.Retrying && opts.retryState.reason === 'cursorJump';
|
|
465
493
|
let cleanedLinesStream;
|
|
466
494
|
if (opts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowOnly) {
|
|
467
495
|
cleanedLinesStream = linesStream;
|
|
468
496
|
}
|
|
497
|
+
else if (opts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntent ||
|
|
498
|
+
opts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort) {
|
|
499
|
+
// Determine parse mode based on response format
|
|
500
|
+
const parseMode = opts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort
|
|
501
|
+
? EditIntentParseMode.ShortName
|
|
502
|
+
: EditIntentParseMode.Tags;
|
|
503
|
+
// Parse the edit_intent from the response
|
|
504
|
+
const { editIntent, remainingLinesStream, parseError } = await parseEditIntentFromStream(linesStream, tracer, parseMode);
|
|
505
|
+
// Log the edit intent for telemetry
|
|
506
|
+
telemetryBuilder.setEditIntent(editIntent);
|
|
507
|
+
// Log parse errors for telemetry - this helps detect malformed model output during flights
|
|
508
|
+
if (parseError) {
|
|
509
|
+
telemetryBuilder.setEditIntentParseError(parseError);
|
|
510
|
+
}
|
|
511
|
+
// Check if we should show this edit based on intent and aggressiveness
|
|
512
|
+
if (!xtabPromptOptions.EditIntent.shouldShowEdit(editIntent, promptPieces.aggressivenessLevel)) {
|
|
513
|
+
tracer.trace(`Filtered out edit due to edit intent "${editIntent}" with aggressiveness "${promptPieces.aggressivenessLevel}"`);
|
|
514
|
+
return new statelessNextEditProvider_1.NoNextEditReason.FilteredOut(`editIntent:${editIntent} aggressivenessLevel:${promptPieces.aggressivenessLevel}`);
|
|
515
|
+
}
|
|
516
|
+
cleanedLinesStream = remainingLinesStream;
|
|
517
|
+
}
|
|
469
518
|
else if (opts.responseFormat === xtabPromptOptions.ResponseFormat.CustomDiffPatch) {
|
|
470
|
-
return yield* xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, request.documentBeforeEdits, editWindow);
|
|
519
|
+
return yield* xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, request.documentBeforeEdits, editWindow, originalEditWindow);
|
|
471
520
|
}
|
|
472
521
|
else if (opts.responseFormat === xtabPromptOptions.ResponseFormat.UnifiedWithXml) {
|
|
473
522
|
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
@@ -488,7 +537,7 @@ let XtabProvider = class XtabProvider {
|
|
|
488
537
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
|
|
489
538
|
}
|
|
490
539
|
const edit = new lineEdit_1.LineReplacement(new lineRange_1.LineRange(editWindowLineRange.start + cursorOriginalLinesOffset + 1 /* 0-based to 1-based */, editWindowLineRange.start + cursorOriginalLinesOffset + 2), [editWindowLines[cursorOriginalLinesOffset].slice(0, cursorLineOffset - 1) + lineWithCursorContinued.value + editWindowLines[cursorOriginalLinesOffset].slice(cursorLineOffset - 1)]);
|
|
491
|
-
yield { edit, isFromCursorJump, window: editWindow };
|
|
540
|
+
yield { edit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow };
|
|
492
541
|
const lines = [];
|
|
493
542
|
let v = await linesIter.next();
|
|
494
543
|
while (!v.done) {
|
|
@@ -504,21 +553,22 @@ let XtabProvider = class XtabProvider {
|
|
|
504
553
|
yield {
|
|
505
554
|
edit: new lineEdit_1.LineReplacement(new lineRange_1.LineRange(line, line), lines),
|
|
506
555
|
isFromCursorJump,
|
|
507
|
-
window: editWindow
|
|
556
|
+
window: editWindow,
|
|
557
|
+
originalWindow: originalEditWindow
|
|
508
558
|
};
|
|
509
559
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
|
|
510
560
|
}
|
|
511
561
|
if (trimmedLines === tags_1.ResponseTags.EDIT.start) {
|
|
512
|
-
cleanedLinesStream =
|
|
562
|
+
cleanedLinesStream = (async function* () {
|
|
513
563
|
let v = await linesIter.next();
|
|
514
564
|
while (!v.done) {
|
|
515
565
|
if (v.value.includes(tags_1.ResponseTags.EDIT.end)) {
|
|
516
566
|
return;
|
|
517
567
|
}
|
|
518
|
-
|
|
568
|
+
yield v.value;
|
|
519
569
|
v = await linesIter.next();
|
|
520
570
|
}
|
|
521
|
-
});
|
|
571
|
+
})();
|
|
522
572
|
}
|
|
523
573
|
else {
|
|
524
574
|
return new statelessNextEditProvider_1.NoNextEditReason.Unexpected(new Error(`unexpected tag ${trimmedLines}`));
|
|
@@ -531,7 +581,7 @@ let XtabProvider = class XtabProvider {
|
|
|
531
581
|
(0, assert_1.assertNever)(opts.responseFormat);
|
|
532
582
|
}
|
|
533
583
|
const diffOptions = {
|
|
534
|
-
emitFastCursorLineChange: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderEmitFastCursorLineChange, this.expService),
|
|
584
|
+
emitFastCursorLineChange: responseProcessor_1.ResponseProcessor.mapEmitFastCursorLineChange(this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderEmitFastCursorLineChange, this.expService)),
|
|
535
585
|
nLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNNonSignificantLinesToConverge, this.expService),
|
|
536
586
|
nSignificantLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNSignificantLinesToConverge, this.expService),
|
|
537
587
|
};
|
|
@@ -580,12 +630,12 @@ let XtabProvider = class XtabProvider {
|
|
|
580
630
|
}
|
|
581
631
|
}
|
|
582
632
|
}
|
|
583
|
-
yield { edit: singleLineEdit, isFromCursorJump, window: editWindow };
|
|
633
|
+
yield { edit: singleLineEdit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow };
|
|
584
634
|
i++;
|
|
585
635
|
}
|
|
586
636
|
}
|
|
587
637
|
if (chatResponseFailure) {
|
|
588
|
-
return
|
|
638
|
+
return mapChatFetcherErrorToNoNextEditReason(chatResponseFailure);
|
|
589
639
|
}
|
|
590
640
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
|
|
591
641
|
}
|
|
@@ -633,7 +683,7 @@ let XtabProvider = class XtabProvider {
|
|
|
633
683
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow, nextCursorPosition);
|
|
634
684
|
}
|
|
635
685
|
case nextCursorLinePrediction_1.NextCursorLinePrediction.OnlyWithEdit: {
|
|
636
|
-
const v = this.doGetNextEditWithSelection(request, new range_1.Range(nextCursorLineOneBased, nextCursorColumn, nextCursorLineOneBased, nextCursorColumn), delaySession, tracer, logContext, cancellationToken, telemetryBuilder, new RetryState.Retrying('cursorJump'));
|
|
686
|
+
const v = this.doGetNextEditWithSelection(request, new range_1.Range(nextCursorLineOneBased, nextCursorColumn, nextCursorLineOneBased, nextCursorColumn), delaySession, tracer, logContext, cancellationToken, telemetryBuilder, new RetryState.Retrying('cursorJump'), editWindow);
|
|
637
687
|
return yield* v;
|
|
638
688
|
}
|
|
639
689
|
default: {
|
|
@@ -641,12 +691,6 @@ let XtabProvider = class XtabProvider {
|
|
|
641
691
|
}
|
|
642
692
|
}
|
|
643
693
|
}
|
|
644
|
-
computeAreaAroundEditWindowLinesRange(currentDocument) {
|
|
645
|
-
const cursorLine = currentDocument.cursorLineOffset;
|
|
646
|
-
const areaAroundStart = Math.max(0, cursorLine - promptCrafting_1.N_LINES_AS_CONTEXT);
|
|
647
|
-
const areaAroundEndExcl = Math.min(currentDocument.lines.length, cursorLine + promptCrafting_1.N_LINES_AS_CONTEXT + 1);
|
|
648
|
-
return new offsetRange_1.OffsetRange(areaAroundStart, areaAroundEndExcl);
|
|
649
|
-
}
|
|
650
694
|
computeEditWindowLinesRange(currentDocument, request, tracer, telemetry) {
|
|
651
695
|
const currentDocLines = currentDocument.lines;
|
|
652
696
|
const cursorLineOffset = currentDocument.cursorLineOffset;
|
|
@@ -709,29 +753,6 @@ let XtabProvider = class XtabProvider {
|
|
|
709
753
|
}
|
|
710
754
|
return new offsetRange_1.OffsetRange(codeToEditStart, codeToEditEndExcl);
|
|
711
755
|
}
|
|
712
|
-
static mapChatFetcherErrorToNoNextEditReason(fetchError) {
|
|
713
|
-
switch (fetchError.type) {
|
|
714
|
-
case commonTypes_1.ChatFetchResponseType.Canceled:
|
|
715
|
-
return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('afterFetchCall');
|
|
716
|
-
case commonTypes_1.ChatFetchResponseType.OffTopic:
|
|
717
|
-
case commonTypes_1.ChatFetchResponseType.Filtered:
|
|
718
|
-
case commonTypes_1.ChatFetchResponseType.PromptFiltered:
|
|
719
|
-
case commonTypes_1.ChatFetchResponseType.Length:
|
|
720
|
-
case commonTypes_1.ChatFetchResponseType.RateLimited:
|
|
721
|
-
case commonTypes_1.ChatFetchResponseType.QuotaExceeded:
|
|
722
|
-
case commonTypes_1.ChatFetchResponseType.ExtensionBlocked:
|
|
723
|
-
case commonTypes_1.ChatFetchResponseType.AgentUnauthorized:
|
|
724
|
-
case commonTypes_1.ChatFetchResponseType.AgentFailedDependency:
|
|
725
|
-
case commonTypes_1.ChatFetchResponseType.InvalidStatefulMarker:
|
|
726
|
-
return new statelessNextEditProvider_1.NoNextEditReason.Uncategorized(errors.fromUnknown(fetchError));
|
|
727
|
-
case commonTypes_1.ChatFetchResponseType.BadRequest:
|
|
728
|
-
case commonTypes_1.ChatFetchResponseType.NotFound:
|
|
729
|
-
case commonTypes_1.ChatFetchResponseType.Failed:
|
|
730
|
-
case commonTypes_1.ChatFetchResponseType.NetworkError:
|
|
731
|
-
case commonTypes_1.ChatFetchResponseType.Unknown:
|
|
732
|
-
return new statelessNextEditProvider_1.NoNextEditReason.FetchFailure(errors.fromUnknown(fetchError));
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
756
|
determineModelConfiguration(activeDocument) {
|
|
736
757
|
if (this.forceUseDefaultModel) {
|
|
737
758
|
const defaultOptions = {
|
|
@@ -739,7 +760,7 @@ let XtabProvider = class XtabProvider {
|
|
|
739
760
|
...xtabPromptOptions.DEFAULT_OPTIONS,
|
|
740
761
|
};
|
|
741
762
|
const defaultModelConfig = this.modelService.defaultModelConfiguration();
|
|
742
|
-
return
|
|
763
|
+
return overrideModelConfig(defaultOptions, defaultModelConfig);
|
|
743
764
|
}
|
|
744
765
|
const sourcedModelConfig = {
|
|
745
766
|
modelName: undefined,
|
|
@@ -747,6 +768,8 @@ let XtabProvider = class XtabProvider {
|
|
|
747
768
|
currentFile: {
|
|
748
769
|
maxTokens: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabCurrentFileMaxTokens, this.expService),
|
|
749
770
|
includeTags: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabIncludeTagsInCurrentFile, this.expService),
|
|
771
|
+
includeLineNumbers: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabIncludeLineNumbersInCurrentFile, this.expService),
|
|
772
|
+
includeCursorTag: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabIncludeCursorTagInCurrentFile, this.expService),
|
|
750
773
|
prioritizeAboveCursor: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabPrioritizeAboveCursor, this.expService)
|
|
751
774
|
},
|
|
752
775
|
pagedClipping: {
|
|
@@ -756,9 +779,9 @@ let XtabProvider = class XtabProvider {
|
|
|
756
779
|
nDocuments: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNRecentlyViewedDocuments, this.expService),
|
|
757
780
|
maxTokens: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabRecentlyViewedDocumentsMaxTokens, this.expService),
|
|
758
781
|
includeViewedFiles: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabIncludeViewedFiles, this.expService),
|
|
759
|
-
includeLineNumbers:
|
|
782
|
+
includeLineNumbers: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabRecentlyViewedIncludeLineNumbers, this.expService),
|
|
760
783
|
},
|
|
761
|
-
languageContext:
|
|
784
|
+
languageContext: determineLanguageContextOptions(activeDocument.languageId, {
|
|
762
785
|
enabled: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabLanguageContextEnabled, this.expService),
|
|
763
786
|
enabledLanguages: this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabLanguageContextEnabledLanguages),
|
|
764
787
|
enableAllContextProviders: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.Advanced.DiagnosticsContextProvider, this.expService)
|
|
@@ -780,48 +803,7 @@ let XtabProvider = class XtabProvider {
|
|
|
780
803
|
const modelConfig = selectedModelConfig.promptingStrategy === xtabPromptOptions.PromptingStrategy.CopilotNesXtab
|
|
781
804
|
? { ...selectedModelConfig, includeTagsInCurrentFile: true }
|
|
782
805
|
: selectedModelConfig;
|
|
783
|
-
return
|
|
784
|
-
}
|
|
785
|
-
static overrideModelConfig(modelConfig, overridingConfig) {
|
|
786
|
-
return {
|
|
787
|
-
...modelConfig,
|
|
788
|
-
modelName: overridingConfig.modelName,
|
|
789
|
-
promptingStrategy: overridingConfig.promptingStrategy,
|
|
790
|
-
currentFile: {
|
|
791
|
-
...modelConfig.currentFile,
|
|
792
|
-
includeTags: overridingConfig.includeTagsInCurrentFile,
|
|
793
|
-
},
|
|
794
|
-
lintOptions: overridingConfig.lintOptions ? { ...modelConfig.lintOptions, ...overridingConfig.lintOptions } : modelConfig.lintOptions,
|
|
795
|
-
};
|
|
796
|
-
}
|
|
797
|
-
pickSystemPrompt(promptingStrategy) {
|
|
798
|
-
switch (promptingStrategy) {
|
|
799
|
-
case xtabPromptOptions.PromptingStrategy.UnifiedModel:
|
|
800
|
-
return systemMessages_1.unifiedModelSystemPrompt;
|
|
801
|
-
case xtabPromptOptions.PromptingStrategy.Codexv21NesUnified:
|
|
802
|
-
case xtabPromptOptions.PromptingStrategy.SimplifiedSystemPrompt:
|
|
803
|
-
return systemMessages_1.simplifiedPrompt;
|
|
804
|
-
case xtabPromptOptions.PromptingStrategy.PatchBased:
|
|
805
|
-
case xtabPromptOptions.PromptingStrategy.Xtab275:
|
|
806
|
-
case xtabPromptOptions.PromptingStrategy.XtabAggressiveness:
|
|
807
|
-
return systemMessages_1.xtab275SystemPrompt;
|
|
808
|
-
case xtabPromptOptions.PromptingStrategy.Nes41Miniv3:
|
|
809
|
-
return systemMessages_1.nes41Miniv3SystemPrompt;
|
|
810
|
-
case xtabPromptOptions.PromptingStrategy.CopilotNesXtab:
|
|
811
|
-
case undefined:
|
|
812
|
-
return systemMessages_1.systemPromptTemplate;
|
|
813
|
-
default:
|
|
814
|
-
(0, assert_1.assertNever)(promptingStrategy);
|
|
815
|
-
}
|
|
816
|
-
}
|
|
817
|
-
determineLanguageContextOptions(languageId, { enabled, enabledLanguages, maxTokens, enableAllContextProviders, traitPosition }) {
|
|
818
|
-
if (languageId in enabledLanguages) {
|
|
819
|
-
return { enabled: enabledLanguages[languageId], maxTokens, traitPosition };
|
|
820
|
-
}
|
|
821
|
-
if (enableAllContextProviders) {
|
|
822
|
-
return { enabled: true, maxTokens, traitPosition };
|
|
823
|
-
}
|
|
824
|
-
return { enabled, maxTokens, traitPosition };
|
|
806
|
+
return overrideModelConfig(sourcedModelConfig, modelConfig);
|
|
825
807
|
}
|
|
826
808
|
getEndpoint(configuredModelName) {
|
|
827
809
|
const url = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderUrl);
|
|
@@ -833,46 +815,27 @@ let XtabProvider = class XtabProvider {
|
|
|
833
815
|
return (0, proxyXtabEndpoint_1.createProxyXtabEndpoint)(this.instaService, configuredModelName);
|
|
834
816
|
}
|
|
835
817
|
getPredictedOutput(doc, editWindowLines, responseFormat) {
|
|
836
|
-
return this.configService.
|
|
818
|
+
return this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderUsePrediction, this.expService)
|
|
837
819
|
? {
|
|
838
820
|
type: 'content',
|
|
839
|
-
content:
|
|
821
|
+
content: getPredictionContents(doc, editWindowLines, responseFormat)
|
|
840
822
|
}
|
|
841
823
|
: undefined;
|
|
842
824
|
}
|
|
843
|
-
|
|
844
|
-
if (responseFormat === xtabPromptOptions.ResponseFormat.UnifiedWithXml) {
|
|
845
|
-
return ['<EDIT>', ...editWindowLines, '</EDIT>'].join('\n');
|
|
846
|
-
}
|
|
847
|
-
else if (responseFormat === xtabPromptOptions.ResponseFormat.EditWindowOnly) {
|
|
848
|
-
return editWindowLines.join('\n');
|
|
849
|
-
}
|
|
850
|
-
else if (responseFormat === xtabPromptOptions.ResponseFormat.CodeBlock) {
|
|
851
|
-
return ['```', ...editWindowLines, '```'].join('\n');
|
|
852
|
-
}
|
|
853
|
-
else if (responseFormat === xtabPromptOptions.ResponseFormat.CustomDiffPatch) {
|
|
854
|
-
const workspacePath = doc.workspaceRoot?.path;
|
|
855
|
-
const workspaceRelativeDocPath = (0, promptCrafting_1.toUniquePath)(doc.id, workspacePath);
|
|
856
|
-
return `${workspaceRelativeDocPath}:`;
|
|
857
|
-
}
|
|
858
|
-
else {
|
|
859
|
-
(0, assert_1.assertNever)(responseFormat);
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
async debounce(delaySession, retryState, tracer, telemetry) {
|
|
825
|
+
async debounce(delaySession, retryState, logger, telemetry) {
|
|
863
826
|
if (this.simulationCtx.isInSimulationTests) {
|
|
864
827
|
return;
|
|
865
828
|
}
|
|
866
829
|
if (retryState instanceof RetryState.Retrying) {
|
|
867
|
-
|
|
830
|
+
logger.trace('Skipping debounce on retry');
|
|
868
831
|
return;
|
|
869
832
|
}
|
|
870
833
|
const debounceTime = delaySession.getDebounceTime();
|
|
871
|
-
|
|
834
|
+
logger.trace(`Debouncing for ${debounceTime} ms`);
|
|
872
835
|
telemetry.setDebounceTime(debounceTime);
|
|
873
836
|
await (0, async_2.timeout)(debounceTime);
|
|
874
837
|
}
|
|
875
|
-
determineArtificialDelayMs(delaySession,
|
|
838
|
+
determineArtificialDelayMs(delaySession, logger, telemetry) {
|
|
876
839
|
if (this.simulationCtx.isInSimulationTests) {
|
|
877
840
|
return;
|
|
878
841
|
}
|
|
@@ -880,7 +843,7 @@ let XtabProvider = class XtabProvider {
|
|
|
880
843
|
if (artificialDelay <= 0) {
|
|
881
844
|
return undefined;
|
|
882
845
|
}
|
|
883
|
-
|
|
846
|
+
logger.trace(`Enforcing artificial delay of ${artificialDelay} ms`);
|
|
884
847
|
telemetry.setArtificialDelay(artificialDelay);
|
|
885
848
|
return artificialDelay;
|
|
886
849
|
}
|
|
@@ -923,6 +886,257 @@ exports.XtabProvider = XtabProvider = XtabProvider_1 = __decorate([
|
|
|
923
886
|
__param(8, languageDiagnosticsService_1.ILanguageDiagnosticsService),
|
|
924
887
|
__param(9, ignoreService_1.IIgnoreService)
|
|
925
888
|
], XtabProvider);
|
|
889
|
+
function computeAreaAroundEditWindowLinesRange(currentDocument) {
|
|
890
|
+
const cursorLine = currentDocument.cursorLineOffset;
|
|
891
|
+
const areaAroundStart = Math.max(0, cursorLine - promptCrafting_1.N_LINES_AS_CONTEXT);
|
|
892
|
+
const areaAroundEndExcl = Math.min(currentDocument.lines.length, cursorLine + promptCrafting_1.N_LINES_AS_CONTEXT + 1);
|
|
893
|
+
return new offsetRange_1.OffsetRange(areaAroundStart, areaAroundEndExcl);
|
|
894
|
+
}
|
|
895
|
+
function mapChatFetcherErrorToNoNextEditReason(fetchError) {
|
|
896
|
+
switch (fetchError.type) {
|
|
897
|
+
case commonTypes_1.ChatFetchResponseType.Canceled:
|
|
898
|
+
return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('afterFetchCall');
|
|
899
|
+
case commonTypes_1.ChatFetchResponseType.OffTopic:
|
|
900
|
+
case commonTypes_1.ChatFetchResponseType.Filtered:
|
|
901
|
+
case commonTypes_1.ChatFetchResponseType.PromptFiltered:
|
|
902
|
+
case commonTypes_1.ChatFetchResponseType.Length:
|
|
903
|
+
case commonTypes_1.ChatFetchResponseType.RateLimited:
|
|
904
|
+
case commonTypes_1.ChatFetchResponseType.QuotaExceeded:
|
|
905
|
+
case commonTypes_1.ChatFetchResponseType.ExtensionBlocked:
|
|
906
|
+
case commonTypes_1.ChatFetchResponseType.AgentUnauthorized:
|
|
907
|
+
case commonTypes_1.ChatFetchResponseType.AgentFailedDependency:
|
|
908
|
+
case commonTypes_1.ChatFetchResponseType.InvalidStatefulMarker:
|
|
909
|
+
return new statelessNextEditProvider_1.NoNextEditReason.Uncategorized(errors.fromUnknown(fetchError));
|
|
910
|
+
case commonTypes_1.ChatFetchResponseType.BadRequest:
|
|
911
|
+
case commonTypes_1.ChatFetchResponseType.NotFound:
|
|
912
|
+
case commonTypes_1.ChatFetchResponseType.Failed:
|
|
913
|
+
case commonTypes_1.ChatFetchResponseType.NetworkError:
|
|
914
|
+
case commonTypes_1.ChatFetchResponseType.Unknown:
|
|
915
|
+
return new statelessNextEditProvider_1.NoNextEditReason.FetchFailure(errors.fromUnknown(fetchError));
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
function overrideModelConfig(modelConfig, overridingConfig) {
|
|
919
|
+
return {
|
|
920
|
+
...modelConfig,
|
|
921
|
+
modelName: overridingConfig.modelName,
|
|
922
|
+
promptingStrategy: overridingConfig.promptingStrategy,
|
|
923
|
+
currentFile: {
|
|
924
|
+
...modelConfig.currentFile,
|
|
925
|
+
includeTags: overridingConfig.includeTagsInCurrentFile,
|
|
926
|
+
},
|
|
927
|
+
lintOptions: overridingConfig.lintOptions ? { ...modelConfig.lintOptions, ...overridingConfig.lintOptions } : modelConfig.lintOptions,
|
|
928
|
+
};
|
|
929
|
+
}
|
|
930
|
+
function pickSystemPrompt(promptingStrategy) {
|
|
931
|
+
switch (promptingStrategy) {
|
|
932
|
+
case xtabPromptOptions.PromptingStrategy.UnifiedModel:
|
|
933
|
+
return systemMessages_1.unifiedModelSystemPrompt;
|
|
934
|
+
case xtabPromptOptions.PromptingStrategy.Codexv21NesUnified:
|
|
935
|
+
case xtabPromptOptions.PromptingStrategy.SimplifiedSystemPrompt:
|
|
936
|
+
return systemMessages_1.simplifiedPrompt;
|
|
937
|
+
case xtabPromptOptions.PromptingStrategy.PatchBased:
|
|
938
|
+
case xtabPromptOptions.PromptingStrategy.PatchBased01:
|
|
939
|
+
case xtabPromptOptions.PromptingStrategy.Xtab275:
|
|
940
|
+
case xtabPromptOptions.PromptingStrategy.XtabAggressiveness:
|
|
941
|
+
case xtabPromptOptions.PromptingStrategy.Xtab275Aggressiveness:
|
|
942
|
+
case xtabPromptOptions.PromptingStrategy.Xtab275EditIntent:
|
|
943
|
+
case xtabPromptOptions.PromptingStrategy.Xtab275EditIntentShort:
|
|
944
|
+
return systemMessages_1.xtab275SystemPrompt;
|
|
945
|
+
case xtabPromptOptions.PromptingStrategy.Nes41Miniv3:
|
|
946
|
+
return systemMessages_1.nes41Miniv3SystemPrompt;
|
|
947
|
+
case xtabPromptOptions.PromptingStrategy.CopilotNesXtab:
|
|
948
|
+
case undefined:
|
|
949
|
+
return systemMessages_1.systemPromptTemplate;
|
|
950
|
+
default:
|
|
951
|
+
(0, assert_1.assertNever)(promptingStrategy);
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
function determineLanguageContextOptions(languageId, { enabled, enabledLanguages, maxTokens, enableAllContextProviders, traitPosition }) {
|
|
955
|
+
if (languageId in enabledLanguages) {
|
|
956
|
+
return { enabled: enabledLanguages[languageId], maxTokens, traitPosition };
|
|
957
|
+
}
|
|
958
|
+
if (enableAllContextProviders) {
|
|
959
|
+
return { enabled: true, maxTokens, traitPosition };
|
|
960
|
+
}
|
|
961
|
+
return { enabled, maxTokens, traitPosition };
|
|
962
|
+
}
|
|
963
|
+
function getPredictionContents(doc, editWindowLines, responseFormat) {
|
|
964
|
+
if (responseFormat === xtabPromptOptions.ResponseFormat.UnifiedWithXml) {
|
|
965
|
+
return ['<EDIT>', ...editWindowLines, '</EDIT>'].join('\n');
|
|
966
|
+
}
|
|
967
|
+
else if (responseFormat === xtabPromptOptions.ResponseFormat.EditWindowOnly) {
|
|
968
|
+
return editWindowLines.join('\n');
|
|
969
|
+
}
|
|
970
|
+
else if (responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntent) {
|
|
971
|
+
// For EditWindowWithIntent, we predict the edit intent as high (most likely case) followed by the code
|
|
972
|
+
return ['<|edit_intent|>high<|/edit_intent|>', ...editWindowLines].join('\n');
|
|
973
|
+
}
|
|
974
|
+
else if (responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort) {
|
|
975
|
+
// For EditWindowWithIntentShort, we predict 'H' (high) followed by the code
|
|
976
|
+
return ['H', ...editWindowLines].join('\n');
|
|
977
|
+
}
|
|
978
|
+
else if (responseFormat === xtabPromptOptions.ResponseFormat.CodeBlock) {
|
|
979
|
+
return ['```', ...editWindowLines, '```'].join('\n');
|
|
980
|
+
}
|
|
981
|
+
else if (responseFormat === xtabPromptOptions.ResponseFormat.CustomDiffPatch) {
|
|
982
|
+
const workspacePath = doc.workspaceRoot?.path;
|
|
983
|
+
const workspaceRelativeDocPath = (0, promptCrafting_1.toUniquePath)(doc.id, workspacePath);
|
|
984
|
+
return `${workspaceRelativeDocPath}:`;
|
|
985
|
+
}
|
|
986
|
+
else {
|
|
987
|
+
(0, assert_1.assertNever)(responseFormat);
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
991
|
+
* Mode for parsing edit intent from the model response.
|
|
992
|
+
*/
|
|
993
|
+
var EditIntentParseMode;
|
|
994
|
+
(function (EditIntentParseMode) {
|
|
995
|
+
/** Parse using XML-style tags: <|edit_intent|>value<|/edit_intent|> */
|
|
996
|
+
EditIntentParseMode["Tags"] = "tags";
|
|
997
|
+
/** Parse using short names on the first line: N|L|M|H */
|
|
998
|
+
EditIntentParseMode["ShortName"] = "shortName";
|
|
999
|
+
})(EditIntentParseMode || (exports.EditIntentParseMode = EditIntentParseMode = {}));
|
|
1000
|
+
/**
|
|
1001
|
+
* Parses the edit_intent from the first line of the response stream.
|
|
1002
|
+
* The edit_intent MUST be on the first line, otherwise it's treated as not provided.
|
|
1003
|
+
* Returns the parsed EditIntent and a new stream with the remaining content.
|
|
1004
|
+
*
|
|
1005
|
+
* Supports two modes:
|
|
1006
|
+
* - Tags (default): <|edit_intent|>low|medium|high|no_edit<|/edit_intent|>
|
|
1007
|
+
* - ShortName: N|L|M|H on the first line
|
|
1008
|
+
*
|
|
1009
|
+
* @param linesStream The stream of lines from the model response
|
|
1010
|
+
* @param tracer Logger for tracing
|
|
1011
|
+
* @param mode The parse mode (Tags or ShortName), defaults to Tags
|
|
1012
|
+
*/
|
|
1013
|
+
async function parseEditIntentFromStream(linesStream, tracer, mode = EditIntentParseMode.Tags) {
|
|
1014
|
+
if (mode === EditIntentParseMode.ShortName) {
|
|
1015
|
+
return parseEditIntentFromStreamShortName(linesStream, tracer);
|
|
1016
|
+
}
|
|
1017
|
+
return parseEditIntentFromStreamTags(linesStream, tracer);
|
|
1018
|
+
}
|
|
1019
|
+
/**
|
|
1020
|
+
* Parses the edit_intent using short name format (N|L|M|H on first line).
|
|
1021
|
+
*/
|
|
1022
|
+
async function parseEditIntentFromStreamShortName(linesStream, tracer) {
|
|
1023
|
+
let editIntent = xtabPromptOptions.EditIntent.High; // Default to high (always show) if no short name found
|
|
1024
|
+
let parseError;
|
|
1025
|
+
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
1026
|
+
const firstLineResult = await linesIter.next();
|
|
1027
|
+
if (firstLineResult.done) {
|
|
1028
|
+
// Empty stream
|
|
1029
|
+
parseError = 'emptyResponse';
|
|
1030
|
+
tracer.warn(`Empty response stream, no edit_intent short name found`);
|
|
1031
|
+
const remainingLinesStream = (async function* () { })();
|
|
1032
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
1033
|
+
}
|
|
1034
|
+
const firstLine = firstLineResult.value.trim();
|
|
1035
|
+
// Check if the first line is a single character short name
|
|
1036
|
+
const parsedIntent = xtabPromptOptions.EditIntent.fromShortName(firstLine);
|
|
1037
|
+
if (parsedIntent !== undefined) {
|
|
1038
|
+
editIntent = parsedIntent;
|
|
1039
|
+
tracer.trace(`Parsed edit_intent short name from first line: "${firstLine}" -> ${editIntent}`);
|
|
1040
|
+
// Create a new stream with the remaining lines (excluding the short name line)
|
|
1041
|
+
const remainingLinesStream = (async function* () {
|
|
1042
|
+
let next = await linesIter.next();
|
|
1043
|
+
while (!next.done) {
|
|
1044
|
+
yield next.value;
|
|
1045
|
+
next = await linesIter.next();
|
|
1046
|
+
}
|
|
1047
|
+
})();
|
|
1048
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
1049
|
+
}
|
|
1050
|
+
// Short name not found or invalid
|
|
1051
|
+
parseError = `unknownIntentValue:${firstLine}`;
|
|
1052
|
+
tracer.warn(`Edit intent parse error: ${parseError} (using Xtab275EditIntentShort prompting strategy). ` +
|
|
1053
|
+
`Defaulting to High (always show). First line was: "${firstLine.substring(0, 100)}..."`);
|
|
1054
|
+
// Return the first line plus the rest of the stream
|
|
1055
|
+
const remainingLinesStream = (async function* () {
|
|
1056
|
+
yield firstLineResult.value; // Use original value, not trimmed
|
|
1057
|
+
let next = await linesIter.next();
|
|
1058
|
+
while (!next.done) {
|
|
1059
|
+
yield next.value;
|
|
1060
|
+
next = await linesIter.next();
|
|
1061
|
+
}
|
|
1062
|
+
})();
|
|
1063
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Parses the edit_intent tag from the first line of the response stream (original tag-based format).
|
|
1067
|
+
*/
|
|
1068
|
+
async function parseEditIntentFromStreamTags(linesStream, tracer) {
|
|
1069
|
+
const EDIT_INTENT_START_TAG = '<|edit_intent|>';
|
|
1070
|
+
const EDIT_INTENT_END_TAG = '<|/edit_intent|>';
|
|
1071
|
+
let editIntent = xtabPromptOptions.EditIntent.High; // Default to high (always show) if no tag found
|
|
1072
|
+
let parseError;
|
|
1073
|
+
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
1074
|
+
const firstLineResult = await linesIter.next();
|
|
1075
|
+
if (firstLineResult.done) {
|
|
1076
|
+
// Empty stream
|
|
1077
|
+
parseError = 'emptyResponse';
|
|
1078
|
+
tracer.warn(`Empty response stream, no edit_intent tag found`);
|
|
1079
|
+
const remainingLinesStream = (async function* () { })();
|
|
1080
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
1081
|
+
}
|
|
1082
|
+
const firstLine = firstLineResult.value;
|
|
1083
|
+
// Check if the first line contains the complete edit_intent tag
|
|
1084
|
+
const startIdx = firstLine.indexOf(EDIT_INTENT_START_TAG);
|
|
1085
|
+
const endIdx = firstLine.indexOf(EDIT_INTENT_END_TAG);
|
|
1086
|
+
if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
|
|
1087
|
+
// Found complete tag on first line
|
|
1088
|
+
const intentValue = firstLine.substring(startIdx + EDIT_INTENT_START_TAG.length, endIdx).trim().toLowerCase();
|
|
1089
|
+
// Check if it's a known intent value
|
|
1090
|
+
const knownIntentValues = ['no_edit', 'low', 'medium', 'high'];
|
|
1091
|
+
if (!knownIntentValues.includes(intentValue)) {
|
|
1092
|
+
parseError = `unknownIntentValue:${intentValue}`;
|
|
1093
|
+
tracer.warn(`Unknown edit_intent value: "${intentValue}", defaulting to High`);
|
|
1094
|
+
}
|
|
1095
|
+
editIntent = xtabPromptOptions.EditIntent.fromString(intentValue);
|
|
1096
|
+
tracer.trace(`Parsed edit_intent from first line: "${intentValue}" -> ${editIntent}`);
|
|
1097
|
+
// Calculate remaining content after the end tag on the first line
|
|
1098
|
+
const afterEndTag = firstLine.substring(endIdx + EDIT_INTENT_END_TAG.length);
|
|
1099
|
+
// Create a new stream that first yields remaining content from first line, then continues
|
|
1100
|
+
const remainingLinesStream = (async function* () {
|
|
1101
|
+
// Only yield remaining content from first line if non-empty
|
|
1102
|
+
if (afterEndTag.trim() !== '') {
|
|
1103
|
+
yield afterEndTag;
|
|
1104
|
+
}
|
|
1105
|
+
// Continue with rest of the stream
|
|
1106
|
+
let next = await linesIter.next();
|
|
1107
|
+
while (!next.done) {
|
|
1108
|
+
yield next.value;
|
|
1109
|
+
next = await linesIter.next();
|
|
1110
|
+
}
|
|
1111
|
+
})();
|
|
1112
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
1113
|
+
}
|
|
1114
|
+
// Determine the parse error type
|
|
1115
|
+
if (startIdx !== -1 && endIdx === -1) {
|
|
1116
|
+
// Start tag found but no end tag - malformed (possibly split across lines)
|
|
1117
|
+
parseError = 'malformedTag:startWithoutEnd';
|
|
1118
|
+
}
|
|
1119
|
+
else if (startIdx === -1 && endIdx !== -1) {
|
|
1120
|
+
// End tag found but no start tag - malformed
|
|
1121
|
+
parseError = 'malformedTag:endWithoutStart';
|
|
1122
|
+
}
|
|
1123
|
+
else {
|
|
1124
|
+
// No tag found at all
|
|
1125
|
+
parseError = 'noTagFound';
|
|
1126
|
+
}
|
|
1127
|
+
tracer.warn(`Edit intent parse error: ${parseError} (using Xtab275EditIntent prompting strategy). ` +
|
|
1128
|
+
`Defaulting to High (always show). First line was: "${firstLine.substring(0, 100)}..."`);
|
|
1129
|
+
// Return the first line plus the rest of the stream
|
|
1130
|
+
const remainingLinesStream = (async function* () {
|
|
1131
|
+
yield firstLine;
|
|
1132
|
+
let next = await linesIter.next();
|
|
1133
|
+
while (!next.done) {
|
|
1134
|
+
yield next.value;
|
|
1135
|
+
next = await linesIter.next();
|
|
1136
|
+
}
|
|
1137
|
+
})();
|
|
1138
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
1139
|
+
}
|
|
926
1140
|
/**
|
|
927
1141
|
* Finds the range of lines containing merge conflict markers within a specified edit window.
|
|
928
1142
|
*
|