@vscode/chat-lib 0.1.1 → 0.1.2-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.js +2 -2
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.js.map +1 -1
- package/dist/src/_internal/extension/common/constants.d.ts +1 -2
- package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
- package/dist/src/_internal/extension/common/constants.js +0 -3
- package/dist/src/_internal/extension/common/constants.js.map +1 -1
- package/dist/src/_internal/extension/completions/common/config.d.ts +29 -0
- package/dist/src/_internal/extension/completions/common/config.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions/common/config.js +43 -0
- package/dist/src/_internal/extension/completions/common/config.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/bridge/src/completionsTelemetryServiceBridge.d.ts +28 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/bridge/src/completionsTelemetryServiceBridge.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/bridge/src/completionsTelemetryServiceBridge.js +67 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/bridge/src/completionsTelemetryServiceBridge.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/extensionStatus.d.ts +18 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/extensionStatus.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/extensionStatus.js +19 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/extension/src/extensionStatus.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenManager.d.ts +31 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenManager.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenManager.js +66 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenManager.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenNotifier.d.ts +4 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenNotifier.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenNotifier.js +16 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenNotifier.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/orgs.d.ts +3 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/orgs.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/orgs.js +27 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/orgs.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/changeTracker.d.ts +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/changeTracker.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/changeTracker.js +56 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/changeTracker.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/citationManager.d.ts +27 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/citationManager.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/citationManager.js +18 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/citationManager.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionNotifier.d.ts +29 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionNotifier.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionNotifier.js +54 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionNotifier.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionState.d.ts +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionState.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionState.js +93 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionState.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionsObservableWorkspace.d.ts +16 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionsObservableWorkspace.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionsObservableWorkspace.js +6 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/completionsObservableWorkspace.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/config.d.ts +192 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/config.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/config.js +329 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/config.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/constants.d.ts +2 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/constants.d.ts.map +1 -0
- package/dist/src/_internal/extension/{inlineEdits/common/jumpToCursorPosition.js → completions-core/vscode-node/lib/src/constants.js} +4 -4
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/constants.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/documentTracker.d.ts +18 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/documentTracker.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/documentTracker.js +32 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/documentTracker.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/error/userErrorNotifier.d.ts +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/error/userErrorNotifier.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/error/userErrorNotifier.js +64 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/error/userErrorNotifier.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.d.ts +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.js +60 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/expConfig.d.ts +102 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/expConfig.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/expConfig.js +126 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/expConfig.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.d.ts +103 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.js +302 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/featuresService.d.ts +60 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/featuresService.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/featuresService.js +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/featuresService.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/filters.d.ts +62 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/filters.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/filters.js +100 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/filters.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProvider.d.ts +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProvider.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProvider.js +42 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProvider.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProviderCpp.d.ts +6 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProviderCpp.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProviderCpp.js +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/similarFileOptionsProviderCpp.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/telemetryNames.d.ts +4 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/telemetryNames.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/telemetryNames.js +14 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/telemetryNames.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileReader.d.ts +28 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileReader.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileReader.js +82 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileReader.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileSystem.d.ts +57 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileSystem.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileSystem.js +25 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/fileSystem.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/asyncCompletions.d.ts +69 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/asyncCompletions.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/asyncCompletions.js +249 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/asyncCompletions.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/blockTrimmer.d.ts +70 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/blockTrimmer.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/blockTrimmer.js +279 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/blockTrimmer.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsCache.d.ts +21 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsCache.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsCache.js +46 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsCache.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/configBlockMode.d.ts +17 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/configBlockMode.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/configBlockMode.js +79 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/configBlockMode.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/contextualFilterConstants.d.ts +4 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/contextualFilterConstants.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/contextualFilterConstants.js +105 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/contextualFilterConstants.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.d.ts +21 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.js +56 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/copilotCompletion.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.d.ts +45 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.js +100 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/current.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.d.ts +58 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js +1118 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.d.ts +48 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.js +187 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/last.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModel.d.ts +32 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModel.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModel.js +143 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModel.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModelWeights.d.ts +2 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModelWeights.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModelWeights.js +15318 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/multilineModelWeights.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/normalizeIndent.d.ts +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/normalizeIndent.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/normalizeIndent.js +58 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/normalizeIndent.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/speculativeRequestCache.d.ts +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/speculativeRequestCache.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/speculativeRequestCache.js +28 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/speculativeRequestCache.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/statementTree.d.ts +75 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/statementTree.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/statementTree.js +785 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/statementTree.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.d.ts +22 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.js +205 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/streamedCompletionSplitter.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.d.ts +120 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.js +110 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/telemetry.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/cache.d.ts +28 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/cache.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/cache.js +86 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/cache.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/iterableHelpers.d.ts +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/iterableHelpers.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/iterableHelpers.js +73 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/iterableHelpers.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/radix.d.ts +59 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/radix.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/radix.js +228 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/helpers/radix.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.d.ts +12 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.js +87 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/inlineCompletion.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/generatedLanguages.d.ts +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/generatedLanguages.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/generatedLanguages.js +752 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/generatedLanguages.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languageDetection.d.ts +28 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languageDetection.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languageDetection.js +156 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languageDetection.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languages.d.ts +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languages.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languages.js +29 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/language/languages.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/localFileSystem.d.ts +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/localFileSystem.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/localFileSystem.js +64 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/localFileSystem.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/logger.d.ts +37 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/logger.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/logger.js +75 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/logger.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkConfiguration.d.ts +19 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkConfiguration.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkConfiguration.js +65 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkConfiguration.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts +68 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js +166 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkingTypes.d.ts +24 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkingTypes.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkingTypes.js +33 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networkingTypes.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/notificationSender.d.ts +17 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/notificationSender.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/notificationSender.js +36 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/notificationSender.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/config.d.ts +13 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/config.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/config.js +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/config.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +227 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +331 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.d.ts +58 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.js +131 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/model.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.d.ts +47 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.js +124 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/openai.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts +206 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js +603 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.d.ts +11 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.js +294 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/postInsertion.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/progress.d.ts +36 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/progress.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/progress.js +80 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/progress.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/asyncUtils.d.ts +38 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/asyncUtils.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/asyncUtils.js +148 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/asyncUtils.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/completionsPromptFactory.d.ts +40 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/completionsPromptFactory.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/completionsPromptFactory.js +95 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/completionsPromptFactory.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.d.ts +69 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js +305 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.d.ts +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.js +74 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.d.ts +18 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.js +38 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.d.ts +45 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.js +223 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/contextProviderBridge.d.ts +23 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/contextProviderBridge.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/contextProviderBridge.js +51 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/contextProviderBridge.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.d.ts +27 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.js +151 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/elision.d.ts +76 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/elision.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/elision.js +264 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/elision.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.d.ts +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.js +43 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.d.ts +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.js +99 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.d.ts +12 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.js +58 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.d.ts +9 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.js +31 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.d.ts +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.js +113 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.d.ts +5 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.js +33 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.d.ts +90 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.js +381 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistry.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCSharp.d.ts +5 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCSharp.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCSharp.js +36 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCSharp.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCpp.d.ts +5 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCpp.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCpp.js +52 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryCpp.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryMultiLanguage.d.ts +30 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryMultiLanguage.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryMultiLanguage.js +63 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryMultiLanguage.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryTs.d.ts +6 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryTs.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryTs.js +42 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderRegistryTs.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderStatistics.d.ts +39 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderStatistics.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderStatistics.js +159 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviderStatistics.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/codeSnippets.d.ts +11 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/codeSnippets.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/codeSnippets.js +57 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/codeSnippets.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.d.ts +34 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.js +107 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/contextItemSchemas.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/traits.d.ts +8 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/traits.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/traits.js +50 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/contextProviders/traits.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/parseBlock.d.ts +41 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/parseBlock.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/parseBlock.js +231 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/parseBlock.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.d.ts +64 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.js +101 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/prompt.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsProvider.d.ts +43 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsProvider.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsProvider.js +115 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsProvider.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsReducer.d.ts +88 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsReducer.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsReducer.js +362 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/recentEdits/recentEditsReducer.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/repository.d.ts +55 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/repository.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/repository.js +239 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/repository.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/compositeRelatedFilesProvider.d.ts +37 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/compositeRelatedFilesProvider.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/compositeRelatedFilesProvider.js +149 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/compositeRelatedFilesProvider.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/neighborFiles.d.ts +66 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/neighborFiles.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/neighborFiles.js +142 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/neighborFiles.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/openTabFiles.d.ts +21 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/openTabFiles.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/openTabFiles.js +72 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/openTabFiles.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/relatedFiles.d.ts +90 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/relatedFiles.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/relatedFiles.js +287 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/similarFiles/relatedFiles.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/compute.d.ts +6 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/compute.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/compute.js +56 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/compute.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/connectionState.d.ts +19 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/connectionState.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/connectionState.js +156 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/connectionState.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/constants.d.ts +3 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/constants.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/constants.js +10 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/constants.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/errorCreator.d.ts +32 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/errorCreator.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/errorCreator.js +63 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/errorCreator.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/handlePostInsertion.d.ts +3 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/handlePostInsertion.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/handlePostInsertion.js +159 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/handlePostInsertion.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/index.d.ts +43 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/index.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/index.js +58 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/index.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/logger.d.ts +3 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/logger.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/logger.js +11 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/logger.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/network.d.ts +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/network.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/network.js +108 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/network.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/snippy.proto.d.ts +60 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/snippy.proto.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/snippy.proto.js +61 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/snippy.proto.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/telemetryHandlers.d.ts +49 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/telemetryHandlers.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/telemetryHandlers.js +95 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/snippy/telemetryHandlers.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.d.ts +9 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.js +72 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/anomalyDetection.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/editDistance.d.ts +88 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/editDistance.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/editDistance.js +245 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/editDistance.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/partialSuggestions.d.ts +17 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/partialSuggestions.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/partialSuggestions.js +35 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/partialSuggestions.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.d.ts +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.js +180 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/suggestions/suggestions.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry/userConfig.d.ts +29 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry/userConfig.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry/userConfig.js +76 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry/userConfig.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.d.ts +196 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.js +504 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/telemetry.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocument.d.ts +206 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocument.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocument.js +81 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocument.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocumentManager.d.ts +165 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocumentManager.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocumentManager.js +141 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/textDocumentManager.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/async.d.ts +16 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/async.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/async.js +27 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/async.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/documentEvaluation.d.ts +12 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/documentEvaluation.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/documentEvaluation.js +23 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/documentEvaluation.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/event.d.ts +28 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/event.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/event.js +71 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/event.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/promiseQueue.d.ts +13 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/promiseQueue.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/promiseQueue.js +23 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/promiseQueue.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/runtimeMode.d.ts +24 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/runtimeMode.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/runtimeMode.js +60 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/runtimeMode.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/shortCircuit.d.ts +4 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/shortCircuit.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/shortCircuit.js +19 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/shortCircuit.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/subject.d.ts +24 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/subject.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/subject.js +49 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/subject.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/typebox.d.ts +14 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/typebox.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/typebox.js +30 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/typebox.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/unknown.d.ts +6 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/unknown.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/unknown.js +19 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/unknown.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/uri.d.ts +43 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/uri.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/uri.js +181 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/util/uri.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-runtime.d.ts +36 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-runtime.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-runtime.js +38 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-runtime.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/components.d.ts +134 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/components.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/components.js +27 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/components.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/hooks.d.ts +21 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/hooks.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/hooks.js +57 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/hooks.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/reconciler.d.ts +53 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/reconciler.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/reconciler.js +203 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/reconciler.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/virtualPrompt.d.ts +23 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/virtualPrompt.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/virtualPrompt.js +68 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/virtualPrompt.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/walker.d.ts +48 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/walker.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/walker.js +81 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/components/walker.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/error.d.ts +5 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/error.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/error.js +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/error.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/fileLoader.d.ts +3 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/fileLoader.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/fileLoader.js +65 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/fileLoader.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/classes.d.ts +69 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/classes.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/classes.js +84 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/classes.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/manipulation.d.ts +51 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/manipulation.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/manipulation.js +159 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/manipulation.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/parsing.d.ts +67 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/parsing.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/parsing.js +300 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/indentation/parsing.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/languageMarker.d.ts +105 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/languageMarker.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/languageMarker.js +442 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/languageMarker.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parse.d.ts +21 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parse.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parse.js +168 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parse.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parseBlock.d.ts +23 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parseBlock.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parseBlock.js +851 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/parseBlock.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/prompt.d.ts +68 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/prompt.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/prompt.js +47 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/prompt.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/cursorContext.d.ts +41 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/cursorContext.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/cursorContext.js +55 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/cursorContext.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/jaccardMatching.d.ts +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/jaccardMatching.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/jaccardMatching.js +51 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/jaccardMatching.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/selectRelevance.d.ts +87 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/selectRelevance.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/selectRelevance.js +326 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/selectRelevance.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/similarFiles.d.ts +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/similarFiles.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/similarFiles.js +87 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/similarFiles.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/snippets.d.ts +46 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/snippets.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/snippets.js +67 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/snippets.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/subsetMatching.d.ts +29 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/subsetMatching.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/subsetMatching.js +135 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/subsetMatching.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/windowDelineations.d.ts +23 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/windowDelineations.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/windowDelineations.js +132 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/snippetInclusion/windowDelineations.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/suffixMatchCriteria.d.ts +6 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/suffixMatchCriteria.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/suffixMatchCriteria.js +22 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/suffixMatchCriteria.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/index.d.ts +2 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/index.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/index.js +22 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/index.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.d.ts +116 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.js +302 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/auth.d.ts +25 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/auth.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/auth.js +57 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/auth.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/codeCitation.d.ts +20 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/codeCitation.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/codeCitation.js +47 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/codeCitation.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.d.ts +161 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.js +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/contextProviderApiV1.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/core.d.ts +12 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/core.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/core.js +29 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/core.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/index.d.ts +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/index.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/index.js +34 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/index.js.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/status.d.ts +15 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/status.d.ts.map +1 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/status.js +7 -0
- package/dist/src/_internal/extension/completions-core/vscode-node/types/src/status.js.map +1 -0
- package/dist/src/_internal/extension/inlineEdits/common/delayer.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/delayer.js +6 -5
- package/dist/src/_internal/extension/inlineEdits/common/delayer.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +0 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +29 -75
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +2 -2
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.d.ts +6 -4
- package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +27 -7
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +526 -213
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts +45 -0
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -0
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +189 -0
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -0
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts +616 -0
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js +46 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/tags.d.ts +13 -0
- package/dist/src/_internal/extension/xtab/common/tags.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/tags.js +15 -1
- package/dist/src/_internal/extension/xtab/common/tags.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js +2 -2
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +18 -0
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +156 -0
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +5 -11
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +116 -276
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts +6 -0
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js +20 -0
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js.map +1 -1
- package/dist/src/_internal/platform/authentication/common/authentication.d.ts +2 -1
- package/dist/src/_internal/platform/authentication/common/authentication.d.ts.map +1 -1
- package/dist/src/_internal/platform/authentication/common/authentication.js +6 -0
- package/dist/src/_internal/platform/authentication/common/authentication.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +134 -107
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +303 -276
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js +27 -0
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.js +2 -2
- package/dist/src/_internal/platform/endpoint/common/capiClient.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +15 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +73 -34
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +3 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js +1 -0
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/capiClientImpl.js +1 -1
- package/dist/src/_internal/platform/endpoint/node/capiClientImpl.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +2 -0
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +19 -2
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +65 -0
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -0
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +405 -0
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -0
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +1 -2
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/env/common/envService.d.ts +2 -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 +1 -0
- package/dist/src/_internal/platform/env/common/nullEnvService.d.ts.map +1 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.js +3 -0
- package/dist/src/_internal/platform/env/common/nullEnvService.js.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.d.ts +119 -0
- package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -0
- package/dist/src/_internal/platform/git/common/gitService.js +251 -0
- package/dist/src/_internal/platform/git/common/gitService.js.map +1 -0
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts +5 -6
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.js +10 -1
- package/dist/src/_internal/platform/github/common/githubAPI.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.d.ts +43 -23
- package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.js +27 -30
- package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +2 -0
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +13 -0
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.d.ts +0 -1
- package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.js +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +31 -18
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +58 -21
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts +1 -0
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js +5 -0
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js.map +1 -1
- package/dist/src/_internal/platform/languageContextProvider/common/languageContextProviderService.d.ts +7 -3
- package/dist/src/_internal/platform/languageContextProvider/common/languageContextProviderService.d.ts.map +1 -1
- package/dist/src/_internal/platform/languageContextProvider/common/languageContextProviderService.js +6 -1
- package/dist/src/_internal/platform/languageContextProvider/common/languageContextProviderService.js.map +1 -1
- package/dist/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.d.ts +2 -2
- package/dist/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.d.ts.map +1 -1
- package/dist/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.js +1 -1
- package/dist/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.d.ts +10 -2
- package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.js +0 -8
- package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +7 -0
- 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 +21 -4
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/notebook/common/alternativeContent.js +1 -1
- package/dist/src/_internal/platform/notification/common/notificationService.d.ts +49 -0
- package/dist/src/_internal/platform/notification/common/notificationService.d.ts.map +1 -0
- package/dist/src/_internal/platform/notification/common/notificationService.js +32 -0
- package/dist/src/_internal/platform/notification/common/notificationService.js.map +1 -0
- package/dist/src/_internal/platform/openai/node/fetch.d.ts +2 -33
- package/dist/src/_internal/platform/openai/node/fetch.d.ts.map +1 -1
- package/dist/src/_internal/platform/openai/node/fetch.js +0 -401
- package/dist/src/_internal/platform/openai/node/fetch.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.d.ts +31 -0
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.d.ts.map +1 -0
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.js +31 -0
- package/dist/src/_internal/platform/requestLogger/common/capturingToken.js.map +1 -0
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +8 -7
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.d.ts +18 -0
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.d.ts.map +1 -0
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.js +150 -0
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.js.map +1 -0
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +19 -5
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js +23 -3
- package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +6 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
- package/dist/src/_internal/util/common/tracing.d.ts +21 -2
- package/dist/src/_internal/util/common/tracing.d.ts.map +1 -1
- package/dist/src/_internal/util/common/tracing.js +51 -29
- package/dist/src/_internal/util/common/tracing.js.map +1 -1
- package/dist/src/_internal/vscodeTypes.d.ts +5 -0
- package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
- package/dist/src/_internal/vscodeTypes.js +6 -1
- package/dist/src/_internal/vscodeTypes.js.map +1 -1
- package/dist/src/main.d.ts +101 -0
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +262 -9
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +890 -161
- package/package.json +13 -3
- package/script/postinstall.ts +74 -0
- package/dist/src/_internal/extension/inlineEdits/common/jumpToCursorPosition.d.ts +0 -2
- package/dist/src/_internal/extension/inlineEdits/common/jumpToCursorPosition.d.ts.map +0 -1
- package/dist/src/_internal/extension/inlineEdits/common/jumpToCursorPosition.js.map +0 -1
package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js
ADDED
|
@@ -0,0 +1,1118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ForceMultiLine = exports.ResultType = void 0;
|
|
4
|
+
exports.getGhostText = getGhostText;
|
|
5
|
+
/*---------------------------------------------------------------------------------------------
|
|
6
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
8
|
+
*--------------------------------------------------------------------------------------------*/
|
|
9
|
+
const telemetry_1 = require("../../../../../../platform/telemetry/common/telemetry");
|
|
10
|
+
const crypto_1 = require("../../../../../../util/common/crypto");
|
|
11
|
+
const uuid_1 = require("../../../../../../util/vs/base/common/uuid");
|
|
12
|
+
const instantiation_1 = require("../../../../../../util/vs/platform/instantiation/common/instantiation");
|
|
13
|
+
const parse_1 = require("../../../prompt/src/parse");
|
|
14
|
+
const tokenization_1 = require("../../../prompt/src/tokenization");
|
|
15
|
+
const src_1 = require("../../../types/src");
|
|
16
|
+
const completionNotifier_1 = require("../completionNotifier");
|
|
17
|
+
const config_1 = require("../config");
|
|
18
|
+
const userErrorNotifier_1 = require("../error/userErrorNotifier");
|
|
19
|
+
const featuresService_1 = require("../experiments/featuresService");
|
|
20
|
+
const logger_1 = require("../logger");
|
|
21
|
+
const networking_1 = require("../networking");
|
|
22
|
+
const config_2 = require("../openai/config");
|
|
23
|
+
const fetch_1 = require("../openai/fetch");
|
|
24
|
+
const openai_1 = require("../openai/openai");
|
|
25
|
+
const progress_1 = require("../progress");
|
|
26
|
+
const contextProviderBridge_1 = require("../prompt/components/contextProviderBridge");
|
|
27
|
+
const contextProviderStatistics_1 = require("../prompt/contextProviderStatistics");
|
|
28
|
+
const parseBlock_1 = require("../prompt/parseBlock");
|
|
29
|
+
const prompt_1 = require("../prompt/prompt");
|
|
30
|
+
const repository_1 = require("../prompt/repository");
|
|
31
|
+
const suggestions_1 = require("../suggestions/suggestions");
|
|
32
|
+
const telemetry_2 = require("../telemetry");
|
|
33
|
+
const textDocument_1 = require("../textDocument");
|
|
34
|
+
const async_1 = require("../util/async");
|
|
35
|
+
const runtimeMode_1 = require("../util/runtimeMode");
|
|
36
|
+
const asyncCompletions_1 = require("./asyncCompletions");
|
|
37
|
+
const blockTrimmer_1 = require("./blockTrimmer");
|
|
38
|
+
const completionsCache_1 = require("./completionsCache");
|
|
39
|
+
const configBlockMode_1 = require("./configBlockMode");
|
|
40
|
+
const current_1 = require("./current");
|
|
41
|
+
const multilineModel_1 = require("./multilineModel");
|
|
42
|
+
const streamedCompletionSplitter_1 = require("./streamedCompletionSplitter");
|
|
43
|
+
const telemetry_3 = require("./telemetry");
|
|
44
|
+
const ghostTextLogger = new logger_1.Logger('ghostText');
|
|
45
|
+
var ResultType;
|
|
46
|
+
(function (ResultType) {
|
|
47
|
+
ResultType[ResultType["Network"] = 0] = "Network";
|
|
48
|
+
ResultType[ResultType["Cache"] = 1] = "Cache";
|
|
49
|
+
ResultType[ResultType["TypingAsSuggested"] = 2] = "TypingAsSuggested";
|
|
50
|
+
ResultType[ResultType["Cycling"] = 3] = "Cycling";
|
|
51
|
+
ResultType[ResultType["Async"] = 4] = "Async";
|
|
52
|
+
})(ResultType || (exports.ResultType = ResultType = {}));
|
|
53
|
+
// p50 line length is 19 characters (p95 is 73)
|
|
54
|
+
// average token length is around 4 characters
|
|
55
|
+
// the below values have quite a bit of buffer while bringing the limit in significantly from 500
|
|
56
|
+
const maxSinglelineTokens = 20;
|
|
57
|
+
async function genericGetCompletionsFromNetwork(accessor, requestContext, baseTelemetryData, cancellationToken, finishedCb, what, processChoices) {
|
|
58
|
+
const featuresService = accessor.get(featuresService_1.ICompletionsFeaturesService);
|
|
59
|
+
const fetcherService = accessor.get(fetch_1.ICompletionsOpenAIFetcherService);
|
|
60
|
+
const runtimeMode = accessor.get(runtimeMode_1.ICompletionsRuntimeModeService);
|
|
61
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
62
|
+
const logTarget = accessor.get(logger_1.ICompletionsLogTargetService);
|
|
63
|
+
const userErrorNotifier = accessor.get(userErrorNotifier_1.ICompletionsUserErrorNotifierService);
|
|
64
|
+
ghostTextLogger.debug(logTarget, `Getting ${what} from network`);
|
|
65
|
+
// copy the base telemetry data
|
|
66
|
+
baseTelemetryData = baseTelemetryData.extendedBy();
|
|
67
|
+
// Request one choice for automatic requests, three for invoked (cycling) requests.
|
|
68
|
+
const n = requestContext.isCycling ? 3 : 1;
|
|
69
|
+
const temperature = (0, openai_1.getTemperatureForSamples)(runtimeMode, n);
|
|
70
|
+
const extra = {
|
|
71
|
+
language: requestContext.languageId,
|
|
72
|
+
next_indent: requestContext.indentation.next ?? 0,
|
|
73
|
+
trim_by_indentation: (0, config_1.shouldDoServerTrimming)(requestContext.blockMode),
|
|
74
|
+
prompt_tokens: requestContext.prompt.prefixTokens ?? 0,
|
|
75
|
+
suffix_tokens: requestContext.prompt.suffixTokens ?? 0,
|
|
76
|
+
};
|
|
77
|
+
const postOptions = { n, temperature, code_annotations: false };
|
|
78
|
+
const modelTerminatesSingleline = featuresService.modelAlwaysTerminatesSingleline(baseTelemetryData);
|
|
79
|
+
const simulateSingleline = requestContext.blockMode === config_1.BlockMode.MoreMultiline &&
|
|
80
|
+
blockTrimmer_1.BlockTrimmer.isSupported(requestContext.languageId) &&
|
|
81
|
+
!modelTerminatesSingleline;
|
|
82
|
+
if (!requestContext.multiline && !simulateSingleline) {
|
|
83
|
+
// If we are not in multiline mode, we get the server to truncate the results. This does mean that we
|
|
84
|
+
// also cache a single line result which will be reused even if we are later in multiline mode. This is
|
|
85
|
+
// an acceptable trade-off as the transition should be relatively rare and truncating on the server is
|
|
86
|
+
// more efficient.
|
|
87
|
+
// Note that this also means we don't need to truncate when creating the GhostAPIChoice object below.
|
|
88
|
+
postOptions['stop'] = ['\n'];
|
|
89
|
+
}
|
|
90
|
+
else if (requestContext.stop) {
|
|
91
|
+
postOptions['stop'] = requestContext.stop;
|
|
92
|
+
}
|
|
93
|
+
if (requestContext.maxTokens !== undefined) {
|
|
94
|
+
postOptions['max_tokens'] = requestContext.maxTokens;
|
|
95
|
+
}
|
|
96
|
+
const requestStart = Date.now();
|
|
97
|
+
// extend telemetry data
|
|
98
|
+
const newProperties = {
|
|
99
|
+
endpoint: 'completions',
|
|
100
|
+
uiKind: fetch_1.CopilotUiKind.GhostText,
|
|
101
|
+
temperature: JSON.stringify(temperature),
|
|
102
|
+
n: JSON.stringify(n),
|
|
103
|
+
stop: JSON.stringify(postOptions['stop']) ?? 'unset',
|
|
104
|
+
logit_bias: JSON.stringify(null),
|
|
105
|
+
};
|
|
106
|
+
Object.assign(baseTelemetryData.properties, newProperties);
|
|
107
|
+
try {
|
|
108
|
+
const completionParams = {
|
|
109
|
+
prompt: requestContext.prompt,
|
|
110
|
+
languageId: requestContext.languageId,
|
|
111
|
+
repoInfo: requestContext.repoInfo,
|
|
112
|
+
ourRequestId: requestContext.ourRequestId,
|
|
113
|
+
engineModelId: requestContext.engineModelId,
|
|
114
|
+
count: n,
|
|
115
|
+
uiKind: fetch_1.CopilotUiKind.GhostText,
|
|
116
|
+
postOptions,
|
|
117
|
+
headers: requestContext.headers,
|
|
118
|
+
extra,
|
|
119
|
+
};
|
|
120
|
+
const res = await fetcherService.fetchAndStreamCompletions(completionParams, baseTelemetryData, finishedCb, cancellationToken);
|
|
121
|
+
if (res.type === 'failed') {
|
|
122
|
+
return {
|
|
123
|
+
type: 'failed',
|
|
124
|
+
reason: res.reason,
|
|
125
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (res.type === 'canceled') {
|
|
129
|
+
ghostTextLogger.debug(logTarget, 'Cancelled after awaiting fetchCompletions');
|
|
130
|
+
return {
|
|
131
|
+
type: 'canceled',
|
|
132
|
+
reason: res.reason,
|
|
133
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(baseTelemetryData),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return processChoices(requestStart, res.getProcessingTime(), res.choices);
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
// If we cancelled a network request, we don't want to log an error
|
|
140
|
+
if ((0, networking_1.isAbortError)(err)) {
|
|
141
|
+
return {
|
|
142
|
+
type: 'canceled',
|
|
143
|
+
reason: 'network request aborted',
|
|
144
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(baseTelemetryData, {
|
|
145
|
+
cancelledNetworkRequest: true,
|
|
146
|
+
}),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
instantiationService.invokeFunction(acc => ghostTextLogger.exception(acc, err, `Error on ghost text request`));
|
|
151
|
+
userErrorNotifier.notifyUser(err);
|
|
152
|
+
if (runtimeMode.shouldFailForDebugPurposes()) {
|
|
153
|
+
throw err;
|
|
154
|
+
}
|
|
155
|
+
// not including err in this result because it'll end up in standard telemetry
|
|
156
|
+
return {
|
|
157
|
+
type: 'failed',
|
|
158
|
+
reason: 'non-abort error on ghost text request',
|
|
159
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Post-proceses a completion choice based on the current request context and existing choices.
|
|
166
|
+
*/
|
|
167
|
+
function postProcessChoices(newChoice, requestContext, currentChoices) {
|
|
168
|
+
if (!currentChoices) {
|
|
169
|
+
currentChoices = [];
|
|
170
|
+
}
|
|
171
|
+
newChoice.completionText = newChoice.completionText.trimEnd();
|
|
172
|
+
if (!newChoice.completionText) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
// Collect only unique displayTexts
|
|
176
|
+
if (currentChoices.findIndex(v => v.completionText.trim() === newChoice.completionText.trim()) !== -1) {
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
return newChoice;
|
|
180
|
+
}
|
|
181
|
+
/** Requests new completion from OpenAI, should be called if and only if the completions for given prompt were not cached before.
|
|
182
|
+
* It returns only first completion, additional completions are added to the caches in the background.
|
|
183
|
+
* Copies from the base telemetry data are used as the basis for each choice's telemetry.
|
|
184
|
+
*/
|
|
185
|
+
async function getCompletionsFromNetwork(accessor, requestContext, baseTelemetryData, cancellationToken, finishedCb) {
|
|
186
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
187
|
+
const logTarget = accessor.get(logger_1.ICompletionsLogTargetService);
|
|
188
|
+
const runtimeMode = accessor.get(runtimeMode_1.ICompletionsRuntimeModeService);
|
|
189
|
+
return genericGetCompletionsFromNetwork(accessor, requestContext, baseTelemetryData, cancellationToken, finishedCb, 'completions', async (requestStart, processingTime, choicesStream) => {
|
|
190
|
+
const choicesIterator = choicesStream[Symbol.asyncIterator]();
|
|
191
|
+
const firstRes = await choicesIterator.next();
|
|
192
|
+
if (firstRes.done) {
|
|
193
|
+
ghostTextLogger.debug(logTarget, 'All choices redacted');
|
|
194
|
+
return {
|
|
195
|
+
type: 'empty',
|
|
196
|
+
reason: 'all choices redacted',
|
|
197
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
if (cancellationToken?.isCancellationRequested) {
|
|
201
|
+
ghostTextLogger.debug(logTarget, 'Cancelled after awaiting redactedChoices iterator');
|
|
202
|
+
return {
|
|
203
|
+
type: 'canceled',
|
|
204
|
+
reason: 'after awaiting redactedChoices iterator',
|
|
205
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(baseTelemetryData),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
const firstChoice = firstRes.value;
|
|
209
|
+
if (firstChoice === undefined) {
|
|
210
|
+
// This is probably unreachable given the firstRes.done check above
|
|
211
|
+
ghostTextLogger.debug(logTarget, 'Got undefined choice from redactedChoices iterator');
|
|
212
|
+
return {
|
|
213
|
+
type: 'empty',
|
|
214
|
+
reason: 'got undefined choice from redactedChoices iterator',
|
|
215
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
instantiationService.invokeFunction(telemetryPerformance, 'performance', firstChoice, requestStart, processingTime);
|
|
219
|
+
ghostTextLogger.debug(logTarget, `Awaited first result, id: ${firstChoice.choiceIndex}`);
|
|
220
|
+
// Adds first result to cache
|
|
221
|
+
const processedFirstChoice = postProcessChoices(firstChoice, requestContext);
|
|
222
|
+
if (processedFirstChoice) {
|
|
223
|
+
instantiationService.invokeFunction(appendToCache, requestContext, processedFirstChoice);
|
|
224
|
+
ghostTextLogger.debug(logTarget, `GhostText first completion (index ${processedFirstChoice?.choiceIndex}): ${JSON.stringify(processedFirstChoice?.completionText)}`);
|
|
225
|
+
}
|
|
226
|
+
//Create promise for each result, don't `await` it (unless in test mode) but handle asynchronously with `.then()`
|
|
227
|
+
const cacheDone = (async () => {
|
|
228
|
+
const apiChoices = processedFirstChoice !== undefined ? [processedFirstChoice] : [];
|
|
229
|
+
for await (const choice of choicesStream) {
|
|
230
|
+
if (choice === undefined) {
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
ghostTextLogger.debug(logTarget, `GhostText later completion (index ${choice?.choiceIndex}): ${JSON.stringify(choice.completionText)}`);
|
|
234
|
+
const processedChoice = postProcessChoices(choice, requestContext, apiChoices);
|
|
235
|
+
if (!processedChoice) {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
apiChoices.push(processedChoice);
|
|
239
|
+
instantiationService.invokeFunction(appendToCache, requestContext, processedChoice);
|
|
240
|
+
}
|
|
241
|
+
})();
|
|
242
|
+
if (runtimeMode.isRunningInTest()) {
|
|
243
|
+
await cacheDone;
|
|
244
|
+
}
|
|
245
|
+
if (processedFirstChoice) {
|
|
246
|
+
// Because we ask the server to stop at \n above, we don't need to force single line here
|
|
247
|
+
return {
|
|
248
|
+
type: 'success',
|
|
249
|
+
value: [makeGhostAPIChoice(processedFirstChoice, { forceSingleLine: false }), cacheDone],
|
|
250
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
251
|
+
telemetryBlob: baseTelemetryData,
|
|
252
|
+
resultType: ResultType.Network,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
return {
|
|
257
|
+
type: 'empty',
|
|
258
|
+
reason: 'got undefined processedFirstChoice',
|
|
259
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
/** Requests new completion from OpenAI, should be called if and only if we are in the servers-side termination mode, and it's follow-up cycling request
|
|
265
|
+
* It returns all requested completions
|
|
266
|
+
* Copies from the base telemetry data are used as the basis for each choice's telemetry.
|
|
267
|
+
*/
|
|
268
|
+
async function getAllCompletionsFromNetwork(accessor, requestContext, baseTelemetryData, cancellationToken, finishedCb) {
|
|
269
|
+
const logTarget = accessor.get(logger_1.ICompletionsLogTargetService);
|
|
270
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
271
|
+
return genericGetCompletionsFromNetwork(accessor, requestContext, baseTelemetryData, cancellationToken, finishedCb, 'all completions', async (requestStart, processingTime, choicesStream) => {
|
|
272
|
+
const apiChoices = [];
|
|
273
|
+
for await (const choice of choicesStream) {
|
|
274
|
+
if (cancellationToken?.isCancellationRequested) {
|
|
275
|
+
ghostTextLogger.debug(logTarget, 'Cancelled after awaiting choices iterator');
|
|
276
|
+
return {
|
|
277
|
+
type: 'canceled',
|
|
278
|
+
reason: 'after awaiting choices iterator',
|
|
279
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(baseTelemetryData),
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
const processedChoice = postProcessChoices(choice, requestContext, apiChoices);
|
|
283
|
+
if (!processedChoice) {
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
apiChoices.push(processedChoice);
|
|
287
|
+
}
|
|
288
|
+
//Append results to current completions cache, and network cache
|
|
289
|
+
if (apiChoices.length > 0) {
|
|
290
|
+
for (const choice of apiChoices) {
|
|
291
|
+
instantiationService.invokeFunction(appendToCache, requestContext, choice);
|
|
292
|
+
}
|
|
293
|
+
instantiationService.invokeFunction(telemetryPerformance, 'cyclingPerformance', apiChoices[0], requestStart, processingTime);
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
type: 'success',
|
|
297
|
+
value: [apiChoices, Promise.resolve()],
|
|
298
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(baseTelemetryData),
|
|
299
|
+
telemetryBlob: baseTelemetryData,
|
|
300
|
+
resultType: ResultType.Cycling,
|
|
301
|
+
};
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
function makeGhostAPIChoice(choice, options) {
|
|
305
|
+
const ghostChoice = { ...choice };
|
|
306
|
+
if (options.forceSingleLine) {
|
|
307
|
+
const { completionText } = ghostChoice;
|
|
308
|
+
// Special case for when completion starts with a newline, don't count that as its own line
|
|
309
|
+
const initialLineBreak = completionText.match(/^\r?\n/);
|
|
310
|
+
if (initialLineBreak) {
|
|
311
|
+
ghostChoice.completionText = initialLineBreak[0] + completionText.split('\n')[1];
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
ghostChoice.completionText = completionText.split('\n')[0];
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return ghostChoice;
|
|
318
|
+
}
|
|
319
|
+
function takeNLines(n) {
|
|
320
|
+
return (text) => {
|
|
321
|
+
// If the text is longer than n lines, return the offset.
|
|
322
|
+
// Checks for n+1 lines because of the leading newline.
|
|
323
|
+
const lines = text?.split('\n') ?? [];
|
|
324
|
+
if (lines.length > n + 1) {
|
|
325
|
+
return lines.slice(0, n + 1).join('\n').length;
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
async function getGhostTextStrategy(accessor, completionState, prefix, prompt, isCycling, inlineSuggestion, hasAcceptedCurrentCompletion, preIssuedTelemetryData) {
|
|
330
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
331
|
+
const featuresService = accessor.get(featuresService_1.ICompletionsFeaturesService);
|
|
332
|
+
const blockModeConfig = accessor.get(configBlockMode_1.ICompletionsBlockModeConfig);
|
|
333
|
+
const multilineAfterAcceptLines = featuresService.multilineAfterAcceptLines(preIssuedTelemetryData);
|
|
334
|
+
const blockMode = blockModeConfig.forLanguage(completionState.textDocument.detectedLanguageId, preIssuedTelemetryData);
|
|
335
|
+
switch (blockMode) {
|
|
336
|
+
case config_1.BlockMode.Server:
|
|
337
|
+
// Override the server-side trimming after accepting a completion
|
|
338
|
+
if (hasAcceptedCurrentCompletion) {
|
|
339
|
+
return {
|
|
340
|
+
blockMode: config_1.BlockMode.Parsing,
|
|
341
|
+
requestMultiline: true,
|
|
342
|
+
finishedCb: takeNLines(multilineAfterAcceptLines),
|
|
343
|
+
stop: ['\n\n'],
|
|
344
|
+
maxTokens: maxSinglelineTokens * multilineAfterAcceptLines,
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
return {
|
|
348
|
+
blockMode: config_1.BlockMode.Server,
|
|
349
|
+
requestMultiline: true,
|
|
350
|
+
finishedCb: _ => undefined,
|
|
351
|
+
};
|
|
352
|
+
case config_1.BlockMode.Parsing:
|
|
353
|
+
case config_1.BlockMode.ParsingAndServer:
|
|
354
|
+
case config_1.BlockMode.MoreMultiline:
|
|
355
|
+
default: {
|
|
356
|
+
// we shouldn't drop through to here, but in case we do, be explicit about the behaviour
|
|
357
|
+
let requestMultiline;
|
|
358
|
+
try {
|
|
359
|
+
requestMultiline = await instantiationService.invokeFunction(shouldRequestMultiline, blockMode, completionState.textDocument, completionState.position, inlineSuggestion, hasAcceptedCurrentCompletion, prompt);
|
|
360
|
+
}
|
|
361
|
+
catch (err) {
|
|
362
|
+
// Fallback to non-multiline
|
|
363
|
+
requestMultiline = { requestMultiline: false };
|
|
364
|
+
}
|
|
365
|
+
if (!hasAcceptedCurrentCompletion &&
|
|
366
|
+
requestMultiline.requestMultiline &&
|
|
367
|
+
featuresService.singleLineUnlessAccepted(preIssuedTelemetryData)) {
|
|
368
|
+
requestMultiline.requestMultiline = false;
|
|
369
|
+
}
|
|
370
|
+
if (requestMultiline.requestMultiline) {
|
|
371
|
+
// Note that `trailingWs` contains *any* trailing whitespace from the prompt, but the prompt itself
|
|
372
|
+
// is only trimmed if the entire last line is whitespace. We have to account for that here when we
|
|
373
|
+
// check whether the block body is finished.
|
|
374
|
+
let adjustedPosition;
|
|
375
|
+
if (prompt.trailingWs.length > 0 && !prompt.prompt.prefix.endsWith(prompt.trailingWs)) {
|
|
376
|
+
// Prompt was adjusted, so adjust the position to match
|
|
377
|
+
adjustedPosition = textDocument_1.LocationFactory.position(completionState.position.line, Math.max(completionState.position.character - prompt.trailingWs.length, 0));
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
// Otherwise, just use the original position
|
|
381
|
+
adjustedPosition = completionState.position;
|
|
382
|
+
}
|
|
383
|
+
return {
|
|
384
|
+
blockMode: blockMode,
|
|
385
|
+
requestMultiline: true,
|
|
386
|
+
...instantiationService.invokeFunction(buildFinishedCallback, blockMode, completionState.textDocument, adjustedPosition, requestMultiline.blockPosition, prefix, true, prompt.prompt, preIssuedTelemetryData),
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
// Override single-line to multiline after accepting a completion
|
|
390
|
+
if (hasAcceptedCurrentCompletion) {
|
|
391
|
+
const result = {
|
|
392
|
+
blockMode: config_1.BlockMode.Parsing,
|
|
393
|
+
requestMultiline: true,
|
|
394
|
+
finishedCb: takeNLines(multilineAfterAcceptLines),
|
|
395
|
+
stop: ['\n\n'],
|
|
396
|
+
maxTokens: maxSinglelineTokens * multilineAfterAcceptLines,
|
|
397
|
+
};
|
|
398
|
+
if (blockMode === config_1.BlockMode.MoreMultiline) {
|
|
399
|
+
result.blockMode = config_1.BlockMode.MoreMultiline;
|
|
400
|
+
}
|
|
401
|
+
return result;
|
|
402
|
+
}
|
|
403
|
+
// not multiline
|
|
404
|
+
return {
|
|
405
|
+
blockMode: blockMode,
|
|
406
|
+
requestMultiline: false,
|
|
407
|
+
...instantiationService.invokeFunction(buildFinishedCallback, blockMode, completionState.textDocument, completionState.position, requestMultiline.blockPosition, prefix, false, prompt.prompt, preIssuedTelemetryData),
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
function buildFinishedCallback(accessor, blockMode, document, position, positionType, prefix, multiline, prompt, telemetryData) {
|
|
413
|
+
const featuresService = accessor.get(featuresService_1.ICompletionsFeaturesService);
|
|
414
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
415
|
+
if (multiline && blockMode === config_1.BlockMode.MoreMultiline && blockTrimmer_1.BlockTrimmer.isSupported(document.detectedLanguageId)) {
|
|
416
|
+
const lookAhead = positionType === blockTrimmer_1.BlockPositionType.EmptyBlock || positionType === blockTrimmer_1.BlockPositionType.BlockEnd
|
|
417
|
+
? featuresService.longLookaheadSize(telemetryData)
|
|
418
|
+
: featuresService.shortLookaheadSize(telemetryData);
|
|
419
|
+
const finishedCb = instantiationService.createInstance(streamedCompletionSplitter_1.StreamedCompletionSplitter, prefix, document.detectedLanguageId, false, lookAhead, (extraPrefix, item) => {
|
|
420
|
+
const cacheContext = {
|
|
421
|
+
prefix: prefix + extraPrefix,
|
|
422
|
+
prompt: { ...prompt, prefix: prompt.prefix + extraPrefix },
|
|
423
|
+
};
|
|
424
|
+
instantiationService.invokeFunction(appendToCache, cacheContext, item);
|
|
425
|
+
}).getFinishedCallback();
|
|
426
|
+
return {
|
|
427
|
+
finishedCb,
|
|
428
|
+
maxTokens: featuresService.maxMultilineTokens(telemetryData),
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
return { finishedCb: multiline ? (0, parseBlock_1.parsingBlockFinished)(document, position) : _ => undefined };
|
|
432
|
+
}
|
|
433
|
+
const defaultOptions = {
|
|
434
|
+
isCycling: false,
|
|
435
|
+
promptOnly: false,
|
|
436
|
+
isSpeculative: false,
|
|
437
|
+
};
|
|
438
|
+
function getRemainingDebounceMs(accessor, opts, telemetry) {
|
|
439
|
+
const featuresService = accessor.get(featuresService_1.ICompletionsFeaturesService);
|
|
440
|
+
const debounce = (0, config_1.getConfig)(accessor, config_1.ConfigKey.CompletionsDebounce) ??
|
|
441
|
+
featuresService.completionsDebounce(telemetry) ??
|
|
442
|
+
opts.debounceMs;
|
|
443
|
+
if (debounce === undefined) {
|
|
444
|
+
return 0;
|
|
445
|
+
}
|
|
446
|
+
const elapsed = (0, telemetry_2.now)() - telemetry.issuedTime;
|
|
447
|
+
return Math.max(0, debounce - elapsed);
|
|
448
|
+
}
|
|
449
|
+
function inlineCompletionRequestCancelled(currentGhostText, requestId, cancellationToken) {
|
|
450
|
+
return cancellationToken?.isCancellationRequested || requestId !== currentGhostText.currentRequestId;
|
|
451
|
+
}
|
|
452
|
+
async function getGhostTextWithoutAbortHandling(accessor, completionState, ourRequestId, preIssuedTelemetryDataWithExp, cancellationToken, options) {
|
|
453
|
+
let start = preIssuedTelemetryDataWithExp.issuedTime; // Start before getting exp assignments
|
|
454
|
+
const performanceMetrics = [];
|
|
455
|
+
/** Internal helper to record performance measurements. Mutates performanceMetrics and start. */
|
|
456
|
+
function recordPerformance(name) {
|
|
457
|
+
const next = (0, telemetry_2.now)();
|
|
458
|
+
performanceMetrics.push([name, next - start]);
|
|
459
|
+
start = next;
|
|
460
|
+
}
|
|
461
|
+
recordPerformance('telemetry');
|
|
462
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
463
|
+
const featuresService = accessor.get(featuresService_1.ICompletionsFeaturesService);
|
|
464
|
+
const asyncCompletionManager = accessor.get(asyncCompletions_1.ICompletionsAsyncManagerService);
|
|
465
|
+
const logTarget = accessor.get(logger_1.ICompletionsLogTargetService);
|
|
466
|
+
const currentGhostText = accessor.get(current_1.ICompletionsCurrentGhostText);
|
|
467
|
+
const statusReporter = accessor.get(progress_1.ICompletionsStatusReporter);
|
|
468
|
+
if (inlineCompletionRequestCancelled(currentGhostText, ourRequestId, cancellationToken)) {
|
|
469
|
+
return {
|
|
470
|
+
type: 'abortedBeforeIssued',
|
|
471
|
+
reason: 'cancelled before extractPrompt',
|
|
472
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
const inlineSuggestion = isInlineSuggestion(completionState.textDocument, completionState.position);
|
|
476
|
+
if (inlineSuggestion === undefined) {
|
|
477
|
+
ghostTextLogger.debug(logTarget, 'Breaking, invalid middle of the line');
|
|
478
|
+
return {
|
|
479
|
+
type: 'abortedBeforeIssued',
|
|
480
|
+
reason: 'Invalid middle of the line',
|
|
481
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
const engineInfo = instantiationService.invokeFunction(config_2.getEngineRequestInfo, preIssuedTelemetryDataWithExp);
|
|
485
|
+
const ghostTextOptions = { ...defaultOptions, ...options, tokenizer: engineInfo.tokenizer };
|
|
486
|
+
const prompt = await instantiationService.invokeFunction(prompt_1.extractPrompt, ourRequestId, completionState, preIssuedTelemetryDataWithExp, undefined, ghostTextOptions);
|
|
487
|
+
recordPerformance('prompt');
|
|
488
|
+
if (prompt.type === 'copilotContentExclusion') {
|
|
489
|
+
ghostTextLogger.debug(logTarget, 'Copilot not available, due to content exclusion');
|
|
490
|
+
return {
|
|
491
|
+
type: 'abortedBeforeIssued',
|
|
492
|
+
reason: 'Copilot not available due to content exclusion',
|
|
493
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
if (prompt.type === 'contextTooShort') {
|
|
497
|
+
ghostTextLogger.debug(logTarget, 'Breaking, not enough context');
|
|
498
|
+
return {
|
|
499
|
+
type: 'abortedBeforeIssued',
|
|
500
|
+
reason: 'Not enough context',
|
|
501
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
if (prompt.type === 'promptError') {
|
|
505
|
+
ghostTextLogger.debug(logTarget, 'Error while building the prompt');
|
|
506
|
+
return {
|
|
507
|
+
type: 'abortedBeforeIssued',
|
|
508
|
+
reason: 'Error while building the prompt',
|
|
509
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
if (ghostTextOptions.promptOnly) {
|
|
513
|
+
return { type: 'promptOnly', reason: 'Breaking, promptOnly set to true', prompt: prompt };
|
|
514
|
+
}
|
|
515
|
+
if (prompt.type === 'promptCancelled') {
|
|
516
|
+
ghostTextLogger.debug(logTarget, 'Cancelled during extractPrompt');
|
|
517
|
+
return {
|
|
518
|
+
type: 'abortedBeforeIssued',
|
|
519
|
+
reason: 'Cancelled during extractPrompt',
|
|
520
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
if (prompt.type === 'promptTimeout') {
|
|
524
|
+
ghostTextLogger.debug(logTarget, 'Timeout during extractPrompt');
|
|
525
|
+
return {
|
|
526
|
+
type: 'abortedBeforeIssued',
|
|
527
|
+
reason: 'Timeout',
|
|
528
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
if (prompt.prompt.prefix.length === 0 && prompt.prompt.suffix.length === 0) {
|
|
532
|
+
ghostTextLogger.debug(logTarget, 'Error empty prompt');
|
|
533
|
+
return {
|
|
534
|
+
type: 'abortedBeforeIssued',
|
|
535
|
+
reason: 'Empty prompt',
|
|
536
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
const debounce = instantiationService.invokeFunction(getRemainingDebounceMs, ghostTextOptions, preIssuedTelemetryDataWithExp);
|
|
540
|
+
if (debounce > 0) {
|
|
541
|
+
ghostTextLogger.debug(logTarget, `Debouncing ghost text request for ${debounce}ms`);
|
|
542
|
+
await (0, async_1.delay)(debounce);
|
|
543
|
+
if (inlineCompletionRequestCancelled(currentGhostText, ourRequestId, cancellationToken)) {
|
|
544
|
+
return {
|
|
545
|
+
type: 'abortedBeforeIssued',
|
|
546
|
+
reason: 'cancelled after debounce',
|
|
547
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(preIssuedTelemetryDataWithExp),
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
return statusReporter.withProgress(async () => {
|
|
552
|
+
const [prefix] = (0, prompt_1.trimLastLine)(completionState.textDocument.getText(textDocument_1.LocationFactory.range(textDocument_1.LocationFactory.position(0, 0), completionState.position)));
|
|
553
|
+
const hasAcceptedCurrentCompletion = currentGhostText.hasAcceptedCurrentCompletion(prefix, prompt.prompt.suffix);
|
|
554
|
+
const originalPrompt = prompt.prompt;
|
|
555
|
+
const ghostTextStrategy = await instantiationService.invokeFunction(getGhostTextStrategy, completionState, prefix, prompt, ghostTextOptions.isCycling, inlineSuggestion, hasAcceptedCurrentCompletion, preIssuedTelemetryDataWithExp);
|
|
556
|
+
recordPerformance('strategy');
|
|
557
|
+
let choices = instantiationService.invokeFunction(getLocalInlineSuggestion, prefix, originalPrompt, ghostTextStrategy.requestMultiline);
|
|
558
|
+
recordPerformance('cache');
|
|
559
|
+
const repoInfo = instantiationService.invokeFunction(repository_1.extractRepoInfoInBackground, completionState.textDocument.uri);
|
|
560
|
+
const requestContext = {
|
|
561
|
+
blockMode: ghostTextStrategy.blockMode,
|
|
562
|
+
languageId: completionState.textDocument.detectedLanguageId,
|
|
563
|
+
repoInfo: repoInfo,
|
|
564
|
+
engineModelId: engineInfo.modelId,
|
|
565
|
+
ourRequestId,
|
|
566
|
+
prefix,
|
|
567
|
+
prompt: prompt.prompt,
|
|
568
|
+
multiline: ghostTextStrategy.requestMultiline,
|
|
569
|
+
indentation: (0, parseBlock_1.contextIndentation)(completionState.textDocument, completionState.position),
|
|
570
|
+
isCycling: ghostTextOptions.isCycling,
|
|
571
|
+
headers: engineInfo.headers,
|
|
572
|
+
stop: ghostTextStrategy.stop,
|
|
573
|
+
maxTokens: ghostTextStrategy.maxTokens,
|
|
574
|
+
afterAccept: hasAcceptedCurrentCompletion,
|
|
575
|
+
};
|
|
576
|
+
// Add headers to identify async completions and speculative requests
|
|
577
|
+
requestContext.headers = {
|
|
578
|
+
...requestContext.headers,
|
|
579
|
+
'X-Copilot-Async': 'true',
|
|
580
|
+
'X-Copilot-Speculative': ghostTextOptions.isSpeculative ? 'true' : 'false',
|
|
581
|
+
};
|
|
582
|
+
// this will be used as basis for the choice telemetry data
|
|
583
|
+
const telemetryData = instantiationService.invokeFunction(telemetryIssued, completionState.textDocument, requestContext, completionState.position, prompt, preIssuedTelemetryDataWithExp, engineInfo, ghostTextOptions);
|
|
584
|
+
// Wait before requesting more completions if there is a candidate
|
|
585
|
+
// completion request in flight. Does not wait for cycling requests or
|
|
586
|
+
// if there is a cached completion.
|
|
587
|
+
if (choices === undefined &&
|
|
588
|
+
!ghostTextOptions.isCycling &&
|
|
589
|
+
asyncCompletionManager.shouldWaitForAsyncCompletions(prefix, prompt.prompt)) {
|
|
590
|
+
const choice = await asyncCompletionManager.getFirstMatchingRequestWithTimeout(ourRequestId, prefix, prompt.prompt, ghostTextOptions.isSpeculative, telemetryData);
|
|
591
|
+
recordPerformance('asyncWait');
|
|
592
|
+
if (choice) {
|
|
593
|
+
const forceSingleLine = !ghostTextStrategy.requestMultiline;
|
|
594
|
+
const trimmedChoice = makeGhostAPIChoice(choice[0], { forceSingleLine });
|
|
595
|
+
choices = [[trimmedChoice], ResultType.Async];
|
|
596
|
+
}
|
|
597
|
+
if (inlineCompletionRequestCancelled(currentGhostText, ourRequestId, cancellationToken)) {
|
|
598
|
+
ghostTextLogger.debug(logTarget, 'Cancelled before requesting a new completion');
|
|
599
|
+
return {
|
|
600
|
+
type: 'abortedBeforeIssued',
|
|
601
|
+
reason: 'Cancelled after waiting for async completion',
|
|
602
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(telemetryData),
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
const isMoreMultiline = ghostTextStrategy.blockMode === config_1.BlockMode.MoreMultiline &&
|
|
607
|
+
blockTrimmer_1.BlockTrimmer.isSupported(completionState.textDocument.detectedLanguageId);
|
|
608
|
+
if (choices !== undefined) {
|
|
609
|
+
// Post-process any cached choices before deciding whether to issue a network request
|
|
610
|
+
choices[0] = choices[0]
|
|
611
|
+
.map(c => instantiationService.invokeFunction(suggestions_1.postProcessChoiceInContext, completionState.textDocument, completionState.position, c, isMoreMultiline, ghostTextLogger))
|
|
612
|
+
.filter(c => c !== undefined);
|
|
613
|
+
}
|
|
614
|
+
if (choices !== undefined && choices[0].length === 0) {
|
|
615
|
+
ghostTextLogger.debug(logTarget, `Found empty inline suggestions locally via ${(0, telemetry_3.resultTypeToString)(choices[1])}`);
|
|
616
|
+
return {
|
|
617
|
+
type: 'empty',
|
|
618
|
+
reason: 'cached results empty after post-processing',
|
|
619
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(telemetryData),
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
if (choices !== undefined &&
|
|
623
|
+
choices[0].length > 0 &&
|
|
624
|
+
// If it's a cycling request, need to show multiple choices
|
|
625
|
+
(!ghostTextOptions.isCycling || choices[0].length > 1)) {
|
|
626
|
+
ghostTextLogger.debug(logTarget, `Found inline suggestions locally via ${(0, telemetry_3.resultTypeToString)(choices[1])}`);
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
// No local choices, go to network
|
|
630
|
+
if (ghostTextOptions.isCycling) {
|
|
631
|
+
const networkChoices = await instantiationService.invokeFunction(getAllCompletionsFromNetwork, requestContext, telemetryData, cancellationToken, ghostTextStrategy.finishedCb);
|
|
632
|
+
// TODO: if we already had some choices cached from the initial non-cycling request,
|
|
633
|
+
// and then the cycling request returns no results for some reason, we need to still
|
|
634
|
+
// return the original choices to the editor to avoid the ghost text disappearing completely.
|
|
635
|
+
// However this should be telemetrised according to the result of the cycling request itself,
|
|
636
|
+
// i.e. failure/empty (or maybe canceled).
|
|
637
|
+
//
|
|
638
|
+
// Right now this is awkward to orchestrate in the code and we don't handle it, incorrectly
|
|
639
|
+
// returning `ghostText.produced` instead. Cycling is a manual action and hence uncommon,
|
|
640
|
+
// so this shouldn't cause much inaccuracy, but we still should fix this.
|
|
641
|
+
if (networkChoices.type === 'success') {
|
|
642
|
+
const resultChoices = choices?.[0] ?? [];
|
|
643
|
+
networkChoices.value[0].forEach(c => {
|
|
644
|
+
// Collect only unique displayTexts
|
|
645
|
+
if (resultChoices.findIndex(v => v.completionText.trim() === c.completionText.trim()) !== -1) {
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
resultChoices.push(c);
|
|
649
|
+
});
|
|
650
|
+
choices = [resultChoices, ResultType.Cycling];
|
|
651
|
+
}
|
|
652
|
+
else {
|
|
653
|
+
if (choices === undefined) {
|
|
654
|
+
return networkChoices;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
else {
|
|
659
|
+
// Wrap an observer around the finished callback to update the
|
|
660
|
+
// async manager as the request streams in.
|
|
661
|
+
const finishedCb = (text, delta) => {
|
|
662
|
+
asyncCompletionManager.updateCompletion(ourRequestId, text);
|
|
663
|
+
return ghostTextStrategy.finishedCb(text, delta);
|
|
664
|
+
};
|
|
665
|
+
const asyncCancellationTokenSource = new src_1.CancellationTokenSource();
|
|
666
|
+
const requestPromise = instantiationService.invokeFunction(getCompletionsFromNetwork, requestContext, telemetryData, asyncCancellationTokenSource.token, finishedCb);
|
|
667
|
+
void asyncCompletionManager.queueCompletionRequest(ourRequestId, prefix, prompt.prompt, asyncCancellationTokenSource, requestPromise);
|
|
668
|
+
const c = await asyncCompletionManager.getFirstMatchingRequest(ourRequestId, prefix, prompt.prompt, ghostTextOptions.isSpeculative);
|
|
669
|
+
if (c === undefined) {
|
|
670
|
+
return {
|
|
671
|
+
type: 'empty',
|
|
672
|
+
reason: 'received no results from async completions',
|
|
673
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(telemetryData),
|
|
674
|
+
};
|
|
675
|
+
}
|
|
676
|
+
choices = [[c[0]], ResultType.Async];
|
|
677
|
+
}
|
|
678
|
+
recordPerformance('network');
|
|
679
|
+
}
|
|
680
|
+
if (choices === undefined) {
|
|
681
|
+
return {
|
|
682
|
+
type: 'failed',
|
|
683
|
+
reason: 'internal error: choices should be defined after network call',
|
|
684
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(telemetryData),
|
|
685
|
+
};
|
|
686
|
+
}
|
|
687
|
+
const [choicesArray, resultType] = choices;
|
|
688
|
+
const postProcessedChoicesArray = choicesArray
|
|
689
|
+
.map(c => instantiationService.invokeFunction(suggestions_1.postProcessChoiceInContext, completionState.textDocument, completionState.position, c, isMoreMultiline, ghostTextLogger))
|
|
690
|
+
.filter(c => c !== undefined);
|
|
691
|
+
// Delay response if needed. Note, this must come before the
|
|
692
|
+
// telemetryWithAddData call since the time_to_produce_ms is computed
|
|
693
|
+
// there
|
|
694
|
+
const completionsDelay = instantiationService.invokeFunction((config_1.getConfig), config_1.ConfigKey.CompletionsDelay) ??
|
|
695
|
+
featuresService.completionsDelay(preIssuedTelemetryDataWithExp);
|
|
696
|
+
const elapsed = (0, telemetry_2.now)() - preIssuedTelemetryDataWithExp.issuedTime;
|
|
697
|
+
const remainingDelay = Math.max(completionsDelay - elapsed, 0);
|
|
698
|
+
if (resultType !== ResultType.TypingAsSuggested && !ghostTextOptions.isCycling && remainingDelay > 0) {
|
|
699
|
+
ghostTextLogger.debug(logTarget, `Waiting ${remainingDelay}ms before returning completion`);
|
|
700
|
+
await (0, async_1.delay)(remainingDelay);
|
|
701
|
+
if (inlineCompletionRequestCancelled(currentGhostText, ourRequestId, cancellationToken)) {
|
|
702
|
+
ghostTextLogger.debug(logTarget, 'Cancelled after completions delay');
|
|
703
|
+
return {
|
|
704
|
+
type: 'canceled',
|
|
705
|
+
reason: 'after completions delay',
|
|
706
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(telemetryData),
|
|
707
|
+
};
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
const results = [];
|
|
711
|
+
for (const choice of postProcessedChoicesArray) {
|
|
712
|
+
// Do this to get a new object for each choice
|
|
713
|
+
const choiceTelemetryData = telemetryWithAddData(completionState.textDocument, requestContext, choice, telemetryData);
|
|
714
|
+
const suffixCoverage = inlineSuggestion
|
|
715
|
+
? (0, suggestions_1.checkSuffix)(completionState.textDocument, completionState.position, choice)
|
|
716
|
+
: 0;
|
|
717
|
+
// We want to use `newTrailingWs` as the trailing whitespace
|
|
718
|
+
const ghostCompletion = adjustLeadingWhitespace(choice.choiceIndex, choice.completionText, prompt.trailingWs);
|
|
719
|
+
const res = {
|
|
720
|
+
completion: ghostCompletion,
|
|
721
|
+
telemetry: choiceTelemetryData,
|
|
722
|
+
isMiddleOfTheLine: inlineSuggestion,
|
|
723
|
+
suffixCoverage,
|
|
724
|
+
copilotAnnotations: choice.copilotAnnotations,
|
|
725
|
+
clientCompletionId: choice.clientCompletionId,
|
|
726
|
+
};
|
|
727
|
+
results.push(res);
|
|
728
|
+
}
|
|
729
|
+
// Lift clientCompletionId out of the result in order to include it in the telemetry payload computed by mkBasicResultTelemetry.
|
|
730
|
+
telemetryData.properties.clientCompletionId = results[0]?.clientCompletionId;
|
|
731
|
+
// If reading from the cache or async, capture the look back offset used
|
|
732
|
+
telemetryData.measurements.foundOffset = results?.[0]?.telemetry?.measurements?.foundOffset ?? -1;
|
|
733
|
+
ghostTextLogger.debug(logTarget, `Produced ${results.length} results from ${(0, telemetry_3.resultTypeToString)(resultType)} at ${telemetryData.measurements.foundOffset} offset`);
|
|
734
|
+
if (inlineCompletionRequestCancelled(currentGhostText, ourRequestId, cancellationToken)) {
|
|
735
|
+
return {
|
|
736
|
+
type: 'canceled',
|
|
737
|
+
reason: 'after post processing completions',
|
|
738
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(telemetryData),
|
|
739
|
+
};
|
|
740
|
+
}
|
|
741
|
+
if (!ghostTextOptions.isSpeculative) {
|
|
742
|
+
// Update the current ghost text with the new response before returning for the "typing as suggested" UX
|
|
743
|
+
currentGhostText.setGhostText(prefix, prompt.prompt.suffix, postProcessedChoicesArray, resultType);
|
|
744
|
+
}
|
|
745
|
+
recordPerformance('complete');
|
|
746
|
+
return {
|
|
747
|
+
type: 'success',
|
|
748
|
+
value: [results, resultType],
|
|
749
|
+
telemetryData: (0, telemetry_3.mkBasicResultTelemetry)(telemetryData),
|
|
750
|
+
telemetryBlob: telemetryData,
|
|
751
|
+
resultType,
|
|
752
|
+
performanceMetrics,
|
|
753
|
+
};
|
|
754
|
+
});
|
|
755
|
+
}
|
|
756
|
+
async function getGhostText(accessor, completionState, token, options) {
|
|
757
|
+
const id = (0, uuid_1.generateUuid)();
|
|
758
|
+
const instantiationService = accessor.get(instantiation_1.IInstantiationService);
|
|
759
|
+
const telemetryService = accessor.get(telemetry_1.ITelemetryService);
|
|
760
|
+
const notifierService = accessor.get(completionNotifier_1.ICompletionsNotifierService);
|
|
761
|
+
const contextProviderBridge = accessor.get(contextProviderBridge_1.ICompletionsContextProviderBridgeService);
|
|
762
|
+
const currentGhostText = accessor.get(current_1.ICompletionsCurrentGhostText);
|
|
763
|
+
const contextproviderStatistics = accessor.get(contextProviderStatistics_1.ICompletionsContextProviderService);
|
|
764
|
+
currentGhostText.currentRequestId = id;
|
|
765
|
+
const telemetryData = await createTelemetryWithExp(accessor, completionState.textDocument, id, options);
|
|
766
|
+
// A CLS consumer has an LSP bug where it erroneously makes method requests before `initialize` has returned, which
|
|
767
|
+
// means we can't use `initialize` to actually initialize anything expensive. This the primary user of the
|
|
768
|
+
// tokenizer, so settle for initializing here instead. We don't use waitForTokenizers() because in the event of a
|
|
769
|
+
// tokenizer load failure, that would spam handleException() on every request.
|
|
770
|
+
await tokenization_1.initializeTokenizers.catch(() => { });
|
|
771
|
+
try {
|
|
772
|
+
contextProviderBridge.schedule(completionState, id, options?.opportunityId ?? '', telemetryData, token, options);
|
|
773
|
+
notifierService.notifyRequest(completionState, id, telemetryData, token, options);
|
|
774
|
+
const result = await instantiationService.invokeFunction(getGhostTextWithoutAbortHandling, completionState, id, telemetryData, token, options);
|
|
775
|
+
const statistics = contextproviderStatistics.getStatisticsForCompletion(id);
|
|
776
|
+
const opportunityId = options?.opportunityId ?? 'unknown';
|
|
777
|
+
for (const [providerId, statistic] of statistics.getAllUsageStatistics()) {
|
|
778
|
+
/* __GDPR__
|
|
779
|
+
"context-provider.completion-stats" : {
|
|
780
|
+
"owner": "dirkb",
|
|
781
|
+
"comment": "Telemetry for copilot inline completion context",
|
|
782
|
+
"requestId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The request correlation id" },
|
|
783
|
+
"opportunityId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The opportunity id" },
|
|
784
|
+
"providerId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The context provider id" },
|
|
785
|
+
"resolution": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The resolution of the context" },
|
|
786
|
+
"usage": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "How the context was used" },
|
|
787
|
+
"usageDetails": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "Additional details about the usage as a JSON string" }
|
|
788
|
+
}
|
|
789
|
+
*/
|
|
790
|
+
telemetryService.sendMSFTTelemetryEvent('context-provider.completion-stats', {
|
|
791
|
+
requestId: id,
|
|
792
|
+
opportunityId,
|
|
793
|
+
providerId,
|
|
794
|
+
resolution: statistic.resolution,
|
|
795
|
+
usage: statistic.usage,
|
|
796
|
+
usageDetails: JSON.stringify(statistic.usageDetails),
|
|
797
|
+
}, {});
|
|
798
|
+
}
|
|
799
|
+
return result;
|
|
800
|
+
}
|
|
801
|
+
catch (e) {
|
|
802
|
+
// The cancellation token may be called after the request is done but while we still process data.
|
|
803
|
+
// The underlying implementation catches abort errors for specific scenarios but we still have uncovered paths.
|
|
804
|
+
// To avoid returning an error to the editor, this acts as an fault barrier here.
|
|
805
|
+
if ((0, networking_1.isAbortError)(e)) {
|
|
806
|
+
return {
|
|
807
|
+
type: 'canceled',
|
|
808
|
+
reason: 'aborted at unknown location',
|
|
809
|
+
telemetryData: (0, telemetry_3.mkCanceledResultTelemetry)(telemetryData, {
|
|
810
|
+
cancelledNetworkRequest: true,
|
|
811
|
+
}),
|
|
812
|
+
};
|
|
813
|
+
}
|
|
814
|
+
throw e;
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
/**
|
|
818
|
+
* Attempt to get InlineSuggestion locally, in one of two ways:
|
|
819
|
+
* 1. If the user is typing the letters already displayed as inline suggestion.
|
|
820
|
+
* 2. If we have a previously cached inline suggestion for this prompt and requestMultiline.
|
|
821
|
+
*/
|
|
822
|
+
function getLocalInlineSuggestion(accessor, prefix, prompt, requestMultiline) {
|
|
823
|
+
const currentGhostText = accessor.get(current_1.ICompletionsCurrentGhostText);
|
|
824
|
+
const choicesTyping = currentGhostText.getCompletionsForUserTyping(prefix, prompt.suffix);
|
|
825
|
+
const choicesCache = getCompletionsFromCache(accessor, prefix, prompt.suffix, requestMultiline);
|
|
826
|
+
if (choicesTyping && choicesTyping.length > 0) {
|
|
827
|
+
// Append cached choices to choicesTyping, if any. Ensure typing choices
|
|
828
|
+
// are first so that the shown completion doesn't disappear.
|
|
829
|
+
// Filter duplicates by completionText
|
|
830
|
+
const choicesCacheDeduped = (choicesCache ?? []).filter(c => !choicesTyping.some(t => t.completionText === c.completionText));
|
|
831
|
+
return [choicesTyping.concat(choicesCacheDeduped), ResultType.TypingAsSuggested];
|
|
832
|
+
}
|
|
833
|
+
if (choicesCache && choicesCache.length > 0) {
|
|
834
|
+
return [choicesCache, ResultType.Cache];
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
/** Checks if the position is valid inline suggestion position. Returns `undefined` if it's position where ghost text shouldn't be displayed */
|
|
838
|
+
function isInlineSuggestion(document, position) {
|
|
839
|
+
//Checks if we're in the position for the middle of the line suggestion
|
|
840
|
+
const isMiddleOfLine = isMiddleOfTheLine(position, document);
|
|
841
|
+
const isValidMiddleOfLine = isValidMiddleOfTheLinePosition(position, document);
|
|
842
|
+
if (isMiddleOfLine && !isValidMiddleOfLine) {
|
|
843
|
+
return;
|
|
844
|
+
}
|
|
845
|
+
const isInlineSuggestion = isMiddleOfLine && isValidMiddleOfLine;
|
|
846
|
+
return isInlineSuggestion;
|
|
847
|
+
}
|
|
848
|
+
/** Checks if position is NOT at the end of the line */
|
|
849
|
+
function isMiddleOfTheLine(selectionPosition, doc) {
|
|
850
|
+
// must be end of line or trailing whitespace
|
|
851
|
+
const line = doc.lineAt(selectionPosition);
|
|
852
|
+
if (line.text.substr(selectionPosition.character).trim().length !== 0) {
|
|
853
|
+
return true;
|
|
854
|
+
}
|
|
855
|
+
return false;
|
|
856
|
+
}
|
|
857
|
+
/** Checks if position is valid for the middle of the line suggestion */
|
|
858
|
+
function isValidMiddleOfTheLinePosition(selectionPosition, doc) {
|
|
859
|
+
const line = doc.lineAt(selectionPosition);
|
|
860
|
+
const endOfLine = line.text.substr(selectionPosition.character).trim();
|
|
861
|
+
return /^\s*[)>}\]"'`]*\s*[:{;,]?\s*$/.test(endOfLine);
|
|
862
|
+
}
|
|
863
|
+
/** Checks if position is the beginning of an empty line (including indentation) */
|
|
864
|
+
function isNewLine(selectionPosition, doc) {
|
|
865
|
+
const line = doc.lineAt(selectionPosition);
|
|
866
|
+
const lineTrimmed = line.text.trim();
|
|
867
|
+
return lineTrimmed.length === 0;
|
|
868
|
+
}
|
|
869
|
+
// This enables tests to control multi line behavior
|
|
870
|
+
class ForceMultiLine {
|
|
871
|
+
static { this.default = new ForceMultiLine(); }
|
|
872
|
+
constructor(requestMultilineOverride = false) {
|
|
873
|
+
this.requestMultilineOverride = requestMultilineOverride;
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
exports.ForceMultiLine = ForceMultiLine;
|
|
877
|
+
async function shouldRequestMultiline(accessor, blockMode, document, position, inlineSuggestion, afterAccept, prompt) {
|
|
878
|
+
// Parsing long files for multiline completions is slow, so we only do
|
|
879
|
+
// it for files with less than 8000 lines
|
|
880
|
+
if (document.lineCount >= 8000) {
|
|
881
|
+
(0, telemetry_2.telemetry)(accessor, 'ghostText.longFileMultilineSkip', telemetry_2.TelemetryData.createAndMarkAsIssued({
|
|
882
|
+
languageId: document.detectedLanguageId,
|
|
883
|
+
lineCount: String(document.lineCount),
|
|
884
|
+
currentLine: String(position.line),
|
|
885
|
+
}));
|
|
886
|
+
}
|
|
887
|
+
else {
|
|
888
|
+
if (blockMode === config_1.BlockMode.MoreMultiline && blockTrimmer_1.BlockTrimmer.isSupported(document.detectedLanguageId)) {
|
|
889
|
+
if (!afterAccept) {
|
|
890
|
+
return { requestMultiline: false };
|
|
891
|
+
}
|
|
892
|
+
const blockPosition = await (0, blockTrimmer_1.getBlockPositionType)(document, position);
|
|
893
|
+
return { requestMultiline: true, blockPosition };
|
|
894
|
+
}
|
|
895
|
+
const targetLanguagesNewLine = ['typescript', 'typescriptreact'];
|
|
896
|
+
if (targetLanguagesNewLine.includes(document.detectedLanguageId)) {
|
|
897
|
+
const newLine = isNewLine(position, document);
|
|
898
|
+
if (newLine) {
|
|
899
|
+
return { requestMultiline: true };
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
let requestMultiline = false;
|
|
903
|
+
if (!inlineSuggestion && (0, parse_1.isSupportedLanguageId)(document.detectedLanguageId)) {
|
|
904
|
+
// Can only check block-level nodes of languages we support
|
|
905
|
+
requestMultiline = await (0, parseBlock_1.isEmptyBlockStartUtil)(document, position);
|
|
906
|
+
}
|
|
907
|
+
else if (inlineSuggestion && (0, parse_1.isSupportedLanguageId)(document.detectedLanguageId)) {
|
|
908
|
+
//If we are inline, check if we would suggest multiline for current position or if we would suggest a multiline completion if we were at the end of the line
|
|
909
|
+
requestMultiline =
|
|
910
|
+
(await (0, parseBlock_1.isEmptyBlockStartUtil)(document, position)) ||
|
|
911
|
+
(await (0, parseBlock_1.isEmptyBlockStartUtil)(document, document.lineAt(position).range.end));
|
|
912
|
+
}
|
|
913
|
+
// If requestMultiline is false, for specific languages check multiline score
|
|
914
|
+
if (!requestMultiline) {
|
|
915
|
+
const requestMultiModelThreshold = 0.5;
|
|
916
|
+
const targetLanguagesModel = ['javascript', 'javascriptreact', 'python'];
|
|
917
|
+
if (targetLanguagesModel.includes(document.detectedLanguageId)) {
|
|
918
|
+
// Call multiline model if not multiline and EXP flag is set.
|
|
919
|
+
const multiModelScore = (0, multilineModel_1.requestMultilineScore)(prompt.prompt, document.detectedLanguageId);
|
|
920
|
+
requestMultiline = multiModelScore > requestMultiModelThreshold;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
return { requestMultiline };
|
|
924
|
+
}
|
|
925
|
+
return { requestMultiline: false };
|
|
926
|
+
}
|
|
927
|
+
/** Appends completions to existing entry in cache or creates new entry. */
|
|
928
|
+
function appendToCache(accessor, requestContext, choice) {
|
|
929
|
+
accessor.get(completionsCache_1.ICompletionsCacheService).append(requestContext.prefix, requestContext.prompt.suffix, choice);
|
|
930
|
+
}
|
|
931
|
+
function adjustLeadingWhitespace(index, text, ws) {
|
|
932
|
+
if (ws.length > 0) {
|
|
933
|
+
if (text.startsWith(ws)) {
|
|
934
|
+
// Remove common prefix so that it can display in the correct position
|
|
935
|
+
return {
|
|
936
|
+
completionIndex: index,
|
|
937
|
+
completionText: text,
|
|
938
|
+
displayText: text.substring(ws.length),
|
|
939
|
+
displayNeedsWsOffset: false,
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
else {
|
|
943
|
+
// The idea here is that we do want the display to be as close to the final position as possible
|
|
944
|
+
const textLeftWs = text.substring(0, text.length - text.trimStart().length);
|
|
945
|
+
if (ws.startsWith(textLeftWs)) {
|
|
946
|
+
// NOTE: It's possible that `ws` is a bit too over-indented. Example:
|
|
947
|
+
// def foo(n):
|
|
948
|
+
// if n > 0:
|
|
949
|
+
// print(f"n is positive: {n}")
|
|
950
|
+
// [cursor is here after new line]
|
|
951
|
+
//
|
|
952
|
+
// completion: " else:"
|
|
953
|
+
return {
|
|
954
|
+
completionIndex: index,
|
|
955
|
+
completionText: text,
|
|
956
|
+
displayText: text.trimStart(),
|
|
957
|
+
displayNeedsWsOffset: true,
|
|
958
|
+
};
|
|
959
|
+
}
|
|
960
|
+
else {
|
|
961
|
+
// We don't know any better so just send `text` back
|
|
962
|
+
return { completionIndex: index, completionText: text, displayText: text, displayNeedsWsOffset: false };
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
else {
|
|
967
|
+
// If we do not know leading whitespace or if it is an empty string, just return input text
|
|
968
|
+
return { completionIndex: index, completionText: text, displayText: text, displayNeedsWsOffset: false };
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
/**
|
|
972
|
+
* Returns all completions from the cache for given document prefix. Walks back
|
|
973
|
+
* from the current prefix to search for completions with a prefix that
|
|
974
|
+
* partially matches the current prefix and completion text that matches the
|
|
975
|
+
* remaining current prefix.
|
|
976
|
+
*/
|
|
977
|
+
function getCompletionsFromCache(accessor, prefix, suffix, multiline) {
|
|
978
|
+
const logTarget = accessor.get(logger_1.ICompletionsLogTargetService);
|
|
979
|
+
const choices = accessor.get(completionsCache_1.ICompletionsCacheService).findAll(prefix, suffix);
|
|
980
|
+
if (choices.length === 0) {
|
|
981
|
+
ghostTextLogger.debug(logTarget, `Found no completions in cache`);
|
|
982
|
+
return [];
|
|
983
|
+
}
|
|
984
|
+
ghostTextLogger.debug(logTarget, `Found ${choices.length} completions in cache`);
|
|
985
|
+
return choices.map(choice => makeGhostAPIChoice(choice, { forceSingleLine: !multiline }));
|
|
986
|
+
}
|
|
987
|
+
/** Create a TelemetryWithExp instance for a ghost text request. */
|
|
988
|
+
async function createTelemetryWithExp(accessor, document, headerRequestId, options) {
|
|
989
|
+
const featuresService = accessor.get(featuresService_1.ICompletionsFeaturesService);
|
|
990
|
+
const properties = { headerRequestId };
|
|
991
|
+
if (options?.opportunityId) {
|
|
992
|
+
properties.opportunityId = options.opportunityId;
|
|
993
|
+
}
|
|
994
|
+
if (options?.selectedCompletionInfo?.text) {
|
|
995
|
+
properties.completionsActive = 'true';
|
|
996
|
+
}
|
|
997
|
+
if (options?.isSpeculative) {
|
|
998
|
+
properties.reason = 'speculative';
|
|
999
|
+
}
|
|
1000
|
+
const telemetryData = telemetry_2.TelemetryData.createAndMarkAsIssued(properties);
|
|
1001
|
+
const telemetryWithExp = await featuresService.updateExPValuesAndAssignments({ uri: document.uri, languageId: document.detectedLanguageId }, telemetryData);
|
|
1002
|
+
return telemetryWithExp;
|
|
1003
|
+
}
|
|
1004
|
+
/** Return a copy of the choice's telemetry data with extra information added */
|
|
1005
|
+
function telemetryWithAddData(document, requestContext, choice, issuedTelemetryData) {
|
|
1006
|
+
const requestId = choice.requestId;
|
|
1007
|
+
const properties = {
|
|
1008
|
+
choiceIndex: choice.choiceIndex.toString(),
|
|
1009
|
+
clientCompletionId: choice.clientCompletionId,
|
|
1010
|
+
};
|
|
1011
|
+
if (choice.generatedChoiceIndex !== undefined) {
|
|
1012
|
+
properties.originalChoiceIndex = properties.choiceIndex;
|
|
1013
|
+
properties.choiceIndex = (10_000 * (choice.generatedChoiceIndex + 1) + choice.choiceIndex).toString();
|
|
1014
|
+
}
|
|
1015
|
+
const measurements = {
|
|
1016
|
+
compCharLen: choice.completionText.length,
|
|
1017
|
+
numLines: choice.completionText.trim().split('\n').length,
|
|
1018
|
+
};
|
|
1019
|
+
// Add assessments
|
|
1020
|
+
if (choice.meanLogProb) {
|
|
1021
|
+
measurements.meanLogProb = choice.meanLogProb;
|
|
1022
|
+
}
|
|
1023
|
+
if (choice.meanAlternativeLogProb) {
|
|
1024
|
+
measurements.meanAlternativeLogProb = choice.meanAlternativeLogProb;
|
|
1025
|
+
}
|
|
1026
|
+
const extendedTelemetry = choice.telemetryData.extendedBy(properties, measurements);
|
|
1027
|
+
extendedTelemetry.issuedTime = issuedTelemetryData.issuedTime;
|
|
1028
|
+
extendedTelemetry.measurements.timeToProduceMs = performance.now() - issuedTelemetryData.issuedTime;
|
|
1029
|
+
addDocumentTelemetry(extendedTelemetry, document);
|
|
1030
|
+
extendedTelemetry.extendWithRequestId(requestId);
|
|
1031
|
+
return extendedTelemetry;
|
|
1032
|
+
}
|
|
1033
|
+
/** Create new telemetry data based on baseTelemetryData and send `ghostText.issued` event */
|
|
1034
|
+
function telemetryIssued(accessor, document, requestContext, position, prompt, baseTelemetryData, requestInfo, ghostTextOptions) {
|
|
1035
|
+
// base ghostText telemetry data
|
|
1036
|
+
const properties = {
|
|
1037
|
+
languageId: document.detectedLanguageId,
|
|
1038
|
+
};
|
|
1039
|
+
properties.afterAccept = requestContext.afterAccept.toString();
|
|
1040
|
+
properties.isSpeculative = ghostTextOptions.isSpeculative.toString();
|
|
1041
|
+
const telemetryData = baseTelemetryData.extendedBy(properties);
|
|
1042
|
+
addDocumentTelemetry(telemetryData, document);
|
|
1043
|
+
// Add repository information
|
|
1044
|
+
const repoInfo = requestContext.repoInfo;
|
|
1045
|
+
telemetryData.properties.gitRepoInformation =
|
|
1046
|
+
repoInfo === undefined ? 'unavailable' : repoInfo === repository_1.ComputationStatus.PENDING ? 'pending' : 'available';
|
|
1047
|
+
if (repoInfo !== undefined && repoInfo !== repository_1.ComputationStatus.PENDING) {
|
|
1048
|
+
telemetryData.properties.gitRepoUrl = repoInfo.url;
|
|
1049
|
+
telemetryData.properties.gitRepoHost = repoInfo.hostname;
|
|
1050
|
+
if (repoInfo.repoId?.type === 'github') {
|
|
1051
|
+
telemetryData.properties.gitRepoOwner = repoInfo.repoId.org;
|
|
1052
|
+
telemetryData.properties.gitRepoName = repoInfo.repoId.repo;
|
|
1053
|
+
}
|
|
1054
|
+
else if (repoInfo.repoId?.type === 'ado') {
|
|
1055
|
+
telemetryData.properties.gitRepoOwner = repoInfo.repoId.project;
|
|
1056
|
+
telemetryData.properties.gitRepoName = repoInfo.repoId.repo;
|
|
1057
|
+
}
|
|
1058
|
+
else {
|
|
1059
|
+
// TODO: We don't have generic owner and repo for other providers
|
|
1060
|
+
}
|
|
1061
|
+
telemetryData.properties.gitRepoPath = repoInfo.pathname;
|
|
1062
|
+
}
|
|
1063
|
+
telemetryData.properties.engineName = requestInfo.modelId;
|
|
1064
|
+
telemetryData.properties.engineChoiceSource = requestInfo.engineChoiceSource;
|
|
1065
|
+
// Add requestMultiline information
|
|
1066
|
+
telemetryData.properties.isMultiline = JSON.stringify(requestContext.multiline);
|
|
1067
|
+
telemetryData.properties.isCycling = JSON.stringify(requestContext.isCycling);
|
|
1068
|
+
// calculated values for the issued event
|
|
1069
|
+
const currentLine = document.lineAt(position.line);
|
|
1070
|
+
const lineBeforeCursor = document.getText(textDocument_1.LocationFactory.range(currentLine.range.start, position));
|
|
1071
|
+
const restOfLine = document.getText(textDocument_1.LocationFactory.range(position, currentLine.range.end));
|
|
1072
|
+
const typeFileHashCode = Array.from(prompt.neighborSource.entries()).map(typeFiles => [
|
|
1073
|
+
typeFiles[0],
|
|
1074
|
+
typeFiles[1].map(f => (0, crypto_1.createSha256Hash)(f).toString()), // file name is sensitive. We just keep SHA256 of the file name.
|
|
1075
|
+
]);
|
|
1076
|
+
// Properties that we only want to include in the issued event
|
|
1077
|
+
const extendedProperties = {
|
|
1078
|
+
beforeCursorWhitespace: JSON.stringify(lineBeforeCursor.trim() === ''),
|
|
1079
|
+
afterCursorWhitespace: JSON.stringify(restOfLine.trim() === ''),
|
|
1080
|
+
neighborSource: JSON.stringify(typeFileHashCode),
|
|
1081
|
+
blockMode: requestContext.blockMode,
|
|
1082
|
+
};
|
|
1083
|
+
const extendedMeasurements = {
|
|
1084
|
+
...(0, telemetry_2.telemetrizePromptLength)(prompt.prompt),
|
|
1085
|
+
promptEndPos: document.offsetAt(position),
|
|
1086
|
+
promptComputeTimeMs: prompt.computeTimeMs,
|
|
1087
|
+
};
|
|
1088
|
+
if (prompt.metadata) {
|
|
1089
|
+
extendedProperties.promptMetadata = JSON.stringify(prompt.metadata);
|
|
1090
|
+
}
|
|
1091
|
+
if (prompt.contextProvidersTelemetry) {
|
|
1092
|
+
extendedProperties.contextProviders = JSON.stringify(prompt.contextProvidersTelemetry);
|
|
1093
|
+
}
|
|
1094
|
+
const telemetryDataToSend = telemetryData.extendedBy(extendedProperties, extendedMeasurements);
|
|
1095
|
+
// telemetrize the issued event
|
|
1096
|
+
(0, telemetry_2.telemetry)(accessor, 'ghostText.issued', telemetryDataToSend);
|
|
1097
|
+
return telemetryData;
|
|
1098
|
+
}
|
|
1099
|
+
function addDocumentTelemetry(telemetry, document) {
|
|
1100
|
+
telemetry.measurements.documentLength = document.getText().length;
|
|
1101
|
+
telemetry.measurements.documentLineCount = document.lineCount;
|
|
1102
|
+
}
|
|
1103
|
+
function telemetryPerformance(accessor, performanceKind, choice, requestStart, processingTimeMs) {
|
|
1104
|
+
const requestTimeMs = Date.now() - requestStart;
|
|
1105
|
+
const deltaMs = requestTimeMs - processingTimeMs;
|
|
1106
|
+
const telemetryData = choice.telemetryData.extendedBy({}, {
|
|
1107
|
+
completionCharLen: choice.completionText.length,
|
|
1108
|
+
requestTimeMs: requestTimeMs,
|
|
1109
|
+
processingTimeMs: processingTimeMs,
|
|
1110
|
+
deltaMs: deltaMs,
|
|
1111
|
+
// Choice properties
|
|
1112
|
+
meanLogProb: choice.meanLogProb || NaN,
|
|
1113
|
+
meanAlternativeLogProb: choice.meanAlternativeLogProb || NaN,
|
|
1114
|
+
});
|
|
1115
|
+
telemetryData.extendWithRequestId(choice.requestId);
|
|
1116
|
+
(0, telemetry_2.telemetry)(accessor, `ghostText.${performanceKind}`, telemetryData);
|
|
1117
|
+
}
|
|
1118
|
+
//# sourceMappingURL=ghostText.js.map
|