@vscode/chat-lib 0.43.2026040706-0 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/src/_internal/extension/common/constants.d.ts +1 -2
  2. package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/common/constants.js +0 -3
  4. package/dist/src/_internal/extension/common/constants.js.map +1 -1
  5. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
  6. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +13 -20
  7. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
  8. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  9. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +11 -17
  10. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  11. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -1
  12. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +0 -2
  13. package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
  14. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts +9 -12
  15. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.d.ts.map +1 -1
  16. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js +26 -26
  17. package/dist/src/_internal/extension/xtab/node/cursorLineDivergence.js.map +1 -1
  18. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts +2 -2
  19. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.d.ts.map +1 -1
  20. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js +31 -6
  21. package/dist/src/_internal/extension/xtab/node/responseFormatHandlers.js.map +1 -1
  22. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +1 -1
  23. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
  24. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +5 -5
  25. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
  26. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  27. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +131 -157
  28. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  29. package/dist/src/_internal/platform/chat/common/chatMLFetcher.d.ts +0 -1
  30. package/dist/src/_internal/platform/chat/common/chatMLFetcher.d.ts.map +1 -1
  31. package/dist/src/_internal/platform/chat/common/chatMLFetcher.js +0 -4
  32. package/dist/src/_internal/platform/chat/common/chatMLFetcher.js.map +1 -1
  33. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +10 -14
  34. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  35. package/dist/src/_internal/platform/configuration/common/configurationService.js +13 -17
  36. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  37. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +3 -3
  38. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
  39. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +12 -15
  40. package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
  41. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -11
  42. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
  43. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +58 -28
  44. package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
  45. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +12 -4
  46. package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
  47. package/dist/src/_internal/platform/endpoint/node/messagesApi.js +152 -13
  48. package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
  49. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +1 -4
  50. package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
  51. package/dist/src/_internal/platform/endpoint/node/responsesApi.js +31 -70
  52. package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
  53. package/dist/src/_internal/platform/git/common/gitService.d.ts +9 -2
  54. package/dist/src/_internal/platform/git/common/gitService.d.ts.map +1 -1
  55. package/dist/src/_internal/platform/git/common/gitService.js.map +1 -1
  56. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +0 -15
  57. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  58. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +1 -17
  59. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  60. package/dist/src/_internal/platform/networking/common/anthropic.d.ts +42 -0
  61. package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
  62. package/dist/src/_internal/platform/networking/common/anthropic.js +30 -1
  63. package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
  64. package/dist/src/_internal/platform/networking/common/fetch.d.ts +12 -0
  65. package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
  66. package/dist/src/_internal/platform/networking/common/fetch.js +1 -5
  67. package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
  68. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +0 -1
  69. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
  70. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +3 -3
  71. package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -1
  72. package/dist/src/_internal/platform/otel/common/genAiEvents.d.ts.map +1 -1
  73. package/dist/src/_internal/platform/otel/common/genAiEvents.js +2 -10
  74. package/dist/src/_internal/platform/otel/common/genAiEvents.js.map +1 -1
  75. package/dist/src/_internal/platform/otel/common/index.d.ts +1 -1
  76. package/dist/src/_internal/platform/otel/common/index.d.ts.map +1 -1
  77. package/dist/src/_internal/platform/otel/common/index.js +1 -2
  78. package/dist/src/_internal/platform/otel/common/index.js.map +1 -1
  79. package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts +1 -13
  80. package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts.map +1 -1
  81. package/dist/src/_internal/platform/otel/common/messageFormatters.js +0 -98
  82. package/dist/src/_internal/platform/otel/common/messageFormatters.js.map +1 -1
  83. package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts +1 -0
  84. package/dist/src/_internal/platform/requestLogger/common/requestLogger.d.ts.map +1 -1
  85. package/dist/src/_internal/platform/requestLogger/common/requestLogger.js.map +1 -1
  86. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +3 -2
  87. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
  88. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js +3 -1
  89. package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
  90. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +1 -0
  91. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
  92. package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
  93. package/dist/src/package.json +59 -90
  94. package/package.json +2 -1
  95. package/dist/src/_internal/extension/xtab/common/fetchStreamError.d.ts +0 -10
  96. package/dist/src/_internal/extension/xtab/common/fetchStreamError.d.ts.map +0 -1
  97. package/dist/src/_internal/extension/xtab/common/fetchStreamError.js +0 -19
  98. package/dist/src/_internal/extension/xtab/common/fetchStreamError.js.map +0 -1
  99. package/dist/src/_internal/platform/endpoint/node/imageLimits.d.ts +0 -14
  100. package/dist/src/_internal/platform/endpoint/node/imageLimits.d.ts.map +0 -1
  101. package/dist/src/_internal/platform/endpoint/node/imageLimits.js +0 -156
  102. package/dist/src/_internal/platform/endpoint/node/imageLimits.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"responseFormatHandlers.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,KAAK,iBAAiB,MAAM,kEAAkE,CAAC;AACtG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,uDAAuD,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAA6B,MAAM,cAAc,CAAC;AAO9E,yBAAiB,mBAAmB,CAAC;IAEpC,UAAiB,kBAAkB;QAClC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC7B;IAED;;OAEG;IACH,MAAa,eAAe;QAE1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;QACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;oBADvC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC5B,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;KAEjD;IAED;;OAEG;IACH,MAAa,IAAI;QACJ,QAAQ,CAAC,MAAM,EAAE,gBAAgB;oBAAxB,MAAM,EAAE,gBAAgB;KAC7C;IAED;;;OAGG;IACH,MAAa,WAAW;QACX,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;oBAA5D,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;KACjF;IAED,KAAY,CAAC,GAAG,eAAe,GAAG,IAAI,GAAG,WAAW,CAAC;CACrD;AAMD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAE5G;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAEvG;AAMD,wBAAsB,8BAA8B,CACnD,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,mBAAmB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAOzE;AAMD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC;AAED,wBAAsB,oBAAoB,CACzC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,GAAG,EAAE,uBAAuB,EAC5B,mBAAmB,EAAE,UAAU,EAC/B,MAAM,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAgChC"}
1
+ {"version":3,"file":"responseFormatHandlers.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,KAAK,iBAAiB,MAAM,kEAAkE,CAAC;AACtG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,uDAAuD,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAA6B,MAAM,cAAc,CAAC;AAO9E,yBAAiB,mBAAmB,CAAC;IAEpC,UAAiB,kBAAkB;QAClC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC7B;IAED;;OAEG;IACH,MAAa,eAAe;QAE1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;QACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;oBADvC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAC5B,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;KAEjD;IAED;;OAEG;IACH,MAAa,IAAI;QACJ,QAAQ,CAAC,MAAM,EAAE,gBAAgB;oBAAxB,MAAM,EAAE,gBAAgB;KAC7C;IAED;;;OAGG;IACH,MAAa,WAAW;QACX,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;oBAA5D,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;KACjF;IAED,KAAY,CAAC,GAAG,eAAe,GAAG,IAAI,GAAG,WAAW,CAAC;CACrD;AAMD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAE5G;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAEvG;AAMD,wBAAsB,8BAA8B,CACnD,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,mBAAmB,EAC9B,eAAe,EAAE,MAAM,gBAAgB,GAAG,SAAS,GACjD,OAAO,CAAC,mBAAmB,CAAC,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAYzE;AAMD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC;AAED,wBAAsB,oBAAoB,CACzC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,GAAG,EAAE,uBAAuB,EAC5B,mBAAmB,EAAE,UAAU,EAC/B,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,MAAM,gBAAgB,GAAG,SAAS,GACjD,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAuChC"}
@@ -65,13 +65,23 @@ function handleCodeBlock(linesStream) {
65
65
  // ============================================================================
66
66
  // Handler: EditWindowWithEditIntent / EditWindowWithEditIntentShort
67
67
  // ============================================================================
68
- async function handleEditWindowWithEditIntent(linesStream, tracer, parseMode) {
68
+ async function handleEditWindowWithEditIntent(linesStream, tracer, parseMode, getFetchFailure) {
69
69
  const { editIntent, remainingLinesStream, parseError } = await (0, editIntent_1.parseEditIntentFromStream)(linesStream, tracer, parseMode);
70
+ const fetchFailure = getFetchFailure();
71
+ if (fetchFailure) {
72
+ return new ResponseParseResult.Done(fetchFailure);
73
+ }
70
74
  return new ResponseParseResult.EditWindowLines(remainingLinesStream, { intent: editIntent, parseError });
71
75
  }
72
- async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, tracer) {
76
+ async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, tracer, getFetchFailure) {
73
77
  const linesIter = linesStream[Symbol.asyncIterator]();
74
78
  const firstLine = await linesIter.next();
79
+ {
80
+ const fetchFailure = getFetchFailure();
81
+ if (fetchFailure) {
82
+ return new ResponseParseResult.Done(fetchFailure);
83
+ }
84
+ }
75
85
  if (firstLine.done) {
76
86
  return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, ctx.editWindow));
77
87
  }
@@ -80,10 +90,10 @@ async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, trace
80
90
  return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, ctx.editWindow));
81
91
  }
82
92
  if (trimmedFirstLine === tags_1.ResponseTags.INSERT.start) {
83
- return new ResponseParseResult.DirectEdits(generateInsertEdits(linesIter, ctx, documentBeforeEdits));
93
+ return new ResponseParseResult.DirectEdits(generateInsertEdits(linesIter, ctx, documentBeforeEdits, getFetchFailure));
84
94
  }
85
95
  if (trimmedFirstLine === tags_1.ResponseTags.EDIT.start) {
86
- const editLines = generateEditLines(linesIter);
96
+ const editLines = generateEditLines(linesIter, getFetchFailure);
87
97
  return new ResponseParseResult.EditWindowLines(editLines);
88
98
  }
89
99
  return new ResponseParseResult.Done(new statelessNextEditProvider_1.NoNextEditReason.Unexpected(new Error(`unexpected tag ${trimmedFirstLine}`)));
@@ -91,12 +101,18 @@ async function handleUnifiedWithXml(linesStream, ctx, documentBeforeEdits, trace
91
101
  // ============================================================================
92
102
  // Internal generators for UnifiedWithXml sub-tags
93
103
  // ============================================================================
94
- async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits) {
104
+ async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits, getFetchFailure) {
95
105
  const { editWindowLines, editWindowLineRange, cursorOriginalLinesOffset, cursorColumnZeroBased, editWindow, originalEditWindow, targetDocument, isFromCursorJump } = ctx;
96
106
  const lineWithCursorContinued = await linesIter.next();
97
107
  if (lineWithCursorContinued.done || lineWithCursorContinued.value.includes(tags_1.ResponseTags.INSERT.end)) {
98
108
  return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, editWindow);
99
109
  }
110
+ {
111
+ const fetchFailure = getFetchFailure();
112
+ if (fetchFailure) {
113
+ return fetchFailure;
114
+ }
115
+ }
100
116
  const cursorLineContent = editWindowLines[cursorOriginalLinesOffset];
101
117
  const edit = new lineEdit_1.LineReplacement(new lineRange_1.LineRange(editWindowLineRange.start + cursorOriginalLinesOffset + 1 /* 0-based to 1-based */, editWindowLineRange.start + cursorOriginalLinesOffset + 2), [cursorLineContent.slice(0, cursorColumnZeroBased) + lineWithCursorContinued.value + cursorLineContent.slice(cursorColumnZeroBased)]);
102
118
  yield { edit, isFromCursorJump, window: editWindow, originalWindow: originalEditWindow, targetDocument };
@@ -111,6 +127,12 @@ async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits) {
111
127
  }
112
128
  v = await linesIter.next();
113
129
  }
130
+ {
131
+ const fetchFailure = getFetchFailure();
132
+ if (fetchFailure) {
133
+ return fetchFailure;
134
+ }
135
+ }
114
136
  const line = editWindowLineRange.start + cursorOriginalLinesOffset + 2;
115
137
  yield {
116
138
  edit: new lineEdit_1.LineReplacement(new lineRange_1.LineRange(line, line), lines),
@@ -121,12 +143,15 @@ async function* generateInsertEdits(linesIter, ctx, documentBeforeEdits) {
121
143
  };
122
144
  return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(documentBeforeEdits, editWindow);
123
145
  }
124
- async function* generateEditLines(linesIter) {
146
+ async function* generateEditLines(linesIter, getFetchFailure) {
125
147
  let v = await linesIter.next();
126
148
  while (!v.done) {
127
149
  if (v.value.includes(tags_1.ResponseTags.EDIT.end)) {
128
150
  return;
129
151
  }
152
+ if (getFetchFailure()) {
153
+ return;
154
+ }
130
155
  yield v.value;
131
156
  v = await linesIter.next();
132
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"responseFormatHandlers.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAyDhG,oDAEC;AAMD,0CAEC;AAMD,wEAWC;AAiBD,oDAqCC;AAtID,8GAAgH;AAEhH,iFAAqF;AACrF,oFAAiF;AAGjF,yCAA8C;AAC9C,6CAA8E;AAC9E,2CAAwD;AAExD,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,IAAiB,mBAAmB,CAiCnC;AAjCD,WAAiB,mBAAmB;IAOnC;;OAEG;IACH,MAAa,eAAe;QAC3B,YACU,KAA4B,EAC5B,kBAAuC;YADvC,UAAK,GAAL,KAAK,CAAuB;YAC5B,uBAAkB,GAAlB,kBAAkB,CAAqB;QAC7C,CAAC;KACL;IALY,mCAAe,kBAK3B,CAAA;IAED;;OAEG;IACH,MAAa,IAAI;QAChB,YAAqB,MAAwB;YAAxB,WAAM,GAAN,MAAM,CAAkB;QAAI,CAAC;KAClD;IAFY,wBAAI,OAEhB,CAAA;IAED;;;OAGG;IACH,MAAa,WAAW;QACvB,YAAqB,MAA4D;YAA5D,WAAM,GAAN,MAAM,CAAsD;QAAI,CAAC;KACtF;IAFY,+BAAW,cAEvB,CAAA;AAGF,CAAC,EAjCgB,mBAAmB,mCAAnB,mBAAmB,QAiCnC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,SAAgB,oBAAoB,CAAC,WAAkC;IACtE,OAAO,IAAI,mBAAmB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC7D,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAgB,eAAe,CAAC,WAAkC;IACjE,OAAO,IAAI,mBAAmB,CAAC,eAAe,CAAC,IAAA,qCAAyB,EAAC,WAAW,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,+EAA+E;AAC/E,oEAAoE;AACpE,+EAA+E;AAExE,KAAK,UAAU,8BAA8B,CACnD,WAAkC,EAClC,MAAe,EACf,SAA8B;IAE9B,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,sCAAyB,EAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAEzH,OAAO,IAAI,mBAAmB,CAAC,eAAe,CAC7C,oBAAoB,EACpB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAClC,CAAC;AACH,CAAC;AAiBM,KAAK,UAAU,oBAAoB,CACzC,WAAkC,EAClC,GAA4B,EAC5B,mBAA+B,EAC/B,MAAe;IAEf,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAClC,IAAI,4CAAgB,CAAC,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,UAAU,CAAC,CACvE,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEhD,IAAI,gBAAgB,KAAK,mBAAY,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAClC,IAAI,4CAAgB,CAAC,aAAa,CAAC,mBAAmB,EAAE,GAAG,CAAC,UAAU,CAAC,CACvE,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,KAAK,mBAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpD,OAAO,IAAI,mBAAmB,CAAC,WAAW,CACzC,mBAAmB,CAAC,SAAS,EAAE,GAAG,EAAE,mBAAmB,CAAC,CACxD,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,KAAK,mBAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAClC,IAAI,4CAAgB,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,kBAAkB,gBAAgB,EAAE,CAAC,CAAC,CAChF,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAE/E,KAAK,SAAS,CAAC,CAAC,mBAAmB,CAClC,SAAgC,EAChC,GAA4B,EAC5B,mBAA+B;IAE/B,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC;IAEzK,MAAM,uBAAuB,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,uBAAuB,CAAC,IAAI,IAAI,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrG,OAAO,IAAI,4CAAgB,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,iBAAiB,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,IAAI,0BAAe,CAC/B,IAAI,qBAAS,CACZ,mBAAmB,CAAC,KAAK,GAAG,yBAAyB,GAAG,CAAC,CAAC,wBAAwB,EAClF,mBAAmB,CAAC,KAAK,GAAG,yBAAyB,GAAG,CAAC,CACzD,EACD,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,GAAG,uBAAuB,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CACpI,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;IAEzG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM;QACP,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,GAAG,yBAAyB,GAAG,CAAC,CAAC;IACvE,MAAM;QACL,IAAI,EAAE,IAAI,0BAAe,CACxB,IAAI,qBAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EACzB,KAAK,CACL;QACD,gBAAgB;QAChB,MAAM,EAAE,UAAU;QAClB,cAAc,EAAE,kBAAkB;QAClC,cAAc;KACd,CAAC;IAEF,OAAO,IAAI,4CAAgB,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAChC,SAAgC;IAEhC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO;QACR,CAAC;QACD,MAAM,CAAC,CAAC,KAAK,CAAC;QACd,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"responseFormatHandlers.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/responseFormatHandlers.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ declare class Patch {
18
18
  toString(): string;
19
19
  }
20
20
  export declare class XtabCustomDiffPatchResponseHandler {
21
- static handleResponse(linesStream: AsyncIterable<string>, currentDocument: CurrentDocument, activeDocumentId: DocumentId, workspaceRoot: URI | undefined, window: OffsetRange | undefined, parentTracer: ILogger): AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
21
+ static handleResponse(linesStream: AsyncIterable<string>, currentDocument: CurrentDocument, activeDocumentId: DocumentId, workspaceRoot: URI | undefined, window: OffsetRange | undefined, parentTracer: ILogger, getFetchFailure?: () => NoNextEditReason | undefined): AsyncGenerator<StreamedEdit, NoNextEditReason, void>;
22
22
  private static resolveEdit;
23
23
  private static resolveTargetDocument;
24
24
  static extractEdits(linesStream: AsyncIterable<string>): AsyncGenerator<Patch>;
@@ -1 +1 @@
1
- {"version":3,"file":"xtabCustomDiffPatchResponseHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AAIrF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,cAAM,KAAK;IAKT;;OAEG;aACa,QAAQ,EAAE,MAAM;aAChB,gBAAgB,EAAE,MAAM;IARlC,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAM;IAEjC,OAAO;WAQO,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAShD,OAAO,CAAC,IAAI,EAAE,MAAM;IAab,QAAQ,IAAI,MAAM;CAOzB;AAGD,qBAAa,kCAAkC;WAEzB,cAAc,CAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,UAAU,EAC5B,aAAa,EAAE,GAAG,GAAG,SAAS,EAC9B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,YAAY,EAAE,OAAO,GACnB,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;IA8BvD,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAWf,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;CAyB5F"}
1
+ {"version":3,"file":"xtabCustomDiffPatchResponseHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,cAAM,KAAK;IAKT;;OAEG;aACa,QAAQ,EAAE,MAAM;aAChB,gBAAgB,EAAE,MAAM;IARlC,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAM;IAEjC,OAAO;WAQO,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAShD,OAAO,CAAC,IAAI,EAAE,MAAM;IAab,QAAQ,IAAI,MAAM;CAOzB;AAGD,qBAAa,kCAAkC;WAEzB,cAAc,CAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,UAAU,EAC5B,aAAa,EAAE,GAAG,GAAG,SAAS,EAC9B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,YAAY,EAAE,OAAO,EACrB,eAAe,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,GAClD,cAAc,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC;IA+BvD,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,qBAAqB;WAWf,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;CAyB5F"}
@@ -12,7 +12,6 @@ const path_1 = require("../../../util/vs/base/common/path");
12
12
  const uri_1 = require("../../../util/vs/base/common/uri");
13
13
  const lineEdit_1 = require("../../../util/vs/editor/common/core/edits/lineEdit");
14
14
  const lineRange_1 = require("../../../util/vs/editor/common/core/ranges/lineRange");
15
- const fetchStreamError_1 = require("../common/fetchStreamError");
16
15
  const promptCraftingUtils_1 = require("../common/promptCraftingUtils");
17
16
  const tags_1 = require("../common/tags");
18
17
  class Patch {
@@ -57,11 +56,15 @@ class Patch {
57
56
  }
58
57
  }
59
58
  class XtabCustomDiffPatchResponseHandler {
60
- static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer) {
59
+ static async *handleResponse(linesStream, currentDocument, activeDocumentId, workspaceRoot, window, parentTracer, getFetchFailure) {
61
60
  const tracer = parentTracer.createSubLogger(['XtabCustomDiffPatchResponseHandler', 'handleResponse']);
62
61
  const activeDocRelativePath = (0, promptCraftingUtils_1.toUniquePath)(activeDocumentId, workspaceRoot?.path);
63
62
  try {
64
63
  for await (const edit of XtabCustomDiffPatchResponseHandler.extractEdits(linesStream)) {
64
+ const fetchFailure = getFetchFailure?.();
65
+ if (fetchFailure) {
66
+ return fetchFailure;
67
+ }
65
68
  const targetDocument = edit.filePath === activeDocRelativePath
66
69
  ? activeDocumentId
67
70
  : XtabCustomDiffPatchResponseHandler.resolveTargetDocument(edit.filePath, workspaceRoot);
@@ -78,9 +81,6 @@ class XtabCustomDiffPatchResponseHandler {
78
81
  }
79
82
  }
80
83
  catch (e) {
81
- if (e instanceof fetchStreamError_1.FetchStreamError) {
82
- return e.reason;
83
- }
84
84
  const err = errors_1.ErrorUtils.fromUnknown(e);
85
85
  return new statelessNextEditProvider_1.NoNextEditReason.Unexpected(err);
86
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xtabCustomDiffPatchResponseHandler.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xtabCustomDiffPatchResponseHandler.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"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"}
@@ -79,7 +79,6 @@ const nullExperimentationService_1 = require("../../../platform/telemetry/common
79
79
  const workspaceService_1 = require("../../../platform/workspace/common/workspaceService");
80
80
  const async_1 = require("../../../util/common/async");
81
81
  const asyncIterableUtils_1 = require("../../../util/common/asyncIterableUtils");
82
- const backwardCompatSetting_1 = require("../../../util/common/backwardCompatSetting");
83
82
  const errors_1 = require("../../../util/common/errors");
84
83
  const result_1 = require("../../../util/common/result");
85
84
  const assert_1 = require("../../../util/vs/base/common/assert");
@@ -95,13 +94,11 @@ const range_1 = require("../../../util/vs/editor/common/core/range");
95
94
  const lineRange_1 = require("../../../util/vs/editor/common/core/ranges/lineRange");
96
95
  const offsetRange_1 = require("../../../util/vs/editor/common/core/ranges/offsetRange");
97
96
  const abstractText_1 = require("../../../util/vs/editor/common/core/text/abstractText");
98
- const positionToOffset_1 = require("../../../util/vs/editor/common/core/text/positionToOffset");
99
97
  const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
100
98
  const vscodeTypesShim_1 = require("../../../util/common/test/shims/vscodeTypesShim");
101
99
  const nearbyCursorInlineEditProvider_1 = require("../../inlineEdits/common/nearbyCursorInlineEditProvider");
102
100
  const userInteractionMonitor_1 = require("../../inlineEdits/common/userInteractionMonitor");
103
101
  const importFiltering_1 = require("../../inlineEdits/node/importFiltering");
104
- const fetchStreamError_1 = require("../common/fetchStreamError");
105
102
  const inlineSuggestion_1 = require("../common/inlineSuggestion");
106
103
  const lintErrors_1 = require("../common/lintErrors");
107
104
  const promptCrafting_1 = require("../common/promptCrafting");
@@ -142,8 +139,9 @@ var RetryState;
142
139
  var FetchResult;
143
140
  (function (FetchResult) {
144
141
  class Lines {
145
- constructor(linesStream, getResponseSoFar, fetchRequestStopWatch) {
142
+ constructor(linesStream, getFetchFailure, getResponseSoFar, fetchRequestStopWatch) {
146
143
  this.linesStream = linesStream;
144
+ this.getFetchFailure = getFetchFailure;
147
145
  this.getResponseSoFar = getResponseSoFar;
148
146
  this.fetchRequestStopWatch = fetchRequestStopWatch;
149
147
  }
@@ -535,6 +533,7 @@ let XtabProvider = class XtabProvider {
535
533
  const fetchStreamSource = new chatMLFetcher_1.FetchStreamSource();
536
534
  const fetchRequestStopWatch = new stopwatch_1.StopWatch();
537
535
  let responseSoFar = '';
536
+ let chatResponseFailure;
538
537
  let ttft;
539
538
  const firstTokenReceived = new async_2.DeferredPromise();
540
539
  logContext.setHeaderRequestId(requestId);
@@ -578,23 +577,20 @@ let XtabProvider = class XtabProvider {
578
577
  logContext.setFullResponse(fetchResultPromise.then((response) => response.type === commonTypes_1.ChatFetchResponseType.Success ? response.value : undefined));
579
578
  fetchResultPromise
580
579
  .then((response) => {
581
- if (response.type !== commonTypes_1.ChatFetchResponseType.Success) {
582
- fetchStreamSource.reject(new fetchStreamError_1.FetchStreamError(mapChatFetcherErrorToNoNextEditReason(response)));
583
- }
584
- else {
585
- fetchStreamSource.resolve();
586
- }
580
+ // this's a way to signal the edit-pushing code to know if the request failed and
581
+ // it shouldn't push edits constructed from an erroneous response
582
+ chatResponseFailure = response.type !== commonTypes_1.ChatFetchResponseType.Success ? response : undefined;
587
583
  })
588
584
  .catch((err) => {
589
585
  // in principle this shouldn't happen because ChatMLFetcher's fetchOne should not throw
590
586
  logContext.setError(errors_1.ErrorUtils.fromUnknown(err));
591
587
  logContext.addLog(`ChatMLFetcher fetch call threw -- this's UNEXPECTED!`);
592
- fetchStreamSource.reject(errors_1.ErrorUtils.fromUnknown(err));
593
588
  }).finally(() => {
594
589
  logContext.setFetchEndTime();
595
590
  if (!firstTokenReceived.isSettled) {
596
591
  firstTokenReceived.complete();
597
592
  }
593
+ fetchStreamSource.resolve();
598
594
  logContext.setResponse(responseSoFar);
599
595
  });
600
596
  const fetchRes = await Promise.race([firstTokenReceived.p, fetchResultPromise]);
@@ -611,6 +607,7 @@ let XtabProvider = class XtabProvider {
611
607
  }
612
608
  return new FetchResult.FetchFailure(mapChatFetcherErrorToNoNextEditReason(fetchRes));
613
609
  }
610
+ const getFetchFailure = () => chatResponseFailure ? mapChatFetcherErrorToNoNextEditReason(chatResponseFailure) : undefined;
614
611
  const llmLinesStream = asyncIterableUtils_1.AsyncIterUtilsExt.splitLines(asyncIterableUtils_1.AsyncIterUtils.map(fetchStreamSource.stream, (chunk) => chunk.delta.text));
615
612
  // logging of times
616
613
  // removal of cursor tag if option is set
@@ -624,7 +621,7 @@ let XtabProvider = class XtabProvider {
624
621
  : v;
625
622
  }
626
623
  })();
627
- return new FetchResult.Lines(linesStream, () => responseSoFar, fetchRequestStopWatch);
624
+ return new FetchResult.Lines(linesStream, getFetchFailure, () => responseSoFar, fetchRequestStopWatch);
628
625
  }
629
626
  async *_streamEditsImpl(request, editStreamCtx, responseOpts, fetchMetadata, retryState, delaySession, tracing, cancellationToken, fetchCts, fetchCancellationToken) {
630
627
  const { tracer, logContext, telemetry } = tracing;
@@ -639,112 +636,130 @@ let XtabProvider = class XtabProvider {
639
636
  if (fetchResult instanceof FetchResult.FetchFailure) {
640
637
  return fetchResult.reason;
641
638
  }
642
- const { linesStream, getResponseSoFar, fetchRequestStopWatch } = fetchResult;
639
+ const { linesStream, getFetchFailure, getResponseSoFar, fetchRequestStopWatch } = fetchResult;
643
640
  // Phase 2: Dispatch to the appropriate response format handler
644
641
  const isFromCursorJump = retryState instanceof RetryState.Retrying && retryState.reason === 'cursorJump';
645
642
  let parseResult;
646
- try {
647
- switch (responseOpts.responseFormat) {
648
- case xtabPromptOptions.ResponseFormat.EditWindowOnly: {
649
- parseResult = (0, responseFormatHandlers_1.handleEditWindowOnly)(linesStream);
650
- break;
651
- }
652
- case xtabPromptOptions.ResponseFormat.CodeBlock: {
653
- parseResult = (0, responseFormatHandlers_1.handleCodeBlock)(linesStream);
654
- break;
655
- }
656
- case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntent:
657
- case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort: {
658
- const parseMode = responseOpts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort
659
- ? editIntent_1.EditIntentParseMode.ShortName
660
- : editIntent_1.EditIntentParseMode.Tags;
661
- parseResult = await (0, responseFormatHandlers_1.handleEditWindowWithEditIntent)(linesStream, tracer, parseMode);
662
- break;
663
- }
664
- case xtabPromptOptions.ResponseFormat.CustomDiffPatch: {
665
- const activeDoc = request.getActiveDocument();
666
- const currentDocument = promptPieces.currentDocument;
667
- const lastLine = currentDocument.lines[clippedTaggedCurrentDoc.keptRange.endExclusive - 1];
668
- const lastLineLength = lastLine.length;
669
- const pseudoEditWindow = currentDocument.transformer.getOffsetRange(new range_1.Range(clippedTaggedCurrentDoc.keptRange.start + 1, 1, clippedTaggedCurrentDoc.keptRange.endExclusive, lastLineLength + 1));
670
- parseResult = new responseFormatHandlers_1.ResponseParseResult.DirectEdits(xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, currentDocument, activeDoc.id, activeDoc.workspaceRoot, pseudoEditWindow, tracer));
671
- break;
672
- }
673
- case xtabPromptOptions.ResponseFormat.UnifiedWithXml: {
674
- parseResult = await (0, responseFormatHandlers_1.handleUnifiedWithXml)(linesStream, {
675
- editWindowLines,
676
- editWindowLineRange,
677
- cursorOriginalLinesOffset,
678
- cursorColumnZeroBased: promptPieces.currentDocument.cursorPosition.column - 1,
679
- editWindow,
680
- originalEditWindow,
681
- targetDocument,
682
- isFromCursorJump,
683
- }, request.documentBeforeEdits, tracer);
684
- break;
685
- }
686
- default:
687
- (0, assert_1.assertNever)(responseOpts.responseFormat);
643
+ switch (responseOpts.responseFormat) {
644
+ case xtabPromptOptions.ResponseFormat.EditWindowOnly: {
645
+ parseResult = (0, responseFormatHandlers_1.handleEditWindowOnly)(linesStream);
646
+ break;
688
647
  }
689
- // Handle result uniformly
690
- if (parseResult instanceof responseFormatHandlers_1.ResponseParseResult.Done) {
691
- return parseResult.reason;
648
+ case xtabPromptOptions.ResponseFormat.CodeBlock: {
649
+ parseResult = (0, responseFormatHandlers_1.handleCodeBlock)(linesStream);
650
+ break;
692
651
  }
693
- if (parseResult instanceof responseFormatHandlers_1.ResponseParseResult.DirectEdits) {
694
- return yield* parseResult.stream;
652
+ case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntent:
653
+ case xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort: {
654
+ const parseMode = responseOpts.responseFormat === xtabPromptOptions.ResponseFormat.EditWindowWithEditIntentShort
655
+ ? editIntent_1.EditIntentParseMode.ShortName
656
+ : editIntent_1.EditIntentParseMode.Tags;
657
+ parseResult = await (0, responseFormatHandlers_1.handleEditWindowWithEditIntent)(linesStream, tracer, parseMode, getFetchFailure);
658
+ break;
695
659
  }
696
- // parseResult is EditWindowLines — log edit-intent telemetry and apply aggressiveness filter
697
- if (parseResult.editIntentMetadata) {
698
- const { intent, parseError } = parseResult.editIntentMetadata;
699
- telemetry.setEditIntent(intent);
700
- if (parseError) {
701
- telemetry.setEditIntentParseError(parseError);
702
- }
703
- if (!xtabPromptOptions.EditIntent.shouldShowEdit(intent, promptPieces.aggressivenessLevel)) {
704
- tracer.trace(`Filtered out edit due to edit intent "${intent}" with aggressiveness "${promptPieces.aggressivenessLevel}"`);
705
- return new statelessNextEditProvider_1.NoNextEditReason.FilteredOut(`editIntent:${intent} aggressivenessLevel:${promptPieces.aggressivenessLevel}`);
706
- }
660
+ case xtabPromptOptions.ResponseFormat.CustomDiffPatch: {
661
+ const activeDoc = request.getActiveDocument();
662
+ const currentDocument = promptPieces.currentDocument;
663
+ const lastLine = currentDocument.lines[clippedTaggedCurrentDoc.keptRange.endExclusive - 1];
664
+ const lastLineLength = lastLine.length;
665
+ const pseudoEditWindow = currentDocument.transformer.getOffsetRange(new range_1.Range(clippedTaggedCurrentDoc.keptRange.start + 1, 1, clippedTaggedCurrentDoc.keptRange.endExclusive, lastLineLength + 1));
666
+ parseResult = new responseFormatHandlers_1.ResponseParseResult.DirectEdits(xtabCustomDiffPatchResponseHandler_1.XtabCustomDiffPatchResponseHandler.handleResponse(linesStream, currentDocument, activeDoc.id, activeDoc.workspaceRoot, pseudoEditWindow, tracer, getFetchFailure));
667
+ break;
707
668
  }
708
- const cleanedLinesStream = parseResult.lines;
709
- const diffOptions = {
710
- emitFastCursorLineChange: responseProcessor_1.ResponseProcessor.mapEmitFastCursorLineChange(this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderEmitFastCursorLineChange, this.expService)),
711
- nLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNNonSignificantLinesToConverge, this.expService),
712
- nSignificantLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNSignificantLinesToConverge, this.expService),
713
- };
714
- tracer.trace(`starting to diff stream against edit window lines with latency ${fetchRequestStopWatch.elapsed()} ms`);
715
- // Wrap the line stream to detect early divergence between the user's
716
- // intermediate edits and the model's streamed output.
717
- // In `Cursor` mode only the cursor line is checked; in `EditWindow`
718
- // mode every line in the edit window is checked.
719
- //
720
- // We check compatibility using `isModelLineCompatible`: the user's
721
- // line change must be contained within the model's line change range
722
- // and match via the helper's `startsWith` / auto-close subsequence rules.
723
- const earlyDivergenceMode = (0, backwardCompatSetting_1.backwardCompatSetting)(this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabEarlyCursorLineDivergenceCancellation, this.expService), (value) => {
724
- switch (value) {
725
- case false:
726
- case undefined:
727
- return xtabPromptOptions_1.EarlyDivergenceCancellationMode.Off;
728
- case true:
729
- return xtabPromptOptions_1.EarlyDivergenceCancellationMode.Cursor;
730
- case xtabPromptOptions_1.EarlyDivergenceCancellationMode.Off:
731
- case xtabPromptOptions_1.EarlyDivergenceCancellationMode.Cursor:
732
- case xtabPromptOptions_1.EarlyDivergenceCancellationMode.EditWindow:
733
- return value;
734
- default:
735
- return xtabPromptOptions_1.EarlyDivergenceCancellationMode.Off;
669
+ case xtabPromptOptions.ResponseFormat.UnifiedWithXml: {
670
+ parseResult = await (0, responseFormatHandlers_1.handleUnifiedWithXml)(linesStream, {
671
+ editWindowLines,
672
+ editWindowLineRange,
673
+ cursorOriginalLinesOffset,
674
+ cursorColumnZeroBased: promptPieces.currentDocument.cursorPosition.column - 1,
675
+ editWindow,
676
+ originalEditWindow,
677
+ targetDocument,
678
+ isFromCursorJump,
679
+ }, request.documentBeforeEdits, tracer, getFetchFailure);
680
+ break;
681
+ }
682
+ default:
683
+ (0, assert_1.assertNever)(responseOpts.responseFormat);
684
+ }
685
+ // Handle result uniformly
686
+ if (parseResult instanceof responseFormatHandlers_1.ResponseParseResult.Done) {
687
+ return parseResult.reason;
688
+ }
689
+ if (parseResult instanceof responseFormatHandlers_1.ResponseParseResult.DirectEdits) {
690
+ return yield* parseResult.stream;
691
+ }
692
+ // parseResult is EditWindowLines — log edit-intent telemetry and apply aggressiveness filter
693
+ if (parseResult.editIntentMetadata) {
694
+ const { intent, parseError } = parseResult.editIntentMetadata;
695
+ telemetry.setEditIntent(intent);
696
+ if (parseError) {
697
+ telemetry.setEditIntentParseError(parseError);
698
+ }
699
+ if (!xtabPromptOptions.EditIntent.shouldShowEdit(intent, promptPieces.aggressivenessLevel)) {
700
+ tracer.trace(`Filtered out edit due to edit intent "${intent}" with aggressiveness "${promptPieces.aggressivenessLevel}"`);
701
+ return new statelessNextEditProvider_1.NoNextEditReason.FilteredOut(`editIntent:${intent} aggressivenessLevel:${promptPieces.aggressivenessLevel}`);
702
+ }
703
+ }
704
+ const cleanedLinesStream = parseResult.lines;
705
+ const diffOptions = {
706
+ emitFastCursorLineChange: responseProcessor_1.ResponseProcessor.mapEmitFastCursorLineChange(this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabProviderEmitFastCursorLineChange, this.expService)),
707
+ nLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNNonSignificantLinesToConverge, this.expService),
708
+ nSignificantLinesToConverge: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabNSignificantLinesToConverge, this.expService),
709
+ };
710
+ tracer.trace(`starting to diff stream against edit window lines with latency ${fetchRequestStopWatch.elapsed()} ms`);
711
+ // Wrap the line stream to detect early cursor-line divergence.
712
+ // If the user has typed at the cursor since the request started and the cursor line
713
+ // in the model's response doesn't match what the user currently has, the response
714
+ // is stale and we can cancel early instead of waiting for the full response.
715
+ //
716
+ // We check compatibility using `isModelCursorLineCompatible`: the user's
717
+ // cursor-line change must be contained within the model's cursor-line change range
718
+ // and match via the helper's `startsWith` / auto-close subsequence rules.
719
+ const earlyCursorLineDivergenceCancellation = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabEarlyCursorLineDivergenceCancellation, this.expService);
720
+ let cursorLineDiverged = false;
721
+ const divergenceCheckedStream = earlyCursorLineDivergenceCancellation
722
+ ? (async function* () {
723
+ let lineIdx = 0;
724
+ for await (const line of cleanedLinesStream) {
725
+ if (lineIdx === cursorOriginalLinesOffset) {
726
+ const intermediateEdit = request.intermediateUserEdit;
727
+ if (intermediateEdit && !intermediateEdit.isEmpty()) {
728
+ const cursorDocLineIdx = editWindowLineRange.start + cursorOriginalLinesOffset;
729
+ const currentCursorLine = (0, cursorLineDivergence_1.getCurrentCursorLine)(request.documentBeforeEdits.getTransformer(), cursorDocLineIdx, intermediateEdit);
730
+ if (currentCursorLine !== undefined) {
731
+ const originalCursorLine = editWindowLines[cursorOriginalLinesOffset];
732
+ if (currentCursorLine !== originalCursorLine // user changed the cursor line
733
+ && !(0, cursorLineDivergence_1.isModelCursorLineCompatible)(originalCursorLine, currentCursorLine, line) // model's cursor line isn't compatible with user's typing
734
+ ) {
735
+ cursorLineDiverged = true;
736
+ tracer.trace(`Cursor line DIVERGED: model="${line}" current="${currentCursorLine}"`);
737
+ // Cancel our local fetch token so the HTTP request is
738
+ // aborted immediately. We own this token, so this is safe.
739
+ fetchCts.cancel();
740
+ return;
741
+ }
742
+ }
743
+ }
744
+ }
745
+ yield line;
746
+ lineIdx++;
736
747
  }
737
- });
738
- let lineDiverged = false;
739
- const divergenceCheckedStream = earlyDivergenceMode === xtabPromptOptions_1.EarlyDivergenceCancellationMode.Off
740
- ? cleanedLinesStream
741
- : linesWithIntermediateEditDivergenceCheck(cleanedLinesStream, cursorOriginalLinesOffset, request, editWindowLineRange, editWindowLines, fetchCts, tracing, (value) => { lineDiverged = value; }, earlyDivergenceMode);
742
- let i = 0;
743
- let hasBeenDelayed = false;
748
+ })()
749
+ : cleanedLinesStream;
750
+ let i = 0;
751
+ let hasBeenDelayed = false;
752
+ try {
744
753
  for await (const edit of responseProcessor_1.ResponseProcessor.diff(editWindowLines, divergenceCheckedStream, cursorOriginalLinesOffset, diffOptions)) {
745
- if (lineDiverged) {
754
+ if (cursorLineDiverged) {
746
755
  break;
747
756
  }
757
+ {
758
+ const fetchFailure = getFetchFailure();
759
+ if (fetchFailure) {
760
+ return fetchFailure;
761
+ }
762
+ }
748
763
  tracer.trace(`ResponseProcessor streamed edit #${i} with latency ${fetchRequestStopWatch.elapsed()} ms`);
749
764
  const singleLineEdits = [];
750
765
  if (edit.lineRange.startLineNumber === edit.lineRange.endLineNumberExclusive || // we don't want to run diff on insertion
@@ -786,16 +801,20 @@ let XtabProvider = class XtabProvider {
786
801
  i++;
787
802
  }
788
803
  }
789
- if (lineDiverged) {
790
- return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled(earlyDivergenceMode === xtabPromptOptions_1.EarlyDivergenceCancellationMode.Cursor ? 'cursorLineDiverged' : 'editWindowLineDiverged');
804
+ if (cursorLineDiverged) {
805
+ return new statelessNextEditProvider_1.NoNextEditReason.GotCancelled('cursorLineDiverged');
806
+ }
807
+ {
808
+ const fetchFailure = getFetchFailure();
809
+ if (fetchFailure) {
810
+ return fetchFailure;
811
+ }
791
812
  }
792
813
  return new statelessNextEditProvider_1.NoNextEditReason.NoSuggestions(request.documentBeforeEdits, editWindow);
793
814
  }
794
815
  catch (err) {
795
- if (err instanceof fetchStreamError_1.FetchStreamError) {
796
- return err.reason;
797
- }
798
816
  logContext.setError(err);
817
+ // Properly handle the error by pushing it as a result
799
818
  return new statelessNextEditProvider_1.NoNextEditReason.Unexpected(errors_1.ErrorUtils.fromUnknown(err));
800
819
  }
801
820
  }
@@ -1272,49 +1291,4 @@ function getPredictionContents(doc, editWindowLines, responseFormat) {
1272
1291
  (0, assert_1.assertNever)(responseFormat);
1273
1292
  }
1274
1293
  }
1275
- async function* linesWithIntermediateEditDivergenceCheck(cleanedLinesStream, cursorOriginalLinesOffset, request, editWindowLineRange, editWindowLines, fetchCts, { tracer }, setLineDiverged, mode) {
1276
- const intermediateEdit = request.intermediateUserEdit;
1277
- if (!intermediateEdit || intermediateEdit.isEmpty()) {
1278
- yield* cleanedLinesStream;
1279
- return;
1280
- }
1281
- const transformer = request.documentBeforeEdits.getTransformer();
1282
- // Precompute the post-edit document once to avoid O(lines * docSize) in EditWindow mode.
1283
- const currentDoc = intermediateEdit.apply(transformer.text);
1284
- const currentTransformer = new positionToOffset_1.PositionOffsetTransformer(currentDoc);
1285
- const precomputed = { currentDoc, currentTransformer };
1286
- const shouldCheckLine = (lineIdx) => {
1287
- if (lineIdx >= editWindowLines.length) {
1288
- return false;
1289
- }
1290
- switch (mode) {
1291
- case xtabPromptOptions_1.EarlyDivergenceCancellationMode.Cursor:
1292
- return lineIdx === cursorOriginalLinesOffset;
1293
- case xtabPromptOptions_1.EarlyDivergenceCancellationMode.EditWindow:
1294
- return true;
1295
- }
1296
- };
1297
- let lineIdx = 0;
1298
- for await (const line of cleanedLinesStream) {
1299
- if (shouldCheckLine(lineIdx)) {
1300
- const docLineIdx = editWindowLineRange.start + lineIdx;
1301
- const currentLine = (0, cursorLineDivergence_1.getCurrentLine)(transformer, docLineIdx, intermediateEdit, precomputed);
1302
- if (currentLine !== undefined) {
1303
- const originalLine = editWindowLines[lineIdx];
1304
- if (currentLine !== originalLine // user changed this line
1305
- && !(0, cursorLineDivergence_1.isModelLineCompatible)(originalLine, currentLine, line) // model's line isn't compatible with user's typing
1306
- ) {
1307
- setLineDiverged(true);
1308
- tracer.trace(`Line ${lineIdx} DIVERGED (mode=${mode}): model="${line}" current="${currentLine}"`);
1309
- // Cancel our local fetch token so the HTTP request is
1310
- // aborted immediately. We own this token, so this is safe.
1311
- fetchCts.cancel();
1312
- return;
1313
- }
1314
- }
1315
- }
1316
- yield line;
1317
- lineIdx++;
1318
- }
1319
- }
1320
1294
  //# sourceMappingURL=xtabProvider.js.map