@vscode/chat-lib 0.54.2026062302 → 0.55.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.
- package/dist/src/_internal/extension/conversation/common/languageModelAccess.d.ts +8 -1
- package/dist/src/_internal/extension/conversation/common/languageModelAccess.d.ts.map +1 -1
- package/dist/src/_internal/extension/conversation/common/languageModelAccess.js +14 -2
- package/dist/src/_internal/extension/conversation/common/languageModelAccess.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +52 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +4 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +11 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +83 -5
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +3 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +8 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabPatchResponseHandler.d.ts +31 -3
- package/dist/src/_internal/extension/xtab/node/xtabPatchResponseHandler.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabPatchResponseHandler.js +94 -16
- package/dist/src/_internal/extension/xtab/node/xtabPatchResponseHandler.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +9 -2
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +5 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +7 -2
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +1 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +14 -3
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts +0 -5
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +1 -14
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +8 -0
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/otelConfig.d.ts +33 -6
- package/dist/src/_internal/platform/otel/common/otelConfig.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/otelConfig.js +78 -28
- package/dist/src/_internal/platform/otel/common/otelConfig.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/async.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/async.js +5 -3
- package/dist/src/_internal/util/vs/base/common/async.js.map +1 -1
- package/dist/src/package.json +112 -28
- package/package.json +1 -1
|
@@ -48,10 +48,16 @@ export declare function formatTokenCount(count: number): string;
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function formatPricingLabel(pricing: IChatEndpointTokenPricing): string;
|
|
50
50
|
/**
|
|
51
|
-
* Raw token prices from the CAPI billing response
|
|
51
|
+
* Raw token prices from the CAPI billing response. Supports both the tiered
|
|
52
|
+
* format (API 2026-06-01+, prices in AIUs) and the legacy flat format
|
|
53
|
+
* (pre-2026-06-01, prices in nano-AIUs) which is still used by some endpoints
|
|
54
|
+
* such as the cloud agents (`/agents/swe/models`) model picker.
|
|
52
55
|
*/
|
|
53
56
|
export interface IRawTokenPrices {
|
|
54
57
|
batch_size?: number;
|
|
58
|
+
input_price?: number;
|
|
59
|
+
cache_price?: number;
|
|
60
|
+
output_price?: number;
|
|
55
61
|
default?: {
|
|
56
62
|
input_price?: number;
|
|
57
63
|
cache_price?: number;
|
|
@@ -80,6 +86,7 @@ export interface INormalizedTokenPricing {
|
|
|
80
86
|
}
|
|
81
87
|
/**
|
|
82
88
|
* Converts raw billing token prices into normalized AICs (credits) per million tokens.
|
|
89
|
+
* Handles both tiered (AIU) and legacy flat (nano-AIU) formats.
|
|
83
90
|
*
|
|
84
91
|
* When a `long_context` tier is present but its prices match the `default` tier,
|
|
85
92
|
* it is omitted from the result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageModelAccess.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/conversation/common/languageModelAccess.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE1G,OAAO,KAAK,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,QAAQ,CAAC;AAE7F;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU9G;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW7D;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAUvK;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,aAAa,GAAG,4BAA4B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAsD7J;AAaD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAM7E;
|
|
1
|
+
{"version":3,"file":"languageModelAccess.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/conversation/common/languageModelAccess.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE1G,OAAO,KAAK,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,QAAQ,CAAC;AAE7F;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU9G;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW7D;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAUvK;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,aAAa,GAAG,4BAA4B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAsD7J;AAaD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAM7E;AAKD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClI,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvI;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,GAAG,uBAAuB,GAAG,SAAS,CAkDlH"}
|
|
@@ -207,8 +207,10 @@ function formatPricingLabel(pricing) {
|
|
|
207
207
|
return l10n.t('In: {0} · Out: {1} AICs/1M tokens', formatAicPrice(pricing.default.inputPrice), formatAicPrice(pricing.default.outputPrice));
|
|
208
208
|
}
|
|
209
209
|
const TOKENS_PER_MILLION = 1_000_000;
|
|
210
|
+
const NANO_AIU_DIVISOR = 1_000_000_000;
|
|
210
211
|
/**
|
|
211
212
|
* Converts raw billing token prices into normalized AICs (credits) per million tokens.
|
|
213
|
+
* Handles both tiered (AIU) and legacy flat (nano-AIU) formats.
|
|
212
214
|
*
|
|
213
215
|
* When a `long_context` tier is present but its prices match the `default` tier,
|
|
214
216
|
* it is omitted from the result.
|
|
@@ -249,7 +251,17 @@ function normalizeTokenPrices(tokenPrices) {
|
|
|
249
251
|
}
|
|
250
252
|
return { default: normalized, longContext };
|
|
251
253
|
}
|
|
252
|
-
//
|
|
253
|
-
|
|
254
|
+
// Legacy flat format (pre-2026-06-01): values are in nano-AIUs
|
|
255
|
+
if (tokenPrices.input_price === undefined || tokenPrices.output_price === undefined) {
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
return {
|
|
259
|
+
default: {
|
|
260
|
+
inputPrice: (tokenPrices.input_price / NANO_AIU_DIVISOR) * scale,
|
|
261
|
+
outputPrice: (tokenPrices.output_price / NANO_AIU_DIVISOR) * scale,
|
|
262
|
+
cachePrice: tokenPrices.cache_price !== undefined ? (tokenPrices.cache_price / NANO_AIU_DIVISOR) * scale : undefined,
|
|
263
|
+
cacheWritePrice: undefined,
|
|
264
|
+
},
|
|
265
|
+
};
|
|
254
266
|
}
|
|
255
267
|
//# sourceMappingURL=languageModelAccess.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageModelAccess.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/conversation/common/languageModelAccess.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBhG,gEAUC;AAOD,sEAWC;AAOD,0DAWC;AAQD,gFAUC;AAMD,0EAsDC;AAgBD,4CAWC;AAMD,gDAMC;
|
|
1
|
+
{"version":3,"file":"languageModelAccess.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/conversation/common/languageModelAccess.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,50 @@ export interface CachedEditOpts {
|
|
|
24
24
|
* the cached entry is not served.
|
|
25
25
|
*/
|
|
26
26
|
cursorOffset?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Zero-based index of the model-emitted patch this edit originated from
|
|
29
|
+
* (diff-patch response format). `undefined` for formats without an explicit
|
|
30
|
+
* patch structure. @see StreamedEdit.patchIndex
|
|
31
|
+
*/
|
|
32
|
+
patchIndex?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Patch indices for the bundled `nextEdits`, aligned by position. Stored on the
|
|
35
|
+
* first cached entry so that edits served later via rebase (addressed by
|
|
36
|
+
* `rebasedEditIndex` into the bundle) can be attributed to the right model patch.
|
|
37
|
+
*/
|
|
38
|
+
patchIndices?: readonly (number | undefined)[];
|
|
39
|
+
/**
|
|
40
|
+
* The document the cached edit actually applies to, when it differs from the
|
|
41
|
+
* document the entry is keyed under (cross-file NES). `undefined` means the edit
|
|
42
|
+
* targets the owning/key document (the common same-file case).
|
|
43
|
+
*
|
|
44
|
+
* Used to cache an `A -> suggestion-in-B` association: the entry is keyed and
|
|
45
|
+
* gated against the active document A (content + edit window), but the edit it
|
|
46
|
+
* carries lands in document B.
|
|
47
|
+
*/
|
|
48
|
+
targetDocId?: DocumentId;
|
|
49
|
+
/**
|
|
50
|
+
* The target document's content at the time the cross-file edit was produced
|
|
51
|
+
* (i.e. the content the {@link CachedEdit.edit} offsets index into). Only set
|
|
52
|
+
* together with {@link targetDocId}. The read path must serve the edit only when
|
|
53
|
+
* the target document's live content still equals this snapshot; otherwise the
|
|
54
|
+
* edit's offsets are stale and would resolve against the wrong content.
|
|
55
|
+
*/
|
|
56
|
+
targetDocumentBeforeEdit?: StringText;
|
|
27
57
|
}
|
|
28
58
|
export interface CachedEdit {
|
|
29
59
|
docId: DocumentId;
|
|
60
|
+
/**
|
|
61
|
+
* The document the cached edit actually applies to, when it differs from {@link docId}
|
|
62
|
+
* (cross-file NES). `undefined` means the edit targets the owning/key document
|
|
63
|
+
* {@link docId} (the common same-file case). @see CachedEditOpts.targetDocId
|
|
64
|
+
*/
|
|
65
|
+
targetDocId?: DocumentId;
|
|
66
|
+
/**
|
|
67
|
+
* The target document's content at the time the cross-file edit was produced.
|
|
68
|
+
* Only set together with {@link targetDocId}. @see CachedEditOpts.targetDocumentBeforeEdit
|
|
69
|
+
*/
|
|
70
|
+
targetDocumentBeforeEdit?: StringText;
|
|
30
71
|
documentBeforeEdit: StringText;
|
|
31
72
|
editWindow?: OffsetRange;
|
|
32
73
|
/**
|
|
@@ -45,6 +86,17 @@ export interface CachedEdit {
|
|
|
45
86
|
* When caching multiple edits, this is the order in which they were applied.
|
|
46
87
|
*/
|
|
47
88
|
subsequentN?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Zero-based index of the model-emitted patch this edit originated from
|
|
91
|
+
* (diff-patch response format). @see StreamedEdit.patchIndex
|
|
92
|
+
*/
|
|
93
|
+
patchIndex?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Patch indices for the bundled `edits`, aligned by position. Present on the
|
|
96
|
+
* first cached entry (the one carrying the `edits` bundle) so rebased subsequent
|
|
97
|
+
* edits, addressed by `rebasedEditIndex`, can be attributed to the right patch.
|
|
98
|
+
*/
|
|
99
|
+
patchIndices?: readonly (number | undefined)[];
|
|
48
100
|
source: NextEditFetchRequest;
|
|
49
101
|
cacheTime: number;
|
|
50
102
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextEditCache.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAC/G,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAuB,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAEpH,OAAO,EAAW,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AAExG,OAAO,EAAE,UAAU,EAAgB,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACjI,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,uDAAuD,CAAC;AACnF,OAAO,EAAwB,iBAAiB,EAA+B,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"nextEditCache.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,7 +140,7 @@ class DocumentEditCache {
|
|
|
140
140
|
}
|
|
141
141
|
setKthNextEdit(documentContents, editWindow, nextEdit, nextEdits, userEditSince, subsequentN, source, opts) {
|
|
142
142
|
const key = this._getKey(documentContents.value);
|
|
143
|
-
const cachedEdit = { docId: this.docId, edit: nextEdit, edits: nextEdits, detailedEdits: [], userEditSince, subsequentN, source, documentBeforeEdit: documentContents, editWindow, originalEditWindow: opts.originalEditWindow, cacheTime: Date.now(), isFromCursorJump: opts.isFromCursorJump, cursorOffsetAtCacheTime: opts.cursorOffset };
|
|
143
|
+
const cachedEdit = { docId: this.docId, targetDocId: opts.targetDocId, targetDocumentBeforeEdit: opts.targetDocumentBeforeEdit, edit: nextEdit, edits: nextEdits, detailedEdits: [], userEditSince, subsequentN, patchIndex: opts.patchIndex, patchIndices: opts.patchIndices, source, documentBeforeEdit: documentContents, editWindow, originalEditWindow: opts.originalEditWindow, cacheTime: Date.now(), isFromCursorJump: opts.isFromCursorJump, cursorOffsetAtCacheTime: opts.cursorOffset };
|
|
144
144
|
if (userEditSince) {
|
|
145
145
|
if (!(0, editRebase_1.checkEditConsistency)(cachedEdit.documentBeforeEdit.value, userEditSince, this._doc.value.get().value, this._logger.createSubLogger('setKthNextEdit'))) {
|
|
146
146
|
cachedEdit.userEditSince = undefined;
|
|
@@ -189,7 +189,10 @@ class DocumentEditCache {
|
|
|
189
189
|
// If the cursor moved farther from the edit's start line than it was at cache time,
|
|
190
190
|
// reject the cached edit so the same suggestion is not shown again.
|
|
191
191
|
// Only applies to non-rebased, non-subsequent edits.
|
|
192
|
+
// Skipped for cross-file entries: their `edit` is in the target document's
|
|
193
|
+
// coordinate space, so transforming it against this (active) document is meaningless.
|
|
192
194
|
if (cacheCursorDistanceCheck
|
|
195
|
+
&& !cachedEdit.targetDocId
|
|
193
196
|
&& cachedEdit.edit
|
|
194
197
|
&& (cachedEdit.subsequentN === undefined || cachedEdit.subsequentN === 0)
|
|
195
198
|
&& cachedEdit.cursorOffsetAtCacheTime !== undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextEditCache.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditCache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nextEditCache.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditCache.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,sGAA+G;AAG/G,sFAA2F;AAG3F,sDAAsD;AACtD,sEAAkF;AAClF,wFAA2F;AAI3F,qDAA4G;AAE5G,iDAAsE;AAuHtE,MAAa,aAAc,SAAQ,sBAAU;IAI5C,YACiB,SAA8B,EAC7B,WAAwB,EACxB,cAAqC,EACrC,WAAoC;QAErD,KAAK,EAAE,CAAC;QALQ,cAAS,GAAT,SAAS,CAAqB;QAC7B,gBAAW,GAAX,WAAW,CAAa;QACxB,mBAAc,GAAd,cAAc,CAAuB;QACrC,gBAAW,GAAX,WAAW,CAAyB;QAPrC,oBAAe,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC3D,iBAAY,GAAG,IAAI,gBAAQ,CAAa,EAAE,CAAC,CAAC;QAU5D,IAAA,6CAAwB,EAAC,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACtE,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5F,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAE7C,KAAK,CAAC,GAAG,CAAC,IAAA,+BAAkB,EAAC,IAAI,EAAE;gBAClC,KAAK,EAAE,GAAG,CAAC,KAAK;aAChB,EAAE,CAAC,IAAI,EAAE,EAAE;gBACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;wBACrB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;gBACF,CAAC;gBACD,0CAA0C;gBAC1C,gIAAgI;gBAChI,IAAI,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,gCAAS,CAAC,QAAQ,CAAC,4CAA4C,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;oBACnJ,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;wBAClD,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;4BACxB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC,CAAC;YAEJ,KAAK,CAAC,GAAG,CAAC,IAAA,wBAAY,EAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,KAAiB,EAAE,gBAA4B,EAAE,UAAmC,EAAE,QAA2B,EAAE,WAAmB,EAAE,SAA0C,EAAE,aAAqC,EAAE,MAA4B,EAAE,IAAoB;QAClS,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QACD,OAAO,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7H,CAAC;IAEM,aAAa,CAAC,KAAiB,EAAE,gBAA4B,EAAE,UAAmC,EAAE,MAA4B;QACtI,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QACD,QAAQ,CAAC,aAAa,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAEO,oBAAoB;QAC3B,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,gCAAS,CAAC,YAAY,CAAC,sCAAsC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAElK,OAAO;YACN,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,gCAAS,CAAC,YAAY,CAAC,kCAAkC,EAAE,IAAI,CAAC,WAAW,CAAC;YAClJ,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,gCAAS,CAAC,YAAY,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC;YACpI,2BAA2B,EAAE,OAAO,2BAA2B,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,2BAA2B;SACrJ,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,KAAiB,EAAE,uBAAmC,EAAE,gBAAwC;QACrH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,gCAAS,CAAC,YAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;QACrK,OAAO,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAClI,CAAC;IAEM,mBAAmB,CAAC,UAAsB,EAAE,uBAAmC,EAAE,gBAAwC;QAC/H,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACzH,CAAC;IAEM,gBAAgB,CAAC,SAAiB;QACxC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC;aACnD,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,kBAAkB,CAAC,KAAiB,EAAE,uBAAmC,EAAE,IAAuB;QACxG,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAEM,iBAAiB,CAAC,UAAsB;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACD;AA7GD,sCA6GC;AAED,MAAM,iBAAiB;IAKtB,YACkB,cAA6B,EAC9B,KAAiB,EAChB,IAAyB,EACzB,YAAkC,EACnD,WAAwB;QAJP,mBAAc,GAAd,cAAc,CAAe;QAC9B,UAAK,GAAL,KAAK,CAAY;QAChB,SAAI,GAAJ,IAAI,CAAqB;QACzB,iBAAY,GAAZ,YAAY,CAAsB;QAPnC,wBAAmB,GAAiB,EAAE,CAAC;QAUvD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEM,UAAU,CAAC,IAAgB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC1D,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9B,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClE,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,IAAA,iCAAoB,EAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC/H,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;gBACtC,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEM,iBAAiB,CAAC,UAAsB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,cAAc,CAAC,gBAA4B,EAAE,UAAmC,EAAE,QAA2B,EAAE,SAA0C,EAAE,aAAqC,EAAE,WAAmB,EAAE,MAA4B,EAAE,IAAoB;QAC/Q,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/e,IAAI,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,IAAA,iCAAoB,EAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;gBAC5J,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC;IAEM,aAAa,CAAC,gBAA4B,EAAE,UAAmC,EAAE,MAA4B;QACnH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,UAAU,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;QAC9M,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAEM,cAAc,CAAC,uBAAmC,EAAE,gBAAwC,EAAE,gBAAkC,EAAE,2BAAoC,KAAK;QACjL,0FAA0F;QAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACzC,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;YACzD,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC,0FAA0F;YAC1F,2EAA2E;YAC3E,MAAM,YAAY,GAAG,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,gBAAgB,GAAG,kBAAkB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;YACxE,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtD,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,oFAAoF;YACpF,oEAAoE;YACpE,qDAAqD;YACrD,2EAA2E;YAC3E,sFAAsF;YACtF,IAAI,wBAAwB;mBACxB,CAAC,UAAU,CAAC,WAAW;mBACvB,UAAU,CAAC,IAAI;mBACf,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,IAAI,UAAU,CAAC,WAAW,KAAK,CAAC,CAAC;mBACtE,UAAU,CAAC,uBAAuB,KAAK,SAAS;mBAChD,WAAW,EACb,CAAC;gBACF,MAAM,WAAW,GAAG,uBAAuB,CAAC,cAAc,EAAE,CAAC;gBAC7D,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;gBAC7F,MAAM,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC;gBAClG,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;gBAChF,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,aAAa,CAAC,EAAE,CAAC;oBAChG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC3B,OAAO,UAAU,CAAC;gBACnB,CAAC;YACF,CAAC;YACD,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;YACjH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,mBAAmB,CAAC,UAAsB,EAAE,uBAAmC,EAAE,gBAAwC,EAAE,gBAAkC;QACnK,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAErF,0EAA0E;YAC1E,+EAA+E;YAC/E,sEAAsE;YACtE,MAAM,YAAY,GAAG,UAAU,CAAC,kBAAkB;gBACjD,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC;gBACxD,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAE3B,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC3N,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;oBAC5B,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC/B,OAAO;wBACN,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,IAAI,gCAAiB,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;qBAC3L,CAAC;gBACH,CAAC;qBAAM,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBAC3D,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC5B,CAAC;qBAAM,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;oBACxC,qCAAqC;oBACrC,SAAS;gBACV,CAAC;qBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;wBAClG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC5B,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,CAAC;gBAC3E,CAAC;qBAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,oBAAoB;gBAClD,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5B,CAAC;IAEM,kBAAkB,CAAC,uBAAmC,EAAE,IAAuB;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACnF,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;gBACjC,SAAS;YACV,CAAC;YACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,SAAS,CAAC,oBAAoB;YAC/B,CAAC;YACD,MAAM,aAAa,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC,aAAa,EAAE,uBAAuB,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvM,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACvC,SAAS;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACpJ,IAAI,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,OAAO,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;CACD"}
|
|
@@ -88,6 +88,17 @@ export declare class NextEditProvider extends Disposable implements INextEditPro
|
|
|
88
88
|
private _cancelPendingRequestDueToDocChange;
|
|
89
89
|
getNextEdit(docId: DocumentId, context: NESInlineCompletionContext, logContext: InlineEditRequestLogContext, cancellationToken: CancellationToken, telemetryBuilder: LlmNESTelemetryBuilder): Promise<NextEditResult>;
|
|
90
90
|
private _getNextEditCanThrow;
|
|
91
|
+
/**
|
|
92
|
+
* Cross-file NES: when the first streamed edit targets a document other than the active
|
|
93
|
+
* one, also cache an `activeDoc (content + edit window) -> suggestion-in-targetDoc`
|
|
94
|
+
* association. This lets the cross-file suggestion be re-served from cache while the cursor
|
|
95
|
+
* is still in the active document (the regular path only caches it under the target
|
|
96
|
+
* document, which is reachable from cache only after the user jumps there).
|
|
97
|
+
*
|
|
98
|
+
* The entry is stored without `userEditSince`, so it is never tracked/rebased: its edit is
|
|
99
|
+
* in the target document's coordinate space and is served by exact content match only.
|
|
100
|
+
*/
|
|
101
|
+
private _maybeCacheCrossFileEditUnderActiveDoc;
|
|
91
102
|
private determineNesConfigs;
|
|
92
103
|
private _processDoc;
|
|
93
104
|
private fetchNextEdit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextEditProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditProvider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAa,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAC/G,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAIvF,OAAO,EAAE,2BAA2B,EAAyB,MAAM,2DAA2D,CAAC;AAC/H,OAAO,EAAuB,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AACpH,OAAO,EAAE,0BAA0B,EAA+H,MAAM,gEAAgE,CAAC;AAEzO,OAAO,EAAmC,uBAAuB,EAAE,MAAM,kFAAkF,CAAC;AAC5J,OAAO,EAA4C,qBAAqB,EAAE,MAAM,iFAAiF,CAAC;AAClK,OAAO,EAAW,WAAW,EAAa,MAAM,yCAAyC,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAqB,MAAM,sDAAsD,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AAMxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAmB,WAAW,EAAgB,MAAM,wCAAwC,CAAC;AAWhH,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,sBAAsB,EAAqB,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"nextEditProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,6 +95,7 @@ function createDocStateLookupMap(projectedDocuments, xtabEditHistory) {
|
|
|
95
95
|
docContents: baseDocState,
|
|
96
96
|
editsSoFar: stringEdit_1.StringEdit.empty,
|
|
97
97
|
nextEdits: [],
|
|
98
|
+
patchIndices: [],
|
|
98
99
|
docId: id,
|
|
99
100
|
};
|
|
100
101
|
}
|
|
@@ -106,11 +107,28 @@ function createDocStateLookupMap(projectedDocuments, xtabEditHistory) {
|
|
|
106
107
|
docContents: doc.documentAfterEdits,
|
|
107
108
|
editsSoFar: stringEdit_1.StringEdit.empty,
|
|
108
109
|
nextEdits: [],
|
|
110
|
+
patchIndices: [],
|
|
109
111
|
docId: id,
|
|
110
112
|
};
|
|
111
113
|
});
|
|
112
114
|
return statePerDoc;
|
|
113
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Computes the originating model-patch index for a served edit. In the rebase path
|
|
118
|
+
* the served edit is addressed by `rebasedEditIndex` into the entry's bundled
|
|
119
|
+
* `patchIndices`; otherwise the entry carries its own `patchIndex`.
|
|
120
|
+
*
|
|
121
|
+
* Invariant: `rebasedEditIndex` is only ever set for entry 0 (the sole entry given a
|
|
122
|
+
* `patchIndices` bundle), so whenever it is defined `patchIndices` is defined too.
|
|
123
|
+
* We therefore deliberately do NOT fall back to `patchIndex` in the rebase branch: a
|
|
124
|
+
* served bundle slot of `undefined` is a genuine "no originating patch" attribution
|
|
125
|
+
* and must not be masked by entry 0's own patch index.
|
|
126
|
+
*/
|
|
127
|
+
function getSourcePatchIndex(cachedEdit) {
|
|
128
|
+
return cachedEdit.rebasedEditIndex !== undefined
|
|
129
|
+
? cachedEdit.patchIndices?.[cachedEdit.rebasedEditIndex]
|
|
130
|
+
: cachedEdit.patchIndex;
|
|
131
|
+
}
|
|
114
132
|
var NesOutcome;
|
|
115
133
|
(function (NesOutcome) {
|
|
116
134
|
NesOutcome["Accepted"] = "accepted";
|
|
@@ -229,7 +247,7 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
229
247
|
const documentAtInvocationTime = doc.value.get();
|
|
230
248
|
const selections = doc.selection.get();
|
|
231
249
|
const nesConfigs = this.determineNesConfigs(telemetryBuilder, logContext);
|
|
232
|
-
|
|
250
|
+
let cachedEdit = this._nextEditCache.lookupNextEdit(docId, documentAtInvocationTime, selections);
|
|
233
251
|
if (cachedEdit?.rejected) {
|
|
234
252
|
logger.trace('cached edit was previously rejected');
|
|
235
253
|
telemetryBuilder.setStatus('previouslyRejectedCache');
|
|
@@ -242,6 +260,24 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
242
260
|
const nextEditResult = new nextEditResult_1.NextEditResult(logContext.requestId, cachedEdit.source, undefined);
|
|
243
261
|
return nextEditResult;
|
|
244
262
|
}
|
|
263
|
+
// Cross-file cache hit validity: a cross-file entry is keyed under the active document but
|
|
264
|
+
// carries an edit for a *different* target document. It can only be served while that
|
|
265
|
+
// target document is open AND still byte-identical to the snapshot the edit's offsets
|
|
266
|
+
// index into. If the target is closed, changed, or the snapshot is missing, the cached
|
|
267
|
+
// edit cannot be safely placed — so treat it as a cache miss and fall through to a fresh
|
|
268
|
+
// fetch. Returning "no edit" instead would keep re-serving this dead entry (still keyed
|
|
269
|
+
// under the unchanged active document) on every retrigger until the active document is
|
|
270
|
+
// edited, starving the active file of suggestions.
|
|
271
|
+
if (cachedEdit && cachedEdit.targetDocId && cachedEdit.targetDocId !== docId) {
|
|
272
|
+
const targetDoc = this._workspace.getDocument(cachedEdit.targetDocId);
|
|
273
|
+
const isUsable = !!targetDoc
|
|
274
|
+
&& !!cachedEdit.targetDocumentBeforeEdit
|
|
275
|
+
&& targetDoc.value.get().value === cachedEdit.targetDocumentBeforeEdit.value;
|
|
276
|
+
if (!isUsable) {
|
|
277
|
+
logger.trace(`cross-file cached edit unusable (target ${targetDoc ? 'changed' : 'not open'}); treating as cache miss and refetching`);
|
|
278
|
+
cachedEdit = undefined;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
245
281
|
let edit;
|
|
246
282
|
let currentDocument;
|
|
247
283
|
let error;
|
|
@@ -262,10 +298,21 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
262
298
|
isFromSpeculativeRequest = cachedEdit.source.isSpeculative;
|
|
263
299
|
req = cachedEdit.source;
|
|
264
300
|
logContext.setIsCachedResult(cachedEdit.source.log);
|
|
265
|
-
|
|
301
|
+
// A cross-file cached entry is keyed and gated under the active document, but its
|
|
302
|
+
// edit applies to a different (target) document. Its validity (target document open
|
|
303
|
+
// and unchanged) was confirmed above, so serve it against the target's live content.
|
|
304
|
+
targetDocumentId = cachedEdit.targetDocId ?? targetDocumentId;
|
|
305
|
+
if (cachedEdit.targetDocId && cachedEdit.targetDocId !== docId) {
|
|
306
|
+
currentDocument = this._workspace.getDocument(cachedEdit.targetDocId).value.get();
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
currentDocument = documentAtInvocationTime;
|
|
310
|
+
}
|
|
266
311
|
telemetryBuilder.setHeaderRequestId(req.headerRequestId);
|
|
267
312
|
telemetryBuilder.setIsFromCache();
|
|
268
313
|
telemetryBuilder.setSubsequentEditOrder(cachedEdit.rebasedEditIndex ?? cachedEdit.subsequentN);
|
|
314
|
+
// Attribute the served edit to its originating model patch.
|
|
315
|
+
telemetryBuilder.setSourcePatchIndex(getSourcePatchIndex(cachedEdit));
|
|
269
316
|
// back-date the recording bookmark of the cached edit to the bookmark of the original request.
|
|
270
317
|
logContext.recordingBookmark = req.log.recordingBookmark;
|
|
271
318
|
cacheEntry = cachedEdit.baseCacheEntry ?? cachedEdit;
|
|
@@ -311,6 +358,8 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
311
358
|
edit = { actualEdit: suggestedNextEdit, isFromCursorJump: result.val.isFromCursorJump };
|
|
312
359
|
isFromSpeculativeRequest = result.val.isFromSpeculativeRequest ?? false;
|
|
313
360
|
cacheEntry = result.val.baseCacheEntry ?? result.val;
|
|
361
|
+
// Attribute the served (first/fresh) edit to its originating model patch.
|
|
362
|
+
telemetryBuilder.setSourcePatchIndex(getSourcePatchIndex(result.val));
|
|
314
363
|
}
|
|
315
364
|
}
|
|
316
365
|
}
|
|
@@ -366,6 +415,25 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
366
415
|
logger.trace('returning next edit result');
|
|
367
416
|
return nextEditResult;
|
|
368
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Cross-file NES: when the first streamed edit targets a document other than the active
|
|
420
|
+
* one, also cache an `activeDoc (content + edit window) -> suggestion-in-targetDoc`
|
|
421
|
+
* association. This lets the cross-file suggestion be re-served from cache while the cursor
|
|
422
|
+
* is still in the active document (the regular path only caches it under the target
|
|
423
|
+
* document, which is reachable from cache only after the user jumps there).
|
|
424
|
+
*
|
|
425
|
+
* The entry is stored without `userEditSince`, so it is never tracked/rebased: its edit is
|
|
426
|
+
* in the target document's coordinate space and is served by exact content match only.
|
|
427
|
+
*/
|
|
428
|
+
_maybeCacheCrossFileEditUnderActiveDoc(ithEdit, activeDocId, activeDocContents, activeDocEditWindow, targetDocId, targetDocContents, nextEdit, streamedEdit, source) {
|
|
429
|
+
if (ithEdit !== 0 || targetDocId === activeDocId) {
|
|
430
|
+
return false; // only the first streamed edit, and only when it targets a different document
|
|
431
|
+
}
|
|
432
|
+
this._nextEditCache.setKthNextEdit(activeDocId, activeDocContents, activeDocEditWindow, nextEdit, 0, undefined, // no bundled edits: served by exact content match only
|
|
433
|
+
undefined, // no userEditSince: never tracked/rebased (edit is in target-doc coords)
|
|
434
|
+
source, { isFromCursorJump: streamedEdit.isFromCursorJump, originalEditWindow: streamedEdit.originalWindow, patchIndex: streamedEdit.patchIndex, targetDocId, targetDocumentBeforeEdit: targetDocContents });
|
|
435
|
+
return true;
|
|
436
|
+
}
|
|
369
437
|
determineNesConfigs(telemetryBuilder, logContext) {
|
|
370
438
|
const nesConfigs = {
|
|
371
439
|
isAsyncCompletions: this._configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsAsyncCompletions, this._expService),
|
|
@@ -560,6 +628,10 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
560
628
|
const statePerDoc = createDocStateLookupMap(projectedDocuments, xtabEditHistory);
|
|
561
629
|
const editStream = this._statelessNextEditProvider.provideNextEdit(nextEditRequest, logger, logContext, nextEditRequest.cancellationTokenSource.token);
|
|
562
630
|
let ithEdit = -1;
|
|
631
|
+
// Tracks whether this stream stored a cross-file suggestion under the active document.
|
|
632
|
+
// When it did, the active document must NOT be cached as "no edit" at stream end —
|
|
633
|
+
// that would clobber the cross-file entry stored under the same key.
|
|
634
|
+
let didCacheCrossFileActiveDocEntry = false;
|
|
563
635
|
const processEdit = (streamedEdit, telemetry) => {
|
|
564
636
|
++ithEdit;
|
|
565
637
|
const myLogger = logger.createSubLogger('processEdit');
|
|
@@ -591,8 +663,10 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
591
663
|
// populate the cache
|
|
592
664
|
const nextEditReplacement = rebasedEdit.replacements[0];
|
|
593
665
|
targetDocState.nextEdits.push(nextEditReplacement);
|
|
594
|
-
|
|
666
|
+
targetDocState.patchIndices.push(streamedEdit.patchIndex);
|
|
667
|
+
cachedEdit = this._nextEditCache.setKthNextEdit(targetDocState.docId, targetDocState.docContents, ithEdit === 0 ? streamedEdit.window : undefined, nextEditReplacement, ithEdit, ithEdit === 0 ? targetDocState.nextEdits : undefined, ithEdit === 0 ? nextEditRequest.intermediateUserEdit : undefined, req, { isFromCursorJump: streamedEdit.isFromCursorJump, originalEditWindow: streamedEdit.originalWindow, cursorOffset: targetDocState.docId === curDocId ? activeDocSelection?.start : undefined, patchIndex: streamedEdit.patchIndex, patchIndices: ithEdit === 0 ? targetDocState.patchIndices : undefined });
|
|
595
668
|
myLogger.trace(`populated cache for ${ithEdit}`);
|
|
669
|
+
didCacheCrossFileActiveDocEntry = this._maybeCacheCrossFileEditUnderActiveDoc(ithEdit, curDocId, nextEditRequest.documentBeforeEdits, streamedEdit.window, targetDocState.docId, targetDocState.docContents, nextEditReplacement, streamedEdit, req) || didCacheCrossFileActiveDocEntry;
|
|
596
670
|
}
|
|
597
671
|
if (!firstEdit.isSettled) {
|
|
598
672
|
myLogger.trace('resolving firstEdit promise');
|
|
@@ -615,7 +689,9 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
615
689
|
}
|
|
616
690
|
else {
|
|
617
691
|
myLogger.trace(`no edit, reason: ${completionReason.kind}`);
|
|
618
|
-
|
|
692
|
+
// Skip caching a "no edit" entry for the active document when a cross-file
|
|
693
|
+
// suggestion was already stored under the same key — doing so would clobber it.
|
|
694
|
+
if (completionReason instanceof statelessNextEditProvider_1.NoNextEditReason.NoSuggestions && !didCacheCrossFileActiveDocEntry) {
|
|
619
695
|
const { documentBeforeEdits, window } = completionReason;
|
|
620
696
|
const reducedWindow = window ? computeReducedWindow(window, activeDocSelection, documentBeforeEdits) : undefined;
|
|
621
697
|
this._nextEditCache.setNoNextEdit(curDocId, documentBeforeEdits, reducedWindow, req);
|
|
@@ -1012,9 +1088,11 @@ let NextEditProvider = NextEditProvider_1 = class NextEditProvider extends lifec
|
|
|
1012
1088
|
if (rebasedEdit.replacements.length === 1) {
|
|
1013
1089
|
const nextEditReplacement = rebasedEdit.replacements[0];
|
|
1014
1090
|
targetDocState.nextEdits.push(nextEditReplacement);
|
|
1091
|
+
targetDocState.patchIndices.push(streamedEdit.patchIndex);
|
|
1015
1092
|
// Populate the cache with the speculative result
|
|
1016
1093
|
const cachedEdit = this._nextEditCache.setKthNextEdit(targetDocState.docId, targetDocState.docContents, ithEdit === 0 ? streamedEdit.window : undefined, nextEditReplacement, ithEdit, ithEdit === 0 ? targetDocState.nextEdits : undefined, undefined, // no userEditSince for speculative
|
|
1017
|
-
req, { isFromCursorJump: streamedEdit.isFromCursorJump, originalEditWindow: streamedEdit.originalWindow, cursorOffset: targetDocState.docId === curDocId ? cursorOffset : undefined });
|
|
1094
|
+
req, { isFromCursorJump: streamedEdit.isFromCursorJump, originalEditWindow: streamedEdit.originalWindow, cursorOffset: targetDocState.docId === curDocId ? cursorOffset : undefined, patchIndex: streamedEdit.patchIndex, patchIndices: ithEdit === 0 ? targetDocState.patchIndices : undefined });
|
|
1095
|
+
this._maybeCacheCrossFileEditUnderActiveDoc(ithEdit, curDocId, nextEditRequest.documentBeforeEdits, streamedEdit.window, targetDocState.docId, targetDocState.docContents, nextEditReplacement, streamedEdit, req);
|
|
1018
1096
|
if (!nextEditRequest.firstEdit.isSettled && cachedEdit) {
|
|
1019
1097
|
nextEditRequest.firstEdit.complete(result_1.Result.ok(cachedEdit));
|
|
1020
1098
|
nextEditRequest.setResult(new statelessNextEditProvider_1.StatelessNextEditResult(result_1.Result.ok(undefined), res.value.telemetryBuilder));
|