Support exclude paths in manual context management (#774)

This commit is contained in:
Will Chen
2025-08-05 14:33:39 -07:00
committed by GitHub
parent 74ada7054b
commit 5db0b04400
16 changed files with 1544 additions and 23 deletions

View File

@@ -39,10 +39,10 @@ export function registerContextPathsHandlers() {
const results: ContextPathResults = {
contextPaths: [],
smartContextAutoIncludes: [],
excludePaths: [],
};
const { contextPaths, smartContextAutoIncludes } = validateChatContext(
app.chatContext,
);
const { contextPaths, smartContextAutoIncludes, excludePaths } =
validateChatContext(app.chatContext);
for (const contextPath of contextPaths) {
const { formattedOutput, files } = await extractCodebase({
appPath,
@@ -76,6 +76,23 @@ export function registerContextPathsHandlers() {
tokens: totalTokens,
});
}
for (const excludePath of excludePaths || []) {
const { formattedOutput, files } = await extractCodebase({
appPath,
chatContext: {
contextPaths: [excludePath],
smartContextAutoIncludes: [],
},
});
const totalTokens = estimateTokens(formattedOutput);
results.excludePaths.push({
...excludePath,
files: files.length,
tokens: totalTokens,
});
}
return results;
},
);

View File

@@ -8,6 +8,7 @@ export function validateChatContext(chatContext: unknown): AppChatContext {
return {
contextPaths: [],
smartContextAutoIncludes: [],
excludePaths: [],
};
}
@@ -20,6 +21,7 @@ export function validateChatContext(chatContext: unknown): AppChatContext {
return {
contextPaths: [],
smartContextAutoIncludes: [],
excludePaths: [],
};
}
}