yuangs 5.51.0 → 5.53.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/agent/smartContextManager.d.ts +1 -0
- package/dist/agent/smartContextManager.js +20 -1
- package/dist/agent/smartContextManager.js.map +1 -1
- package/dist/cli.js +3 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/contextBuffer.d.ts +6 -0
- package/dist/commands/contextBuffer.js +12 -2
- package/dist/commands/contextBuffer.js.map +1 -1
- package/dist/commands/handleAIChat.js +23 -6
- package/dist/commands/handleAIChat.js.map +1 -1
- package/dist/core/fileReader.d.ts +6 -1
- package/dist/core/fileReader.js +54 -1
- package/dist/core/fileReader.js.map +1 -1
- package/dist/core/git/CodeReviewer.d.ts +1 -0
- package/dist/core/git/CodeReviewer.js +13 -1
- package/dist/core/git/CodeReviewer.js.map +1 -1
- package/dist/core/git/ConflictResolver.d.ts +15 -0
- package/dist/core/git/ConflictResolver.js +110 -54
- package/dist/core/git/ConflictResolver.js.map +1 -1
- package/dist/core/git/ContextGatherer.js +38 -16
- package/dist/core/git/ContextGatherer.js.map +1 -1
- package/dist/core/git/InteractiveReview.d.ts +33 -0
- package/dist/core/git/InteractiveReview.js +296 -0
- package/dist/core/git/InteractiveReview.js.map +1 -0
- package/dist/core/git/ReviewCache.d.ts +53 -0
- package/dist/core/git/ReviewCache.js +392 -0
- package/dist/core/git/ReviewCache.js.map +1 -0
- package/dist/utils/syntaxHandler.js +1 -1
- package/dist/utils/syntaxHandler.js.map +1 -1
- package/package.json +1 -1
- package/dist/legacy/governance/GovernanceEngine.js.map +0 -1
- package/dist/legacy/governance/GovernedAction.js.map +0 -1
- package/dist/legacy/governance/actions/CodeChangeAction.js.map +0 -1
- package/dist/legacy/governance/capability/token.js.map +0 -1
- package/dist/legacy/governance/commands/diffEdit.js.map +0 -1
- package/dist/legacy/governance/execution/sandbox.js.map +0 -1
- package/dist/legacy/governance/fsm/stateMachine.js.map +0 -1
- package/dist/legacy/governance/index.js.map +0 -1
- package/dist/legacy/governance/review/diffParser.js.map +0 -1
- package/dist/legacy/governance/review/render.js.map +0 -1
- package/dist/legacy/governance/storage/store.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileReader.js","sourceRoot":"","sources":["../../src/core/fileReader.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"fileReader.js","sourceRoot":"","sources":["../../src/core/fileReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
8
8
|
const types_1 = require("../modelRouter/types");
|
|
9
9
|
const CapabilityLevel_1 = require("../capability/CapabilityLevel");
|
|
10
10
|
const DegradationPolicy_1 = require("../capability/DegradationPolicy");
|
|
11
|
+
const ReviewCache_1 = require("./ReviewCache");
|
|
11
12
|
/**
|
|
12
13
|
* 代码审查级别
|
|
13
14
|
*/
|
|
@@ -38,6 +39,7 @@ class CodeReviewer {
|
|
|
38
39
|
router;
|
|
39
40
|
static VERSION = 'v1.0';
|
|
40
41
|
degradationPolicy;
|
|
42
|
+
cache = (0, ReviewCache_1.getDefaultReviewCache)();
|
|
41
43
|
constructor(gitService, router) {
|
|
42
44
|
this.gitService = gitService;
|
|
43
45
|
this.router = router;
|
|
@@ -249,6 +251,13 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
249
251
|
if (!diff) {
|
|
250
252
|
throw new Error(`No changes in file: ${filePath}`);
|
|
251
253
|
}
|
|
254
|
+
// Check cache first (使用 hash 作为缓存 key,避免存储大 diff)
|
|
255
|
+
// P1: 传递版本号,避免模型升级后误用旧缓存
|
|
256
|
+
const cachedResult = await this.cache.get(filePath, diff, level, CodeReviewer.VERSION);
|
|
257
|
+
if (cachedResult) {
|
|
258
|
+
console.log(chalk_1.default.gray(`💾 从缓存加载审查结果: ${filePath}`));
|
|
259
|
+
return cachedResult;
|
|
260
|
+
}
|
|
252
261
|
if (!this.router) {
|
|
253
262
|
throw new Error('AI code review requires model configuration. Please configure AI models using: yuangs config');
|
|
254
263
|
}
|
|
@@ -289,7 +298,7 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
289
298
|
degradationReason = degradationDecision.reason;
|
|
290
299
|
console.log(chalk_1.default.yellow(`⚠️ 降级触发: ${degradationReason}`));
|
|
291
300
|
}
|
|
292
|
-
|
|
301
|
+
const result = {
|
|
293
302
|
score: parsed.score || 70,
|
|
294
303
|
summary: parsed.summary || '审查完成',
|
|
295
304
|
issues: parsed.issues || [],
|
|
@@ -304,6 +313,9 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
304
313
|
reason: degradationReason,
|
|
305
314
|
} : undefined,
|
|
306
315
|
};
|
|
316
|
+
// Cache the result (P1: 传递版本号)
|
|
317
|
+
await this.cache.set(filePath, diff, level, result, CodeReviewer.VERSION);
|
|
318
|
+
return result;
|
|
307
319
|
}
|
|
308
320
|
/**
|
|
309
321
|
* 审查指定 commit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeReviewer.js","sourceRoot":"","sources":["../../../src/core/git/CodeReviewer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CodeReviewer.js","sourceRoot":"","sources":["../../../src/core/git/CodeReviewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,17 @@ export interface ConflictResolutionResult {
|
|
|
6
6
|
error?: string;
|
|
7
7
|
backupFile?: string;
|
|
8
8
|
}
|
|
9
|
+
export declare enum ResolveStrategy {
|
|
10
|
+
SEMANTIC = "semantic",
|
|
11
|
+
OURS = "ours",
|
|
12
|
+
THEIRS = "theirs"
|
|
13
|
+
}
|
|
9
14
|
export interface ResolveOptions {
|
|
10
15
|
model?: string;
|
|
11
16
|
dryRun?: boolean;
|
|
12
17
|
backup?: boolean;
|
|
18
|
+
strategy?: ResolveStrategy;
|
|
19
|
+
timeout?: number;
|
|
13
20
|
}
|
|
14
21
|
export declare class ConflictResolver {
|
|
15
22
|
private gitService;
|
|
@@ -18,6 +25,14 @@ export declare class ConflictResolver {
|
|
|
18
25
|
* 使用 AI 尝试自动解决冲突
|
|
19
26
|
*/
|
|
20
27
|
resolveFile(filePath: string, options?: ResolveOptions): Promise<ConflictResolutionResult>;
|
|
28
|
+
/**
|
|
29
|
+
* P1: 使用 Git 命令解决冲突(ours/theirs 策略)
|
|
30
|
+
*/
|
|
31
|
+
private resolveWithGit;
|
|
32
|
+
/**
|
|
33
|
+
* P1: 使用 AI 解决冲突(带超时保护)
|
|
34
|
+
*/
|
|
35
|
+
private resolveWithAI;
|
|
21
36
|
/**
|
|
22
37
|
* 对生成的代码进行基础语法校验
|
|
23
38
|
*/
|
|
@@ -36,11 +36,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.ConflictResolver = void 0;
|
|
39
|
+
exports.ConflictResolver = exports.ResolveStrategy = void 0;
|
|
40
40
|
const fs_1 = __importDefault(require("fs"));
|
|
41
41
|
const path_1 = __importDefault(require("path"));
|
|
42
42
|
const llm_1 = require("../../agent/llm");
|
|
43
43
|
const constants_1 = require("./constants");
|
|
44
|
+
var ResolveStrategy;
|
|
45
|
+
(function (ResolveStrategy) {
|
|
46
|
+
ResolveStrategy["SEMANTIC"] = "semantic";
|
|
47
|
+
ResolveStrategy["OURS"] = "ours";
|
|
48
|
+
ResolveStrategy["THEIRS"] = "theirs";
|
|
49
|
+
})(ResolveStrategy || (exports.ResolveStrategy = ResolveStrategy = {}));
|
|
44
50
|
class ConflictResolver {
|
|
45
51
|
gitService;
|
|
46
52
|
constructor(gitService) {
|
|
@@ -50,7 +56,8 @@ class ConflictResolver {
|
|
|
50
56
|
* 使用 AI 尝试自动解决冲突
|
|
51
57
|
*/
|
|
52
58
|
async resolveFile(filePath, options = {}) {
|
|
53
|
-
const { model = constants_1.DEFAULT_AI_MODEL, dryRun = false, backup = true
|
|
59
|
+
const { model = constants_1.DEFAULT_AI_MODEL, dryRun = false, backup = true, strategy = ResolveStrategy.SEMANTIC, timeout = 30000 // P1: 默认 30 秒超时
|
|
60
|
+
} = options;
|
|
54
61
|
try {
|
|
55
62
|
const fullPath = path_1.default.isAbsolute(filePath) ? filePath : path_1.default.join(process.cwd(), filePath);
|
|
56
63
|
try {
|
|
@@ -63,67 +70,116 @@ class ConflictResolver {
|
|
|
63
70
|
if (!content.includes('<<<<<<<') || !content.includes('>>>>>>>')) {
|
|
64
71
|
return { file: filePath, success: false, error: '未检测到冲突标记' };
|
|
65
72
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
1. 分析提供的文件内容。
|
|
70
|
-
2. 识别冲突部分(由 <<<<<<<, =======, >>>>>>> 标记)。
|
|
71
|
-
3. 根据上下文逻辑,将两个版本的变更进行语义化合并。
|
|
72
|
-
4. **绝对不要**遗漏任何必要的逻辑或闭合括号。
|
|
73
|
-
5. 移除所有 Git 冲突标记。
|
|
74
|
-
6. 输出完整的、修复后的文件内容,不要包含任何解释或 Markdown 代码块容器(直接输出原始内容)。`,
|
|
75
|
-
messages: [
|
|
76
|
-
{
|
|
77
|
-
role: 'user',
|
|
78
|
-
content: `文件路径: ${filePath}\n\n内容:\n${content}`
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
};
|
|
82
|
-
const response = await (0, llm_1.runLLM)({
|
|
83
|
-
prompt,
|
|
84
|
-
model: model || constants_1.DEFAULT_AI_MODEL,
|
|
85
|
-
stream: false
|
|
86
|
-
});
|
|
87
|
-
const resolvedContent = response.rawText;
|
|
88
|
-
// 1. 基本非空校验
|
|
89
|
-
if (!resolvedContent || resolvedContent.trim().length === 0) {
|
|
90
|
-
return { file: filePath, success: false, error: 'AI 生成了空内容,操作已拦截' };
|
|
91
|
-
}
|
|
92
|
-
// 2. 长度偏差校验
|
|
93
|
-
if (content.length > 300 && resolvedContent.length < content.length * 0.3) {
|
|
94
|
-
return { file: filePath, success: false, error: 'AI 生成的内容量严重缺失,疑似合并失败' };
|
|
95
|
-
}
|
|
96
|
-
// 3. 冲突标记残留校验
|
|
97
|
-
if (resolvedContent.includes('<<<<<<<') || resolvedContent.includes('=======') || resolvedContent.includes('>>>>>>>')) {
|
|
98
|
-
return { file: filePath, success: false, error: 'AI 生成的内容仍包含冲突标记' };
|
|
99
|
-
}
|
|
100
|
-
// 4. 基础语法完整性校验
|
|
101
|
-
const syntaxError = this.validateSyntax(filePath, resolvedContent);
|
|
102
|
-
if (syntaxError) {
|
|
103
|
-
return { file: filePath, success: false, error: `AI 生成的代码存在基础语法风险: ${syntaxError}` };
|
|
73
|
+
// P1: 如果策略是 ours 或 theirs,直接使用 Git 命令
|
|
74
|
+
if (strategy === ResolveStrategy.OURS || strategy === ResolveStrategy.THEIRS) {
|
|
75
|
+
return await this.resolveWithGit(fullPath, filePath, strategy, backup);
|
|
104
76
|
}
|
|
105
|
-
//
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
77
|
+
// P1: 使用超时熔断(Promise.race 实现)
|
|
78
|
+
const resolveWithTimeout = this.resolveWithAI(filePath, fullPath, content, model, dryRun, backup);
|
|
79
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
reject(new Error(`冲突解决超时(${timeout}ms),请手动处理或使用 --strategy ours/theirs`));
|
|
82
|
+
}, timeout);
|
|
83
|
+
});
|
|
84
|
+
const result = await Promise.race([resolveWithTimeout, timeoutPromise]);
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const errMsg = error instanceof Error ? error.message : (typeof error === 'string' ? error : String(error));
|
|
89
|
+
return { file: filePath, success: false, error: errMsg };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* P1: 使用 Git 命令解决冲突(ours/theirs 策略)
|
|
94
|
+
*/
|
|
95
|
+
async resolveWithGit(fullPath, filePath, strategy, backup) {
|
|
96
|
+
try {
|
|
97
|
+
const gitOption = strategy === ResolveStrategy.OURS ? '--ours' : '--theirs';
|
|
98
|
+
// 备份原文件
|
|
114
99
|
let backupFile;
|
|
115
100
|
if (backup) {
|
|
101
|
+
const content = await fs_1.default.promises.readFile(fullPath, 'utf8');
|
|
116
102
|
backupFile = `${fullPath}.bak`;
|
|
117
103
|
await fs_1.default.promises.writeFile(backupFile, content, 'utf8');
|
|
118
104
|
}
|
|
119
|
-
//
|
|
120
|
-
await
|
|
121
|
-
return {
|
|
105
|
+
// 使用 git checkout 选择版本
|
|
106
|
+
await this.gitService.execSafe(`checkout ${gitOption} -- "${filePath}"`);
|
|
107
|
+
return {
|
|
108
|
+
file: filePath,
|
|
109
|
+
success: true,
|
|
110
|
+
suggestion: `已使用 ${strategy} 策略解决冲突`,
|
|
111
|
+
backupFile
|
|
112
|
+
};
|
|
122
113
|
}
|
|
123
114
|
catch (error) {
|
|
124
|
-
const errMsg = error instanceof Error ? error.message :
|
|
125
|
-
return { file: filePath, success: false, error: errMsg };
|
|
115
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
116
|
+
return { file: filePath, success: false, error: `Git 策略失败: ${errMsg}` };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* P1: 使用 AI 解决冲突(带超时保护)
|
|
121
|
+
*/
|
|
122
|
+
async resolveWithAI(filePath, fullPath, content, model, dryRun, backup) {
|
|
123
|
+
const prompt = {
|
|
124
|
+
system: `你是一个资深软件工程师,擅长解决 Git 合并冲突。
|
|
125
|
+
你的任务是:
|
|
126
|
+
1. 分析提供的文件内容。
|
|
127
|
+
2. 识别冲突部分(由 <<<<<<<, =======, >>>>>>> 标记)。
|
|
128
|
+
3. 根据上下文逻辑,将两个版本的变更进行语义化合并。
|
|
129
|
+
4. **绝对不要**遗漏任何必要的逻辑或闭合括号。
|
|
130
|
+
5. 移除所有 Git 冲突标记。
|
|
131
|
+
6. 输出完整的、修复后的文件内容,不要包含任何解释或 Markdown 代码块容器(直接输出原始内容)。`,
|
|
132
|
+
messages: [
|
|
133
|
+
{
|
|
134
|
+
role: 'user',
|
|
135
|
+
content: `文件路径: ${filePath}\n\n内容:\n${content}`
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
};
|
|
139
|
+
const response = await (0, llm_1.runLLM)({
|
|
140
|
+
prompt,
|
|
141
|
+
model: model || constants_1.DEFAULT_AI_MODEL,
|
|
142
|
+
stream: false
|
|
143
|
+
});
|
|
144
|
+
// WARNING: 增加 response?.rawText 类型保护
|
|
145
|
+
const resolvedContent = response?.rawText;
|
|
146
|
+
if (!resolvedContent) {
|
|
147
|
+
return { file: filePath, success: false, error: 'AI 返回了无效响应(缺少 rawText 字段)' };
|
|
148
|
+
}
|
|
149
|
+
// 1. 基本非空校验
|
|
150
|
+
if (!resolvedContent || resolvedContent.trim().length === 0) {
|
|
151
|
+
return { file: filePath, success: false, error: 'AI 生成了空内容,操作已拦截' };
|
|
152
|
+
}
|
|
153
|
+
// 2. 长度偏差校验
|
|
154
|
+
if (content.length > 300 && resolvedContent.length < content.length * 0.3) {
|
|
155
|
+
return { file: filePath, success: false, error: 'AI 生成的内容量严重缺失,疑似合并失败' };
|
|
156
|
+
}
|
|
157
|
+
// 3. 冲突标记残留校验
|
|
158
|
+
if (resolvedContent.includes('<<<<<<<') || resolvedContent.includes('=======') || resolvedContent.includes('>>>>>>>')) {
|
|
159
|
+
return { file: filePath, success: false, error: 'AI 生成的内容仍包含冲突标记' };
|
|
160
|
+
}
|
|
161
|
+
// 4. 基础语法完整性校验
|
|
162
|
+
const syntaxError = this.validateSyntax(filePath, resolvedContent);
|
|
163
|
+
if (syntaxError) {
|
|
164
|
+
return { file: filePath, success: false, error: `AI 生成的代码存在基础语法风险: ${syntaxError}` };
|
|
165
|
+
}
|
|
166
|
+
// 5. 更严格的语法校验(根据文件类型)
|
|
167
|
+
const advancedSyntaxError = await this.validateAdvancedSyntax(filePath, resolvedContent);
|
|
168
|
+
if (advancedSyntaxError) {
|
|
169
|
+
return { file: filePath, success: false, error: `AI 生成的代码存在高级语法错误: ${advancedSyntaxError}` };
|
|
170
|
+
}
|
|
171
|
+
if (dryRun) {
|
|
172
|
+
return { file: filePath, success: true, suggestion: 'Dry-run: 内容已生成但未写回文件' };
|
|
173
|
+
}
|
|
174
|
+
// 6. 备份处理
|
|
175
|
+
let backupFile;
|
|
176
|
+
if (backup) {
|
|
177
|
+
backupFile = `${fullPath}.bak`;
|
|
178
|
+
await fs_1.default.promises.writeFile(backupFile, content, 'utf8');
|
|
126
179
|
}
|
|
180
|
+
// 7. 覆盖写入
|
|
181
|
+
await fs_1.default.promises.writeFile(fullPath, resolvedContent, 'utf8');
|
|
182
|
+
return { file: filePath, success: true, backupFile };
|
|
127
183
|
}
|
|
128
184
|
/**
|
|
129
185
|
* 对生成的代码进行基础语法校验
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConflictResolver.js","sourceRoot":"","sources":["../../../src/core/git/ConflictResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,yCAAkD;AAClD,2CAA+C;
|
|
1
|
+
{"version":3,"file":"ConflictResolver.js","sourceRoot":"","sources":["../../../src/core/git/ConflictResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ContextGatherer = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
7
8
|
const fs_1 = __importDefault(require("fs"));
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
9
10
|
const ContextMeta_1 = require("../context/ContextMeta");
|
|
10
11
|
const ASTParser_1 = require("../kernel/ASTParser");
|
|
12
|
+
const p_limit_1 = __importDefault(require("p-limit"));
|
|
11
13
|
/**
|
|
12
14
|
* 项目上下文采集器
|
|
13
15
|
* 负责为 LLM 提供项目现状的真实快照
|
|
@@ -16,7 +18,7 @@ class ContextGatherer {
|
|
|
16
18
|
gitService;
|
|
17
19
|
MAX_FILE_CONTENT_LENGTH = 10000; // 单个文件读取上限
|
|
18
20
|
MAX_TOTAL_CONTEXT_LENGTH = 50000; // 总上限
|
|
19
|
-
SUMMARY_THRESHOLD =
|
|
21
|
+
SUMMARY_THRESHOLD = 200; // P2: 改为200行,避免过度摘要
|
|
20
22
|
astParser; // Reuse AST parser instance
|
|
21
23
|
constructor(gitService) {
|
|
22
24
|
this.gitService = gitService;
|
|
@@ -174,43 +176,63 @@ class ContextGatherer {
|
|
|
174
176
|
potentialPaths.add(f);
|
|
175
177
|
});
|
|
176
178
|
}
|
|
177
|
-
// 3. 读取内容 (
|
|
178
|
-
|
|
179
|
+
// P2: 3. 读取内容 (正确使用异步 I/O + 并发控制 + 原子长度计数)
|
|
180
|
+
const limit = (0, p_limit_1.default)(5); // 限制并发数为 5
|
|
181
|
+
const totalLength = { value: 0 }; // 使用对象实现原子计数器
|
|
182
|
+
const readResults = [];
|
|
179
183
|
for (const filePath of potentialPaths) {
|
|
180
|
-
|
|
184
|
+
// 如果已达到总长度限制,提前终止
|
|
185
|
+
if (totalLength.value >= this.MAX_TOTAL_CONTEXT_LENGTH) {
|
|
186
|
+
console.log(`[ContextGatherer] 达到总长度限制 (${this.MAX_TOTAL_CONTEXT_LENGTH}),停止读取更多文件`);
|
|
181
187
|
break;
|
|
182
|
-
|
|
188
|
+
}
|
|
183
189
|
try {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const
|
|
190
|
+
// 使用 limit 包裹任务,真正控制并发
|
|
191
|
+
const result = await limit(async () => {
|
|
192
|
+
const fullPath = path_1.default.join(repoRoot, filePath);
|
|
193
|
+
// 检查文件是否存在并获取信息
|
|
194
|
+
const stats = await promises_1.default.stat(fullPath);
|
|
195
|
+
if (!stats.isFile())
|
|
196
|
+
return null;
|
|
197
|
+
// 读取文件内容
|
|
198
|
+
let content = await promises_1.default.readFile(fullPath, 'utf8');
|
|
199
|
+
// 判断是否需要摘要
|
|
200
|
+
const isReferenceOnly = !description.includes(filePath);
|
|
201
|
+
const lineCount = content.split('\n').length;
|
|
202
|
+
const isTooLarge = lineCount > this.SUMMARY_THRESHOLD;
|
|
189
203
|
const isTSFile = filePath.endsWith('.ts') || filePath.endsWith('.tsx');
|
|
190
204
|
if (isReferenceOnly && isTooLarge && isTSFile) {
|
|
191
|
-
// Generate semantic summary for large TS files that are not directly referenced
|
|
192
205
|
try {
|
|
193
206
|
content = this.astParser.generateSummary(filePath, content);
|
|
194
|
-
console.log(`[Economy] ✂️ Summarized ${filePath} to save tokens.`);
|
|
207
|
+
console.log(`[Economy] ✂️ Summarized ${filePath} (${lineCount} lines) to save tokens.`);
|
|
195
208
|
}
|
|
196
209
|
catch (error) {
|
|
197
210
|
console.warn(`[ContextGatherer] 警告:摘要生成失败 "${filePath}": ${error.message}`);
|
|
198
|
-
// 如果摘要生成失败,回退到截断内容
|
|
199
211
|
content = content.substring(0, this.MAX_FILE_CONTENT_LENGTH) + '\n... (内容过长已截断,摘要生成失败)';
|
|
200
212
|
}
|
|
201
213
|
}
|
|
202
214
|
else if (content.length > this.MAX_FILE_CONTENT_LENGTH) {
|
|
203
215
|
content = content.substring(0, this.MAX_FILE_CONTENT_LENGTH) + '\n... (内容过长已截断)';
|
|
204
216
|
}
|
|
205
|
-
|
|
206
|
-
|
|
217
|
+
// 原子地更新总长度
|
|
218
|
+
if (totalLength.value + content.length <= this.MAX_TOTAL_CONTEXT_LENGTH) {
|
|
219
|
+
totalLength.value += content.length;
|
|
220
|
+
return { path: filePath, content };
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
console.log(`[ContextGatherer] 跳过 ${filePath} (会超过总长度限制)`);
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
if (result) {
|
|
228
|
+
readResults.push(result);
|
|
207
229
|
}
|
|
208
230
|
}
|
|
209
231
|
catch (e) {
|
|
210
232
|
console.warn(`[ContextGatherer] 警告:无法读取相关上下文文件 "${filePath}": ${e.message}`);
|
|
211
233
|
}
|
|
212
234
|
}
|
|
213
|
-
return
|
|
235
|
+
return readResults.filter((r) => r !== null);
|
|
214
236
|
}
|
|
215
237
|
/**
|
|
216
238
|
* 获取审计日志
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextGatherer.js","sourceRoot":"","sources":["../../../src/core/git/ContextGatherer.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ContextGatherer.js","sourceRoot":"","sources":["../../../src/core/git/ContextGatherer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ReviewIssue } from './CodeReviewer';
|
|
2
|
+
import { GitService } from './GitService';
|
|
3
|
+
export interface FixAction {
|
|
4
|
+
type: 'apply' | 'skip' | 'edit' | 'batch';
|
|
5
|
+
issue?: ReviewIssue;
|
|
6
|
+
customFix?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface InteractiveFixResult {
|
|
9
|
+
applied: number;
|
|
10
|
+
skipped: number;
|
|
11
|
+
edited: number;
|
|
12
|
+
batchApplied: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class InteractiveReview {
|
|
15
|
+
private gitService;
|
|
16
|
+
private rl;
|
|
17
|
+
constructor(gitService: GitService);
|
|
18
|
+
startInteractiveFix(issues: ReviewIssue[]): Promise<InteractiveFixResult>;
|
|
19
|
+
private askBatchProcessing;
|
|
20
|
+
private processBatch;
|
|
21
|
+
private groupIssuesByType;
|
|
22
|
+
private processSingleIssue;
|
|
23
|
+
private displayIssue;
|
|
24
|
+
private askBatchAction;
|
|
25
|
+
private askCustomFix;
|
|
26
|
+
private applyFix;
|
|
27
|
+
private editAndApplyFix;
|
|
28
|
+
private showProgress;
|
|
29
|
+
private printSummary;
|
|
30
|
+
private askQuestion;
|
|
31
|
+
destroy(): void;
|
|
32
|
+
}
|
|
33
|
+
export declare function startInteractiveReview(issues: ReviewIssue[], gitService: GitService): Promise<InteractiveFixResult>;
|