@vscode/chat-lib 0.48.2026051101 → 0.48.2026051203

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.
Files changed (28) hide show
  1. package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
  2. package/dist/src/_internal/extension/xtab/common/promptCrafting.js +140 -3
  3. package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
  4. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts +17 -2
  5. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts.map +1 -1
  6. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js +32 -5
  7. package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js.map +1 -1
  8. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +89 -2
  9. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
  10. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +176 -4
  11. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
  12. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  13. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +9 -1
  14. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  15. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +7 -1
  16. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  17. package/dist/src/_internal/platform/configuration/common/configurationService.js +7 -1
  18. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  19. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +2 -0
  20. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  21. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +12 -0
  22. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  23. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +71 -0
  24. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  25. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +57 -1
  26. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  27. package/dist/src/package.json +19 -9
  28. package/package.json +1 -1
@@ -1,9 +1,13 @@
1
1
  import { DocumentId } from '../../../platform/inlineEdits/common/dataTypes/documentId';
2
+ import { DuplicateAdditionsMode } from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions';
2
3
  import { NoNextEditReason, StreamedEdit } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
3
4
  import { ILogger } from '../../../platform/log/common/logService';
4
5
  import { URI } from '../../../util/vs/base/common/uri';
6
+ import { LineReplacement } from '../../../util/vs/editor/common/core/edits/lineEdit';
5
7
  import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
8
+ import { AbstractText } from '../../../util/vs/editor/common/core/text/abstractText';
6
9
  import { CurrentDocument } from '../common/xtabCurrentDocument';
10
+ export { DuplicateAdditionsMode };
7
11
  declare class Patch {
8
12
  /**
9
13
  * Expected to be file path relative to workspace root.
@@ -17,11 +21,94 @@ declare class Patch {
17
21
  addLine(line: string): boolean;
18
22
  toString(): string;
19
23
  }
24
+ /**
25
+ * Information about a single duplicate-addition removal.
26
+ *
27
+ * `kind` identifies which heuristic shape fired:
28
+ * - `'suffix'`: trailing additions matched the lines after the deletion.
29
+ * - `'prefix'`: leading addition matched the first line after the deletion.
30
+ * - `'middle'`: a pair of additions inside the patch matched the start of
31
+ * the following lines (streaming model partially copied the continuation).
32
+ *
33
+ * `removedLines` are the actual addition lines that were dropped (in order),
34
+ * preserved for diagnostics/logging.
35
+ */
36
+ export interface DuplicateAdditionRemoval {
37
+ readonly kind: 'suffix' | 'prefix' | 'middle';
38
+ readonly newAdditions: string[];
39
+ readonly removedLines: readonly string[];
40
+ }
41
+ /**
42
+ * Telemetry-safe summary of a single duplicate-addition detection.
43
+ *
44
+ * Deliberately excludes raw line content (`newAdditions` / `removedLines`)
45
+ * to keep `OnDuplicateRemovedCallback` from accidentally surfacing user
46
+ * source code through telemetry pipelines. Use the internal
47
+ * {@link DuplicateAdditionRemoval} returned by
48
+ * {@link tryRemoveDuplicateAdditions} when you legitimately need the
49
+ * content (e.g. to apply the trim).
50
+ */
51
+ export interface DuplicateAdditionRemovalSummary {
52
+ readonly kind: 'suffix' | 'prefix' | 'middle';
53
+ readonly removedLineCount: number;
54
+ readonly remainingAdditionCount: number;
55
+ }
56
+ /**
57
+ * Callback invoked once per duplicate-addition detection. Receives only
58
+ * redacted, telemetry-safe metadata (counts and shape). The callback fires
59
+ * for every action mode (Log / DropPatch / DropAllRemaining / TrimDuplicate),
60
+ * including `Log` where the patch is not actually modified.
61
+ */
62
+ export type OnDuplicateRemovedCallback = (info: {
63
+ readonly summary: DuplicateAdditionRemovalSummary;
64
+ readonly mode: Exclude<DuplicateAdditionsMode, DuplicateAdditionsMode.Off>;
65
+ readonly filePath: string;
66
+ readonly lineNumZeroBased: number;
67
+ }) => void;
68
+ /**
69
+ * Checks whether the patch's added lines duplicate the file content immediately
70
+ * following the deleted range, and if so, trims the duplicated lines.
71
+ *
72
+ * The diff-patch model can occasionally regress and emit additions that copy
73
+ * the existing continuation code. When that happens, applying the patch
74
+ * produces visibly duplicated lines in the file (e.g. an extra closing brace
75
+ * after a code block).
76
+ *
77
+ * Three duplication shapes are detected, mirroring the heuristic used in the
78
+ * offline analysis tooling. Only one shape is applied per patch — the checks
79
+ * run in priority order and the first match wins. This avoids cascading
80
+ * removals where one shape's trimming exposes a spurious match for another.
81
+ *
82
+ * Priority order:
83
+ * 1. **Suffix** — last `k` additions match first `k` following lines (most
84
+ * common case: trailing `}` re-emitted). Picks the longest matching `k`.
85
+ * No additional ambiguity guard is applied: the prior heuristic
86
+ * preserved single-token suffixes when they consumed the entire
87
+ * addition (e.g. `addedLines = ['}']` with `following = ['}']`), but
88
+ * that's the headline-bug case — applying the patch would insert a
89
+ * stray closing token into already-balanced code. The trade-off is a
90
+ * rare false positive when the file is mid-typing and unbalanced; the
91
+ * common case (file is balanced, model is duplicating) is the one we
92
+ * optimize for.
93
+ * 2. **Prefix** — first addition matches first following line, and the line
94
+ * is "meaningful" (>1 non-whitespace char) to avoid dropping legitimate
95
+ * single-token lines (e.g. an inner-scope `}` followed by an outer `}`).
96
+ * 3. **Middle** — a consecutive pair of additions starting at offset > 0
97
+ * (and not at the end) matches the first two following lines. Both
98
+ * following lines must be meaningful, again to avoid trivial matches.
99
+ * The match is then **greedily extended**: only the verified-equal
100
+ * lines are dropped; any addition lines beyond the equal range are
101
+ * preserved (the model may have appended new content after the
102
+ * streaming-style regenerated context).
103
+ *
104
+ * Returns a `DuplicateAdditionRemoval` describing what was dropped, or
105
+ * `undefined` if no duplication was detected.
106
+ */
107
+ export declare function tryRemoveDuplicateAdditions(replacement: LineReplacement, currentText: AbstractText): DuplicateAdditionRemoval | undefined;
20
108
  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>;
109
+ static handleResponse(linesStream: AsyncIterable<string>, currentDocument: CurrentDocument, activeDocumentId: DocumentId, workspaceRoot: URI | undefined, window: OffsetRange | undefined, parentTracer: ILogger, duplicateAdditionsMode?: DuplicateAdditionsMode, onDuplicateRemoved?: OnDuplicateRemovedCallback): AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
22
110
  private static resolveEdit;
23
111
  private static resolveTargetDocument;
24
112
  static extractEdits(linesStream: AsyncIterable<string>): AsyncGenerator<Patch>;
25
113
  }
26
- export {};
27
114
  //# sourceMappingURL=xtabCustomDiffPatchResponseHandler.d.ts.map
@@ -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;AAIrF,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,GACnB,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;IA8BvD,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"}
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,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAIlE,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,uDAAuD,CAAC;AAIrF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAGlC,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;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE;IAC/C,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CAClC,KAAK,IAAI,CAAC;AAYX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,2BAA2B,CAC1C,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,YAAY,GACvB,wBAAwB,GAAG,SAAS,CA+EtC;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,sBAAsB,GAAE,sBAAmD,EAC3E,kBAAkB,CAAC,EAAE,0BAA0B,GAC7C,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;IAsFvD,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"}
@@ -4,10 +4,14 @@
4
4
  * Licensed under the MIT License. See License.txt in the project root for license information.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.XtabCustomDiffPatchResponseHandler = void 0;
7
+ exports.XtabCustomDiffPatchResponseHandler = exports.DuplicateAdditionsMode = void 0;
8
+ exports.tryRemoveDuplicateAdditions = tryRemoveDuplicateAdditions;
8
9
  const documentId_1 = require("../../../platform/inlineEdits/common/dataTypes/documentId");
10
+ const xtabPromptOptions_1 = require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions");
11
+ Object.defineProperty(exports, "DuplicateAdditionsMode", { enumerable: true, get: function () { return xtabPromptOptions_1.DuplicateAdditionsMode; } });
9
12
  const statelessNextEditProvider_1 = require("../../../platform/inlineEdits/common/statelessNextEditProvider");
10
13
  const errors_1 = require("../../../util/common/errors");
14
+ const arrays_1 = require("../../../util/vs/base/common/arrays");
11
15
  const path_1 = require("../../../util/vs/base/common/path");
12
16
  const uri_1 = require("../../../util/vs/base/common/uri");
13
17
  const lineEdit_1 = require("../../../util/vs/editor/common/core/edits/lineEdit");
@@ -56,21 +60,189 @@ class Patch {
56
60
  ].join('\n');
57
61
  }
58
62
  }
63
+ /**
64
+ * A heuristic line is "meaningful" enough to base a duplicate detection on
65
+ * if it has more than one non-whitespace character. This guards against
66
+ * matching common single-token lines (`}`, `;`, `)`) and blank lines, which
67
+ * frequently appear both in legitimate additions and in surrounding context.
68
+ */
69
+ function isMeaningfulLine(line) {
70
+ return line.trim().length > 1;
71
+ }
72
+ /**
73
+ * Checks whether the patch's added lines duplicate the file content immediately
74
+ * following the deleted range, and if so, trims the duplicated lines.
75
+ *
76
+ * The diff-patch model can occasionally regress and emit additions that copy
77
+ * the existing continuation code. When that happens, applying the patch
78
+ * produces visibly duplicated lines in the file (e.g. an extra closing brace
79
+ * after a code block).
80
+ *
81
+ * Three duplication shapes are detected, mirroring the heuristic used in the
82
+ * offline analysis tooling. Only one shape is applied per patch — the checks
83
+ * run in priority order and the first match wins. This avoids cascading
84
+ * removals where one shape's trimming exposes a spurious match for another.
85
+ *
86
+ * Priority order:
87
+ * 1. **Suffix** — last `k` additions match first `k` following lines (most
88
+ * common case: trailing `}` re-emitted). Picks the longest matching `k`.
89
+ * No additional ambiguity guard is applied: the prior heuristic
90
+ * preserved single-token suffixes when they consumed the entire
91
+ * addition (e.g. `addedLines = ['}']` with `following = ['}']`), but
92
+ * that's the headline-bug case — applying the patch would insert a
93
+ * stray closing token into already-balanced code. The trade-off is a
94
+ * rare false positive when the file is mid-typing and unbalanced; the
95
+ * common case (file is balanced, model is duplicating) is the one we
96
+ * optimize for.
97
+ * 2. **Prefix** — first addition matches first following line, and the line
98
+ * is "meaningful" (>1 non-whitespace char) to avoid dropping legitimate
99
+ * single-token lines (e.g. an inner-scope `}` followed by an outer `}`).
100
+ * 3. **Middle** — a consecutive pair of additions starting at offset > 0
101
+ * (and not at the end) matches the first two following lines. Both
102
+ * following lines must be meaningful, again to avoid trivial matches.
103
+ * The match is then **greedily extended**: only the verified-equal
104
+ * lines are dropped; any addition lines beyond the equal range are
105
+ * preserved (the model may have appended new content after the
106
+ * streaming-style regenerated context).
107
+ *
108
+ * Returns a `DuplicateAdditionRemoval` describing what was dropped, or
109
+ * `undefined` if no duplication was detected.
110
+ */
111
+ function tryRemoveDuplicateAdditions(replacement, currentText) {
112
+ const addedLines = replacement.newLines;
113
+ if (addedLines.length === 0) {
114
+ return undefined;
115
+ }
116
+ // All line numbers here are 1-based (matching `LineRange` and
117
+ // `AbstractText.getLineAt`). `endLineNumberExclusive` is the first line
118
+ // after the deletion — i.e. the first "following" line.
119
+ const followingStartLine1Based = replacement.lineRange.endLineNumberExclusive;
120
+ const fileLineCount = currentText.lineRange.endLineNumberExclusive - 1;
121
+ const followingEndLine1BasedExclusive = Math.min(fileLineCount + 1, followingStartLine1Based + addedLines.length);
122
+ const following = [];
123
+ for (let l = followingStartLine1Based; l < followingEndLine1BasedExclusive; l++) {
124
+ following.push(currentText.getLineAt(l));
125
+ }
126
+ if (following.length === 0) {
127
+ return undefined;
128
+ }
129
+ // 1. Suffix: longest k where last k additions match first k following lines.
130
+ for (let k = Math.min(addedLines.length, following.length); k >= 1; k--) {
131
+ const tail = addedLines.slice(-k);
132
+ if (!(0, arrays_1.equals)(tail, following.slice(0, k))) {
133
+ continue;
134
+ }
135
+ return {
136
+ kind: 'suffix',
137
+ newAdditions: addedLines.slice(0, addedLines.length - k),
138
+ removedLines: tail,
139
+ };
140
+ }
141
+ // 2. Prefix: first addition matches first following line and is meaningful.
142
+ if (addedLines[0] === following[0] && isMeaningfulLine(addedLines[0])) {
143
+ return {
144
+ kind: 'prefix',
145
+ newAdditions: addedLines.slice(1),
146
+ removedLines: addedLines.slice(0, 1),
147
+ };
148
+ }
149
+ // 3. Middle (e.g. streamEdits): consecutive pair of additions at offset > 0
150
+ // (and not extending to the end — that case is suffix) matches the first
151
+ // two following lines. Require both to be meaningful to avoid trivial
152
+ // matches such as duplicate blank lines. After finding the seed pair,
153
+ // greedily extend `k` while addedLines and `following` continue to
154
+ // match — only the verified-equal range is dropped.
155
+ if (addedLines.length >= 3 && following.length >= 2 &&
156
+ isMeaningfulLine(following[0]) && isMeaningfulLine(following[1])) {
157
+ const a = following[0];
158
+ const b = following[1];
159
+ for (let start = 1; start < addedLines.length - 1; start++) {
160
+ if (addedLines[start] !== a || addedLines[start + 1] !== b) {
161
+ continue;
162
+ }
163
+ let k = 2;
164
+ while (start + k < addedLines.length &&
165
+ k < following.length &&
166
+ addedLines[start + k] === following[k]) {
167
+ k++;
168
+ }
169
+ return {
170
+ kind: 'middle',
171
+ newAdditions: [
172
+ ...addedLines.slice(0, start),
173
+ ...addedLines.slice(start + k),
174
+ ],
175
+ removedLines: addedLines.slice(start, start + k),
176
+ };
177
+ }
178
+ }
179
+ return undefined;
180
+ }
59
181
  class XtabCustomDiffPatchResponseHandler {
60
- static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer) {
182
+ static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer, duplicateAdditionsMode = xtabPromptOptions_1.DuplicateAdditionsMode.Off, onDuplicateRemoved) {
61
183
  const tracer = parentTracer.createSubLogger(['XtabCustomDiffPatchResponseHandler', 'handleResponse']);
62
184
  const activeDocRelativePath = (0, promptCraftingUtils_1.toUniquePath)(activeDocumentId, workspaceRoot?.path);
63
185
  try {
186
+ let dropAllRemaining = false;
64
187
  for await (const edit of XtabCustomDiffPatchResponseHandler.extractEdits(linesStream)) {
65
- const targetDocument = edit.filePath === activeDocRelativePath
188
+ if (dropAllRemaining) {
189
+ continue;
190
+ }
191
+ const isActiveDoc = edit.filePath === activeDocRelativePath;
192
+ const targetDocument = isActiveDoc
66
193
  ? activeDocumentId
67
194
  : XtabCustomDiffPatchResponseHandler.resolveTargetDocument(edit.filePath, workspaceRoot);
68
195
  if (!targetDocument) {
69
196
  tracer.error(`Could not resolve target document for edit: ${edit.toString()}`);
70
197
  continue;
71
198
  }
199
+ let lineReplacement = XtabCustomDiffPatchResponseHandler.resolveEdit(edit);
200
+ // Only attempt dedup for the active document — other files'
201
+ // content is not directly available here.
202
+ if (duplicateAdditionsMode !== xtabPromptOptions_1.DuplicateAdditionsMode.Off && isActiveDoc) {
203
+ const removal = tryRemoveDuplicateAdditions(lineReplacement, currentDocument.content);
204
+ if (removal !== undefined) {
205
+ // Log only metadata (kind / counts / location) — do
206
+ // NOT include raw line content. The tracer output
207
+ // may end up in user-visible diagnostics.
208
+ tracer.trace(`Detected duplicate addition(s) (kind=${removal.kind}, count=${removal.removedLines.length}, mode=${duplicateAdditionsMode}) for edit at ${edit.filePath}:${edit.lineNumZeroBased}`);
209
+ onDuplicateRemoved?.({
210
+ summary: {
211
+ kind: removal.kind,
212
+ removedLineCount: removal.removedLines.length,
213
+ remainingAdditionCount: removal.newAdditions.length,
214
+ },
215
+ mode: duplicateAdditionsMode,
216
+ filePath: edit.filePath,
217
+ lineNumZeroBased: edit.lineNumZeroBased,
218
+ });
219
+ switch (duplicateAdditionsMode) {
220
+ case xtabPromptOptions_1.DuplicateAdditionsMode.Log:
221
+ // Yield the patch unchanged.
222
+ break;
223
+ case xtabPromptOptions_1.DuplicateAdditionsMode.DropPatch:
224
+ continue;
225
+ case xtabPromptOptions_1.DuplicateAdditionsMode.DropAllRemaining:
226
+ // Drop this patch and skip every subsequent
227
+ // patch in the stream. We still consume the
228
+ // stream to completion so the underlying
229
+ // fetch is allowed to finalize cleanly.
230
+ dropAllRemaining = true;
231
+ continue;
232
+ case xtabPromptOptions_1.DuplicateAdditionsMode.TrimDuplicate: {
233
+ const newAdditions = removal.newAdditions;
234
+ if (newAdditions.length === 0 && lineReplacement.lineRange.length === 0) {
235
+ // Trim left a no-op patch — drop it.
236
+ continue;
237
+ }
238
+ lineReplacement = new lineEdit_1.LineReplacement(lineReplacement.lineRange, newAdditions);
239
+ break;
240
+ }
241
+ }
242
+ }
243
+ }
72
244
  yield {
73
- edit: XtabCustomDiffPatchResponseHandler.resolveEdit(edit),
245
+ edit: lineReplacement,
74
246
  isFromCursorJump: false,
75
247
  targetDocument,
76
248
  window,
@@ -1 +1 @@
1
- {"version":3,"file":"xtabCustomDiffPatchResponseHandler.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"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"}
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":"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"}
1
+ {"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"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"}
@@ -678,7 +678,8 @@ let XtabProvider = class XtabProvider {
678
678
  const lastLine = currentDocument.lines[clippedTaggedCurrentDoc.keptRange.endExclusive - 1];
679
679
  const lastLineLength = lastLine.length;
680
680
  const pseudoEditWindow = currentDocument.transformer.getOffsetRange(new range_1.Range(clippedTaggedCurrentDoc.keptRange.start + 1, 1, clippedTaggedCurrentDoc.keptRange.endExclusive, lastLineLength + 1));
681
- parseResult = new responseFormatHandlers_1.ResponseParseResult.DirectEdits(xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, currentDocument, activeDoc.id, activeDoc.workspaceRoot, pseudoEditWindow, tracer));
681
+ const duplicateAdditionsMode = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabDuplicateAdditionsMode, this.expService);
682
+ parseResult = new responseFormatHandlers_1.ResponseParseResult.DirectEdits(xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, currentDocument, activeDoc.id, activeDoc.workspaceRoot, pseudoEditWindow, tracer, duplicateAdditionsMode));
682
683
  break;
683
684
  }
684
685
  case xtabPromptOptions.ResponseFormat.UnifiedWithXml: {
@@ -1033,6 +1034,13 @@ let XtabProvider = class XtabProvider {
1033
1034
  },
1034
1035
  lintOptions: undefined,
1035
1036
  includePostScript: true,
1037
+ globalBudget: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabGlobalBudgetEnabled, this.expService)
1038
+ ? {
1039
+ totalTokens: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabGlobalBudgetTotalTokens, this.expService),
1040
+ order: xtabPromptOptions.GlobalBudgetOptions.DEFAULT_ORDER,
1041
+ shares: xtabPromptOptions.GlobalBudgetOptions.DEFAULT_SHARES,
1042
+ }
1043
+ : undefined,
1036
1044
  };
1037
1045
  const selectedModelConfig = this.modelService.selectedModelConfiguration();
1038
1046
  // proxy /models doesn't know about includeTagsInCurrentFile field as of now, so hard code it to true for CopilotNesXtab strategy