@vscode/chat-lib 0.53.2026061203 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenManager.js +1 -1
  2. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenManager.js.map +1 -1
  3. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenNotifier.js +1 -1
  4. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/auth/copilotTokenNotifier.js.map +1 -1
  5. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.js +3 -3
  6. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/experiments/defaultExpFilters.js.map +1 -1
  7. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js +1 -1
  8. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/ghostText.js.map +1 -1
  9. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js +2 -2
  10. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/completionsPromptFactory/componentsCompletionsPromptFactory.js.map +1 -1
  11. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.d.ts +2 -2
  12. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.d.ts.map +1 -1
  13. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.js +2 -2
  14. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/codeSnippets.js.map +1 -1
  15. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.d.ts +1 -1
  16. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.d.ts.map +1 -1
  17. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.js +1 -1
  18. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsContext.js.map +1 -1
  19. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.d.ts +1 -1
  20. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.d.ts.map +1 -1
  21. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.js +1 -1
  22. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/completionsPromptRenderer.js.map +1 -1
  23. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.d.ts +6 -6
  24. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.d.ts.map +1 -1
  25. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/currentFile.js +1 -1
  26. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.d.ts +2 -2
  27. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.d.ts.map +1 -1
  28. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.js +2 -2
  29. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/diagnostics.js.map +1 -1
  30. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.d.ts +2 -2
  31. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.d.ts.map +1 -1
  32. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.js +2 -2
  33. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/marker.js.map +1 -1
  34. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.d.ts +2 -2
  35. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.d.ts.map +1 -1
  36. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.js +2 -2
  37. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/recentEdits.js.map +1 -1
  38. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.d.ts +2 -2
  39. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.d.ts.map +1 -1
  40. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/similarFiles.js +1 -1
  41. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.d.ts +2 -2
  42. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.d.ts.map +1 -1
  43. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.js +2 -2
  44. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPrompt.js.map +1 -1
  45. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.d.ts +1 -1
  46. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.d.ts.map +1 -1
  47. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.js +1 -1
  48. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/splitContextPromptRenderer.js.map +1 -1
  49. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.d.ts +2 -2
  50. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.d.ts.map +1 -1
  51. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.js +2 -2
  52. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/prompt/components/traits.js.map +1 -1
  53. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-dev-runtime.d.ts +2 -0
  54. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-dev-runtime.d.ts.map +1 -0
  55. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-dev-runtime.js +14 -0
  56. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/jsx-runtime/jsx-dev-runtime.js.map +1 -0
  57. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.d.ts +48 -2
  58. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.d.ts.map +1 -1
  59. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.js +82 -5
  60. package/dist/src/_internal/extension/completions-core/vscode-node/prompt/src/tokenization/tokenizer.js.map +1 -1
  61. package/dist/src/_internal/extension/completions-core/vscode-node/types/src/auth.d.ts +1 -1
  62. package/dist/src/_internal/extension/conversation/common/languageModelAccess.d.ts +16 -7
  63. package/dist/src/_internal/extension/conversation/common/languageModelAccess.d.ts.map +1 -1
  64. package/dist/src/_internal/extension/conversation/common/languageModelAccess.js +44 -27
  65. package/dist/src/_internal/extension/conversation/common/languageModelAccess.js.map +1 -1
  66. package/dist/src/_internal/extension/inlineEdits/node/debugRecorder.d.ts +6 -0
  67. package/dist/src/_internal/extension/inlineEdits/node/debugRecorder.d.ts.map +1 -1
  68. package/dist/src/_internal/extension/inlineEdits/node/debugRecorder.js +77 -1
  69. package/dist/src/_internal/extension/inlineEdits/node/debugRecorder.js.map +1 -1
  70. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +9 -0
  71. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
  72. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +24 -7
  73. package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
  74. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +21 -3
  75. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
  76. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +32 -9
  77. package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
  78. package/dist/src/_internal/extension/xtab/node/{xtabCustomDiffPatchResponseHandler.d.ts → xtabPatchResponseHandler.d.ts} +24 -34
  79. package/dist/src/_internal/extension/xtab/node/xtabPatchResponseHandler.d.ts.map +1 -0
  80. package/dist/src/_internal/extension/xtab/node/{xtabCustomDiffPatchResponseHandler.js → xtabPatchResponseHandler.js} +117 -64
  81. package/dist/src/_internal/extension/xtab/node/xtabPatchResponseHandler.js.map +1 -0
  82. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +6 -1
  83. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  84. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +7 -6
  85. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  86. package/dist/src/_internal/platform/authentication/common/authentication.d.ts +15 -2
  87. package/dist/src/_internal/platform/authentication/common/authentication.d.ts.map +1 -1
  88. package/dist/src/_internal/platform/authentication/common/authentication.js +28 -17
  89. package/dist/src/_internal/platform/authentication/common/authentication.js.map +1 -1
  90. package/dist/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.js +1 -1
  91. package/dist/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.js.map +1 -1
  92. package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.js +1 -1
  93. package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.js.map +1 -1
  94. package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
  95. package/dist/src/_internal/platform/chat/common/commonTypes.js +11 -4
  96. package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
  97. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +5 -7
  98. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  99. package/dist/src/_internal/platform/configuration/common/configurationService.js +5 -7
  100. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  101. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +2 -4
  102. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  103. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +6 -15
  104. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  105. package/dist/src/_internal/platform/endpoint/common/domainService.d.ts +0 -1
  106. package/dist/src/_internal/platform/endpoint/common/domainService.d.ts.map +1 -1
  107. package/dist/src/_internal/platform/endpoint/common/domainService.js +1 -3
  108. package/dist/src/_internal/platform/endpoint/common/domainService.js.map +1 -1
  109. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +1 -0
  110. package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
  111. package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
  112. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -0
  113. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  114. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +3 -2
  115. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  116. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +1 -1
  117. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  118. package/dist/src/_internal/platform/git/common/utils.d.ts +20 -0
  119. package/dist/src/_internal/platform/git/common/utils.d.ts.map +1 -0
  120. package/dist/src/_internal/platform/git/common/utils.js +86 -0
  121. package/dist/src/_internal/platform/git/common/utils.js.map +1 -0
  122. package/dist/src/_internal/platform/github/common/githubService.d.ts +33 -0
  123. package/dist/src/_internal/platform/github/common/githubService.d.ts.map +1 -1
  124. package/dist/src/_internal/platform/github/common/githubService.js +29 -0
  125. package/dist/src/_internal/platform/github/common/githubService.js.map +1 -1
  126. package/dist/src/_internal/platform/github/common/nullOctokitServiceImpl.js +1 -1
  127. package/dist/src/_internal/platform/github/common/nullOctokitServiceImpl.js.map +1 -1
  128. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +3 -1
  129. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  130. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +7 -4
  131. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  132. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +14 -0
  133. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
  134. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +21 -0
  135. package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
  136. package/dist/src/_internal/platform/networking/common/anthropic.d.ts +4 -2
  137. package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
  138. package/dist/src/_internal/platform/networking/common/anthropic.js +11 -4
  139. package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
  140. package/dist/src/_internal/platform/networking/common/networking.d.ts +4 -1
  141. package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
  142. package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
  143. package/dist/src/_internal/platform/networking/common/openai.d.ts +5 -0
  144. package/dist/src/_internal/platform/networking/common/openai.d.ts.map +1 -1
  145. package/dist/src/_internal/platform/networking/common/openai.js +8 -0
  146. package/dist/src/_internal/platform/networking/common/openai.js.map +1 -1
  147. package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts +2 -0
  148. package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts.map +1 -1
  149. package/dist/src/_internal/platform/otel/common/genAiAttributes.js +2 -0
  150. package/dist/src/_internal/platform/otel/common/genAiAttributes.js.map +1 -1
  151. package/dist/src/_internal/platform/otel/common/genAiMetrics.d.ts +10 -2
  152. package/dist/src/_internal/platform/otel/common/genAiMetrics.d.ts.map +1 -1
  153. package/dist/src/_internal/platform/otel/common/genAiMetrics.js +30 -3
  154. package/dist/src/_internal/platform/otel/common/genAiMetrics.js.map +1 -1
  155. package/dist/src/main.d.ts +21 -0
  156. package/dist/src/main.d.ts.map +1 -1
  157. package/dist/src/main.js +9 -2
  158. package/dist/src/main.js.map +1 -1
  159. package/dist/src/package.json +77 -83
  160. package/package.json +3 -3
  161. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +0 -1
  162. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +0 -1
@@ -1,9 +1,8 @@
1
+ import { Raw } from '@vscode/prompt-tsx';
1
2
  import { IConfigurationService } from '../../../platform/configuration/common/configurationService';
2
3
  import { IEndpointProvider } from '../../../platform/endpoint/common/endpointProvider';
3
4
  import { NextCursorLinePrediction } from '../../../platform/inlineEdits/common/dataTypes/nextCursorLinePrediction';
4
- import { StatelessNextEditTelemetryBuilder } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
5
5
  import { ILanguageDiagnosticsService } from '../../../platform/languages/common/languageDiagnosticsService';
6
- import { ILogger } from '../../../platform/log/common/logService';
7
6
  import { IProxyModelsService } from '../../../platform/proxyModels/common/proxyModelsService';
8
7
  import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
9
8
  import { Result } from '../../../util/common/result';
@@ -11,6 +10,7 @@ import { CancellationToken } from '../../../util/vs/base/common/cancellation';
11
10
  import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
12
11
  import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
13
12
  import { PromptPieces } from '../common/promptCrafting';
13
+ import type { RequestTracingContext } from './xtabProvider';
14
14
  export type CursorJumpPrediction = {
15
15
  readonly kind: 'sameFile';
16
16
  readonly lineNumber: number;
@@ -19,6 +19,13 @@ export type CursorJumpPrediction = {
19
19
  readonly filePath: string;
20
20
  readonly lineNumber: number;
21
21
  };
22
+ /**
23
+ * System prompt used for the cursor-jump (next-cursor-line) prediction model.
24
+ * Kept as an exported constant so that training-data generation can mirror it
25
+ * verbatim — drift between this string and the datagen prompt would corrupt
26
+ * the training distribution.
27
+ */
28
+ export declare const NEXT_CURSOR_PREDICTION_SYSTEM_MESSAGE = "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.";
22
29
  export declare class XtabNextCursorPredictor {
23
30
  private readonly computeTokens;
24
31
  private readonly instaService;
@@ -30,7 +37,18 @@ export declare class XtabNextCursorPredictor {
30
37
  private isDisabled;
31
38
  constructor(computeTokens: (text: string) => number, instaService: IInstantiationService, configService: IConfigurationService, expService: IExperimentationService, langDiagService: ILanguageDiagnosticsService, endpointProvider: IEndpointProvider, proxyModelsService: IProxyModelsService);
32
39
  determineEnablement(supportsNextCursorLinePrediction?: boolean): NextCursorLinePrediction | undefined;
33
- predictNextCursorPosition(promptPieces: PromptPieces, parentTracer: ILogger, telemetryBuilder: StatelessNextEditTelemetryBuilder | undefined, cancellationToken: CancellationToken): Promise<Result<CursorJumpPrediction, Error>>;
40
+ /**
41
+ * Build the chat messages and `keptRange` for the cursor-prediction prompt
42
+ * without making any network call. Extracted from {@link predictNextCursorPosition}
43
+ * so that test/datagen tooling can capture the exact production prompt
44
+ * (and the kept-line range used to validate the assistant's response)
45
+ * without spinning up a mock endpoint.
46
+ */
47
+ buildCursorPredictionPrompt(promptPieces: PromptPieces): Result<{
48
+ messages: Raw.ChatMessage[];
49
+ keptRange: OffsetRange;
50
+ }, Error>;
51
+ predictNextCursorPosition(promptPieces: PromptPieces, tracing: RequestTracingContext, cancellationToken: CancellationToken): Promise<Result<CursorJumpPrediction, Error>>;
34
52
  private resolveEndpoint;
35
53
  private determineModelName;
36
54
  private determineLintOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"xtabNextCursorPredictor.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabNextCursorPredictor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAa,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AAGnH,OAAO,EAAE,iCAAiC,EAAE,MAAM,gEAAgE,CAAC;AACnH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+DAA+D,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AAGxG,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAErG,OAAO,EAAsC,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG5F,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAI9F,qBAAa,uBAAuB;IAKlC,OAAO,CAAC,QAAQ,CAAC,aAAa;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATzD,OAAO,CAAC,UAAU,CAAU;gBAGV,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAChB,YAAY,EAAE,qBAAqB,EACnC,aAAa,EAAE,qBAAqB,EAClC,UAAU,EAAE,uBAAuB,EAC/B,eAAe,EAAE,2BAA2B,EACtD,gBAAgB,EAAE,iBAAiB,EACjC,kBAAkB,EAAE,mBAAmB;IAKvE,mBAAmB,CAAC,gCAAgC,CAAC,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS;IA+B/F,yBAAyB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,iCAAiC,GAAG,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAsIhO,eAAe;IA2C7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,oBAAoB;IAcrB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC;IA8BtG,OAAO,CAAC,uBAAuB;CAS/B"}
1
+ {"version":3,"file":"xtabNextCursorPredictor.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabNextCursorPredictor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC,OAAO,EAAa,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yEAAyE,CAAC;AAGnH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+DAA+D,CAAC;AAI5G,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AAGxG,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAErG,OAAO,EAAsC,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG5D,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAI9F;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC,wcAAwc,CAAC;AAE3f,qBAAa,uBAAuB;IAKlC,OAAO,CAAC,QAAQ,CAAC,aAAa;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATzD,OAAO,CAAC,UAAU,CAAU;gBAGV,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAChB,YAAY,EAAE,qBAAqB,EACnC,aAAa,EAAE,qBAAqB,EAClC,UAAU,EAAE,uBAAuB,EAC/B,eAAe,EAAE,2BAA2B,EACtD,gBAAgB,EAAE,iBAAiB,EACjC,kBAAkB,EAAE,mBAAmB;IAKvE,mBAAmB,CAAC,gCAAgC,CAAC,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS;IA+B5G;;;;;;OAMG;IACI,2BAA2B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;QAAC,SAAS,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,CAAC;IAgFzH,yBAAyB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAkExK,eAAe;IA2C7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,oBAAoB;IAcrB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC;IA8BtG,OAAO,CAAC,uBAAuB;CAS/B"}
@@ -46,7 +46,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
46
46
  return function (target, key) { decorator(target, key, paramIndex); }
47
47
  };
48
48
  Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.XtabNextCursorPredictor = void 0;
49
+ exports.XtabNextCursorPredictor = exports.NEXT_CURSOR_PREDICTION_SYSTEM_MESSAGE = 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");
@@ -68,6 +68,13 @@ const lintErrors_1 = require("../common/lintErrors");
68
68
  const promptCrafting_1 = require("../common/promptCrafting");
69
69
  const xtabUtils_1 = require("./xtabUtils");
70
70
  const DEFAULT_CURSOR_JUMP_MODEL_NAME = 'copilot-suggestions-himalia-001';
71
+ /**
72
+ * System prompt used for the cursor-jump (next-cursor-line) prediction model.
73
+ * Kept as an exported constant so that training-data generation can mirror it
74
+ * verbatim — drift between this string and the datagen prompt would corrupt
75
+ * the training distribution.
76
+ */
77
+ exports.NEXT_CURSOR_PREDICTION_SYSTEM_MESSAGE = `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.`;
71
78
  let XtabNextCursorPredictor = class XtabNextCursorPredictor {
72
79
  constructor(computeTokens, instaService, configService, expService, langDiagService, endpointProvider, proxyModelsService) {
73
80
  this.computeTokens = computeTokens;
@@ -102,9 +109,15 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
102
109
  (0, assert_1.assertNever)(originalNextCursorLinePrediction);
103
110
  }
104
111
  }
105
- async predictNextCursorPosition(promptPieces, parentTracer, telemetryBuilder, cancellationToken) {
106
- const tracer = parentTracer.createSubLogger('predictNextCursorPosition');
107
- 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.`;
112
+ /**
113
+ * Build the chat messages and `keptRange` for the cursor-prediction prompt
114
+ * without making any network call. Extracted from {@link predictNextCursorPosition}
115
+ * so that test/datagen tooling can capture the exact production prompt
116
+ * (and the kept-line range used to validate the assistant's response)
117
+ * without spinning up a mock endpoint.
118
+ */
119
+ buildCursorPredictionPrompt(promptPieces) {
120
+ const systemMessage = exports.NEXT_CURSOR_PREDICTION_SYSTEM_MESSAGE;
108
121
  const maxTokens = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.Advanced.InlineEditsNextCursorPredictionCurrentFileMaxTokens, this.expService);
109
122
  const currentFileContentR = (0, promptCrafting_1.constructTaggedFile)(promptPieces.currentDocument, promptPieces.editWindowLinesRange, promptPieces.areaAroundEditWindowLinesRange, {
110
123
  ...promptPieces.opts,
@@ -120,7 +133,6 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
120
133
  }
121
134
  });
122
135
  if (currentFileContentR.isError()) {
123
- tracer.trace(`Failed to construct tagged file: ${currentFileContentR.err}`);
124
136
  return result_1.Result.fromString(currentFileContentR.err);
125
137
  }
126
138
  const { clippedTaggedCurrentDoc, areaAroundCodeToEdit } = currentFileContentR.val;
@@ -147,9 +159,20 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
147
159
  systemMsg: systemMessage,
148
160
  userMsg: userMessage
149
161
  });
150
- telemetryBuilder?.setCursorJumpPrompt(messages);
162
+ return result_1.Result.ok({ messages, keptRange: clippedTaggedCurrentDoc.keptRange });
163
+ }
164
+ async predictNextCursorPosition(promptPieces, tracing, cancellationToken) {
165
+ const tracer = tracing.tracer.createSubLogger('predictNextCursorPosition');
166
+ const promptR = this.buildCursorPredictionPrompt(promptPieces);
167
+ if (promptR.isError()) {
168
+ tracer.trace(`Failed to construct tagged file: ${promptR.err.message}`);
169
+ return result_1.Result.fromString(promptR.err.message);
170
+ }
171
+ const { messages, keptRange } = promptR.val;
172
+ tracing.telemetry.setCursorJumpPrompt(messages);
173
+ tracing.logContext.setCursorJumpPrompt(messages, keptRange);
151
174
  const modelName = this.determineModelName();
152
- telemetryBuilder?.setCursorJumpModelName(modelName);
175
+ tracing.telemetry.setCursorJumpModelName(modelName);
153
176
  const resolvedEndpoint = await this.resolveEndpoint(modelName, tracer);
154
177
  if (!resolvedEndpoint) {
155
178
  return result_1.Result.fromString('endpointNotResolved');
@@ -180,9 +203,9 @@ let XtabNextCursorPredictor = class XtabNextCursorPredictor {
180
203
  return result_1.Result.fromString(`fetchError:${response.type}`);
181
204
  }
182
205
  try {
183
- telemetryBuilder?.setCursorJumpResponse(response.value);
206
+ tracing.telemetry.setCursorJumpResponse(response.value);
184
207
  const trimmed = response.value.trim();
185
- return this.parseResponse(trimmed, clippedTaggedCurrentDoc.keptRange);
208
+ return this.parseResponse(trimmed, keptRange);
186
209
  }
187
210
  catch (err) {
188
211
  tracer.trace(`Failed to parse predicted line number from response '${response.value}': ${err}`);
@@ -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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"}
@@ -7,7 +7,6 @@ import { LineReplacement } from '../../../util/vs/editor/common/core/edits/lineE
7
7
  import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
8
8
  import { AbstractText } from '../../../util/vs/editor/common/core/text/abstractText';
9
9
  import { CurrentDocument } from '../common/xtabCurrentDocument';
10
- export { DuplicateAdditionsMode };
11
10
  declare class Patch {
12
11
  /**
13
12
  * Expected to be file path relative to workspace root.
@@ -18,6 +17,11 @@ declare class Patch {
18
17
  addedLines: string[];
19
18
  private constructor();
20
19
  static ofLine(line: string): Patch | null;
20
+ /**
21
+ * Creates a pure-insertion patch (no removed lines) at the given line.
22
+ * Used for the continuation portion of a ghost-text progressive reveal.
23
+ */
24
+ static insertion(filePath: string, lineNumZeroBased: number): Patch;
21
25
  addLine(line: string): boolean;
22
26
  toString(): string;
23
27
  }
@@ -38,33 +42,6 @@ export interface DuplicateAdditionRemoval {
38
42
  readonly newAdditions: string[];
39
43
  readonly removedLines: readonly string[];
40
44
  }
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
45
  /**
69
46
  * Checks whether the patch's added lines duplicate the file content immediately
70
47
  * following the deleted range, and if so, trims the duplicated lines.
@@ -105,10 +82,23 @@ export type OnDuplicateRemovedCallback = (info: {
105
82
  * `undefined` if no duplication was detected.
106
83
  */
107
84
  export declare function tryRemoveDuplicateAdditions(replacement: LineReplacement, currentText: AbstractText): DuplicateAdditionRemoval | undefined;
108
- export declare class XtabCustomDiffPatchResponseHandler {
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>;
110
- private static resolveEdit;
111
- private static resolveTargetDocument;
112
- static extractEdits(linesStream: AsyncIterable<string>): AsyncGenerator<Patch>;
85
+ export declare namespace XtabPatchResponseHandler {
86
+ function handleResponse(linesStream: AsyncIterable<string>, currentDocument: CurrentDocument, activeDocumentId: DocumentId, workspaceRoot: URI | undefined, window: OffsetRange | undefined, parentTracer: ILogger, duplicateAdditionsMode?: DuplicateAdditionsMode, enableProgressiveGhostText?: boolean): AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
87
+ /**
88
+ * Checks whether the first patch qualifies for ghost-text progressive reveal.
89
+ * A patch qualifies if it has exactly one removed line, at least one added line,
90
+ * targets the cursor line in the active document, and the edit on the first
91
+ * line is additive (the removed line is a subsequence of the first added line).
92
+ */
93
+ function isGhostTextPatch(patch: Patch, cursorLineZeroBased: number, activeDocRelativePath: string): boolean;
94
+ /**
95
+ * @param cursorLineZeroBased When provided (along with activeDocRelativePath),
96
+ * enables ghost-text progressive reveal for the first patch: if the first patch
97
+ * is a ghost-text (single removed line at the cursor that is additively edited),
98
+ * the cursor-line replacement is yielded immediately and any further added lines
99
+ * are collected into a separate pure-insertion patch.
100
+ */
101
+ function extractEdits(linesStream: AsyncIterable<string>, cursorLineZeroBased?: number, activeDocRelativePath?: string): AsyncGenerator<Patch>;
113
102
  }
114
- //# sourceMappingURL=xtabCustomDiffPatchResponseHandler.d.ts.map
103
+ export {};
104
+ //# sourceMappingURL=xtabPatchResponseHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xtabPatchResponseHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabPatchResponseHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,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,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;;;OAGG;WACW,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,KAAK;IAI1E,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAavB,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;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,2BAA2B,CAC1C,WAAW,EAAE,eAAe,EAC5B,WAAW,EAAE,YAAY,GACvB,wBAAwB,GAAG,SAAS,CA+EtC;AAyDD,yBAAiB,wBAAwB,CAAC;IAEzC,SAAuB,cAAc,CACpC,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,0BAA0B,GAAE,OAAe,GACzC,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAwDtD;IAiBD;;;;;OAKG;IACH,SAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAMlH;IAED;;;;;;OAMG;IACH,SAAuB,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CA6C3J;CACD"}
@@ -4,11 +4,11 @@
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 = exports.DuplicateAdditionsMode = void 0;
7
+ exports.XtabPatchResponseHandler = void 0;
8
8
  exports.tryRemoveDuplicateAdditions = tryRemoveDuplicateAdditions;
9
9
  const documentId_1 = require("../../../platform/inlineEdits/common/dataTypes/documentId");
10
10
  const xtabPromptOptions_1 = require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions");
11
- Object.defineProperty(exports, "DuplicateAdditionsMode", { enumerable: true, get: function () { return xtabPromptOptions_1.DuplicateAdditionsMode; } });
11
+ const responseProcessor_1 = require("../../../platform/inlineEdits/common/responseProcessor");
12
12
  const statelessNextEditProvider_1 = require("../../../platform/inlineEdits/common/statelessNextEditProvider");
13
13
  const errors_1 = require("../../../util/common/errors");
14
14
  const arrays_1 = require("../../../util/vs/base/common/arrays");
@@ -38,19 +38,24 @@ class Patch {
38
38
  const [, filename, lineNumber] = match;
39
39
  return new Patch(filename, parseInt(lineNumber, 10));
40
40
  }
41
+ /**
42
+ * Creates a pure-insertion patch (no removed lines) at the given line.
43
+ * Used for the continuation portion of a ghost-text progressive reveal.
44
+ */
45
+ static insertion(filePath, lineNumZeroBased) {
46
+ return new Patch(filePath, lineNumZeroBased);
47
+ }
41
48
  addLine(line) {
42
49
  const contentLine = line.slice(1);
43
50
  if (line.startsWith('-')) {
44
51
  this.removedLines.push(contentLine);
45
52
  return true;
46
53
  }
47
- else if (line.startsWith('+')) {
54
+ if (line.startsWith('+')) {
48
55
  this.addedLines.push(contentLine);
49
56
  return true;
50
57
  }
51
- else {
52
- return false;
53
- }
58
+ return false;
54
59
  }
55
60
  toString() {
56
61
  return [
@@ -178,67 +183,74 @@ function tryRemoveDuplicateAdditions(replacement, currentText) {
178
183
  }
179
184
  return undefined;
180
185
  }
181
- class XtabCustomDiffPatchResponseHandler {
182
- static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer, duplicateAdditionsMode = xtabPromptOptions_1.DuplicateAdditionsMode.Off, onDuplicateRemoved) {
186
+ /**
187
+ * Runs duplicate-addition detection on `lineReplacement` and applies the
188
+ * configured `mode` policy, returning an `EditDecision` for the caller to act on.
189
+ *
190
+ * Logs only telemetry-safe metadata (no raw line content) via `tracer` and
191
+ * fires `onDuplicateRemoved` for every detected duplicate regardless of mode.
192
+ */
193
+ function applyDuplicatePolicy(edit, lineReplacement, content, mode, tracer) {
194
+ const removal = tryRemoveDuplicateAdditions(lineReplacement, content);
195
+ if (removal === undefined) {
196
+ return { kind: 'emit', lineReplacement };
197
+ }
198
+ // Log only metadata (kind / counts / location) — do NOT include raw line
199
+ // content. The tracer output may end up in user-visible diagnostics.
200
+ tracer.trace(`Detected duplicate addition(s) (kind=${removal.kind}, count=${removal.removedLines.length}, mode=${mode}) for edit at ${edit.filePath}:${edit.lineNumZeroBased}`);
201
+ switch (mode) {
202
+ case xtabPromptOptions_1.DuplicateAdditionsMode.DropPatch:
203
+ return { kind: 'skip' };
204
+ case xtabPromptOptions_1.DuplicateAdditionsMode.DropAllRemaining:
205
+ // Drop this patch and skip every subsequent patch in the stream.
206
+ // We still consume the stream to completion so the underlying
207
+ // fetch is allowed to finalize cleanly.
208
+ return { kind: 'skipAndStop' };
209
+ case xtabPromptOptions_1.DuplicateAdditionsMode.TrimDuplicate: {
210
+ const newLines = removal.newAdditions;
211
+ if (newLines.length === 0 && lineReplacement.lineRange.length === 0) {
212
+ // Trim left a no-op patch — drop it.
213
+ return { kind: 'skip' };
214
+ }
215
+ return { kind: 'emit', lineReplacement: new lineEdit_1.LineReplacement(lineReplacement.lineRange, newLines) };
216
+ }
217
+ }
218
+ }
219
+ var XtabPatchResponseHandler;
220
+ (function (XtabPatchResponseHandler) {
221
+ async function* handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer, duplicateAdditionsMode = xtabPromptOptions_1.DuplicateAdditionsMode.Off, enableProgressiveGhostText = false) {
183
222
  const tracer = parentTracer.createSubLogger(['XtabCustomDiffPatchResponseHandler', 'handleResponse']);
184
223
  const activeDocRelativePath = (0, promptCraftingUtils_1.toUniquePath)(activeDocumentId, workspaceRoot?.path);
185
224
  try {
186
225
  let dropAllRemaining = false;
187
- for await (const edit of XtabCustomDiffPatchResponseHandler.extractEdits(linesStream)) {
226
+ const cursorLine = enableProgressiveGhostText ? currentDocument.cursorLineOffset : undefined;
227
+ const progressiveDocPath = enableProgressiveGhostText ? activeDocRelativePath : undefined;
228
+ for await (const edit of extractEdits(linesStream, cursorLine, progressiveDocPath)) {
188
229
  if (dropAllRemaining) {
189
230
  continue;
190
231
  }
191
232
  const isActiveDoc = edit.filePath === activeDocRelativePath;
192
233
  const targetDocument = isActiveDoc
193
234
  ? activeDocumentId
194
- : XtabCustomDiffPatchResponseHandler.resolveTargetDocument(edit.filePath, workspaceRoot);
235
+ : resolveTargetDocument(edit.filePath, workspaceRoot);
195
236
  if (!targetDocument) {
196
237
  tracer.error(`Could not resolve target document for edit: ${edit.toString()}`);
197
238
  continue;
198
239
  }
199
- let lineReplacement = XtabCustomDiffPatchResponseHandler.resolveEdit(edit);
240
+ let lineReplacement = resolveEdit(edit);
200
241
  // Only attempt dedup for the active document — other files'
201
242
  // content is not directly available here.
202
243
  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
- }
244
+ const decision = applyDuplicatePolicy(edit, lineReplacement, currentDocument.content, duplicateAdditionsMode, tracer);
245
+ switch (decision.kind) {
246
+ case 'skip':
247
+ continue;
248
+ case 'skipAndStop':
249
+ dropAllRemaining = true;
250
+ continue;
251
+ case 'emit':
252
+ lineReplacement = decision.lineReplacement;
253
+ break;
242
254
  }
243
255
  }
244
256
  yield {
@@ -258,10 +270,11 @@ class XtabCustomDiffPatchResponseHandler {
258
270
  }
259
271
  return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(currentDocument.content, window, undefined);
260
272
  }
261
- static resolveEdit(patch) {
273
+ XtabPatchResponseHandler.handleResponse = handleResponse;
274
+ function resolveEdit(patch) {
262
275
  return new lineEdit_1.LineReplacement(new lineRange_1.LineRange(patch.lineNumZeroBased + 1, patch.lineNumZeroBased + 1 + patch.removedLines.length), patch.addedLines);
263
276
  }
264
- static resolveTargetDocument(filePath, workspaceRoot) {
277
+ function resolveTargetDocument(filePath, workspaceRoot) {
265
278
  if ((0, path_1.isAbsolute)(filePath)) {
266
279
  return documentId_1.DocumentId.create(uri_1.URI.file(filePath).toString());
267
280
  }
@@ -271,10 +284,33 @@ class XtabCustomDiffPatchResponseHandler {
271
284
  // Relative path with no workspace root — cannot resolve to a valid URI
272
285
  return undefined;
273
286
  }
274
- static async *extractEdits(linesStream) {
287
+ /**
288
+ * Checks whether the first patch qualifies for ghost-text progressive reveal.
289
+ * A patch qualifies if it has exactly one removed line, at least one added line,
290
+ * targets the cursor line in the active document, and the edit on the first
291
+ * line is additive (the removed line is a subsequence of the first added line).
292
+ */
293
+ function isGhostTextPatch(patch, cursorLineZeroBased, activeDocRelativePath) {
294
+ return patch.removedLines.length === 1
295
+ && patch.addedLines.length >= 1
296
+ && patch.lineNumZeroBased === cursorLineZeroBased
297
+ && patch.filePath === activeDocRelativePath
298
+ && responseProcessor_1.ResponseProcessor.isAdditiveEdit(patch.removedLines[0], patch.addedLines[0]);
299
+ }
300
+ XtabPatchResponseHandler.isGhostTextPatch = isGhostTextPatch;
301
+ /**
302
+ * @param cursorLineZeroBased When provided (along with activeDocRelativePath),
303
+ * enables ghost-text progressive reveal for the first patch: if the first patch
304
+ * is a ghost-text (single removed line at the cursor that is additively edited),
305
+ * the cursor-line replacement is yielded immediately and any further added lines
306
+ * are collected into a separate pure-insertion patch.
307
+ */
308
+ async function* extractEdits(linesStream, cursorLineZeroBased, activeDocRelativePath) {
275
309
  let currentPatch = null;
310
+ let isFirstPatch = true;
311
+ // Tracks whether we've already attempted progressive reveal (succeeds or fails only once).
312
+ let progressiveRevealDone = false;
276
313
  for await (const line of linesStream) {
277
- // if no current patch, try to parse a new one
278
314
  if (line.trim() === tags_1.ResponseTags.NO_EDIT) {
279
315
  break;
280
316
  }
@@ -282,21 +318,38 @@ class XtabCustomDiffPatchResponseHandler {
282
318
  currentPatch = Patch.ofLine(line);
283
319
  continue;
284
320
  }
285
- // try to add line to current patch
286
321
  if (currentPatch.addLine(line)) {
322
+ // For the first patch, check if we can do progressive reveal:
323
+ // once we have the `-` line and first `+` line, check ghost-text.
324
+ if (isFirstPatch && !progressiveRevealDone
325
+ && cursorLineZeroBased !== undefined
326
+ && activeDocRelativePath !== undefined
327
+ && currentPatch.addedLines.length === 1
328
+ && currentPatch.removedLines.length >= 1) {
329
+ if (isGhostTextPatch(currentPatch, cursorLineZeroBased, activeDocRelativePath)) {
330
+ // Yield the cursor-line replacement immediately
331
+ const earlyPatch = Patch.insertion(currentPatch.filePath, currentPatch.lineNumZeroBased);
332
+ earlyPatch.removedLines = [...currentPatch.removedLines];
333
+ earlyPatch.addedLines = [...currentPatch.addedLines];
334
+ yield earlyPatch;
335
+ // Replace currentPatch with a continuation pure-insertion patch
336
+ currentPatch = Patch.insertion(currentPatch.filePath, currentPatch.lineNumZeroBased + 1);
337
+ }
338
+ progressiveRevealDone = true;
339
+ }
287
340
  continue;
288
341
  }
289
- else { // line does not belong to current patch, yield current and start new
290
- if (currentPatch) {
291
- yield currentPatch;
292
- }
293
- currentPatch = Patch.ofLine(line);
342
+ // line does not belong to current patch, yield current and start new
343
+ if (currentPatch.removedLines.length > 0 || currentPatch.addedLines.length > 0) {
344
+ yield currentPatch;
294
345
  }
346
+ currentPatch = Patch.ofLine(line);
347
+ isFirstPatch = false;
295
348
  }
296
- if (currentPatch) {
349
+ if (currentPatch && (currentPatch.removedLines.length > 0 || currentPatch.addedLines.length > 0)) {
297
350
  yield currentPatch;
298
351
  }
299
352
  }
300
- }
301
- exports.XtabCustomDiffPatchResponseHandler = XtabCustomDiffPatchResponseHandler;
302
- //# sourceMappingURL=xtabCustomDiffPatchResponseHandler.js.map
353
+ XtabPatchResponseHandler.extractEdits = extractEdits;
354
+ })(XtabPatchResponseHandler || (exports.XtabPatchResponseHandler = XtabPatchResponseHandler = {}));
355
+ //# sourceMappingURL=xtabPatchResponseHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xtabPatchResponseHandler.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabPatchResponseHandler.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import * as xtabPromptOptions from '../../../platform/inlineEdits/common/dataTyp
7
7
  import { LanguageContextLanguages, LanguageContextOptions } from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions';
8
8
  import { InlineEditRequestLogContext } from '../../../platform/inlineEdits/common/inlineEditLogContext';
9
9
  import { IInlineEditsModelService } from '../../../platform/inlineEdits/common/inlineEditsModelService';
10
- import { EditStreamingWithTelemetry, IStatelessNextEditProvider, NoNextEditReason, StatelessNextEditDocument, StatelessNextEditRequest } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
10
+ import { EditStreamingWithTelemetry, IStatelessNextEditProvider, NoNextEditReason, StatelessNextEditDocument, StatelessNextEditRequest, StatelessNextEditTelemetryBuilder } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
11
11
  import { ILanguageContextProviderService } from '../../../platform/languageContextProvider/common/languageContextProviderService';
12
12
  import { ILanguageDiagnosticsService } from '../../../platform/languages/common/languageDiagnosticsService';
13
13
  import { ILogger } from '../../../platform/log/common/logService';
@@ -23,6 +23,11 @@ import { CurrentDocument } from '../common/xtabCurrentDocument';
23
23
  export interface ModelConfig extends xtabPromptOptions.PromptOptions {
24
24
  modelName: string | undefined;
25
25
  }
26
+ export interface RequestTracingContext {
27
+ tracer: ILogger;
28
+ logContext: InlineEditRequestLogContext;
29
+ telemetry: StatelessNextEditTelemetryBuilder;
30
+ }
26
31
  export declare class XtabProvider implements IStatelessNextEditProvider {
27
32
  private readonly modelService;
28
33
  private readonly simulationCtx;
@@ -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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"}