@vscode/chat-lib 0.43.2026040705 → 0.44.1
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/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 +6 -160
- 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 +22 -15
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +2 -2
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts +41 -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 +159 -0
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js.map +1 -0
- 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 +277 -349
- 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/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 +17 -4
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +22 -9
- 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 +45 -1
- 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 +3 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +14 -14
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +28 -12
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +12 -2
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +201 -23
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.d.ts +7 -3
- package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts +1 -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/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 -16
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js +10 -42
- package/dist/src/_internal/platform/networking/common/anthropic.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 +23 -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/requestLogger/common/requestLogger.d.ts +171 -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 +2 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +4 -166
- 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 +106 -96
- package/package.json +71 -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,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, getFetchFailure: () => NoNextEditReason | undefined): 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, getFetchFailure: () => NoNextEditReason | undefined): 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,EAC9B,eAAe,EAAE,MAAM,gBAAgB,GAAG,SAAS,GACjD,OAAO,CAAC,mBAAmB,CAAC,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAYzE;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,EACf,eAAe,EAAE,MAAM,gBAAgB,GAAG,SAAS,GACjD,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAuChC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
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.ResponseParseResult = void 0;
|
|
8
|
+
exports.handleEditWindowOnly = handleEditWindowOnly;
|
|
9
|
+
exports.handleCodeBlock = handleCodeBlock;
|
|
10
|
+
exports.handleEditWindowWithEditIntent = handleEditWindowWithEditIntent;
|
|
11
|
+
exports.handleUnifiedWithXml = handleUnifiedWithXml;
|
|
12
|
+
const statelessNextEditProvider_1 = require("../../../platform/inlineEdits/common/statelessNextEditProvider");
|
|
13
|
+
const lineEdit_1 = require("../../../util/vs/editor/common/core/edits/lineEdit");
|
|
14
|
+
const lineRange_1 = require("../../../util/vs/editor/common/core/ranges/lineRange");
|
|
15
|
+
const tags_1 = require("../common/tags");
|
|
16
|
+
const editIntent_1 = require("./editIntent");
|
|
17
|
+
const xtabUtils_1 = require("./xtabUtils");
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Result type
|
|
20
|
+
// ============================================================================
|
|
21
|
+
var ResponseParseResult;
|
|
22
|
+
(function (ResponseParseResult) {
|
|
23
|
+
/**
|
|
24
|
+
* The response contains edit-window lines to be fed into *ResponseProcessor.diff*.
|
|
25
|
+
*/
|
|
26
|
+
class EditWindowLines {
|
|
27
|
+
constructor(lines, editIntentMetadata) {
|
|
28
|
+
this.lines = lines;
|
|
29
|
+
this.editIntentMetadata = editIntentMetadata;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
ResponseParseResult.EditWindowLines = EditWindowLines;
|
|
33
|
+
/**
|
|
34
|
+
* The handler has finished — no more processing needed. Carries a {@link NoNextEditReason}.
|
|
35
|
+
*/
|
|
36
|
+
class Done {
|
|
37
|
+
constructor(reason) {
|
|
38
|
+
this.reason = reason;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ResponseParseResult.Done = Done;
|
|
42
|
+
/**
|
|
43
|
+
* The handler yields edits directly (e.g. INSERT or CustomDiffPatch).
|
|
44
|
+
* The coordinator should `yield*` the stream.
|
|
45
|
+
*/
|
|
46
|
+
class DirectEdits {
|
|
47
|
+
constructor(stream) {
|
|
48
|
+
this.stream = stream;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
ResponseParseResult.DirectEdits = DirectEdits;
|
|
52
|
+
})(ResponseParseResult || (exports.ResponseParseResult = ResponseParseResult = {}));
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// Handler: EditWindowOnly
|
|
55
|
+
// ============================================================================
|
|
56
|
+
function handleEditWindowOnly(linesStream) {
|
|
57
|
+
return new ResponseParseResult.EditWindowLines(linesStream);
|
|
58
|
+
}
|
|
59
|
+
// ============================================================================
|
|
60
|
+
// Handler: CodeBlock
|
|
61
|
+
// ============================================================================
|
|
62
|
+
function handleCodeBlock(linesStream) {
|
|
63
|
+
return new ResponseParseResult.EditWindowLines((0, xtabUtils_1.linesWithBackticksRemoved)(linesStream));
|
|
64
|
+
}
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// Handler: EditWindowWithEditIntent / EditWindowWithEditIntentShort
|
|
67
|
+
// ============================================================================
|
|
68
|
+
async function handleEditWindowWithEditIntent(linesStream, tracer, parseMode, getFetchFailure) {
|
|
69
|
+
const { editIntent, remainingLinesStream, parseError } = await (0, editIntent_1.parseEditIntentFromStream)(linesStream, tracer, parseMode);
|
|
70
|
+
const fetchFailure = getFetchFailure();
|
|
71
|
+
if (fetchFailure) {
|
|
72
|
+
return new ResponseParseResult.Done(fetchFailure);
|
|
73
|
+
}
|
|
74
|
+
return new ResponseParseResult.EditWindowLines(remainingLinesStream, { intent: editIntent, parseError });
|
|
75
|
+
}
|
|
76
|
+
async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, tracer, getFetchFailure) {
|
|
77
|
+
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
78
|
+
const firstLine = await linesIter.next();
|
|
79
|
+
{
|
|
80
|
+
const fetchFailure = getFetchFailure();
|
|
81
|
+
if (fetchFailure) {
|
|
82
|
+
return new ResponseParseResult.Done(fetchFailure);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (firstLine.done) {
|
|
86
|
+
return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, ctx.editWindow));
|
|
87
|
+
}
|
|
88
|
+
const trimmedFirstLine = firstLine.value.trim();
|
|
89
|
+
if (trimmedFirstLine === tags_1.ResponseTags.NO_CHANGE.start) {
|
|
90
|
+
return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, ctx.editWindow));
|
|
91
|
+
}
|
|
92
|
+
if (trimmedFirstLine === tags_1.ResponseTags.INSERT.start) {
|
|
93
|
+
return new ResponseParseResult.DirectEdits(generateInsertEdits(linesIter, ctx, documentBeforeEdits, getFetchFailure));
|
|
94
|
+
}
|
|
95
|
+
if (trimmedFirstLine === tags_1.ResponseTags.EDIT.start) {
|
|
96
|
+
const editLines = generateEditLines(linesIter, getFetchFailure);
|
|
97
|
+
return new ResponseParseResult.EditWindowLines(editLines);
|
|
98
|
+
}
|
|
99
|
+
return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.Unexpected(new Error(`unexpected tag ${trimmedFirstLine}`)));
|
|
100
|
+
}
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Internal generators for UnifiedWithXml sub-tags
|
|
103
|
+
// ============================================================================
|
|
104
|
+
async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits, getFetchFailure) {
|
|
105
|
+
const { editWindowLines, editWindowLineRange, cursorOriginalLinesOffset, cursorColumnZeroBased, editWindow, originalEditWindow, targetDocument, isFromCursorJump } = ctx;
|
|
106
|
+
const lineWithCursorContinued = await linesIter.next();
|
|
107
|
+
if (lineWithCursorContinued.done || lineWithCursorContinued.value.includes(tags_1.ResponseTags.INSERT.end)) {
|
|
108
|
+
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, editWindow);
|
|
109
|
+
}
|
|
110
|
+
{
|
|
111
|
+
const fetchFailure = getFetchFailure();
|
|
112
|
+
if (fetchFailure) {
|
|
113
|
+
return fetchFailure;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const cursorLineContent = editWindowLines[cursorOriginalLinesOffset];
|
|
117
|
+
const edit = new lineEdit_1.LineReplacement(new lineRange_1.LineRange(editWindowLineRange.start + cursorOriginalLinesOffset + 1 /* 0-based to 1-based */, editWindowLineRange.start + cursorOriginalLinesOffset + 2), [cursorLineContent.slice(0, cursorColumnZeroBased) + lineWithCursorContinued.value + cursorLineContent.slice(cursorColumnZeroBased)]);
|
|
118
|
+
yield { edit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow, targetDocument };
|
|
119
|
+
const lines = [];
|
|
120
|
+
let v = await linesIter.next();
|
|
121
|
+
while (!v.done) {
|
|
122
|
+
if (v.value.includes(tags_1.ResponseTags.INSERT.end)) {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
lines.push(v.value);
|
|
127
|
+
}
|
|
128
|
+
v = await linesIter.next();
|
|
129
|
+
}
|
|
130
|
+
{
|
|
131
|
+
const fetchFailure = getFetchFailure();
|
|
132
|
+
if (fetchFailure) {
|
|
133
|
+
return fetchFailure;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const line = editWindowLineRange.start + cursorOriginalLinesOffset + 2;
|
|
137
|
+
yield {
|
|
138
|
+
edit: new lineEdit_1.LineReplacement(new lineRange_1.LineRange(line, line), lines),
|
|
139
|
+
isFromCursorJump,
|
|
140
|
+
window: editWindow,
|
|
141
|
+
originalWindow: originalEditWindow,
|
|
142
|
+
targetDocument,
|
|
143
|
+
};
|
|
144
|
+
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, editWindow);
|
|
145
|
+
}
|
|
146
|
+
async function* generateEditLines(linesIter, getFetchFailure) {
|
|
147
|
+
let v = await linesIter.next();
|
|
148
|
+
while (!v.done) {
|
|
149
|
+
if (v.value.includes(tags_1.ResponseTags.EDIT.end)) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (getFetchFailure()) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
yield v.value;
|
|
156
|
+
v = await linesIter.next();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=responseFormatHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseFormatHandlers.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,16 @@ export declare class XtabProvider implements IStatelessNextEditProvider {
|
|
|
56
56
|
private getLanguageContext;
|
|
57
57
|
private streamEditsWithFiltering;
|
|
58
58
|
private streamEdits;
|
|
59
|
+
/**
|
|
60
|
+
* Initiates the HTTP fetch, sets up the streaming pipeline, and returns either
|
|
61
|
+
* a clean line stream (with cursor-tag removal and latency logging applied)
|
|
62
|
+
* or an error / retry signal.
|
|
63
|
+
*
|
|
64
|
+
* This method encapsulates all fetch infrastructure so that downstream response
|
|
65
|
+
* format handlers only need an `AsyncIterable<string>` line stream.
|
|
66
|
+
*/
|
|
67
|
+
private _performFetch;
|
|
68
|
+
private _streamEditsImpl;
|
|
59
69
|
private doGetNextEditsWithCursorJump;
|
|
60
70
|
private handleCrossFilePrediction;
|
|
61
71
|
private computeEditWindowLinesRange;
|
|
@@ -81,41 +91,4 @@ export declare function determineLanguageContextOptions(languageId: LanguageId,
|
|
|
81
91
|
traitPosition: 'before' | 'after';
|
|
82
92
|
}): LanguageContextOptions;
|
|
83
93
|
export declare function getPredictionContents(doc: StatelessNextEditDocument, editWindowLines: readonly string[], responseFormat: xtabPromptOptions.ResponseFormat): string;
|
|
84
|
-
export interface ParseEditIntentResult {
|
|
85
|
-
editIntent: xtabPromptOptions.EditIntent;
|
|
86
|
-
remainingLinesStream: AsyncIterable<string>;
|
|
87
|
-
parseError?: string;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Mode for parsing edit intent from the model response.
|
|
91
|
-
*/
|
|
92
|
-
export declare enum EditIntentParseMode {
|
|
93
|
-
/** Parse using XML-style tags: <|edit_intent|>value<|/edit_intent|> */
|
|
94
|
-
Tags = "tags",
|
|
95
|
-
/** Parse using short names on the first line: N|L|M|H */
|
|
96
|
-
ShortName = "shortName"
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Parses the edit_intent from the first line of the response stream.
|
|
100
|
-
* The edit_intent MUST be on the first line, otherwise it's treated as not provided.
|
|
101
|
-
* Returns the parsed EditIntent and a new stream with the remaining content.
|
|
102
|
-
*
|
|
103
|
-
* Supports two modes:
|
|
104
|
-
* - Tags (default): <|edit_intent|>low|medium|high|no_edit<|/edit_intent|>
|
|
105
|
-
* - ShortName: N|L|M|H on the first line
|
|
106
|
-
*
|
|
107
|
-
* @param linesStream The stream of lines from the model response
|
|
108
|
-
* @param tracer Logger for tracing
|
|
109
|
-
* @param mode The parse mode (Tags or ShortName), defaults to Tags
|
|
110
|
-
*/
|
|
111
|
-
export declare function parseEditIntentFromStream(linesStream: AsyncIterable<string>, tracer: ILogger, mode?: EditIntentParseMode): Promise<ParseEditIntentResult>;
|
|
112
|
-
/**
|
|
113
|
-
* Finds the range of lines containing merge conflict markers within a specified edit window.
|
|
114
|
-
*
|
|
115
|
-
* @param lines - Array of strings representing the lines of text to search through
|
|
116
|
-
* @param editWindowRange - The range within which to search for merge conflict markers
|
|
117
|
-
* @param maxMergeConflictLines - Maximum number of lines to search for conflict markers
|
|
118
|
-
* @returns An OffsetRange object representing the start and end of the conflict markers, or undefined if not found
|
|
119
|
-
*/
|
|
120
|
-
export declare function findMergeConflictMarkersRange(lines: string[], editWindowRange: OffsetRange, maxMergeConflictLines: number): OffsetRange | undefined;
|
|
121
94
|
//# sourceMappingURL=xtabProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAsE,MAAM,2CAA2C,CAAC;AAC/I,OAAO,EAAa,qBAAqB,EAAkB,MAAM,6DAA6D,CAAC;AAC/H,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAK/E,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAA4B,uCAAuC,EAAE,MAAM,yEAAyE,CAAC;AAC5J,OAAO,KAAK,iBAAiB,MAAM,kEAAkE,CAAC;AACtG,OAAO,EAAmD,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AACrL,OAAO,EAAE,2BAA2B,EAAE,MAAM,2DAA2D,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAExG,OAAO,EAAiB,0BAA0B,EAAE,0BAA0B,EAAE,gBAAgB,EAAsD,yBAAyB,EAAE,wBAAwB,EAAqE,MAAM,gEAAgE,CAAC;AAErV,OAAO,EAAE,+BAA+B,EAAkB,MAAM,iFAAiF,CAAC;AAClJ,OAAO,EAAE,2BAA2B,EAAE,MAAM,+DAA+D,CAAC;AAE5G,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sEAAsE,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAOxF,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"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"}
|