@vscode/chat-lib 0.43.2026040706-0 → 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/common/constants.d.ts +1 -2
- package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
- package/dist/src/_internal/extension/common/constants.js +0 -3
- package/dist/src/_internal/extension/common/constants.js.map +1 -1
- package/dist/src/_internal/extension/completions-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 +13 -20
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +11 -17
- 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 +0 -2
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts +9 -12
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js +26 -26
- package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts +2 -2
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js +31 -6
- package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js.map +1 -1
- 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.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +131 -157
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.d.ts +0 -1
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.js +0 -4
- package/dist/src/_internal/platform/chat/common/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +10 -14
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +13 -17
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +3 -3
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +12 -15
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -11
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +58 -28
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +12 -4
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +152 -13
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +1 -4
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +31 -70
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/git/common/gitService.d.ts +9 -2
- 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/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +0 -15
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +1 -17
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts +42 -0
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js +30 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.d.ts +12 -0
- package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.js +1 -5
- package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +0 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +3 -3
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.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 +2 -10
- 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 +1 -2
- package/dist/src/_internal/platform/otel/common/index.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts +1 -13
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.js +0 -98
- package/dist/src/_internal/platform/otel/common/messageFormatters.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts +1 -0
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/common/requestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +3 -2
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js +3 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +1 -0
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
- package/dist/src/package.json +59 -90
- package/package.json +2 -1
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.d.ts +0 -10
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.d.ts.map +0 -1
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.js +0 -19
- package/dist/src/_internal/extension/xtab/common/fetchStreamError.js.map +0 -1
- package/dist/src/_internal/platform/endpoint/node/imageLimits.d.ts +0 -14
- package/dist/src/_internal/platform/endpoint/node/imageLimits.d.ts.map +0 -1
- package/dist/src/_internal/platform/endpoint/node/imageLimits.js +0 -156
- package/dist/src/_internal/platform/endpoint/node/imageLimits.js.map +0 -1
|
@@ -1 +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,
|
|
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"}
|
|
@@ -65,13 +65,23 @@ function handleCodeBlock(linesStream) {
|
|
|
65
65
|
// ============================================================================
|
|
66
66
|
// Handler: EditWindowWithEditIntent / EditWindowWithEditIntentShort
|
|
67
67
|
// ============================================================================
|
|
68
|
-
async function handleEditWindowWithEditIntent(linesStream, tracer, parseMode) {
|
|
68
|
+
async function handleEditWindowWithEditIntent(linesStream, tracer, parseMode, getFetchFailure) {
|
|
69
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
|
+
}
|
|
70
74
|
return new ResponseParseResult.EditWindowLines(remainingLinesStream, { intent: editIntent, parseError });
|
|
71
75
|
}
|
|
72
|
-
async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, tracer) {
|
|
76
|
+
async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, tracer, getFetchFailure) {
|
|
73
77
|
const linesIter = linesStream[Symbol.asyncIterator]();
|
|
74
78
|
const firstLine = await linesIter.next();
|
|
79
|
+
{
|
|
80
|
+
const fetchFailure = getFetchFailure();
|
|
81
|
+
if (fetchFailure) {
|
|
82
|
+
return new ResponseParseResult.Done(fetchFailure);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
75
85
|
if (firstLine.done) {
|
|
76
86
|
return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, ctx.editWindow));
|
|
77
87
|
}
|
|
@@ -80,10 +90,10 @@ async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, trace
|
|
|
80
90
|
return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, ctx.editWindow));
|
|
81
91
|
}
|
|
82
92
|
if (trimmedFirstLine === tags_1.ResponseTags.INSERT.start) {
|
|
83
|
-
return new ResponseParseResult.DirectEdits(generateInsertEdits(linesIter, ctx, documentBeforeEdits));
|
|
93
|
+
return new ResponseParseResult.DirectEdits(generateInsertEdits(linesIter, ctx, documentBeforeEdits, getFetchFailure));
|
|
84
94
|
}
|
|
85
95
|
if (trimmedFirstLine === tags_1.ResponseTags.EDIT.start) {
|
|
86
|
-
const editLines = generateEditLines(linesIter);
|
|
96
|
+
const editLines = generateEditLines(linesIter, getFetchFailure);
|
|
87
97
|
return new ResponseParseResult.EditWindowLines(editLines);
|
|
88
98
|
}
|
|
89
99
|
return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.Unexpected(new Error(`unexpected tag ${trimmedFirstLine}`)));
|
|
@@ -91,12 +101,18 @@ async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, trace
|
|
|
91
101
|
// ============================================================================
|
|
92
102
|
// Internal generators for UnifiedWithXml sub-tags
|
|
93
103
|
// ============================================================================
|
|
94
|
-
async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits) {
|
|
104
|
+
async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits, getFetchFailure) {
|
|
95
105
|
const { editWindowLines, editWindowLineRange, cursorOriginalLinesOffset, cursorColumnZeroBased, editWindow, originalEditWindow, targetDocument, isFromCursorJump } = ctx;
|
|
96
106
|
const lineWithCursorContinued = await linesIter.next();
|
|
97
107
|
if (lineWithCursorContinued.done || lineWithCursorContinued.value.includes(tags_1.ResponseTags.INSERT.end)) {
|
|
98
108
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, editWindow);
|
|
99
109
|
}
|
|
110
|
+
{
|
|
111
|
+
const fetchFailure = getFetchFailure();
|
|
112
|
+
if (fetchFailure) {
|
|
113
|
+
return fetchFailure;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
100
116
|
const cursorLineContent = editWindowLines[cursorOriginalLinesOffset];
|
|
101
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)]);
|
|
102
118
|
yield { edit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow, targetDocument };
|
|
@@ -111,6 +127,12 @@ async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits) {
|
|
|
111
127
|
}
|
|
112
128
|
v = await linesIter.next();
|
|
113
129
|
}
|
|
130
|
+
{
|
|
131
|
+
const fetchFailure = getFetchFailure();
|
|
132
|
+
if (fetchFailure) {
|
|
133
|
+
return fetchFailure;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
114
136
|
const line = editWindowLineRange.start + cursorOriginalLinesOffset + 2;
|
|
115
137
|
yield {
|
|
116
138
|
edit: new lineEdit_1.LineReplacement(new lineRange_1.LineRange(line, line), lines),
|
|
@@ -121,12 +143,15 @@ async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits) {
|
|
|
121
143
|
};
|
|
122
144
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, editWindow);
|
|
123
145
|
}
|
|
124
|
-
async function* generateEditLines(linesIter) {
|
|
146
|
+
async function* generateEditLines(linesIter, getFetchFailure) {
|
|
125
147
|
let v = await linesIter.next();
|
|
126
148
|
while (!v.done) {
|
|
127
149
|
if (v.value.includes(tags_1.ResponseTags.EDIT.end)) {
|
|
128
150
|
return;
|
|
129
151
|
}
|
|
152
|
+
if (getFetchFailure()) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
130
155
|
yield v.value;
|
|
131
156
|
v = await linesIter.next();
|
|
132
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseFormatHandlers.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAyDhG,oDAEC;AAMD,0CAEC;AAMD,
|
|
1
|
+
{"version":3,"file":"responseFormatHandlers.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ declare class Patch {
|
|
|
18
18
|
toString(): string;
|
|
19
19
|
}
|
|
20
20
|
export declare class XtabCustomDiffPatchResponseHandler {
|
|
21
|
-
static handleResponse(linesStream: AsyncIterable<string>, currentDocument: CurrentDocument, activeDocumentId: DocumentId, workspaceRoot: URI | undefined, window: OffsetRange | undefined, parentTracer: ILogger): AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
|
|
21
|
+
static handleResponse(linesStream: AsyncIterable<string>, currentDocument: CurrentDocument, activeDocumentId: DocumentId, workspaceRoot: URI | undefined, window: OffsetRange | undefined, parentTracer: ILogger, getFetchFailure?: () => NoNextEditReason | undefined): AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
|
|
22
22
|
private static resolveEdit;
|
|
23
23
|
private static resolveTargetDocument;
|
|
24
24
|
static extractEdits(linesStream: AsyncIterable<string>): AsyncGenerator<Patch>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xtabCustomDiffPatchResponseHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"xtabCustomDiffPatchResponseHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,cAAM,KAAK;IAKT;;OAEG;aACa,QAAQ,EAAE,MAAM;aAChB,gBAAgB,EAAE,MAAM;IARlC,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAM;IAEjC,OAAO;WAQO,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAShD,OAAO,CAAC,IAAI,EAAE,MAAM;IAab,QAAQ,IAAI,MAAM;CAOzB;AAGD,qBAAa,kCAAkC;WAEzB,cAAc,CAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,UAAU,EAC5B,aAAa,EAAE,GAAG,GAAG,SAAS,EAC9B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,YAAY,EAAE,OAAO,EACrB,eAAe,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,GAClD,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;IA+BvD,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAWf,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;CAyB5F"}
|
|
@@ -12,7 +12,6 @@ const path_1 = require("../../../util/vs/base/common/path");
|
|
|
12
12
|
const uri_1 = require("../../../util/vs/base/common/uri");
|
|
13
13
|
const lineEdit_1 = require("../../../util/vs/editor/common/core/edits/lineEdit");
|
|
14
14
|
const lineRange_1 = require("../../../util/vs/editor/common/core/ranges/lineRange");
|
|
15
|
-
const fetchStreamError_1 = require("../common/fetchStreamError");
|
|
16
15
|
const promptCraftingUtils_1 = require("../common/promptCraftingUtils");
|
|
17
16
|
const tags_1 = require("../common/tags");
|
|
18
17
|
class Patch {
|
|
@@ -57,11 +56,15 @@ class Patch {
|
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
class XtabCustomDiffPatchResponseHandler {
|
|
60
|
-
static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer) {
|
|
59
|
+
static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer, getFetchFailure) {
|
|
61
60
|
const tracer = parentTracer.createSubLogger(['XtabCustomDiffPatchResponseHandler', 'handleResponse']);
|
|
62
61
|
const activeDocRelativePath = (0, promptCraftingUtils_1.toUniquePath)(activeDocumentId, workspaceRoot?.path);
|
|
63
62
|
try {
|
|
64
63
|
for await (const edit of XtabCustomDiffPatchResponseHandler.extractEdits(linesStream)) {
|
|
64
|
+
const fetchFailure = getFetchFailure?.();
|
|
65
|
+
if (fetchFailure) {
|
|
66
|
+
return fetchFailure;
|
|
67
|
+
}
|
|
65
68
|
const targetDocument = edit.filePath === activeDocRelativePath
|
|
66
69
|
? activeDocumentId
|
|
67
70
|
: XtabCustomDiffPatchResponseHandler.resolveTargetDocument(edit.filePath, workspaceRoot);
|
|
@@ -78,9 +81,6 @@ class XtabCustomDiffPatchResponseHandler {
|
|
|
78
81
|
}
|
|
79
82
|
}
|
|
80
83
|
catch (e) {
|
|
81
|
-
if (e instanceof fetchStreamError_1.FetchStreamError) {
|
|
82
|
-
return e.reason;
|
|
83
|
-
}
|
|
84
84
|
const err = errors_1.ErrorUtils.fromUnknown(e);
|
|
85
85
|
return new statelessNextEditProvider_1.NoNextEditReason.Unexpected(err);
|
|
86
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xtabCustomDiffPatchResponseHandler.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,0FAAuF;AACvF,8GAAgH;AAEhH,wDAAyD;AACzD,4DAA+D;AAC/D,0DAAuD;AACvD,iFAAqF;AACrF,oFAAiF;AAEjF,
|
|
1
|
+
{"version":3,"file":"xtabCustomDiffPatchResponseHandler.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,6 @@ const nullExperimentationService_1 = require("../../../platform/telemetry/common
|
|
|
79
79
|
const workspaceService_1 = require("../../../platform/workspace/common/workspaceService");
|
|
80
80
|
const async_1 = require("../../../util/common/async");
|
|
81
81
|
const asyncIterableUtils_1 = require("../../../util/common/asyncIterableUtils");
|
|
82
|
-
const backwardCompatSetting_1 = require("../../../util/common/backwardCompatSetting");
|
|
83
82
|
const errors_1 = require("../../../util/common/errors");
|
|
84
83
|
const result_1 = require("../../../util/common/result");
|
|
85
84
|
const assert_1 = require("../../../util/vs/base/common/assert");
|
|
@@ -95,13 +94,11 @@ const range_1 = require("../../../util/vs/editor/common/core/range");
|
|
|
95
94
|
const lineRange_1 = require("../../../util/vs/editor/common/core/ranges/lineRange");
|
|
96
95
|
const offsetRange_1 = require("../../../util/vs/editor/common/core/ranges/offsetRange");
|
|
97
96
|
const abstractText_1 = require("../../../util/vs/editor/common/core/text/abstractText");
|
|
98
|
-
const positionToOffset_1 = require("../../../util/vs/editor/common/core/text/positionToOffset");
|
|
99
97
|
const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
|
|
100
98
|
const vscodeTypesShim_1 = require("../../../util/common/test/shims/vscodeTypesShim");
|
|
101
99
|
const nearbyCursorInlineEditProvider_1 = require("../../inlineEdits/common/nearbyCursorInlineEditProvider");
|
|
102
100
|
const userInteractionMonitor_1 = require("../../inlineEdits/common/userInteractionMonitor");
|
|
103
101
|
const importFiltering_1 = require("../../inlineEdits/node/importFiltering");
|
|
104
|
-
const fetchStreamError_1 = require("../common/fetchStreamError");
|
|
105
102
|
const inlineSuggestion_1 = require("../common/inlineSuggestion");
|
|
106
103
|
const lintErrors_1 = require("../common/lintErrors");
|
|
107
104
|
const promptCrafting_1 = require("../common/promptCrafting");
|
|
@@ -142,8 +139,9 @@ var RetryState;
|
|
|
142
139
|
var FetchResult;
|
|
143
140
|
(function (FetchResult) {
|
|
144
141
|
class Lines {
|
|
145
|
-
constructor(linesStream, getResponseSoFar, fetchRequestStopWatch) {
|
|
142
|
+
constructor(linesStream, getFetchFailure, getResponseSoFar, fetchRequestStopWatch) {
|
|
146
143
|
this.linesStream = linesStream;
|
|
144
|
+
this.getFetchFailure = getFetchFailure;
|
|
147
145
|
this.getResponseSoFar = getResponseSoFar;
|
|
148
146
|
this.fetchRequestStopWatch = fetchRequestStopWatch;
|
|
149
147
|
}
|
|
@@ -535,6 +533,7 @@ let XtabProvider = class XtabProvider {
|
|
|
535
533
|
const fetchStreamSource = new chatMLFetcher_1.FetchStreamSource();
|
|
536
534
|
const fetchRequestStopWatch = new stopwatch_1.StopWatch();
|
|
537
535
|
let responseSoFar = '';
|
|
536
|
+
let chatResponseFailure;
|
|
538
537
|
let ttft;
|
|
539
538
|
const firstTokenReceived = new async_2.DeferredPromise();
|
|
540
539
|
logContext.setHeaderRequestId(requestId);
|
|
@@ -578,23 +577,20 @@ let XtabProvider = class XtabProvider {
|
|
|
578
577
|
logContext.setFullResponse(fetchResultPromise.then((response) => response.type === commonTypes_1.ChatFetchResponseType.Success ? response.value : undefined));
|
|
579
578
|
fetchResultPromise
|
|
580
579
|
.then((response) => {
|
|
581
|
-
if
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
else {
|
|
585
|
-
fetchStreamSource.resolve();
|
|
586
|
-
}
|
|
580
|
+
// this's a way to signal the edit-pushing code to know if the request failed and
|
|
581
|
+
// it shouldn't push edits constructed from an erroneous response
|
|
582
|
+
chatResponseFailure = response.type !== commonTypes_1.ChatFetchResponseType.Success ? response : undefined;
|
|
587
583
|
})
|
|
588
584
|
.catch((err) => {
|
|
589
585
|
// in principle this shouldn't happen because ChatMLFetcher's fetchOne should not throw
|
|
590
586
|
logContext.setError(errors_1.ErrorUtils.fromUnknown(err));
|
|
591
587
|
logContext.addLog(`ChatMLFetcher fetch call threw -- this's UNEXPECTED!`);
|
|
592
|
-
fetchStreamSource.reject(errors_1.ErrorUtils.fromUnknown(err));
|
|
593
588
|
}).finally(() => {
|
|
594
589
|
logContext.setFetchEndTime();
|
|
595
590
|
if (!firstTokenReceived.isSettled) {
|
|
596
591
|
firstTokenReceived.complete();
|
|
597
592
|
}
|
|
593
|
+
fetchStreamSource.resolve();
|
|
598
594
|
logContext.setResponse(responseSoFar);
|
|
599
595
|
});
|
|
600
596
|
const fetchRes = await Promise.race([firstTokenReceived.p, fetchResultPromise]);
|
|
@@ -611,6 +607,7 @@ let XtabProvider = class XtabProvider {
|
|
|
611
607
|
}
|
|
612
608
|
return new FetchResult.FetchFailure(mapChatFetcherErrorToNoNextEditReason(fetchRes));
|
|
613
609
|
}
|
|
610
|
+
const getFetchFailure = () => chatResponseFailure ? mapChatFetcherErrorToNoNextEditReason(chatResponseFailure) : undefined;
|
|
614
611
|
const llmLinesStream = asyncIterableUtils_1.AsyncIterUtilsExt.splitLines(asyncIterableUtils_1.AsyncIterUtils.map(fetchStreamSource.stream, (chunk) => chunk.delta.text));
|
|
615
612
|
// logging of times
|
|
616
613
|
// removal of cursor tag if option is set
|
|
@@ -624,7 +621,7 @@ let XtabProvider = class XtabProvider {
|
|
|
624
621
|
: v;
|
|
625
622
|
}
|
|
626
623
|
})();
|
|
627
|
-
return new FetchResult.Lines(linesStream, () => responseSoFar, fetchRequestStopWatch);
|
|
624
|
+
return new FetchResult.Lines(linesStream, getFetchFailure, () => responseSoFar, fetchRequestStopWatch);
|
|
628
625
|
}
|
|
629
626
|
async *_streamEditsImpl(request, editStreamCtx, responseOpts, fetchMetadata, retryState, delaySession, tracing, cancellationToken, fetchCts, fetchCancellationToken) {
|
|
630
627
|
const { tracer, logContext, telemetry } = tracing;
|
|
@@ -639,112 +636,130 @@ let XtabProvider = class XtabProvider {
|
|
|
639
636
|
if (fetchResult instanceof FetchResult.FetchFailure) {
|
|
640
637
|
return fetchResult.reason;
|
|
641
638
|
}
|
|
642
|
-
const { linesStream, getResponseSoFar, fetchRequestStopWatch } = fetchResult;
|
|
639
|
+
const { linesStream, getFetchFailure, getResponseSoFar, fetchRequestStopWatch } = fetchResult;
|
|
643
640
|
// Phase 2: Dispatch to the appropriate response format handler
|
|
644
641
|
const isFromCursorJump = retryState instanceof RetryState.Retrying && retryState.reason === 'cursorJump';
|
|
645
642
|
let parseResult;
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
break;
|
|
651
|
-
}
|
|
652
|
-
case xtabPromptOptions.ResponseFormat.CodeBlock: {
|
|
653
|
-
parseResult = (0, responseFormatHandlers_1.handleCodeBlock)(linesStream);
|
|
654
|
-
break;
|
|
655
|
-
}
|
|
656
|
-
case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntent:
|
|
657
|
-
case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort: {
|
|
658
|
-
const parseMode = responseOpts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort
|
|
659
|
-
? editIntent_1.EditIntentParseMode.ShortName
|
|
660
|
-
: editIntent_1.EditIntentParseMode.Tags;
|
|
661
|
-
parseResult = await (0, responseFormatHandlers_1.handleEditWindowWithEditIntent)(linesStream, tracer, parseMode);
|
|
662
|
-
break;
|
|
663
|
-
}
|
|
664
|
-
case xtabPromptOptions.ResponseFormat.CustomDiffPatch: {
|
|
665
|
-
const activeDoc = request.getActiveDocument();
|
|
666
|
-
const currentDocument = promptPieces.currentDocument;
|
|
667
|
-
const lastLine = currentDocument.lines[clippedTaggedCurrentDoc.keptRange.endExclusive - 1];
|
|
668
|
-
const lastLineLength = lastLine.length;
|
|
669
|
-
const pseudoEditWindow = currentDocument.transformer.getOffsetRange(new range_1.Range(clippedTaggedCurrentDoc.keptRange.start + 1, 1, clippedTaggedCurrentDoc.keptRange.endExclusive, lastLineLength + 1));
|
|
670
|
-
parseResult = new responseFormatHandlers_1.ResponseParseResult.DirectEdits(xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, currentDocument, activeDoc.id, activeDoc.workspaceRoot, pseudoEditWindow, tracer));
|
|
671
|
-
break;
|
|
672
|
-
}
|
|
673
|
-
case xtabPromptOptions.ResponseFormat.UnifiedWithXml: {
|
|
674
|
-
parseResult = await (0, responseFormatHandlers_1.handleUnifiedWithXml)(linesStream, {
|
|
675
|
-
editWindowLines,
|
|
676
|
-
editWindowLineRange,
|
|
677
|
-
cursorOriginalLinesOffset,
|
|
678
|
-
cursorColumnZeroBased: promptPieces.currentDocument.cursorPosition.column - 1,
|
|
679
|
-
editWindow,
|
|
680
|
-
originalEditWindow,
|
|
681
|
-
targetDocument,
|
|
682
|
-
isFromCursorJump,
|
|
683
|
-
}, request.documentBeforeEdits, tracer);
|
|
684
|
-
break;
|
|
685
|
-
}
|
|
686
|
-
default:
|
|
687
|
-
(0, assert_1.assertNever)(responseOpts.responseFormat);
|
|
643
|
+
switch (responseOpts.responseFormat) {
|
|
644
|
+
case xtabPromptOptions.ResponseFormat.EditWindowOnly: {
|
|
645
|
+
parseResult = (0, responseFormatHandlers_1.handleEditWindowOnly)(linesStream);
|
|
646
|
+
break;
|
|
688
647
|
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
648
|
+
case xtabPromptOptions.ResponseFormat.CodeBlock: {
|
|
649
|
+
parseResult = (0, responseFormatHandlers_1.handleCodeBlock)(linesStream);
|
|
650
|
+
break;
|
|
692
651
|
}
|
|
693
|
-
|
|
694
|
-
|
|
652
|
+
case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntent:
|
|
653
|
+
case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort: {
|
|
654
|
+
const parseMode = responseOpts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort
|
|
655
|
+
? editIntent_1.EditIntentParseMode.ShortName
|
|
656
|
+
: editIntent_1.EditIntentParseMode.Tags;
|
|
657
|
+
parseResult = await (0, responseFormatHandlers_1.handleEditWindowWithEditIntent)(linesStream, tracer, parseMode, getFetchFailure);
|
|
658
|
+
break;
|
|
695
659
|
}
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
const
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
tracer.trace(`Filtered out edit due to edit intent "${intent}" with aggressiveness "${promptPieces.aggressivenessLevel}"`);
|
|
705
|
-
return new statelessNextEditProvider_1.NoNextEditReason.FilteredOut(`editIntent:${intent} aggressivenessLevel:${promptPieces.aggressivenessLevel}`);
|
|
706
|
-
}
|
|
660
|
+
case xtabPromptOptions.ResponseFormat.CustomDiffPatch: {
|
|
661
|
+
const activeDoc = request.getActiveDocument();
|
|
662
|
+
const currentDocument = promptPieces.currentDocument;
|
|
663
|
+
const lastLine = currentDocument.lines[clippedTaggedCurrentDoc.keptRange.endExclusive - 1];
|
|
664
|
+
const lastLineLength = lastLine.length;
|
|
665
|
+
const pseudoEditWindow = currentDocument.transformer.getOffsetRange(new range_1.Range(clippedTaggedCurrentDoc.keptRange.start + 1, 1, clippedTaggedCurrentDoc.keptRange.endExclusive, lastLineLength + 1));
|
|
666
|
+
parseResult = new responseFormatHandlers_1.ResponseParseResult.DirectEdits(xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, currentDocument, activeDoc.id, activeDoc.workspaceRoot, pseudoEditWindow, tracer, getFetchFailure));
|
|
667
|
+
break;
|
|
707
668
|
}
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
669
|
+
case xtabPromptOptions.ResponseFormat.UnifiedWithXml: {
|
|
670
|
+
parseResult = await (0, responseFormatHandlers_1.handleUnifiedWithXml)(linesStream, {
|
|
671
|
+
editWindowLines,
|
|
672
|
+
editWindowLineRange,
|
|
673
|
+
cursorOriginalLinesOffset,
|
|
674
|
+
cursorColumnZeroBased: promptPieces.currentDocument.cursorPosition.column - 1,
|
|
675
|
+
editWindow,
|
|
676
|
+
originalEditWindow,
|
|
677
|
+
targetDocument,
|
|
678
|
+
isFromCursorJump,
|
|
679
|
+
}, request.documentBeforeEdits, tracer, getFetchFailure);
|
|
680
|
+
break;
|
|
681
|
+
}
|
|
682
|
+
default:
|
|
683
|
+
(0, assert_1.assertNever)(responseOpts.responseFormat);
|
|
684
|
+
}
|
|
685
|
+
// Handle result uniformly
|
|
686
|
+
if (parseResult instanceof responseFormatHandlers_1.ResponseParseResult.Done) {
|
|
687
|
+
return parseResult.reason;
|
|
688
|
+
}
|
|
689
|
+
if (parseResult instanceof responseFormatHandlers_1.ResponseParseResult.DirectEdits) {
|
|
690
|
+
return yield* parseResult.stream;
|
|
691
|
+
}
|
|
692
|
+
// parseResult is EditWindowLines — log edit-intent telemetry and apply aggressiveness filter
|
|
693
|
+
if (parseResult.editIntentMetadata) {
|
|
694
|
+
const { intent, parseError } = parseResult.editIntentMetadata;
|
|
695
|
+
telemetry.setEditIntent(intent);
|
|
696
|
+
if (parseError) {
|
|
697
|
+
telemetry.setEditIntentParseError(parseError);
|
|
698
|
+
}
|
|
699
|
+
if (!xtabPromptOptions.EditIntent.shouldShowEdit(intent, promptPieces.aggressivenessLevel)) {
|
|
700
|
+
tracer.trace(`Filtered out edit due to edit intent "${intent}" with aggressiveness "${promptPieces.aggressivenessLevel}"`);
|
|
701
|
+
return new statelessNextEditProvider_1.NoNextEditReason.FilteredOut(`editIntent:${intent} aggressivenessLevel:${promptPieces.aggressivenessLevel}`);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
const cleanedLinesStream = parseResult.lines;
|
|
705
|
+
const diffOptions = {
|
|
706
|
+
emitFastCursorLineChange: responseProcessor_1.ResponseProcessor.mapEmitFastCursorLineChange(this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderEmitFastCursorLineChange, this.expService)),
|
|
707
|
+
nLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNNonSignificantLinesToConverge, this.expService),
|
|
708
|
+
nSignificantLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNSignificantLinesToConverge, this.expService),
|
|
709
|
+
};
|
|
710
|
+
tracer.trace(`starting to diff stream against edit window lines with latency ${fetchRequestStopWatch.elapsed()} ms`);
|
|
711
|
+
// Wrap the line stream to detect early cursor-line divergence.
|
|
712
|
+
// If the user has typed at the cursor since the request started and the cursor line
|
|
713
|
+
// in the model's response doesn't match what the user currently has, the response
|
|
714
|
+
// is stale and we can cancel early instead of waiting for the full response.
|
|
715
|
+
//
|
|
716
|
+
// We check compatibility using `isModelCursorLineCompatible`: the user's
|
|
717
|
+
// cursor-line change must be contained within the model's cursor-line change range
|
|
718
|
+
// and match via the helper's `startsWith` / auto-close subsequence rules.
|
|
719
|
+
const earlyCursorLineDivergenceCancellation = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabEarlyCursorLineDivergenceCancellation, this.expService);
|
|
720
|
+
let cursorLineDiverged = false;
|
|
721
|
+
const divergenceCheckedStream = earlyCursorLineDivergenceCancellation
|
|
722
|
+
? (async function* () {
|
|
723
|
+
let lineIdx = 0;
|
|
724
|
+
for await (const line of cleanedLinesStream) {
|
|
725
|
+
if (lineIdx === cursorOriginalLinesOffset) {
|
|
726
|
+
const intermediateEdit = request.intermediateUserEdit;
|
|
727
|
+
if (intermediateEdit && !intermediateEdit.isEmpty()) {
|
|
728
|
+
const cursorDocLineIdx = editWindowLineRange.start + cursorOriginalLinesOffset;
|
|
729
|
+
const currentCursorLine = (0, cursorLineDivergence_1.getCurrentCursorLine)(request.documentBeforeEdits.getTransformer(), cursorDocLineIdx, intermediateEdit);
|
|
730
|
+
if (currentCursorLine !== undefined) {
|
|
731
|
+
const originalCursorLine = editWindowLines[cursorOriginalLinesOffset];
|
|
732
|
+
if (currentCursorLine !== originalCursorLine // user changed the cursor line
|
|
733
|
+
&& !(0, cursorLineDivergence_1.isModelCursorLineCompatible)(originalCursorLine, currentCursorLine, line) // model's cursor line isn't compatible with user's typing
|
|
734
|
+
) {
|
|
735
|
+
cursorLineDiverged = true;
|
|
736
|
+
tracer.trace(`Cursor line DIVERGED: model="${line}" current="${currentCursorLine}"`);
|
|
737
|
+
// Cancel our local fetch token so the HTTP request is
|
|
738
|
+
// aborted immediately. We own this token, so this is safe.
|
|
739
|
+
fetchCts.cancel();
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
yield line;
|
|
746
|
+
lineIdx++;
|
|
736
747
|
}
|
|
737
|
-
})
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
let i = 0;
|
|
743
|
-
let hasBeenDelayed = false;
|
|
748
|
+
})()
|
|
749
|
+
: cleanedLinesStream;
|
|
750
|
+
let i = 0;
|
|
751
|
+
let hasBeenDelayed = false;
|
|
752
|
+
try {
|
|
744
753
|
for await (const edit of responseProcessor_1.ResponseProcessor.diff(editWindowLines, divergenceCheckedStream, cursorOriginalLinesOffset, diffOptions)) {
|
|
745
|
-
if (
|
|
754
|
+
if (cursorLineDiverged) {
|
|
746
755
|
break;
|
|
747
756
|
}
|
|
757
|
+
{
|
|
758
|
+
const fetchFailure = getFetchFailure();
|
|
759
|
+
if (fetchFailure) {
|
|
760
|
+
return fetchFailure;
|
|
761
|
+
}
|
|
762
|
+
}
|
|
748
763
|
tracer.trace(`ResponseProcessor streamed edit #${i} with latency ${fetchRequestStopWatch.elapsed()} ms`);
|
|
749
764
|
const singleLineEdits = [];
|
|
750
765
|
if (edit.lineRange.startLineNumber === edit.lineRange.endLineNumberExclusive || // we don't want to run diff on insertion
|
|
@@ -786,16 +801,20 @@ let XtabProvider = class XtabProvider {
|
|
|
786
801
|
i++;
|
|
787
802
|
}
|
|
788
803
|
}
|
|
789
|
-
if (
|
|
790
|
-
return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled(
|
|
804
|
+
if (cursorLineDiverged) {
|
|
805
|
+
return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('cursorLineDiverged');
|
|
806
|
+
}
|
|
807
|
+
{
|
|
808
|
+
const fetchFailure = getFetchFailure();
|
|
809
|
+
if (fetchFailure) {
|
|
810
|
+
return fetchFailure;
|
|
811
|
+
}
|
|
791
812
|
}
|
|
792
813
|
return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
|
|
793
814
|
}
|
|
794
815
|
catch (err) {
|
|
795
|
-
if (err instanceof fetchStreamError_1.FetchStreamError) {
|
|
796
|
-
return err.reason;
|
|
797
|
-
}
|
|
798
816
|
logContext.setError(err);
|
|
817
|
+
// Properly handle the error by pushing it as a result
|
|
799
818
|
return new statelessNextEditProvider_1.NoNextEditReason.Unexpected(errors_1.ErrorUtils.fromUnknown(err));
|
|
800
819
|
}
|
|
801
820
|
}
|
|
@@ -1272,49 +1291,4 @@ function getPredictionContents(doc, editWindowLines, responseFormat) {
|
|
|
1272
1291
|
(0, assert_1.assertNever)(responseFormat);
|
|
1273
1292
|
}
|
|
1274
1293
|
}
|
|
1275
|
-
async function* linesWithIntermediateEditDivergenceCheck(cleanedLinesStream, cursorOriginalLinesOffset, request, editWindowLineRange, editWindowLines, fetchCts, { tracer }, setLineDiverged, mode) {
|
|
1276
|
-
const intermediateEdit = request.intermediateUserEdit;
|
|
1277
|
-
if (!intermediateEdit || intermediateEdit.isEmpty()) {
|
|
1278
|
-
yield* cleanedLinesStream;
|
|
1279
|
-
return;
|
|
1280
|
-
}
|
|
1281
|
-
const transformer = request.documentBeforeEdits.getTransformer();
|
|
1282
|
-
// Precompute the post-edit document once to avoid O(lines * docSize) in EditWindow mode.
|
|
1283
|
-
const currentDoc = intermediateEdit.apply(transformer.text);
|
|
1284
|
-
const currentTransformer = new positionToOffset_1.PositionOffsetTransformer(currentDoc);
|
|
1285
|
-
const precomputed = { currentDoc, currentTransformer };
|
|
1286
|
-
const shouldCheckLine = (lineIdx) => {
|
|
1287
|
-
if (lineIdx >= editWindowLines.length) {
|
|
1288
|
-
return false;
|
|
1289
|
-
}
|
|
1290
|
-
switch (mode) {
|
|
1291
|
-
case xtabPromptOptions_1.EarlyDivergenceCancellationMode.Cursor:
|
|
1292
|
-
return lineIdx === cursorOriginalLinesOffset;
|
|
1293
|
-
case xtabPromptOptions_1.EarlyDivergenceCancellationMode.EditWindow:
|
|
1294
|
-
return true;
|
|
1295
|
-
}
|
|
1296
|
-
};
|
|
1297
|
-
let lineIdx = 0;
|
|
1298
|
-
for await (const line of cleanedLinesStream) {
|
|
1299
|
-
if (shouldCheckLine(lineIdx)) {
|
|
1300
|
-
const docLineIdx = editWindowLineRange.start + lineIdx;
|
|
1301
|
-
const currentLine = (0, cursorLineDivergence_1.getCurrentLine)(transformer, docLineIdx, intermediateEdit, precomputed);
|
|
1302
|
-
if (currentLine !== undefined) {
|
|
1303
|
-
const originalLine = editWindowLines[lineIdx];
|
|
1304
|
-
if (currentLine !== originalLine // user changed this line
|
|
1305
|
-
&& !(0, cursorLineDivergence_1.isModelLineCompatible)(originalLine, currentLine, line) // model's line isn't compatible with user's typing
|
|
1306
|
-
) {
|
|
1307
|
-
setLineDiverged(true);
|
|
1308
|
-
tracer.trace(`Line ${lineIdx} DIVERGED (mode=${mode}): model="${line}" current="${currentLine}"`);
|
|
1309
|
-
// Cancel our local fetch token so the HTTP request is
|
|
1310
|
-
// aborted immediately. We own this token, so this is safe.
|
|
1311
|
-
fetchCts.cancel();
|
|
1312
|
-
return;
|
|
1313
|
-
}
|
|
1314
|
-
}
|
|
1315
|
-
}
|
|
1316
|
-
yield line;
|
|
1317
|
-
lineIdx++;
|
|
1318
|
-
}
|
|
1319
|
-
}
|
|
1320
1294
|
//# sourceMappingURL=xtabProvider.js.map
|