@vscode/chat-lib 0.5.1-6 → 0.41.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.
Files changed (136) hide show
  1. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.d.ts +4 -0
  2. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.js +10 -2
  4. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/features.js.map +1 -1
  5. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/featuresService.d.ts +2 -0
  6. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/featuresService.d.ts.map +1 -1
  7. package/dist/src/_internal/extension/inlineEdits/node/debugRecorder.js +2 -2
  8. package/dist/src/_internal/extension/inlineEdits/node/debugRecorder.js.map +1 -1
  9. package/dist/src/_internal/extension/inlineEdits/node/importFiltering.d.ts +2 -1
  10. package/dist/src/_internal/extension/inlineEdits/node/importFiltering.d.ts.map +1 -1
  11. package/dist/src/_internal/extension/inlineEdits/node/importFiltering.js +7 -2
  12. package/dist/src/_internal/extension/inlineEdits/node/importFiltering.js.map +1 -1
  13. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +2 -1
  14. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
  15. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +13 -9
  16. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
  17. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +1 -0
  18. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
  19. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +54 -38
  20. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
  21. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +45 -3
  22. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
  23. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +257 -19
  24. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
  25. package/dist/src/_internal/extension/inlineEdits/node/rebaseResult.d.ts +22 -0
  26. package/dist/src/_internal/extension/inlineEdits/node/rebaseResult.d.ts.map +1 -0
  27. package/dist/src/_internal/extension/inlineEdits/node/rebaseResult.js +111 -0
  28. package/dist/src/_internal/extension/inlineEdits/node/rebaseResult.js.map +1 -0
  29. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  30. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +2 -3
  31. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  32. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +8 -2
  33. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
  34. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +27 -5
  35. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
  36. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +17 -3
  37. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
  38. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +94 -44
  39. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
  40. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +1 -0
  41. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  42. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +76 -14
  43. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  44. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +13 -6
  45. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  46. package/dist/src/_internal/platform/configuration/common/configurationService.js +18 -11
  47. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  48. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +4 -0
  49. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  50. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +9 -2
  51. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  52. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +1 -0
  53. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
  54. package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
  55. package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js +1 -1
  56. package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js.map +1 -1
  57. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -1
  58. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  59. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +16 -14
  60. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  61. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +2 -2
  62. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
  63. package/dist/src/_internal/platform/endpoint/node/messagesApi.js +46 -24
  64. package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
  65. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
  66. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +1 -2
  67. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  68. package/dist/src/_internal/platform/git/common/gitService.d.ts +3 -1
  69. package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
  70. package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
  71. package/dist/src/_internal/platform/github/common/githubService.d.ts +10 -0
  72. package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
  73. package/dist/src/_internal/platform/github/common/githubService.js +5 -0
  74. package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
  75. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/importFilteringOptions.d.ts +8 -0
  76. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/importFilteringOptions.d.ts.map +1 -0
  77. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/importFilteringOptions.js +17 -0
  78. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/importFilteringOptions.js.map +1 -0
  79. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +2 -0
  80. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  81. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +9 -1
  82. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  83. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +5 -0
  84. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
  85. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +9 -0
  86. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
  87. package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.d.ts +8 -2
  88. package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.d.ts.map +1 -1
  89. package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.js +6 -2
  90. package/dist/src/_internal/platform/inlineEdits/common/observableWorkspace.js.map +1 -1
  91. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +5 -2
  92. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
  93. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +8 -2
  94. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
  95. package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts.map +1 -1
  96. package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js.map +1 -1
  97. package/dist/src/_internal/platform/log/common/logService.js +2 -2
  98. package/dist/src/_internal/platform/log/common/logService.js.map +1 -1
  99. package/dist/src/_internal/platform/networking/common/anthropic.d.ts +6 -0
  100. package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
  101. package/dist/src/_internal/platform/networking/common/anthropic.js +15 -0
  102. package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
  103. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +2 -0
  104. package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
  105. package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
  106. package/dist/src/_internal/platform/networking/common/networking.d.ts +5 -2
  107. package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
  108. package/dist/src/_internal/platform/networking/common/networking.js +1 -0
  109. package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
  110. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +10 -3
  111. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
  112. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +21 -2
  113. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -1
  114. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts +6 -0
  115. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts.map +1 -1
  116. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js +13 -1
  117. package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js.map +1 -1
  118. package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts +2 -0
  119. package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts.map +1 -1
  120. package/dist/src/_internal/platform/otel/common/genAiAttributes.js +2 -0
  121. package/dist/src/_internal/platform/otel/common/genAiAttributes.js.map +1 -1
  122. package/dist/src/_internal/platform/otel/common/noopOtelService.d.ts +1 -0
  123. package/dist/src/_internal/platform/otel/common/noopOtelService.d.ts.map +1 -1
  124. package/dist/src/_internal/platform/otel/common/noopOtelService.js +1 -0
  125. package/dist/src/_internal/platform/otel/common/noopOtelService.js.map +1 -1
  126. package/dist/src/_internal/platform/otel/common/otelService.d.ts +6 -0
  127. package/dist/src/_internal/platform/otel/common/otelService.d.ts.map +1 -1
  128. package/dist/src/_internal/platform/tokenizer/node/tokenizer.d.ts +6 -0
  129. package/dist/src/_internal/platform/tokenizer/node/tokenizer.d.ts.map +1 -1
  130. package/dist/src/_internal/platform/tokenizer/node/tokenizer.js +22 -0
  131. package/dist/src/_internal/platform/tokenizer/node/tokenizer.js.map +1 -1
  132. package/dist/src/main.d.ts.map +1 -1
  133. package/dist/src/main.js +12 -2
  134. package/dist/src/main.js.map +1 -1
  135. package/dist/src/package.json +149 -61
  136. package/package.json +3 -3
@@ -50,6 +50,7 @@ exports.XtabNextCursorPredictor = void 0;
50
50
  const copilot_api_1 = require("@vscode/copilot-api");
51
51
  const commonTypes_1 = require("../../../platform/chat/common/commonTypes");
52
52
  const configurationService_1 = require("../../../platform/configuration/common/configurationService");
53
+ const endpointProvider_1 = require("../../../platform/endpoint/common/endpointProvider");
53
54
  const chatEndpoint_1 = require("../../../platform/endpoint/node/chatEndpoint");
54
55
  const nextCursorLinePrediction_1 = require("../../../platform/inlineEdits/common/dataTypes/nextCursorLinePrediction");
55
56
  const xtabPromptOptions = __importStar(require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions"));
@@ -66,18 +67,22 @@ const lintErrors_1 = require("../common/lintErrors");
66
67
  const promptCrafting_1 = require("../common/promptCrafting");
67
68
  const xtabUtils_1 = require("./xtabUtils");
68
69
  let XtabNextCursorPredictor = class XtabNextCursorPredictor {
69
- constructor(computeTokens, instaService, configService, expService, langDiagService) {
70
+ constructor(computeTokens, instaService, configService, expService, langDiagService, endpointProvider) {
70
71
  this.computeTokens = computeTokens;
71
72
  this.instaService = instaService;
72
73
  this.configService = configService;
73
74
  this.expService = expService;
74
75
  this.langDiagService = langDiagService;
76
+ this.endpointProvider = endpointProvider;
75
77
  this.isDisabled = false;
76
78
  }
77
- determineEnablement() {
79
+ determineEnablement(supportsNextCursorLinePrediction) {
78
80
  if (this.isDisabled) {
79
81
  return undefined;
80
82
  }
83
+ if (supportsNextCursorLinePrediction === false) {
84
+ return undefined;
85
+ }
81
86
  // the cast is for backward compatibility with older experiments
82
87
  const originalNextCursorLinePrediction = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.InlineEditsNextCursorPredictionEnabled, this.expService);
83
88
  switch (originalNextCursorLinePrediction) {
@@ -96,7 +101,7 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
96
101
  }
97
102
  async predictNextCursorPosition(promptPieces, parentTracer, telemetryBuilder, cancellationToken) {
98
103
  const tracer = parentTracer.createSubLogger('predictNextCursorPosition');
99
- const systemMessage = `Your task is to predict the next line number in the current file where the developer is most likely to make their next edit, using the provided context. If you don't think anywhere is a good next line jump target, just output the current line number of the cursor. Make sure to just output the line number and nothing else (no explanation, reasoning, etc.).`;
104
+ const systemMessage = `Your task is to predict the line number where the developer is most likely to make their next edit. If you jump in the current file, just output the line number. If you want to jump to another file, output the filepath (relative to workspace root), colon, then line number. If you don't think anywhere is a good next line jump target, just output the current line number of the cursor. Make sure to output no explanation, reasoning, extra spaces, etc.`;
100
105
  const maxTokens = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.Advanced.InlineEditsNextCursorPredictionCurrentFileMaxTokens, this.expService);
101
106
  const currentFileContentR = (0, promptCrafting_1.constructTaggedFile)(promptPieces.currentDocument, promptPieces.editWindowLinesRange, promptPieces.areaAroundEditWindowLinesRange, {
102
107
  ...promptPieces.opts,
@@ -146,35 +151,17 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
146
151
  return result_1.Result.fromString('modelNameNotDefined');
147
152
  }
148
153
  telemetryBuilder?.setCursorJumpModelName(modelName);
149
- const url = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionUrl);
154
+ const resolvedEndpoint = await this.resolveEndpoint(modelName, tracer);
155
+ if (!resolvedEndpoint) {
156
+ return result_1.Result.fromString('endpointNotResolved');
157
+ }
158
+ const { endpoint, usesResponsesApi } = resolvedEndpoint;
150
159
  const secretKey = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionApiKey);
151
- const endpoint = this.instaService.createInstance(chatEndpoint_1.ChatEndpoint, {
152
- id: modelName,
153
- name: 'nes.nextCursorPosition',
154
- vendor: modelName,
155
- urlOrRequestMetadata: url ? url : { type: copilot_api_1.RequestType.ProxyChatCompletions },
156
- model_picker_enabled: false,
157
- is_chat_default: false,
158
- is_chat_fallback: false,
159
- version: '',
160
- capabilities: {
161
- type: 'chat',
162
- family: '',
163
- tokenizer: tokenizer_1.TokenizerType.CL100K,
164
- limits: undefined,
165
- supports: {
166
- parallel_tool_calls: false,
167
- tool_calls: false,
168
- streaming: true,
169
- vision: false,
170
- prediction: false,
171
- thinking: false
172
- }
173
- },
174
- });
175
160
  const maxResponseTokens = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionMaxResponseTokens, this.expService);
176
161
  let requestOptions = {
177
- max_tokens: maxResponseTokens,
162
+ // Responses API models include reasoning tokens in max_output_tokens,
163
+ // so we need a larger budget to leave room for actual output.
164
+ max_tokens: usesResponsesApi ? Math.max(maxResponseTokens, 2048) : maxResponseTokens,
178
165
  };
179
166
  if (secretKey) {
180
167
  requestOptions = { ...requestOptions, secretKey };
@@ -196,33 +183,95 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
196
183
  try {
197
184
  telemetryBuilder?.setCursorJumpResponse(response.value);
198
185
  const trimmed = response.value.trim();
199
- const lineNumber = parseInt(trimmed, 10);
200
- if (isNaN(lineNumber)) {
201
- return result_1.Result.fromString(`gotNaN`);
202
- }
203
- if (lineNumber < 0) {
204
- return result_1.Result.fromString(`negativeLineNumber`);
205
- }
206
- if (lineNumber < clippedTaggedCurrentDoc.keptRange.start || clippedTaggedCurrentDoc.keptRange.endExclusive <= lineNumber) {
207
- return result_1.Result.fromString(`modelNotSeenLineNumber`);
208
- }
209
- return result_1.Result.ok(lineNumber);
186
+ return this.parseResponse(trimmed, clippedTaggedCurrentDoc.keptRange);
210
187
  }
211
188
  catch (err) {
212
189
  tracer.trace(`Failed to parse predicted line number from response '${response.value}': ${err}`);
213
190
  return result_1.Result.fromString(`failedToParseLine:"${response.value}". Error ${errors_1.ErrorUtils.fromUnknown(err).message}`);
214
191
  }
215
192
  }
193
+ async resolveEndpoint(modelName, tracer) {
194
+ const useEndpointProvider = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionUseEndpointProvider);
195
+ if (useEndpointProvider) {
196
+ const allEndpoints = await this.endpointProvider.getAllChatEndpoints();
197
+ const endpoint = allEndpoints.find(e => e.model === modelName || e.family === modelName);
198
+ if (!endpoint) {
199
+ tracer.trace(`Could not find endpoint for model '${modelName}' via endpoint provider`);
200
+ return undefined;
201
+ }
202
+ const usesResponsesApi = endpoint.apiType === 'responses';
203
+ return { endpoint, usesResponsesApi };
204
+ }
205
+ const url = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionUrl);
206
+ return {
207
+ endpoint: this.instaService.createInstance(chatEndpoint_1.ChatEndpoint, {
208
+ id: modelName,
209
+ name: 'nes.nextCursorPosition',
210
+ vendor: modelName,
211
+ urlOrRequestMetadata: url ? url : { type: copilot_api_1.RequestType.ProxyChatCompletions },
212
+ model_picker_enabled: false,
213
+ is_chat_default: false,
214
+ is_chat_fallback: false,
215
+ version: '',
216
+ capabilities: {
217
+ type: 'chat',
218
+ family: '',
219
+ tokenizer: tokenizer_1.TokenizerType.CL100K,
220
+ limits: undefined,
221
+ supports: {
222
+ parallel_tool_calls: false,
223
+ tool_calls: false,
224
+ streaming: true,
225
+ vision: false,
226
+ prediction: false,
227
+ thinking: false
228
+ }
229
+ },
230
+ }),
231
+ usesResponsesApi: false,
232
+ };
233
+ }
216
234
  determineLintOptions() {
217
235
  const localLintOptions = this.configService.getConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionLintOptions);
218
236
  if (localLintOptions) {
219
237
  return localLintOptions;
220
238
  }
221
239
  const expLintOptions = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsNextCursorPredictionLintOptionsString, this.expService);
222
- if (!expLintOptions) {
223
- return undefined;
240
+ if (expLintOptions) {
241
+ return (0, xtabPromptOptions_1.parseLintOptionString)(expLintOptions);
242
+ }
243
+ return xtabPromptOptions_1.DEFAULT_CURSOR_PREDICTION_LINT_OPTIONS;
244
+ }
245
+ parseResponse(trimmed, keptRange) {
246
+ // Try parsing as a plain line number (same-file jump)
247
+ const lineNumber = parseInt(trimmed, 10);
248
+ if (!isNaN(lineNumber) && String(lineNumber) === trimmed) {
249
+ return this.parseSameFileLineNumber(lineNumber, keptRange);
250
+ }
251
+ // Try parsing as filepath:lineNumber (cross-file jump)
252
+ const lastColonIdx = trimmed.lastIndexOf(':');
253
+ if (lastColonIdx <= 0) {
254
+ return result_1.Result.fromString(`gotNaN`);
255
+ }
256
+ const filePath = trimmed.substring(0, lastColonIdx);
257
+ const lineNumberStr = trimmed.substring(lastColonIdx + 1);
258
+ const crossFileLineNumber = parseInt(lineNumberStr, 10);
259
+ if (isNaN(crossFileLineNumber) || crossFileLineNumber < 0) {
260
+ return result_1.Result.fromString(`crossFileInvalidLineNumber`);
261
+ }
262
+ if (filePath.trim().length === 0) {
263
+ return result_1.Result.fromString(`crossFileEmptyFilePath`);
264
+ }
265
+ return result_1.Result.ok({ kind: 'differentFile', filePath: filePath.trim(), lineNumber: crossFileLineNumber });
266
+ }
267
+ parseSameFileLineNumber(lineNumber, keptRange) {
268
+ if (lineNumber < 0) {
269
+ return result_1.Result.fromString(`negativeLineNumber`);
270
+ }
271
+ if (lineNumber < keptRange.start || keptRange.endExclusive <= lineNumber) {
272
+ return result_1.Result.fromString(`modelNotSeenLineNumber`);
224
273
  }
225
- return (0, xtabPromptOptions_1.parseLintOptionString)(expLintOptions);
274
+ return result_1.Result.ok({ kind: 'sameFile', lineNumber });
226
275
  }
227
276
  };
228
277
  exports.XtabNextCursorPredictor = XtabNextCursorPredictor;
@@ -230,6 +279,7 @@ exports.XtabNextCursorPredictor = XtabNextCursorPredictor = __decorate([
230
279
  __param(1, instantiation_1.IInstantiationService),
231
280
  __param(2, configurationService_1.IConfigurationService),
232
281
  __param(3, nullExperimentationService_1.IExperimentationService),
233
- __param(4, languageDiagnosticsService_1.ILanguageDiagnosticsService)
282
+ __param(4, languageDiagnosticsService_1.ILanguageDiagnosticsService),
283
+ __param(5, endpointProvider_1.IEndpointProvider)
234
284
  ], XtabNextCursorPredictor);
235
285
  //# sourceMappingURL=xtabNextCursorPredictor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xtabNextCursorPredictor.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabNextCursorPredictor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xtabNextCursorPredictor.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabNextCursorPredictor.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ export declare class XtabProvider implements IStatelessNextEditProvider {
55
55
  private streamEditsWithFiltering;
56
56
  private streamEdits;
57
57
  private doGetNextEditsWithCursorJump;
58
+ private handleCrossFilePrediction;
58
59
  private computeEditWindowLinesRange;
59
60
  private determineModelConfiguration;
60
61
  private getEndpoint;
@@ -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":"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;AAEvF,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,EAAE,yBAAyB,EAAE,wBAAwB,EAAqE,MAAM,gEAAgE,CAAC;AAEjS,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,EAAE,MAAM,2CAA2C,CAAC;AAI9E,OAAO,EAAY,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAK/F,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAUrG,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAInF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAwBhE,MAAM,WAAW,WAAY,SAAQ,iBAAiB,CAAC,aAAa;IACnE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qBAAa,YAAa,YAAW,0BAA0B;IAiBnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,cAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa;IACjB,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAzBzE,gBAAuB,EAAE,kBAAkB;IAE3C,SAAgB,EAAE,kBAAmB;IAErC,OAAO,CAAC,MAAM,CAAC,aAAa,CAA2C;IAEvE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAEhE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAElD,OAAO,CAAC,oBAAoB,CAAkB;IAE9C,OAAO,CAAC,mBAAmB,CAA0B;gBAGT,YAAY,EAAE,wBAAwB,EACxC,aAAa,EAAE,sBAAsB,EACtC,YAAY,EAAE,qBAAqB,EACvC,gBAAgB,EAAE,iBAAiB,EACxC,WAAW,EAAE,YAAY,EAChB,aAAa,EAAE,qBAAqB,EAClC,UAAU,EAAE,uBAAuB,EAC3B,cAAc,EAAE,+BAA+B,EACnD,eAAe,EAAE,2BAA2B,EACzD,aAAa,EAAE,cAAc,EAChB,0BAA0B,EAAE,2BAA2B;IAO/F,gBAAgB,IAAI,IAAI;IAIxB,eAAe,IAAI,IAAI;IAIvB,aAAa,IAAI,IAAI;IAId,eAAe,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,0BAA0B;IAqC5L,OAAO,CAAC,aAAa;YAqBN,0BAA0B;IAwOzC,OAAO,CAAC,4BAA4B;IAoCpC,OAAO,CAAC,4BAA4B;YAiCtB,kBAAkB;YAmFjB,wBAAwB;YA4ExB,WAAW;YAwVX,4BAA4B;YAkG5B,yBAAyB;IAiGxC,OAAO,CAAC,2BAA2B;IAmEnC,OAAO,CAAC,2BAA2B;IA8DnC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;YASZ,QAAQ;IAoBtB,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,UAAU;CAyClB;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,SAAS,eAAe,EAAE,CAI3I;AAED,wBAAgB,qCAAqC,CAAC,eAAe,EAAE,eAAe,GAAG,WAAW,CAMnG;AAED,wBAAgB,qCAAqC,CAAC,UAAU,EAAE,cAAc,GAAG,gBAAgB,CAsBlG;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,WAAW,CAcjI;AAED,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAwB3G;AAED,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,yBAAyB,EAAE,aAAa,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,wBAAwB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,yBAAyB,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,GAAG,sBAAsB,CAU9U;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,yBAAyB,EAAE,eAAe,EAAE,SAAS,MAAM,EAAE,EAAE,cAAc,EAAE,iBAAiB,CAAC,cAAc,GAAG,MAAM,CAoBlK;AAED,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;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC9B,uEAAuE;IACvE,IAAI,SAAS;IACb,yDAAyD;IACzD,SAAS,cAAc;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC9C,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,IAAI,GAAE,mBAA8C,GAClD,OAAO,CAAC,qBAAqB,CAAC,CAMhC;AA8JD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAcnJ"}
@@ -63,6 +63,9 @@ const configurationService_1 = require("../../../platform/configuration/common/c
63
63
  const diffService_1 = require("../../../platform/diff/common/diffService");
64
64
  const proxyXtabEndpoint_1 = require("../../../platform/endpoint/node/proxyXtabEndpoint");
65
65
  const ignoreService_1 = require("../../../platform/ignore/common/ignoreService");
66
+ const documentId_1 = require("../../../platform/inlineEdits/common/dataTypes/documentId");
67
+ const edit_1 = require("../../../platform/inlineEdits/common/dataTypes/edit");
68
+ const languageId_1 = require("../../../platform/inlineEdits/common/dataTypes/languageId");
66
69
  const nextCursorLinePrediction_1 = require("../../../platform/inlineEdits/common/dataTypes/nextCursorLinePrediction");
67
70
  const xtabPromptOptions = __importStar(require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions"));
68
71
  const xtabPromptOptions_1 = require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions");
@@ -82,12 +85,16 @@ const errors_1 = require("../../../util/common/errors");
82
85
  const result_1 = require("../../../util/common/result");
83
86
  const assert_1 = require("../../../util/vs/base/common/assert");
84
87
  const async_2 = require("../../../util/vs/base/common/async");
88
+ const path_1 = require("../../../util/vs/base/common/path");
85
89
  const stopwatch_1 = require("../../../util/vs/base/common/stopwatch");
90
+ const uri_1 = require("../../../util/vs/base/common/uri");
86
91
  const lineEdit_1 = require("../../../util/vs/editor/common/core/edits/lineEdit");
92
+ const stringEdit_1 = require("../../../util/vs/editor/common/core/edits/stringEdit");
87
93
  const position_1 = require("../../../util/vs/editor/common/core/position");
88
94
  const range_1 = require("../../../util/vs/editor/common/core/range");
89
95
  const lineRange_1 = require("../../../util/vs/editor/common/core/ranges/lineRange");
90
96
  const offsetRange_1 = require("../../../util/vs/editor/common/core/ranges/offsetRange");
97
+ const abstractText_1 = require("../../../util/vs/editor/common/core/text/abstractText");
91
98
  const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
92
99
  const vscodeTypesShim_1 = require("../../../util/common/test/shims/vscodeTypesShim");
93
100
  const nearbyCursorInlineEditProvider_1 = require("../../inlineEdits/common/nearbyCursorInlineEditProvider");
@@ -314,7 +321,7 @@ let XtabProvider = class XtabProvider {
314
321
  telemetryBuilder.setSimilarFilesContext(this.similarFilesContextService.compute(activeDocument.id.uri, activeDocument.languageId, activeDocument.documentAfterEdits.value, currentDocument.cursorOffset));
315
322
  request.fetchIssued = true;
316
323
  const cursorLineOffset = cursorPosition.column;
317
- return yield* this.streamEditsWithFiltering(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLinesRange, promptPieces, prediction, {
324
+ return yield* this.streamEditsWithFiltering(request, endpoint, modelServiceConfig, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLinesRange, promptPieces, prediction, {
318
325
  shouldRemoveCursorTagFromResponse,
319
326
  responseFormat,
320
327
  retryState,
@@ -435,10 +442,10 @@ let XtabProvider = class XtabProvider {
435
442
  return undefined;
436
443
  }
437
444
  }
438
- async *streamEditsWithFiltering(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, // cursor offset within the line it's in; 1-based
445
+ async *streamEditsWithFiltering(request, endpoint, modelServiceConfig, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, // cursor offset within the line it's in; 1-based
439
446
  editWindowLineRange, promptPieces, prediction, opts, delaySession, parentTracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow) {
440
447
  const tracer = parentTracer.createSubLogger('streamEditsWithFiltering');
441
- const iterator = this.streamEdits(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLineRange, promptPieces, prediction, opts, delaySession, tracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow);
448
+ const iterator = this.streamEdits(request, endpoint, modelServiceConfig, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, editWindowLineRange, promptPieces, prediction, opts, delaySession, tracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow);
442
449
  let nEdits = 0;
443
450
  let r = await iterator.next();
444
451
  while (!r.done) {
@@ -458,13 +465,14 @@ let XtabProvider = class XtabProvider {
458
465
  if (nEdits === 0 &&
459
466
  r.value instanceof statelessNextEditProvider_1.NoNextEditReason.NoSuggestions // only retry if there was no error, cancellation, etc.
460
467
  ) {
461
- return yield* this.doGetNextEditsWithCursorJump(request, editWindow, promptPieces, delaySession, parentTracer, logContext, cancellationToken, telemetryBuilder, opts.retryState);
468
+ return yield* this.doGetNextEditsWithCursorJump(request, modelServiceConfig, editWindow, promptPieces, delaySession, parentTracer, logContext, cancellationToken, telemetryBuilder, opts.retryState);
462
469
  }
463
470
  return r.value;
464
471
  }
465
- async *streamEdits(request, endpoint, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, // cursor offset within the line it's in; 1-based
472
+ async *streamEdits(request, endpoint, modelServiceConfig, messages, editWindow, editWindowLines, cursorOriginalLinesOffset, cursorLineOffset, // cursor offset within the line it's in; 1-based
466
473
  editWindowLineRange, promptPieces, prediction, opts, delaySession, parentTracer, telemetryBuilder, logContext, cancellationToken, originalEditWindow) {
467
474
  const tracer = parentTracer.createSubLogger('streamEdits');
475
+ const targetDocument = request.getActiveDocument().id;
468
476
  const useFetcher = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.NextEditSuggestionsFetcher, this.expService) || undefined;
469
477
  const fetchStreamSource = new chatMLFetcher_1.FetchStreamSource();
470
478
  const fetchRequestStopWatch = new stopwatch_1.StopWatch();
@@ -583,7 +591,8 @@ let XtabProvider = class XtabProvider {
583
591
  cleanedLinesStream = remainingLinesStream;
584
592
  }
585
593
  else if (opts.responseFormat === xtabPromptOptions.ResponseFormat.CustomDiffPatch) {
586
- return yield* xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, request.documentBeforeEdits, editWindow, originalEditWindow);
594
+ const activeDoc = request.getActiveDocument();
595
+ return yield* xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, request.documentBeforeEdits, activeDoc.id, activeDoc.workspaceRoot, editWindow, originalEditWindow);
587
596
  }
588
597
  else if (opts.responseFormat === xtabPromptOptions.ResponseFormat.UnifiedWithXml) {
589
598
  const linesIter = linesStream[Symbol.asyncIterator]();
@@ -596,7 +605,7 @@ let XtabProvider = class XtabProvider {
596
605
  }
597
606
  const trimmedLines = firstLine.value.trim();
598
607
  if (trimmedLines === tags_1.ResponseTags.NO_CHANGE.start) {
599
- return yield* this.doGetNextEditsWithCursorJump(request, editWindow, promptPieces, delaySession, tracer, logContext, cancellationToken, telemetryBuilder, opts.retryState);
608
+ return yield* this.doGetNextEditsWithCursorJump(request, modelServiceConfig, editWindow, promptPieces, delaySession, tracer, logContext, cancellationToken, telemetryBuilder, opts.retryState);
600
609
  }
601
610
  if (trimmedLines === tags_1.ResponseTags.INSERT.start) {
602
611
  const lineWithCursorContinued = await linesIter.next();
@@ -604,7 +613,7 @@ let XtabProvider = class XtabProvider {
604
613
  return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
605
614
  }
606
615
  const edit = new lineEdit_1.LineReplacement(new lineRange_1.LineRange(editWindowLineRange.start + cursorOriginalLinesOffset + 1 /* 0-based to 1-based */, editWindowLineRange.start + cursorOriginalLinesOffset + 2), [editWindowLines[cursorOriginalLinesOffset].slice(0, cursorLineOffset - 1) + lineWithCursorContinued.value + editWindowLines[cursorOriginalLinesOffset].slice(cursorLineOffset - 1)]);
607
- yield { edit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow };
616
+ yield { edit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow, targetDocument };
608
617
  const lines = [];
609
618
  let v = await linesIter.next();
610
619
  while (!v.done) {
@@ -621,7 +630,8 @@ let XtabProvider = class XtabProvider {
621
630
  edit: new lineEdit_1.LineReplacement(new lineRange_1.LineRange(line, line), lines),
622
631
  isFromCursorJump,
623
632
  window: editWindow,
624
- originalWindow: originalEditWindow
633
+ originalWindow: originalEditWindow,
634
+ targetDocument,
625
635
  };
626
636
  return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
627
637
  }
@@ -697,7 +707,7 @@ let XtabProvider = class XtabProvider {
697
707
  }
698
708
  }
699
709
  }
700
- yield { edit: singleLineEdit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow };
710
+ yield { edit: singleLineEdit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow, targetDocument };
701
711
  i++;
702
712
  }
703
713
  }
@@ -712,9 +722,9 @@ let XtabProvider = class XtabProvider {
712
722
  return new statelessNextEditProvider_1.NoNextEditReason.Unexpected(errors_1.ErrorUtils.fromUnknown(err));
713
723
  }
714
724
  }
715
- async *doGetNextEditsWithCursorJump(request, editWindow, promptPieces, delaySession, tracer, logContext, cancellationToken, telemetryBuilder, retryState) {
725
+ async *doGetNextEditsWithCursorJump(request, modelConfig, editWindow, promptPieces, delaySession, tracer, logContext, cancellationToken, telemetryBuilder, retryState) {
716
726
  const noSuggestions = new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
717
- const nextCursorLinePrediction = this.nextCursorPredictor.determineEnablement();
727
+ const nextCursorLinePrediction = this.nextCursorPredictor.determineEnablement(modelConfig.supportsNextCursorLinePrediction);
718
728
  if (nextCursorLinePrediction === undefined || retryState instanceof RetryState.Retrying) {
719
729
  return noSuggestions;
720
730
  }
@@ -735,9 +745,14 @@ let XtabProvider = class XtabProvider {
735
745
  telemetryBuilder.setNextCursorLineError(nextCursorLineR.err.message);
736
746
  return noSuggestions;
737
747
  }
738
- const nextCursorLineZeroBased = nextCursorLineR.val;
748
+ const prediction = nextCursorLineR.val;
749
+ if (prediction.kind === 'differentFile') {
750
+ return yield* this.handleCrossFilePrediction(prediction, nextCursorLinePrediction, request, editWindow, promptPieces, delaySession, tracer, logContext, cancellationToken, telemetryBuilder);
751
+ }
752
+ const nextCursorLineZeroBased = prediction.lineNumber;
739
753
  const lineDistanceFromCursorLine = nextCursorLineZeroBased - promptPieces.currentDocument.cursorLineOffset;
740
754
  telemetryBuilder.setNextCursorLineDistance(lineDistanceFromCursorLine);
755
+ telemetryBuilder.setNextCursorIsCrossFile(false);
741
756
  tracer.trace(`Predicted next cursor line: ${nextCursorLineZeroBased}`);
742
757
  if (nextCursorLineZeroBased >= promptPieces.currentDocument.lines.length) { // >= because the line index is zero-based
743
758
  tracer.trace(`Predicted next cursor line error: exceedsDocumentLines`);
@@ -766,6 +781,52 @@ let XtabProvider = class XtabProvider {
766
781
  }
767
782
  }
768
783
  }
784
+ async *handleCrossFilePrediction(prediction, nextCursorLinePrediction, request, editWindow, promptPieces, delaySession, tracer, logContext, cancellationToken, telemetryBuilder) {
785
+ const workspaceRoot = promptPieces.activeDoc.workspaceRoot;
786
+ if (!workspaceRoot && !(0, path_1.isAbsolute)(prediction.filePath)) {
787
+ tracer.trace('Predicted cross-file cursor jump error: noWorkspaceRoot');
788
+ telemetryBuilder.setNextCursorLineError('crossFile:noWorkspaceRoot');
789
+ return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
790
+ }
791
+ const targetUri = (0, path_1.isAbsolute)(prediction.filePath)
792
+ ? uri_1.URI.file(prediction.filePath)
793
+ : uri_1.URI.joinPath(workspaceRoot, prediction.filePath);
794
+ const targetDocumentId = documentId_1.DocumentId.create(targetUri.toString());
795
+ const nextCursorLineOneBased = prediction.lineNumber + 1;
796
+ const nextCursorPosition = new position_1.Position(nextCursorLineOneBased, 1);
797
+ telemetryBuilder.setNextCursorIsCrossFile(true);
798
+ tracer.trace(`Predicted cross-file cursor jump: ${prediction.filePath}:${prediction.lineNumber}`);
799
+ switch (nextCursorLinePrediction) {
800
+ case nextCursorLinePrediction_1.NextCursorLinePrediction.Jump: {
801
+ return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow, nextCursorPosition, targetDocumentId);
802
+ }
803
+ case nextCursorLinePrediction_1.NextCursorLinePrediction.OnlyWithEdit: {
804
+ let targetTextDoc;
805
+ try {
806
+ targetTextDoc = await this.workspaceService.openTextDocument(targetUri);
807
+ }
808
+ catch (err) {
809
+ tracer.trace(`Failed to open target file for cross-file edit: ${errors_1.ErrorUtils.fromUnknown(err).message}`);
810
+ telemetryBuilder.setNextCursorLineError('crossFile:failedToOpenFile');
811
+ return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow, nextCursorPosition, targetDocumentId);
812
+ }
813
+ if (cancellationToken.isCancellationRequested) {
814
+ return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('afterCrossFileOpenTextDocument');
815
+ }
816
+ if (hasUserTypedSinceRequestStarted(request)) {
817
+ tracer.trace('Skipping cross-file edit: user typed during openTextDocument');
818
+ return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('afterCrossFileOpenTextDocumentUserTyped');
819
+ }
820
+ const targetContent = new abstractText_1.StringText(targetTextDoc.getText());
821
+ const syntheticDoc = new statelessNextEditProvider_1.StatelessNextEditDocument(targetDocumentId, promptPieces.activeDoc.workspaceRoot, languageId_1.LanguageId.create(targetTextDoc.languageId), targetContent.getLines(), lineEdit_1.LineEdit.empty, targetContent, new edit_1.Edits(stringEdit_1.StringEdit, []));
822
+ const syntheticRequest = new statelessNextEditProvider_1.StatelessNextEditRequest(request.headerRequestId, request.opportunityId, targetContent, [syntheticDoc], 0, request.xtabEditHistory, new async_2.DeferredPromise(), request.expandedEditWindowNLines, request.isSpeculative, request.logContext, request.recordingBookmark, request.recording, request.providerRequestStartDateTime);
823
+ return yield* this.doGetNextEditWithSelection(syntheticRequest, new range_1.Range(nextCursorLineOneBased, 1, nextCursorLineOneBased, 1), delaySession, tracer, logContext, cancellationToken, telemetryBuilder, new RetryState.Retrying('cursorJump'), editWindow);
824
+ }
825
+ default: {
826
+ (0, assert_1.assertNever)(nextCursorLinePrediction);
827
+ }
828
+ }
829
+ }
769
830
  computeEditWindowLinesRange(currentDocument, request, tracer, telemetry) {
770
831
  const currentDocLines = currentDocument.lines;
771
832
  const cursorLineOffset = currentDocument.cursorLineOffset;
@@ -935,8 +996,9 @@ let XtabProvider = class XtabProvider {
935
996
  return artificialDelay;
936
997
  }
937
998
  filterEdit(activeDoc, edits) {
999
+ const allowImportChanges = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsAllowImportChanges, this.expService);
938
1000
  const filters = [
939
- (edits) => importFiltering_1.IgnoreImportChangesAspect.filterEdit(activeDoc, edits),
1001
+ (edits) => importFiltering_1.IgnoreImportChangesAspect.filterEdit(activeDoc, edits, allowImportChanges),
940
1002
  (edits) => statelessNextEditProviders_1.IgnoreEmptyLineAndLeadingTrailingWhitespaceChanges.filterEdit(activeDoc, edits),
941
1003
  ];
942
1004
  if (!this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.InlineEditsAllowWhitespaceOnlyChanges, this.expService)) {