@vscode/chat-lib 0.43.2026040705 → 0.43.2026040706-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/common/constants.d.ts +2 -1
- package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
- package/dist/src/_internal/extension/common/constants.js +3 -0
- package/dist/src/_internal/extension/common/constants.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts +1 -5
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js +3 -11
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts +0 -30
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js +4 -82
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/networking.js.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +2 -10
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +26 -173
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +11 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +21 -3
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +2 -2
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +34 -12
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +37 -24
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +4 -2
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.d.ts +10 -0
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.js +19 -0
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts +44 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js +181 -0
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.d.ts +31 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.js +193 -0
- package/dist/src/_internal/extension/xtab/node/editIntent.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts +52 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js +134 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +5 -5
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +10 -37
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +315 -361
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts +10 -0
- package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js +24 -0
- package/dist/src/_internal/extension/xtab/node/xtabUtils.js.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +1 -0
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.js +3 -0
- package/dist/src/_internal/platform/authentication/common/copilotToken.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.d.ts +1 -0
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.js +4 -0
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.js +34 -4
- package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +30 -13
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +37 -20
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js +1 -1
- package/dist/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +20 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +49 -2
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +2 -0
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.d.ts +5 -0
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.js +13 -0
- package/dist/src/_internal/platform/endpoint/common/statefulMarkerContainer.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +14 -2
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +41 -71
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/imageLimits.d.ts +14 -0
- package/dist/src/_internal/platform/endpoint/node/imageLimits.d.ts.map +1 -0
- package/dist/src/_internal/platform/endpoint/node/imageLimits.js +156 -0
- package/dist/src/_internal/platform/endpoint/node/imageLimits.js.map +1 -0
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +4 -12
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +39 -162
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +15 -2
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +259 -42
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.d.ts +8 -11
- package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts +1 -0
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.js +2 -0
- package/dist/src/_internal/platform/github/common/githubAPI.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.d.ts +3 -2
- package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +15 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +17 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +12 -3
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +72 -46
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.d.ts +3 -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 +12 -0
- package/dist/src/_internal/platform/inlineEdits/common/utils/utils.js.map +1 -1
- package/dist/src/_internal/platform/log/common/logService.d.ts +5 -0
- package/dist/src/_internal/platform/log/common/logService.d.ts.map +1 -1
- package/dist/src/_internal/platform/log/common/logService.js +22 -0
- package/dist/src/_internal/platform/log/common/logService.js.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.d.ts.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts +0 -58
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js +6 -67
- package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.d.ts +0 -12
- package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.js +5 -1
- package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +1 -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 +22 -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/networking/node/chatStream.d.ts +10 -0
- package/dist/src/_internal/platform/networking/node/chatStream.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatStream.js +28 -0
- package/dist/src/_internal/platform/networking/node/chatStream.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +24 -5
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +67 -20
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts +15 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js +51 -7
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/genAiEvents.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/genAiEvents.js +10 -2
- package/dist/src/_internal/platform/otel/common/genAiEvents.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/index.d.ts +1 -1
- package/dist/src/_internal/platform/otel/common/index.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/index.js +2 -1
- package/dist/src/_internal/platform/otel/common/index.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts +13 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.js +98 -0
- package/dist/src/_internal/platform/otel/common/messageFormatters.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts +170 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts.map +1 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.js +145 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.js.map +1 -0
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +4 -4
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js +1 -3
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +4 -167
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js +3 -139
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
- package/dist/src/main.d.ts +2 -0
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +48 -6
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +192 -151
- package/package.json +70 -71
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts +0 -182
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.d.ts.map +0 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js +0 -558
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/stream.js.map +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.FetchStreamError = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Typed error thrown when an async line stream is rejected due to a fetch failure.
|
|
10
|
+
* Consumers can catch this to extract the mapped {@link NoNextEditReason}.
|
|
11
|
+
*/
|
|
12
|
+
class FetchStreamError extends Error {
|
|
13
|
+
constructor(reason) {
|
|
14
|
+
super('Fetch stream failed');
|
|
15
|
+
this.reason = reason;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.FetchStreamError = FetchStreamError;
|
|
19
|
+
//# sourceMappingURL=fetchStreamError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchStreamError.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/common/fetchStreamError.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAIhG;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IAC1C,YAAqB,MAAwB;QAC5C,KAAK,CAAC,qBAAqB,CAAC,CAAC;QADT,WAAM,GAAN,MAAM,CAAkB;IAE7C,CAAC;CACD;AAJD,4CAIC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { StringEdit } from '../../../util/vs/editor/common/core/edits/stringEdit';
|
|
2
|
+
import { PositionOffsetTransformer } from '../../../util/vs/editor/common/core/text/positionToOffset';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the current content of a line after applying an intermediate
|
|
5
|
+
* user edit to the original document.
|
|
6
|
+
*
|
|
7
|
+
* The line's 0-based index in the original document may no longer be
|
|
8
|
+
* valid after the user inserts or deletes lines above it. This function
|
|
9
|
+
* maps the line's character offset through the edit to find the correct
|
|
10
|
+
* line in the resulting document.
|
|
11
|
+
*
|
|
12
|
+
* @param originalDoc A transformer for the original document text (reused to
|
|
13
|
+
* avoid recomputing line offsets).
|
|
14
|
+
* @param docLineIdx 0-based line index in the original document.
|
|
15
|
+
* @returns The line content, or `undefined` if the line index is out of
|
|
16
|
+
* bounds or the original position falls inside a replacement range
|
|
17
|
+
* (making the mapping ambiguous).
|
|
18
|
+
*/
|
|
19
|
+
export declare function getCurrentLine(originalDoc: PositionOffsetTransformer, docLineIdx: number, intermediateEdit: StringEdit, precomputed?: {
|
|
20
|
+
currentDoc: string;
|
|
21
|
+
currentTransformer: PositionOffsetTransformer;
|
|
22
|
+
}): string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Checks whether the model's line output is compatible with what the user
|
|
25
|
+
* has typed since the request started.
|
|
26
|
+
*
|
|
27
|
+
* Algorithm:
|
|
28
|
+
* 1. Diff original → current to find what the user typed.
|
|
29
|
+
* 2. Diff original → model to find what the model changed.
|
|
30
|
+
* 3. If the user's edit range falls within the model's edit range, check whether
|
|
31
|
+
* the model's new text is a continuation of the user's typing.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* original: `function fi`, current: `function fib`, model: `function fibonacci(n): number`
|
|
35
|
+
* → user typed "b", model inserted "bonacci(n): number"
|
|
36
|
+
* → model text starts with "b" → compatible ✓
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* original: `function fi`, current: `function fix`, model: `function fibonacci(n): number`
|
|
40
|
+
* → user typed "x", model inserted "bonacci(n): number"
|
|
41
|
+
* → model text does not start with "x" → incompatible ✗
|
|
42
|
+
*/
|
|
43
|
+
export declare function isModelLineCompatible(originalLine: string, currentLine: string, modelLine: string): boolean;
|
|
44
|
+
//# sourceMappingURL=cursorLineDivergence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursorLineDivergence.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/cursorLineDivergence.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,sDAAsD,CAAC;AAElF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AAEtG;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC7B,WAAW,EAAE,yBAAyB,EACtC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,UAAU,EAC5B,WAAW,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,yBAAyB,CAAA;CAAE,GACjF,MAAM,GAAG,SAAS,CAmCpB;AAuCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAoB3G"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getCurrentLine = getCurrentLine;
|
|
8
|
+
exports.isModelLineCompatible = isModelLineCompatible;
|
|
9
|
+
const position_1 = require("../../../util/vs/editor/common/core/position");
|
|
10
|
+
const positionToOffset_1 = require("../../../util/vs/editor/common/core/text/positionToOffset");
|
|
11
|
+
/**
|
|
12
|
+
* Resolves the current content of a line after applying an intermediate
|
|
13
|
+
* user edit to the original document.
|
|
14
|
+
*
|
|
15
|
+
* The line's 0-based index in the original document may no longer be
|
|
16
|
+
* valid after the user inserts or deletes lines above it. This function
|
|
17
|
+
* maps the line's character offset through the edit to find the correct
|
|
18
|
+
* line in the resulting document.
|
|
19
|
+
*
|
|
20
|
+
* @param originalDoc A transformer for the original document text (reused to
|
|
21
|
+
* avoid recomputing line offsets).
|
|
22
|
+
* @param docLineIdx 0-based line index in the original document.
|
|
23
|
+
* @returns The line content, or `undefined` if the line index is out of
|
|
24
|
+
* bounds or the original position falls inside a replacement range
|
|
25
|
+
* (making the mapping ambiguous).
|
|
26
|
+
*/
|
|
27
|
+
function getCurrentLine(originalDoc, docLineIdx, intermediateEdit, precomputed) {
|
|
28
|
+
const lineNumber = docLineIdx + 1; // 1-based
|
|
29
|
+
const lineCount = originalDoc.textLength.lineCount + 1;
|
|
30
|
+
if (lineNumber < 1 || lineNumber > lineCount) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
const lineStartOffset = originalDoc.getOffset(new position_1.Position(lineNumber, 1));
|
|
34
|
+
// Walk through the edit's replacements (sorted, non-overlapping) and
|
|
35
|
+
// accumulate the character-offset delta for replacements entirely before
|
|
36
|
+
// the line start.
|
|
37
|
+
let delta = 0;
|
|
38
|
+
for (const replacement of intermediateEdit.replacements) {
|
|
39
|
+
if (replacement.replaceRange.endExclusive <= lineStartOffset) {
|
|
40
|
+
delta += replacement.newText.length - replacement.replaceRange.length;
|
|
41
|
+
}
|
|
42
|
+
else if (replacement.replaceRange.start < lineStartOffset) {
|
|
43
|
+
// The line start falls inside a replacement — ambiguous.
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const mappedOffset = lineStartOffset + delta;
|
|
51
|
+
const currentDoc = precomputed?.currentDoc ?? intermediateEdit.apply(originalDoc.text);
|
|
52
|
+
const currentTransformer = precomputed?.currentTransformer ?? new positionToOffset_1.PositionOffsetTransformer(currentDoc);
|
|
53
|
+
// Map the offset back to a position in the current document, then extract
|
|
54
|
+
// the full line content.
|
|
55
|
+
const currentPos = currentTransformer.getPosition(mappedOffset);
|
|
56
|
+
const lineStart = currentTransformer.getOffset(new position_1.Position(currentPos.lineNumber, 1));
|
|
57
|
+
const lineLen = currentTransformer.getLineLength(currentPos.lineNumber);
|
|
58
|
+
return currentDoc.substring(lineStart, lineStart + lineLen);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Computes the minimal edit between two versions of the same line by stripping
|
|
62
|
+
* the longest common prefix and suffix.
|
|
63
|
+
*
|
|
64
|
+
* Example: `diffLine("function fi", "function fib")`
|
|
65
|
+
* → `{ startOffset: 11, endOffset: 11, replaced: "", inserted: "b" }`
|
|
66
|
+
*/
|
|
67
|
+
function diffLine(before, after) {
|
|
68
|
+
let prefixLen = 0;
|
|
69
|
+
while (prefixLen < before.length && prefixLen < after.length
|
|
70
|
+
&& before[prefixLen] === after[prefixLen]) {
|
|
71
|
+
prefixLen++;
|
|
72
|
+
}
|
|
73
|
+
let suffixLen = 0;
|
|
74
|
+
while (suffixLen < before.length - prefixLen && suffixLen < after.length - prefixLen
|
|
75
|
+
&& before[before.length - 1 - suffixLen] === after[after.length - 1 - suffixLen]) {
|
|
76
|
+
suffixLen++;
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
startOffset: prefixLen,
|
|
80
|
+
endOffset: before.length - suffixLen,
|
|
81
|
+
replaced: before.substring(prefixLen, before.length - suffixLen),
|
|
82
|
+
inserted: after.substring(prefixLen, after.length - suffixLen),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Checks whether the model's line output is compatible with what the user
|
|
87
|
+
* has typed since the request started.
|
|
88
|
+
*
|
|
89
|
+
* Algorithm:
|
|
90
|
+
* 1. Diff original → current to find what the user typed.
|
|
91
|
+
* 2. Diff original → model to find what the model changed.
|
|
92
|
+
* 3. If the user's edit range falls within the model's edit range, check whether
|
|
93
|
+
* the model's new text is a continuation of the user's typing.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* original: `function fi`, current: `function fib`, model: `function fibonacci(n): number`
|
|
97
|
+
* → user typed "b", model inserted "bonacci(n): number"
|
|
98
|
+
* → model text starts with "b" → compatible ✓
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* original: `function fi`, current: `function fix`, model: `function fibonacci(n): number`
|
|
102
|
+
* → user typed "x", model inserted "bonacci(n): number"
|
|
103
|
+
* → model text does not start with "x" → incompatible ✗
|
|
104
|
+
*/
|
|
105
|
+
function isModelLineCompatible(originalLine, currentLine, modelLine) {
|
|
106
|
+
const userEdit = diffLine(originalLine, currentLine);
|
|
107
|
+
const modelEdit = diffLine(originalLine, modelLine);
|
|
108
|
+
// No actual user change — trivially compatible.
|
|
109
|
+
if (userEdit.replaced.length === 0 && userEdit.inserted.length === 0) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
// The user's edit range must fall within the model's edit range.
|
|
113
|
+
// If the user edited a region the model didn't touch, we can't determine
|
|
114
|
+
// compatibility from the line alone.
|
|
115
|
+
const userEditWithinModelEdit = userEdit.startOffset >= modelEdit.startOffset
|
|
116
|
+
&& userEdit.endOffset <= modelEdit.endOffset;
|
|
117
|
+
if (!userEditWithinModelEdit) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
return isUserEditCompatibleWithModelEdit(userEdit, modelEdit, currentLine, modelLine);
|
|
121
|
+
}
|
|
122
|
+
const AUTO_CLOSE_PAIRS = new Set(['()', '[]', '{}', '<>', '""', `''`, '``']);
|
|
123
|
+
/**
|
|
124
|
+
* Checks whether the user's edit is compatible with the model's edit.
|
|
125
|
+
*
|
|
126
|
+
* For pure insertions, compatibility is determined by whether the model is
|
|
127
|
+
* continuing the user's inserted text.
|
|
128
|
+
*
|
|
129
|
+
* For deletions and replacements, avoid treating an empty inserted string as
|
|
130
|
+
* universally compatible. In those cases, only accept when the resulting line
|
|
131
|
+
* already matches the model, or when the model is editing the exact same range
|
|
132
|
+
* and replacing the exact same original text with a compatible continuation.
|
|
133
|
+
*/
|
|
134
|
+
function isUserEditCompatibleWithModelEdit(userEdit, modelEdit, currentLine, modelLine) {
|
|
135
|
+
if (userEdit.replaced.length > 0) {
|
|
136
|
+
if (currentLine === modelLine) {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
return userEdit.startOffset === modelEdit.startOffset
|
|
140
|
+
&& userEdit.endOffset === modelEdit.endOffset
|
|
141
|
+
&& userEdit.replaced === modelEdit.replaced
|
|
142
|
+
&& userEdit.inserted.length > 0
|
|
143
|
+
&& isUserTypingCompatibleWithModelText(userEdit.inserted, modelEdit.inserted);
|
|
144
|
+
}
|
|
145
|
+
return isUserTypingCompatibleWithModelText(userEdit.inserted, modelEdit.inserted);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Checks whether the user's typed text is compatible with the model's new text.
|
|
149
|
+
*
|
|
150
|
+
* Rules:
|
|
151
|
+
* 1. The model's new text must **start with** the user's typed text — the model
|
|
152
|
+
* is continuing what the user began.
|
|
153
|
+
* 2. If the user's text is a known auto-close pair (e.g. `()`, `{}`), accept
|
|
154
|
+
* if both characters appear in order in the model's text (subsequence match).
|
|
155
|
+
*/
|
|
156
|
+
function isUserTypingCompatibleWithModelText(userTypedText, modelNewText) {
|
|
157
|
+
if (modelNewText.startsWith(userTypedText)) {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
// Subsequence check for auto-close pairs: if the user typed e.g. "()" and the
|
|
161
|
+
// model's text is "(x, y)", the pair characters appear in order.
|
|
162
|
+
if (AUTO_CLOSE_PAIRS.has(userTypedText)) {
|
|
163
|
+
return isSubsequenceOf(userTypedText, modelNewText);
|
|
164
|
+
}
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Returns true if every character of `subsequence` appears in `str` in order.
|
|
169
|
+
*/
|
|
170
|
+
function isSubsequenceOf(subsequence, str) {
|
|
171
|
+
let si = 0;
|
|
172
|
+
for (let ti = 0; ti < subsequence.length; ti++) {
|
|
173
|
+
const idx = str.indexOf(subsequence[ti], si);
|
|
174
|
+
if (idx === -1) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
si = idx + 1;
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=cursorLineDivergence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursorLineDivergence.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/cursorLineDivergence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as xtabPromptOptions from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions';
|
|
2
|
+
import { ILogger } from '../../../platform/log/common/logService';
|
|
3
|
+
export interface ParseEditIntentResult {
|
|
4
|
+
editIntent: xtabPromptOptions.EditIntent;
|
|
5
|
+
remainingLinesStream: AsyncIterable<string>;
|
|
6
|
+
parseError?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Mode for parsing edit intent from the model response.
|
|
10
|
+
*/
|
|
11
|
+
export declare enum EditIntentParseMode {
|
|
12
|
+
/** Parse using XML-style tags: <|edit_intent|>value<|/edit_intent|> */
|
|
13
|
+
Tags = "tags",
|
|
14
|
+
/** Parse using short names on the first line: N|L|M|H */
|
|
15
|
+
ShortName = "shortName"
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parses the edit_intent from the first line of the response stream.
|
|
19
|
+
* The edit_intent MUST be on the first line, otherwise it's treated as not provided.
|
|
20
|
+
* Returns the parsed EditIntent and a new stream with the remaining content.
|
|
21
|
+
*
|
|
22
|
+
* Supports two modes:
|
|
23
|
+
* - Tags (default): <|edit_intent|>low|medium|high|no_edit<|/edit_intent|>
|
|
24
|
+
* - ShortName: N|L|M|H on the first line
|
|
25
|
+
*
|
|
26
|
+
* @param linesStream The stream of lines from the model response
|
|
27
|
+
* @param tracer Logger for tracing
|
|
28
|
+
* @param mode The parse mode (Tags or ShortName), defaults to Tags
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseEditIntentFromStream(linesStream: AsyncIterable<string>, tracer: ILogger, mode?: EditIntentParseMode): Promise<ParseEditIntentResult>;
|
|
31
|
+
//# sourceMappingURL=editIntent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editIntent.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/editIntent.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,iBAAiB,MAAM,kEAAkE,CAAC;AACtG,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACrC,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC;IACzC,oBAAoB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AACD;;GAEG;AAEH,oBAAY,mBAAmB;IAC9B,uEAAuE;IACvE,IAAI,SAAS;IACb,yDAAyD;IACzD,SAAS,cAAc;CACvB;AACD;;;;;;;;;;;;GAYG;AAEH,wBAAsB,yBAAyB,CAC9C,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,IAAI,GAAE,mBAA8C,GAClD,OAAO,CAAC,qBAAqB,CAAC,CAMhC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.EditIntentParseMode = void 0;
|
|
41
|
+
exports.parseEditIntentFromStream = parseEditIntentFromStream;
|
|
42
|
+
const xtabPromptOptions = __importStar(require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions"));
|
|
43
|
+
/**
|
|
44
|
+
* Mode for parsing edit intent from the model response.
|
|
45
|
+
*/
|
|
46
|
+
var EditIntentParseMode;
|
|
47
|
+
(function (EditIntentParseMode) {
|
|
48
|
+
/** Parse using XML-style tags: <|edit_intent|>value<|/edit_intent|> */
|
|
49
|
+
EditIntentParseMode["Tags"] = "tags";
|
|
50
|
+
/** Parse using short names on the first line: N|L|M|H */
|
|
51
|
+
EditIntentParseMode["ShortName"] = "shortName";
|
|
52
|
+
})(EditIntentParseMode || (exports.EditIntentParseMode = EditIntentParseMode = {}));
|
|
53
|
+
/**
|
|
54
|
+
* Parses the edit_intent from the first line of the response stream.
|
|
55
|
+
* The edit_intent MUST be on the first line, otherwise it's treated as not provided.
|
|
56
|
+
* Returns the parsed EditIntent and a new stream with the remaining content.
|
|
57
|
+
*
|
|
58
|
+
* Supports two modes:
|
|
59
|
+
* - Tags (default): <|edit_intent|>low|medium|high|no_edit<|/edit_intent|>
|
|
60
|
+
* - ShortName: N|L|M|H on the first line
|
|
61
|
+
*
|
|
62
|
+
* @param linesStream The stream of lines from the model response
|
|
63
|
+
* @param tracer Logger for tracing
|
|
64
|
+
* @param mode The parse mode (Tags or ShortName), defaults to Tags
|
|
65
|
+
*/
|
|
66
|
+
async function parseEditIntentFromStream(linesStream, tracer, mode = EditIntentParseMode.Tags) {
|
|
67
|
+
if (mode === EditIntentParseMode.ShortName) {
|
|
68
|
+
return parseEditIntentFromStreamShortName(linesStream, tracer);
|
|
69
|
+
}
|
|
70
|
+
return parseEditIntentFromStreamTags(linesStream, tracer);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Parses the edit_intent using short name format (N|L|M|H on first line).
|
|
74
|
+
*/
|
|
75
|
+
async function parseEditIntentFromStreamShortName(linesStream, tracer) {
|
|
76
|
+
let editIntent = xtabPromptOptions.EditIntent.High; // Default to high (always show) if no short name found
|
|
77
|
+
let parseError;
|
|
78
|
+
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
79
|
+
const firstLineResult = await linesIter.next();
|
|
80
|
+
if (firstLineResult.done) {
|
|
81
|
+
// Empty stream
|
|
82
|
+
parseError = 'emptyResponse';
|
|
83
|
+
tracer.warn(`Empty response stream, no edit_intent short name found`);
|
|
84
|
+
const remainingLinesStream = (async function* () { })();
|
|
85
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
86
|
+
}
|
|
87
|
+
const firstLine = firstLineResult.value.trim();
|
|
88
|
+
// Check if the first line is a single character short name
|
|
89
|
+
const parsedIntent = xtabPromptOptions.EditIntent.fromShortName(firstLine);
|
|
90
|
+
if (parsedIntent !== undefined) {
|
|
91
|
+
editIntent = parsedIntent;
|
|
92
|
+
tracer.trace(`Parsed edit_intent short name from first line: "${firstLine}" -> ${editIntent}`);
|
|
93
|
+
// Create a new stream with the remaining lines (excluding the short name line)
|
|
94
|
+
const remainingLinesStream = (async function* () {
|
|
95
|
+
let next = await linesIter.next();
|
|
96
|
+
while (!next.done) {
|
|
97
|
+
yield next.value;
|
|
98
|
+
next = await linesIter.next();
|
|
99
|
+
}
|
|
100
|
+
})();
|
|
101
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
102
|
+
}
|
|
103
|
+
// Short name not found or invalid
|
|
104
|
+
parseError = `unknownIntentValue:${firstLine}`;
|
|
105
|
+
tracer.warn(`Edit intent parse error: ${parseError} (using Xtab275EditIntentShort prompting strategy). ` +
|
|
106
|
+
`Defaulting to High (always show). First line was: "${firstLine.substring(0, 100)}..."`);
|
|
107
|
+
// Return the first line plus the rest of the stream
|
|
108
|
+
const remainingLinesStream = (async function* () {
|
|
109
|
+
yield firstLineResult.value; // Use original value, not trimmed
|
|
110
|
+
let next = await linesIter.next();
|
|
111
|
+
while (!next.done) {
|
|
112
|
+
yield next.value;
|
|
113
|
+
next = await linesIter.next();
|
|
114
|
+
}
|
|
115
|
+
})();
|
|
116
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Parses the edit_intent tag from the first line of the response stream (original tag-based format).
|
|
120
|
+
*/
|
|
121
|
+
async function parseEditIntentFromStreamTags(linesStream, tracer) {
|
|
122
|
+
const EDIT_INTENT_START_TAG = '<|edit_intent|>';
|
|
123
|
+
const EDIT_INTENT_END_TAG = '<|/edit_intent|>';
|
|
124
|
+
let editIntent = xtabPromptOptions.EditIntent.High; // Default to high (always show) if no tag found
|
|
125
|
+
let parseError;
|
|
126
|
+
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
127
|
+
const firstLineResult = await linesIter.next();
|
|
128
|
+
if (firstLineResult.done) {
|
|
129
|
+
// Empty stream
|
|
130
|
+
parseError = 'emptyResponse';
|
|
131
|
+
tracer.warn(`Empty response stream, no edit_intent tag found`);
|
|
132
|
+
const remainingLinesStream = (async function* () { })();
|
|
133
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
134
|
+
}
|
|
135
|
+
const firstLine = firstLineResult.value;
|
|
136
|
+
// Check if the first line contains the complete edit_intent tag
|
|
137
|
+
const startIdx = firstLine.indexOf(EDIT_INTENT_START_TAG);
|
|
138
|
+
const endIdx = firstLine.indexOf(EDIT_INTENT_END_TAG);
|
|
139
|
+
if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
|
|
140
|
+
// Found complete tag on first line
|
|
141
|
+
const intentValue = firstLine.substring(startIdx + EDIT_INTENT_START_TAG.length, endIdx).trim().toLowerCase();
|
|
142
|
+
// Check if it's a known intent value
|
|
143
|
+
const knownIntentValues = ['no_edit', 'low', 'medium', 'high'];
|
|
144
|
+
if (!knownIntentValues.includes(intentValue)) {
|
|
145
|
+
parseError = `unknownIntentValue:${intentValue}`;
|
|
146
|
+
tracer.warn(`Unknown edit_intent value: "${intentValue}", defaulting to High`);
|
|
147
|
+
}
|
|
148
|
+
editIntent = xtabPromptOptions.EditIntent.fromString(intentValue);
|
|
149
|
+
tracer.trace(`Parsed edit_intent from first line: "${intentValue}" -> ${editIntent}`);
|
|
150
|
+
// Calculate remaining content after the end tag on the first line
|
|
151
|
+
const afterEndTag = firstLine.substring(endIdx + EDIT_INTENT_END_TAG.length);
|
|
152
|
+
// Create a new stream that first yields remaining content from first line, then continues
|
|
153
|
+
const remainingLinesStream = (async function* () {
|
|
154
|
+
// Only yield remaining content from first line if non-empty
|
|
155
|
+
if (afterEndTag.trim() !== '') {
|
|
156
|
+
yield afterEndTag;
|
|
157
|
+
}
|
|
158
|
+
// Continue with rest of the stream
|
|
159
|
+
let next = await linesIter.next();
|
|
160
|
+
while (!next.done) {
|
|
161
|
+
yield next.value;
|
|
162
|
+
next = await linesIter.next();
|
|
163
|
+
}
|
|
164
|
+
})();
|
|
165
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
166
|
+
}
|
|
167
|
+
// Determine the parse error type
|
|
168
|
+
if (startIdx !== -1 && endIdx === -1) {
|
|
169
|
+
// Start tag found but no end tag - malformed (possibly split across lines)
|
|
170
|
+
parseError = 'malformedTag:startWithoutEnd';
|
|
171
|
+
}
|
|
172
|
+
else if (startIdx === -1 && endIdx !== -1) {
|
|
173
|
+
// End tag found but no start tag - malformed
|
|
174
|
+
parseError = 'malformedTag:endWithoutStart';
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// No tag found at all
|
|
178
|
+
parseError = 'noTagFound';
|
|
179
|
+
}
|
|
180
|
+
tracer.warn(`Edit intent parse error: ${parseError} (using Xtab275EditIntent prompting strategy). ` +
|
|
181
|
+
`Defaulting to High (always show). First line was: "${firstLine.substring(0, 100)}..."`);
|
|
182
|
+
// Return the first line plus the rest of the stream
|
|
183
|
+
const remainingLinesStream = (async function* () {
|
|
184
|
+
yield firstLine;
|
|
185
|
+
let next = await linesIter.next();
|
|
186
|
+
while (!next.done) {
|
|
187
|
+
yield next.value;
|
|
188
|
+
next = await linesIter.next();
|
|
189
|
+
}
|
|
190
|
+
})();
|
|
191
|
+
return { editIntent, remainingLinesStream, parseError };
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=editIntent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editIntent.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/editIntent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { DocumentId } from '../../../platform/inlineEdits/common/dataTypes/documentId';
|
|
2
|
+
import * as xtabPromptOptions from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions';
|
|
3
|
+
import { NoNextEditReason, StreamedEdit } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
|
|
4
|
+
import { ILogger } from '../../../platform/log/common/logService';
|
|
5
|
+
import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
|
|
6
|
+
import { StringText } from '../../../util/vs/editor/common/core/text/abstractText';
|
|
7
|
+
import { EditIntentParseMode } from './editIntent';
|
|
8
|
+
export declare namespace ResponseParseResult {
|
|
9
|
+
interface EditIntentMetadata {
|
|
10
|
+
readonly intent: xtabPromptOptions.EditIntent;
|
|
11
|
+
readonly parseError?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The response contains edit-window lines to be fed into *ResponseProcessor.diff*.
|
|
15
|
+
*/
|
|
16
|
+
class EditWindowLines {
|
|
17
|
+
readonly lines: AsyncIterable<string>;
|
|
18
|
+
readonly editIntentMetadata?: EditIntentMetadata | undefined;
|
|
19
|
+
constructor(lines: AsyncIterable<string>, editIntentMetadata?: EditIntentMetadata | undefined);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The handler has finished — no more processing needed. Carries a {@link NoNextEditReason}.
|
|
23
|
+
*/
|
|
24
|
+
class Done {
|
|
25
|
+
readonly reason: NoNextEditReason;
|
|
26
|
+
constructor(reason: NoNextEditReason);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The handler yields edits directly (e.g. INSERT or CustomDiffPatch).
|
|
30
|
+
* The coordinator should `yield*` the stream.
|
|
31
|
+
*/
|
|
32
|
+
class DirectEdits {
|
|
33
|
+
readonly stream: AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
|
|
34
|
+
constructor(stream: AsyncGenerator<StreamedEdit, NoNextEditReason, void>);
|
|
35
|
+
}
|
|
36
|
+
type t = EditWindowLines | Done | DirectEdits;
|
|
37
|
+
}
|
|
38
|
+
export declare function handleEditWindowOnly(linesStream: AsyncIterable<string>): ResponseParseResult.EditWindowLines;
|
|
39
|
+
export declare function handleCodeBlock(linesStream: AsyncIterable<string>): ResponseParseResult.EditWindowLines;
|
|
40
|
+
export declare function handleEditWindowWithEditIntent(linesStream: AsyncIterable<string>, tracer: ILogger, parseMode: EditIntentParseMode): Promise<ResponseParseResult.EditWindowLines | ResponseParseResult.Done>;
|
|
41
|
+
export interface UnifiedXmlInsertContext {
|
|
42
|
+
readonly editWindowLines: string[];
|
|
43
|
+
readonly editWindowLineRange: OffsetRange;
|
|
44
|
+
readonly cursorOriginalLinesOffset: number;
|
|
45
|
+
readonly cursorColumnZeroBased: number;
|
|
46
|
+
readonly editWindow: OffsetRange;
|
|
47
|
+
readonly originalEditWindow: OffsetRange | undefined;
|
|
48
|
+
readonly targetDocument: DocumentId;
|
|
49
|
+
readonly isFromCursorJump: boolean;
|
|
50
|
+
}
|
|
51
|
+
export declare function handleUnifiedWithXml(linesStream: AsyncIterable<string>, ctx: UnifiedXmlInsertContext, documentBeforeEdits: StringText, tracer: ILogger): Promise<ResponseParseResult.t>;
|
|
52
|
+
//# sourceMappingURL=responseFormatHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseFormatHandlers.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,KAAK,iBAAiB,MAAM,kEAAkE,CAAC;AACtG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,uDAAuD,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAA6B,MAAM,cAAc,CAAC;AAO9E,yBAAiB,mBAAmB,CAAC;IAEpC,UAAiB,kBAAkB;QAClC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC7B;IAED;;OAEG;IACH,MAAa,eAAe;QAE1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;QACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;oBADvC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC5B,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;KAEjD;IAED;;OAEG;IACH,MAAa,IAAI;QACJ,QAAQ,CAAC,MAAM,EAAE,gBAAgB;oBAAxB,MAAM,EAAE,gBAAgB;KAC7C;IAED;;;OAGG;IACH,MAAa,WAAW;QACX,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;oBAA5D,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;KACjF;IAED,KAAY,CAAC,GAAG,eAAe,GAAG,IAAI,GAAG,WAAW,CAAC;CACrD;AAMD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAE5G;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAEvG;AAMD,wBAAsB,8BAA8B,CACnD,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,mBAAmB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAOzE;AAMD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC;AAED,wBAAsB,oBAAoB,CACzC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,GAAG,EAAE,uBAAuB,EAC5B,mBAAmB,EAAE,UAAU,EAC/B,MAAM,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAgChC"}
|