@vscode/chat-lib 0.3.1-21 → 0.3.1-23
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/xtab/common/diffHistoryForPrompt.d.ts +6 -0
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.js +75 -0
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.js.map +1 -0
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts +13020 -362
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js +8 -232
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCraftingUtils.d.ts +4 -0
- package/dist/src/_internal/extension/xtab/common/promptCraftingUtils.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/promptCraftingUtils.js +22 -0
- package/dist/src/_internal/extension/xtab/common/promptCraftingUtils.js.map +1 -0
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts +41 -0
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js +375 -0
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js.map +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +4 -2
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +3 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +4 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/compactionDataContainer.d.ts +17 -0
- package/dist/src/_internal/platform/endpoint/common/compactionDataContainer.d.ts.map +1 -0
- package/dist/src/_internal/platform/endpoint/common/compactionDataContainer.js +37 -0
- package/dist/src/_internal/platform/endpoint/common/compactionDataContainer.js.map +1 -0
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +56 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +12 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +14 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditsModelService.d.ts +2 -0
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditsModelService.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditsModelService.js +4 -0
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditsModelService.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts +9 -2
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js +65 -54
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.d.ts +4 -2
- package/dist/src/_internal/platform/networking/common/fetch.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetch.js +9 -0
- package/dist/src/_internal/platform/networking/common/fetch.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.d.ts +2 -2
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/openai.d.ts +11 -0
- package/dist/src/_internal/platform/networking/common/openai.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/openai.js +3 -1
- package/dist/src/_internal/platform/networking/common/openai.js.map +1 -1
- package/dist/src/_internal/util/common/arrays.d.ts +5 -0
- package/dist/src/_internal/util/common/arrays.d.ts.map +1 -1
- package/dist/src/_internal/util/common/arrays.js +10 -0
- package/dist/src/_internal/util/common/arrays.js.map +1 -1
- package/dist/src/_internal/util/common/result.d.ts +34 -10
- package/dist/src/_internal/util/common/result.d.ts.map +1 -1
- package/dist/src/_internal/util/common/result.js +91 -2
- package/dist/src/_internal/util/common/result.js.map +1 -1
- package/dist/src/package.json +52 -4
- package/package.json +1 -1
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getRecentCodeSnippets = getRecentCodeSnippets;
|
|
37
|
+
exports.historyEntriesToCodeSnippet = historyEntriesToCodeSnippet;
|
|
38
|
+
exports.buildCodeSnippetsUsingPagedClipping = buildCodeSnippetsUsingPagedClipping;
|
|
39
|
+
/*---------------------------------------------------------------------------------------------
|
|
40
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
41
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
42
|
+
*--------------------------------------------------------------------------------------------*/
|
|
43
|
+
const documentId_1 = require("../../../platform/inlineEdits/common/dataTypes/documentId");
|
|
44
|
+
const xtabPromptOptions = __importStar(require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions"));
|
|
45
|
+
const xtabPromptOptions_1 = require("../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions");
|
|
46
|
+
const languageContextService_1 = require("../../../platform/languageServer/common/languageContextService");
|
|
47
|
+
const arrays_1 = require("../../../util/common/arrays");
|
|
48
|
+
const assert_1 = require("../../../util/vs/base/common/assert");
|
|
49
|
+
const errors_1 = require("../../../util/vs/base/common/errors");
|
|
50
|
+
const offsetRange_1 = require("../../../util/vs/editor/common/core/ranges/offsetRange");
|
|
51
|
+
const promptCrafting_1 = require("./promptCrafting");
|
|
52
|
+
const promptCraftingUtils_1 = require("./promptCraftingUtils");
|
|
53
|
+
const tags_1 = require("./tags");
|
|
54
|
+
function getRecentCodeSnippets(activeDoc, xtabHistory, langCtx, computeTokens, opts) {
|
|
55
|
+
const { includeViewedFiles, nDocuments, clippingStrategy } = opts.recentlyViewedDocuments;
|
|
56
|
+
let recentlyViewedCodeSnippets;
|
|
57
|
+
if (clippingStrategy === xtabPromptOptions_1.RecentFileClippingStrategy.Proportional) {
|
|
58
|
+
const grouped = collectRecentDocumentsGrouped(xtabHistory, activeDoc.id, includeViewedFiles, nDocuments);
|
|
59
|
+
recentlyViewedCodeSnippets = grouped.map(g => historyEntriesToCodeSnippet(g.entries));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const docsBesidesActiveDoc = collectRecentDocuments(xtabHistory, activeDoc.id, includeViewedFiles, nDocuments);
|
|
63
|
+
recentlyViewedCodeSnippets = docsBesidesActiveDoc.map(d => historyEntryToCodeSnippet(d, clippingStrategy));
|
|
64
|
+
}
|
|
65
|
+
const { snippets, docsInPrompt } = buildCodeSnippetsUsingPagedClipping(recentlyViewedCodeSnippets, computeTokens, opts);
|
|
66
|
+
if (langCtx) {
|
|
67
|
+
appendLanguageContextSnippets(langCtx, snippets, opts.languageContext.maxTokens, computeTokens, opts.recentlyViewedDocuments.includeLineNumbers);
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
codeSnippets: snippets.join('\n\n'),
|
|
71
|
+
documents: docsInPrompt,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function formatLinesWithLineNumbers(lines, includeLineNumbers, startLineOffset) {
|
|
75
|
+
switch (includeLineNumbers) {
|
|
76
|
+
case xtabPromptOptions.IncludeLineNumbersOption.WithSpaceAfter:
|
|
77
|
+
return lines.map((line, idx) => `${startLineOffset + idx}| ${line}`);
|
|
78
|
+
case xtabPromptOptions.IncludeLineNumbersOption.WithoutSpace:
|
|
79
|
+
return lines.map((line, idx) => `${startLineOffset + idx}|${line}`);
|
|
80
|
+
case xtabPromptOptions.IncludeLineNumbersOption.None:
|
|
81
|
+
return lines;
|
|
82
|
+
default:
|
|
83
|
+
(0, assert_1.assertNever)(includeLineNumbers);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function formatCodeSnippet(documentId, lines, opts) {
|
|
87
|
+
const filePath = (0, promptCraftingUtils_1.toUniquePath)(documentId, undefined);
|
|
88
|
+
const firstLine = opts.truncated
|
|
89
|
+
? `code_snippet_file_path: ${filePath} (truncated)`
|
|
90
|
+
: `code_snippet_file_path: ${filePath}`;
|
|
91
|
+
const formattedLines = formatLinesWithLineNumbers(lines, opts.includeLineNumbers, opts.startLineOffset);
|
|
92
|
+
const fileContent = formattedLines.join('\n');
|
|
93
|
+
return [tags_1.PromptTags.RECENT_FILE.start, firstLine, fileContent, tags_1.PromptTags.RECENT_FILE.end].join('\n');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Collect last `nDocuments` unique documents from xtab history, excluding the active document.
|
|
97
|
+
* Returns entries from most to least recent.
|
|
98
|
+
*/
|
|
99
|
+
function collectRecentDocuments(xtabHistory, activeDocId, includeViewedFiles, nDocuments) {
|
|
100
|
+
const result = [];
|
|
101
|
+
const seenDocuments = new Set();
|
|
102
|
+
for (let i = xtabHistory.length - 1; i >= 0; --i) {
|
|
103
|
+
const entry = xtabHistory[i];
|
|
104
|
+
if (!includeViewedFiles && entry.kind === 'visibleRanges') {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (entry.docId === activeDocId || seenDocuments.has(entry.docId)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
result.push(entry);
|
|
111
|
+
seenDocuments.add(entry.docId);
|
|
112
|
+
if (result.length >= nDocuments) {
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Collect last `nDocuments` unique documents from xtab history, excluding the active document.
|
|
120
|
+
* Unlike {@link collectRecentDocuments}, this returns *all* entries per document (not just the latest),
|
|
121
|
+
* so that multiple edit locations within a single document can be used as focal ranges.
|
|
122
|
+
* Returns groups from most to least recently active document.
|
|
123
|
+
*/
|
|
124
|
+
function collectRecentDocumentsGrouped(xtabHistory, activeDocId, includeViewedFiles, nDocuments) {
|
|
125
|
+
const docOrder = [];
|
|
126
|
+
const docEntries = new Map();
|
|
127
|
+
for (let i = xtabHistory.length - 1; i >= 0; --i) {
|
|
128
|
+
const entry = xtabHistory[i];
|
|
129
|
+
if (!includeViewedFiles && entry.kind === 'visibleRanges') {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (entry.docId === activeDocId) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const existing = docEntries.get(entry.docId);
|
|
136
|
+
if (existing) {
|
|
137
|
+
existing.push(entry);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
if (docOrder.length >= nDocuments) {
|
|
141
|
+
continue; // already have enough unique docs, skip entries for new docs
|
|
142
|
+
}
|
|
143
|
+
docOrder.push(entry.docId);
|
|
144
|
+
docEntries.set(entry.docId, [entry]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return docOrder.map(docId => ({ docId, entries: docEntries.get(docId) }));
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Convert a single history entry to a code snippet.
|
|
151
|
+
* When `clippingStrategy` is `AroundEditRange` or `Proportional`, edit entries get `focalRanges`
|
|
152
|
+
* derived from the edit's replacement ranges in the post-edit document.
|
|
153
|
+
*/
|
|
154
|
+
function historyEntryToCodeSnippet(d, clippingStrategy) {
|
|
155
|
+
if (d.kind === 'edit') {
|
|
156
|
+
const content = d.edit.edit.applyOnText(d.edit.base); // FIXME@ulugbekna: I don't like this being computed afresh
|
|
157
|
+
const useFocalRanges = clippingStrategy !== xtabPromptOptions_1.RecentFileClippingStrategy.TopToBottom;
|
|
158
|
+
return {
|
|
159
|
+
id: d.docId,
|
|
160
|
+
content,
|
|
161
|
+
focalRanges: useFocalRanges ? d.edit.edit.getNewRanges() : undefined,
|
|
162
|
+
editEntryCount: 1,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
id: d.docId,
|
|
167
|
+
content: d.documentContent,
|
|
168
|
+
focalRanges: d.visibleRanges,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Convert a group of history entries (all for the same document) into a single code snippet.
|
|
173
|
+
* Merges focal ranges from all edit entries so clipping can center on all edit locations.
|
|
174
|
+
*
|
|
175
|
+
* Focal ranges are only collected from edit entries — visibleRanges entries are skipped
|
|
176
|
+
* because their character offsets correspond to older document snapshots and cannot be
|
|
177
|
+
* reliably transformed to the current content's coordinate space.
|
|
178
|
+
*
|
|
179
|
+
* For older edit entries, their focal ranges are transformed forward through the chain
|
|
180
|
+
* of subsequent edits using {@link BaseStringEdit.applyToOffsetRange} so that they
|
|
181
|
+
* remain valid in the most recent content.
|
|
182
|
+
*/
|
|
183
|
+
function historyEntriesToCodeSnippet(entries) {
|
|
184
|
+
// Use the most recent entry's content as the base
|
|
185
|
+
const mostRecent = entries[0];
|
|
186
|
+
const content = mostRecent.kind === 'edit'
|
|
187
|
+
? mostRecent.edit.edit.applyOnText(mostRecent.edit.base)
|
|
188
|
+
: mostRecent.documentContent;
|
|
189
|
+
// Collect only edit entries (most recent first). VisibleRanges entries are
|
|
190
|
+
// skipped because their character offsets refer to older document snapshots.
|
|
191
|
+
const editEntries = [];
|
|
192
|
+
for (const entry of entries) {
|
|
193
|
+
if (entry.kind === 'edit') {
|
|
194
|
+
editEntries.push(entry);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Transform focal ranges from each edit entry into the most recent content's
|
|
198
|
+
// coordinate space. Each entry's getNewRanges() returns character offsets
|
|
199
|
+
// valid in that entry's own post-edit document. The chain invariant is:
|
|
200
|
+
// editEntries[j].postEdit ≈ editEntries[j-1].base
|
|
201
|
+
// so we apply each intervening edit's transformation in sequence (indices
|
|
202
|
+
// j-1 down to 0) to project an older entry's ranges into the newest content.
|
|
203
|
+
const allFocalRanges = [];
|
|
204
|
+
for (let j = 0; j < editEntries.length; j++) {
|
|
205
|
+
let ranges = editEntries[j].edit.edit.getNewRanges();
|
|
206
|
+
for (let k = j - 1; k >= 0; k--) {
|
|
207
|
+
ranges = ranges.map(r => editEntries[k].edit.edit.applyToOffsetRange(r));
|
|
208
|
+
}
|
|
209
|
+
allFocalRanges.push(...ranges);
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
id: mostRecent.docId,
|
|
213
|
+
content,
|
|
214
|
+
focalRanges: allFocalRanges.length > 0 ? allFocalRanges : undefined,
|
|
215
|
+
editEntryCount: Math.max(editEntries.length, 1),
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Append language context snippets to the snippets array, respecting the token budget.
|
|
220
|
+
*/
|
|
221
|
+
function appendLanguageContextSnippets(langCtx, snippets, tokenBudget, computeTokens, includeLineNumbers) {
|
|
222
|
+
for (const langCtxEntry of langCtx.items) {
|
|
223
|
+
// Context which is provided on timeout is not guranteed to be good context
|
|
224
|
+
// TODO should these be included?
|
|
225
|
+
if (langCtxEntry.onTimeout) {
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
const ctx = langCtxEntry.context;
|
|
229
|
+
// TODO@ulugbekna: currently we only include snippets
|
|
230
|
+
// TODO@ulugbekna: are the snippets sorted by priority?
|
|
231
|
+
if (ctx.kind === languageContextService_1.ContextKind.Snippet) {
|
|
232
|
+
const langCtxSnippet = ctx.value;
|
|
233
|
+
const potentialBudget = tokenBudget - computeTokens(langCtxSnippet);
|
|
234
|
+
if (potentialBudget < 0) {
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
const documentId = documentId_1.DocumentId.create(ctx.uri.toString());
|
|
238
|
+
snippets.push(formatCodeSnippet(documentId, langCtxSnippet.split(/\r?\n/), { truncated: false, includeLineNumbers, startLineOffset: 0 }));
|
|
239
|
+
tokenBudget = potentialBudget;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Clip a file without visible ranges by taking pages from the start until budget is exhausted.
|
|
245
|
+
*
|
|
246
|
+
* @returns The remaining token budget after clipping.
|
|
247
|
+
*/
|
|
248
|
+
function clipFullDocument(document, pages, totalLineCount, tokenBudget, computeTokens, includeLineNumbers, result) {
|
|
249
|
+
let allowedBudget = tokenBudget;
|
|
250
|
+
const linesToKeep = [];
|
|
251
|
+
for (const page of pages) {
|
|
252
|
+
const allowedBudgetLeft = allowedBudget - (0, promptCraftingUtils_1.countTokensForLines)(page, computeTokens);
|
|
253
|
+
if (allowedBudgetLeft < 0) {
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
linesToKeep.push(...page);
|
|
257
|
+
allowedBudget = allowedBudgetLeft;
|
|
258
|
+
}
|
|
259
|
+
if (linesToKeep.length > 0) {
|
|
260
|
+
const isTruncated = linesToKeep.length !== totalLineCount;
|
|
261
|
+
result.docsInPrompt.add(document.id);
|
|
262
|
+
result.snippets.push(formatCodeSnippet(document.id, linesToKeep, { truncated: isTruncated, includeLineNumbers, startLineOffset: 0 }));
|
|
263
|
+
}
|
|
264
|
+
return allowedBudget;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Clip a file around its focal ranges (visible ranges or edit locations)
|
|
268
|
+
* by expanding pages outward until budget is exhausted.
|
|
269
|
+
*
|
|
270
|
+
* @returns The remaining token budget after clipping, or `undefined` if nothing fit into the budget.
|
|
271
|
+
*/
|
|
272
|
+
function clipAroundFocalRanges(document, pageSize, totalLineCount, tokenBudget, computeTokens, includeLineNumbers, result) {
|
|
273
|
+
const startOffset = Math.min(...document.focalRanges.map(range => range.start));
|
|
274
|
+
const endOffset = Math.max(...document.focalRanges.map(range => range.endExclusive - 1));
|
|
275
|
+
const contentTransform = document.content.getTransformer();
|
|
276
|
+
const startPos = contentTransform.getPosition(startOffset);
|
|
277
|
+
const endPos = contentTransform.getPosition(endOffset);
|
|
278
|
+
const { firstPageIdx, lastPageIdxIncl, budgetLeft } = (0, promptCrafting_1.expandRangeToPageRange)(document.content.getLines(), new offsetRange_1.OffsetRange(startPos.lineNumber - 1 /* convert from 1-based to 0-based */, endPos.lineNumber), pageSize, tokenBudget, computeTokens, false);
|
|
279
|
+
if (budgetLeft === tokenBudget) {
|
|
280
|
+
return undefined; // nothing fit — signal caller to stop
|
|
281
|
+
}
|
|
282
|
+
const startLineOffset = firstPageIdx * pageSize;
|
|
283
|
+
const linesToKeep = document.content.getLines().slice(startLineOffset, (lastPageIdxIncl + 1) * pageSize);
|
|
284
|
+
result.docsInPrompt.add(document.id);
|
|
285
|
+
result.snippets.push(formatCodeSnippet(document.id, linesToKeep, { truncated: linesToKeep.length < totalLineCount, includeLineNumbers, startLineOffset }));
|
|
286
|
+
return budgetLeft;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Build code snippets using paged clipping.
|
|
290
|
+
*
|
|
291
|
+
* @param recentlyViewedCodeSnippets List of recently viewed code snippets from most to least recent
|
|
292
|
+
*/
|
|
293
|
+
function buildCodeSnippetsUsingPagedClipping(recentlyViewedCodeSnippets, computeTokens, opts) {
|
|
294
|
+
const pageSize = opts.pagedClipping?.pageSize;
|
|
295
|
+
if (pageSize === undefined) {
|
|
296
|
+
throw (0, errors_1.illegalArgument)('Page size must be defined');
|
|
297
|
+
}
|
|
298
|
+
const clippingStrategy = opts.recentlyViewedDocuments.clippingStrategy;
|
|
299
|
+
if (clippingStrategy === xtabPromptOptions_1.RecentFileClippingStrategy.Proportional) {
|
|
300
|
+
return buildCodeSnippetsWithProportionalBudget(recentlyViewedCodeSnippets, computeTokens, opts, pageSize);
|
|
301
|
+
}
|
|
302
|
+
return buildCodeSnippetsGreedy(recentlyViewedCodeSnippets, computeTokens, opts, pageSize, clippingStrategy);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Greedy (most-recent-first) code snippet building. Used for `TopToBottom` and `AroundEditRange` strategies.
|
|
306
|
+
*/
|
|
307
|
+
function buildCodeSnippetsGreedy(recentlyViewedCodeSnippets, computeTokens, opts, pageSize, clippingStrategy) {
|
|
308
|
+
const result = {
|
|
309
|
+
snippets: [],
|
|
310
|
+
docsInPrompt: new Set(),
|
|
311
|
+
};
|
|
312
|
+
let maxTokenBudget = opts.recentlyViewedDocuments.maxTokens;
|
|
313
|
+
const includeLineNumbers = opts.recentlyViewedDocuments.includeLineNumbers;
|
|
314
|
+
for (const file of recentlyViewedCodeSnippets) {
|
|
315
|
+
const lines = file.content.getLines();
|
|
316
|
+
// When strategy is AroundEditRange and we have focalRanges (from edits or visible ranges),
|
|
317
|
+
// center the clip around those ranges instead of truncating from top.
|
|
318
|
+
const useFocalRanges = clippingStrategy !== xtabPromptOptions_1.RecentFileClippingStrategy.TopToBottom && file.focalRanges !== undefined;
|
|
319
|
+
if (useFocalRanges) {
|
|
320
|
+
const budgetLeft = clipAroundFocalRanges(file, pageSize, lines.length, maxTokenBudget, computeTokens, includeLineNumbers, result);
|
|
321
|
+
if (budgetLeft === undefined) {
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
maxTokenBudget = budgetLeft;
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
const pages = (0, arrays_1.batchArrayElements)(lines, pageSize);
|
|
328
|
+
maxTokenBudget = clipFullDocument(file, pages, lines.length, maxTokenBudget, computeTokens, includeLineNumbers, result);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return { snippets: result.snippets.reverse(), docsInPrompt: result.docsInPrompt };
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Proportional budget allocation: distribute tokens across files based on edit location count,
|
|
335
|
+
* then clip each file centered on its focal ranges.
|
|
336
|
+
*/
|
|
337
|
+
function buildCodeSnippetsWithProportionalBudget(recentlyViewedCodeSnippets, computeTokens, opts, pageSize) {
|
|
338
|
+
const result = {
|
|
339
|
+
snippets: [],
|
|
340
|
+
docsInPrompt: new Set(),
|
|
341
|
+
};
|
|
342
|
+
const totalBudget = opts.recentlyViewedDocuments.maxTokens;
|
|
343
|
+
const includeLineNumbers = opts.recentlyViewedDocuments.includeLineNumbers;
|
|
344
|
+
if (recentlyViewedCodeSnippets.length === 0) {
|
|
345
|
+
return { snippets: [], docsInPrompt: new Set() };
|
|
346
|
+
}
|
|
347
|
+
// Compute weights per file based on edit entry count
|
|
348
|
+
const weights = recentlyViewedCodeSnippets.map(f => f.editEntryCount ?? 1);
|
|
349
|
+
const totalWeight = weights.reduce((sum, w) => sum + w, 0);
|
|
350
|
+
// Per-file minimum: enough for at least 1 page
|
|
351
|
+
const minPerFile = Math.floor(totalBudget / (recentlyViewedCodeSnippets.length * 4));
|
|
352
|
+
// Per-file maximum: no more than 60% of total budget
|
|
353
|
+
const maxPerFile = Math.floor(totalBudget * 0.6);
|
|
354
|
+
// Pre-compute per-file budgets
|
|
355
|
+
const fileBudgets = weights.map(w => {
|
|
356
|
+
const raw = Math.floor(totalBudget * (w / totalWeight));
|
|
357
|
+
return Math.max(minPerFile, Math.min(maxPerFile, raw));
|
|
358
|
+
});
|
|
359
|
+
let unspentBudget = 0;
|
|
360
|
+
for (let i = 0; i < recentlyViewedCodeSnippets.length; i++) {
|
|
361
|
+
const file = recentlyViewedCodeSnippets[i];
|
|
362
|
+
const lines = file.content.getLines();
|
|
363
|
+
const effectiveBudget = fileBudgets[i] + unspentBudget;
|
|
364
|
+
if (file.focalRanges !== undefined && file.focalRanges.length > 0) {
|
|
365
|
+
const budgetLeft = clipAroundFocalRanges(file, pageSize, lines.length, effectiveBudget, computeTokens, includeLineNumbers, result);
|
|
366
|
+
unspentBudget = budgetLeft ?? effectiveBudget;
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
const pages = (0, arrays_1.batchArrayElements)(lines, pageSize);
|
|
370
|
+
unspentBudget = clipFullDocument(file, pages, lines.length, effectiveBudget, computeTokens, includeLineNumbers, result);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return { snippets: result.snippets.reverse(), docsInPrompt: result.docsInPrompt };
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=recentFilesForPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recentFilesForPrompt.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/common/recentFilesForPrompt.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":"AAOA,OAAO,EAAE,cAAc,EAAuC,MAAM,2CAA2C,CAAC;AAChH,OAAO,EAAa,qBAAqB,EAAkB,MAAM,6DAA6D,CAAC;AAC/H,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,2DAA2D,CAAC;AAEvF,OAAO,KAAK,iBAAiB,MAAM,kEAAkE,CAAC;AACtG,OAAO,EAA4B,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAC9J,OAAO,EAAE,2BAA2B,EAAE,MAAM,2DAA2D,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAExG,OAAO,EAAiB,0BAA0B,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,wBAAwB,EAAqE,MAAM,gEAAgE,CAAC;AAEzT,OAAO,EAAE,+BAA+B,EAAkB,MAAM,iFAAiF,CAAC;AAClJ,OAAO,EAAE,2BAA2B,EAAE,MAAM,+DAA+D,CAAC;AAE5G,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sEAAsE,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAOxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAM9E,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"xtabProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/xtab/node/xtabProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,6 +95,7 @@ const importFiltering_1 = require("../../inlineEdits/node/importFiltering");
|
|
|
95
95
|
const inlineSuggestion_1 = require("../common/inlineSuggestion");
|
|
96
96
|
const lintErrors_1 = require("../common/lintErrors");
|
|
97
97
|
const promptCrafting_1 = require("../common/promptCrafting");
|
|
98
|
+
const promptCraftingUtils_1 = require("../common/promptCraftingUtils");
|
|
98
99
|
const systemMessages_1 = require("../common/systemMessages");
|
|
99
100
|
const tags_1 = require("../common/tags");
|
|
100
101
|
const terminalOutput_1 = require("../common/terminalOutput");
|
|
@@ -224,7 +225,7 @@ let XtabProvider = class XtabProvider {
|
|
|
224
225
|
const editWindow = currentDocument.transformer.getOffsetRange(new range_1.Range(editWindowLinesRange.start + 1, 1, editWindowLinesRange.endExclusive, editWindowLastLineLength + 1));
|
|
225
226
|
const editWindowLines = currentDocument.lines.slice(editWindowLinesRange.start, editWindowLinesRange.endExclusive);
|
|
226
227
|
const editWindowTokenLimit = this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabEditWindowMaxTokens, this.expService);
|
|
227
|
-
if (editWindowTokenLimit !== undefined && (0,
|
|
228
|
+
if (editWindowTokenLimit !== undefined && (0, promptCraftingUtils_1.countTokensForLines)(editWindowLines, XtabProvider_1.computeTokens) > editWindowTokenLimit) {
|
|
228
229
|
return new statelessNextEditProvider_1.NoNextEditReason.PromptTooLarge('editWindow');
|
|
229
230
|
}
|
|
230
231
|
// Expected: editWindow.substring(activeDocument.documentAfterEdits.value) === editWindowLines.join('\n')
|
|
@@ -780,6 +781,7 @@ let XtabProvider = class XtabProvider {
|
|
|
780
781
|
maxTokens: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabRecentlyViewedDocumentsMaxTokens, this.expService),
|
|
781
782
|
includeViewedFiles: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabIncludeViewedFiles, this.expService),
|
|
782
783
|
includeLineNumbers: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabRecentlyViewedIncludeLineNumbers, this.expService),
|
|
784
|
+
clippingStrategy: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabRecentlyViewedClippingStrategy, this.expService),
|
|
783
785
|
},
|
|
784
786
|
languageContext: determineLanguageContextOptions(activeDocument.languageId, {
|
|
785
787
|
enabled: this.configService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.InlineEditsXtabLanguageContextEnabled, this.expService),
|
|
@@ -980,7 +982,7 @@ function getPredictionContents(doc, editWindowLines, responseFormat) {
|
|
|
980
982
|
}
|
|
981
983
|
else if (responseFormat === xtabPromptOptions.ResponseFormat.CustomDiffPatch) {
|
|
982
984
|
const workspacePath = doc.workspaceRoot?.path;
|
|
983
|
-
const workspaceRelativeDocPath = (0,
|
|
985
|
+
const workspaceRelativeDocPath = (0, promptCraftingUtils_1.toUniquePath)(doc.id, workspacePath);
|
|
984
986
|
return `${workspaceRelativeDocPath}:`;
|
|
985
987
|
}
|
|
986
988
|
else {
|