yuangs 5.40.0 → 5.41.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/commands/git/plan.js +64 -10
- package/dist/commands/git/plan.js.map +1 -1
- package/dist/commands/git/review.js +95 -2
- package/dist/commands/git/review.js.map +1 -1
- package/dist/core/capability/CapabilityLevel.d.ts +125 -0
- package/dist/core/capability/CapabilityLevel.js +184 -0
- package/dist/core/capability/CapabilityLevel.js.map +1 -0
- package/dist/core/capability/CostProfile.d.ts +34 -0
- package/dist/core/capability/CostProfile.js +138 -0
- package/dist/core/capability/CostProfile.js.map +1 -0
- package/dist/core/capability/DegradationPolicy.d.ts +26 -0
- package/dist/core/capability/DegradationPolicy.js +65 -0
- package/dist/core/capability/DegradationPolicy.js.map +1 -0
- package/dist/core/capability/index.d.ts +3 -0
- package/dist/core/capability/index.js +20 -0
- package/dist/core/capability/index.js.map +1 -0
- package/dist/core/context/ContextMeta.d.ts +30 -0
- package/dist/core/context/ContextMeta.js +108 -0
- package/dist/core/context/ContextMeta.js.map +1 -0
- package/dist/core/context/index.d.ts +1 -0
- package/dist/core/context/index.js +18 -0
- package/dist/core/context/index.js.map +1 -0
- package/dist/core/git/CodeReviewer.d.ts +11 -0
- package/dist/core/git/CodeReviewer.js +76 -8
- package/dist/core/git/CodeReviewer.js.map +1 -1
- package/dist/core/git/ContextGatherer.d.ts +6 -0
- package/dist/core/git/ContextGatherer.js +38 -3
- package/dist/core/git/ContextGatherer.js.map +1 -1
- package/dist/core/git/GitService.d.ts +13 -0
- package/dist/core/git/GitService.js +50 -0
- package/dist/core/git/GitService.js.map +1 -1
- package/dist/core/security/SecurityScanner.d.ts +39 -0
- package/dist/core/security/SecurityScanner.js +136 -0
- package/dist/core/security/SecurityScanner.js.map +1 -0
- package/dist/core/security/index.d.ts +1 -0
- package/dist/core/security/index.js +18 -0
- package/dist/core/security/index.js.map +1 -0
- package/package.json +2 -1
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.CodeReviewer = exports.IssueSeverity = exports.ReviewLevel = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const types_1 = require("../modelRouter/types");
|
|
9
|
+
const CapabilityLevel_1 = require("../capability/CapabilityLevel");
|
|
10
|
+
const DegradationPolicy_1 = require("../capability/DegradationPolicy");
|
|
9
11
|
/**
|
|
10
12
|
* 代码审查级别
|
|
11
13
|
*/
|
|
@@ -35,20 +37,30 @@ class CodeReviewer {
|
|
|
35
37
|
gitService;
|
|
36
38
|
router;
|
|
37
39
|
static VERSION = 'v1.0';
|
|
40
|
+
degradationPolicy;
|
|
38
41
|
constructor(gitService, router) {
|
|
39
42
|
this.gitService = gitService;
|
|
40
43
|
this.router = router;
|
|
44
|
+
this.degradationPolicy = new DegradationPolicy_1.ThresholdDegradationPolicy();
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
43
47
|
* 构建审查提示词
|
|
44
48
|
*/
|
|
45
|
-
buildReviewPrompt(diff, level) {
|
|
49
|
+
buildReviewPrompt(diff, level, capabilityLevel) {
|
|
46
50
|
const levelInstructions = {
|
|
47
51
|
[ReviewLevel.QUICK]: '快速扫描,只关注明显的 bug、安全问题和严重的代码异味',
|
|
48
52
|
[ReviewLevel.STANDARD]: '进行标准的代码审查,包括代码质量、最佳实践、潜在问题',
|
|
49
53
|
[ReviewLevel.DEEP]: '进行深度审查,包括架构设计、性能优化、安全性、可维护性等所有方面',
|
|
50
54
|
};
|
|
55
|
+
const capabilityInstructions = {
|
|
56
|
+
[CapabilityLevel_1.CapabilityLevel.SEMANTIC]: '进行语义级别的审查,深入理解代码意图和设计',
|
|
57
|
+
[CapabilityLevel_1.CapabilityLevel.STRUCTURAL]: '进行结构级别的审查,关注代码结构和依赖关系',
|
|
58
|
+
[CapabilityLevel_1.CapabilityLevel.LINE]: '进行行级别的审查,关注具体代码行的实现',
|
|
59
|
+
[CapabilityLevel_1.CapabilityLevel.TEXT]: '进行文本级别的审查,关注文本内容和格式',
|
|
60
|
+
[CapabilityLevel_1.CapabilityLevel.NONE]: '不进行深度审查,仅输出摘要',
|
|
61
|
+
};
|
|
51
62
|
return `你是一位资深的代码审查专家。请对以下代码变更进行${levelInstructions[level]}。
|
|
63
|
+
当前能力等级: ${capabilityInstructions[capabilityLevel]}
|
|
52
64
|
|
|
53
65
|
## 代码变更
|
|
54
66
|
\`\`\`diff
|
|
@@ -87,11 +99,12 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
87
99
|
"recommendations": [
|
|
88
100
|
"建议添加单元测试",
|
|
89
101
|
"考虑提取公共逻辑"
|
|
90
|
-
]
|
|
102
|
+
],
|
|
103
|
+
"confidence": 0.85
|
|
91
104
|
}
|
|
92
105
|
\`\`\`
|
|
93
106
|
|
|
94
|
-
请确保输出是有效的 JSON
|
|
107
|
+
请确保输出是有效的 JSON 格式,并包含 confidence 字段。`;
|
|
95
108
|
}
|
|
96
109
|
/**
|
|
97
110
|
* 解析 AI 返回的审查结果
|
|
@@ -105,7 +118,6 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
105
118
|
const jsonStr = jsonMatch[1] || jsonMatch[0];
|
|
106
119
|
return JSON.parse(jsonStr);
|
|
107
120
|
}
|
|
108
|
-
// 如果没有 JSON,尝试解析文本
|
|
109
121
|
return this.parseTextReview(content);
|
|
110
122
|
}
|
|
111
123
|
catch (error) {
|
|
@@ -116,6 +128,7 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
116
128
|
issues: [],
|
|
117
129
|
strengths: [],
|
|
118
130
|
recommendations: [],
|
|
131
|
+
confidence: 0.5,
|
|
119
132
|
};
|
|
120
133
|
}
|
|
121
134
|
}
|
|
@@ -126,7 +139,6 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
126
139
|
const issues = [];
|
|
127
140
|
const strengths = [];
|
|
128
141
|
const recommendations = [];
|
|
129
|
-
// 简单的文本解析逻辑
|
|
130
142
|
const lines = content.split('\n');
|
|
131
143
|
let currentSection = '';
|
|
132
144
|
for (const line of lines) {
|
|
@@ -156,6 +168,7 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
156
168
|
issues,
|
|
157
169
|
strengths,
|
|
158
170
|
recommendations,
|
|
171
|
+
confidence: 0.7,
|
|
159
172
|
};
|
|
160
173
|
}
|
|
161
174
|
/**
|
|
@@ -168,7 +181,6 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
168
181
|
throw new Error('No changes to review');
|
|
169
182
|
}
|
|
170
183
|
const files = staged ? diff.files.staged : diff.files.unstaged;
|
|
171
|
-
// Guardrail: Deep review 模式下文件数量保护
|
|
172
184
|
if (level === ReviewLevel.DEEP && files.length > 20) {
|
|
173
185
|
throw new Error('Deep review is not recommended for more than 20 files.\n' +
|
|
174
186
|
'Please use "--level standard" or review specific files using "--file".');
|
|
@@ -176,7 +188,15 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
176
188
|
if (!this.router) {
|
|
177
189
|
throw new Error('AI code review requires model configuration. Please configure AI models using: yuangs config');
|
|
178
190
|
}
|
|
179
|
-
const
|
|
191
|
+
const minCapability = {
|
|
192
|
+
minCapability: CapabilityLevel_1.CapabilityLevel.SEMANTIC,
|
|
193
|
+
fallbackChain: [CapabilityLevel_1.CapabilityLevel.STRUCTURAL, CapabilityLevel_1.CapabilityLevel.LINE, CapabilityLevel_1.CapabilityLevel.TEXT, CapabilityLevel_1.CapabilityLevel.NONE],
|
|
194
|
+
};
|
|
195
|
+
let currentCapability = minCapability.minCapability;
|
|
196
|
+
let confidence = 1.0;
|
|
197
|
+
let degradationApplied = false;
|
|
198
|
+
let degradationReason = '';
|
|
199
|
+
const startTime = Date.now();
|
|
180
200
|
const taskConfig = {
|
|
181
201
|
type: types_1.TaskType.CODE_REVIEW,
|
|
182
202
|
description: 'Review code changes',
|
|
@@ -187,11 +207,24 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
187
207
|
const routingResult = await this.router.route(taskConfig, routingConfig);
|
|
188
208
|
console.log(chalk_1.default.cyan(`🤖 使用模型: ${routingResult.adapter.name}`));
|
|
189
209
|
console.log(chalk_1.default.gray(`📋 理由: ${routingResult.reason}\n`));
|
|
210
|
+
const prompt = this.buildReviewPrompt(diffContent, level, currentCapability);
|
|
190
211
|
const execution = await this.router.executeTask(routingResult.adapter, prompt, taskConfig);
|
|
191
212
|
if (!execution.success || !execution.content) {
|
|
192
213
|
throw new Error('Failed to perform code review');
|
|
193
214
|
}
|
|
215
|
+
const timeElapsed = Date.now() - startTime;
|
|
194
216
|
const parsed = this.parseReviewResult(execution.content);
|
|
217
|
+
confidence = parsed.confidence ?? 0.8;
|
|
218
|
+
const decisionInput = {
|
|
219
|
+
timeElapsed,
|
|
220
|
+
confidence,
|
|
221
|
+
};
|
|
222
|
+
const degradationDecision = this.degradationPolicy.decide(decisionInput, minCapability);
|
|
223
|
+
if (degradationDecision.shouldDegrade && currentCapability !== degradationDecision.targetLevel) {
|
|
224
|
+
degradationApplied = true;
|
|
225
|
+
degradationReason = degradationDecision.reason;
|
|
226
|
+
console.log(chalk_1.default.yellow(`⚠️ 降级触发: ${degradationReason}`));
|
|
227
|
+
}
|
|
195
228
|
return {
|
|
196
229
|
score: parsed.score || 70,
|
|
197
230
|
summary: parsed.summary || '审查完成',
|
|
@@ -199,6 +232,13 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
199
232
|
strengths: parsed.strengths || [],
|
|
200
233
|
recommendations: parsed.recommendations || [],
|
|
201
234
|
filesReviewed: files.length,
|
|
235
|
+
confidence,
|
|
236
|
+
degradation: degradationApplied ? {
|
|
237
|
+
applied: true,
|
|
238
|
+
originalLevel: minCapability.minCapability,
|
|
239
|
+
targetLevel: degradationDecision.targetLevel,
|
|
240
|
+
reason: degradationReason,
|
|
241
|
+
} : undefined,
|
|
202
242
|
};
|
|
203
243
|
}
|
|
204
244
|
/**
|
|
@@ -212,7 +252,15 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
212
252
|
if (!this.router) {
|
|
213
253
|
throw new Error('AI code review requires model configuration. Please configure AI models using: yuangs config');
|
|
214
254
|
}
|
|
215
|
-
const
|
|
255
|
+
const minCapability = {
|
|
256
|
+
minCapability: CapabilityLevel_1.CapabilityLevel.SEMANTIC,
|
|
257
|
+
fallbackChain: [CapabilityLevel_1.CapabilityLevel.STRUCTURAL, CapabilityLevel_1.CapabilityLevel.LINE, CapabilityLevel_1.CapabilityLevel.TEXT, CapabilityLevel_1.CapabilityLevel.NONE],
|
|
258
|
+
};
|
|
259
|
+
let currentCapability = minCapability.minCapability;
|
|
260
|
+
let confidence = 1.0;
|
|
261
|
+
let degradationApplied = false;
|
|
262
|
+
let degradationReason = '';
|
|
263
|
+
const startTime = Date.now();
|
|
216
264
|
const taskConfig = {
|
|
217
265
|
type: types_1.TaskType.CODE_REVIEW,
|
|
218
266
|
description: `Review file: ${filePath}`,
|
|
@@ -223,11 +271,24 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
223
271
|
const routingResult = await this.router.route(taskConfig, routingConfig);
|
|
224
272
|
console.log(chalk_1.default.cyan(`🤖 使用模型: ${routingResult.adapter.name}`));
|
|
225
273
|
console.log(chalk_1.default.gray(`📋 理由: ${routingResult.reason}\n`));
|
|
274
|
+
const prompt = this.buildReviewPrompt(diff, level, currentCapability);
|
|
226
275
|
const execution = await this.router.executeTask(routingResult.adapter, prompt, taskConfig);
|
|
227
276
|
if (!execution.success || !execution.content) {
|
|
228
277
|
throw new Error('Failed to perform code review');
|
|
229
278
|
}
|
|
279
|
+
const timeElapsed = Date.now() - startTime;
|
|
230
280
|
const parsed = this.parseReviewResult(execution.content);
|
|
281
|
+
confidence = parsed.confidence ?? 0.8;
|
|
282
|
+
const decisionInput = {
|
|
283
|
+
timeElapsed,
|
|
284
|
+
confidence,
|
|
285
|
+
};
|
|
286
|
+
const degradationDecision = this.degradationPolicy.decide(decisionInput, minCapability);
|
|
287
|
+
if (degradationDecision.shouldDegrade && currentCapability !== degradationDecision.targetLevel) {
|
|
288
|
+
degradationApplied = true;
|
|
289
|
+
degradationReason = degradationDecision.reason;
|
|
290
|
+
console.log(chalk_1.default.yellow(`⚠️ 降级触发: ${degradationReason}`));
|
|
291
|
+
}
|
|
231
292
|
return {
|
|
232
293
|
score: parsed.score || 70,
|
|
233
294
|
summary: parsed.summary || '审查完成',
|
|
@@ -235,6 +296,13 @@ ${diff.substring(0, 15000)}${diff.length > 15000 ? '\n... (diff 过长,已截断
|
|
|
235
296
|
strengths: parsed.strengths || [],
|
|
236
297
|
recommendations: parsed.recommendations || [],
|
|
237
298
|
filesReviewed: 1,
|
|
299
|
+
confidence,
|
|
300
|
+
degradation: degradationApplied ? {
|
|
301
|
+
applied: true,
|
|
302
|
+
originalLevel: minCapability.minCapability,
|
|
303
|
+
targetLevel: degradationDecision.targetLevel,
|
|
304
|
+
reason: degradationReason,
|
|
305
|
+
} : undefined,
|
|
238
306
|
};
|
|
239
307
|
}
|
|
240
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeReviewer.js","sourceRoot":"","sources":["../../../src/core/git/CodeReviewer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,gDAA4D;
|
|
1
|
+
{"version":3,"file":"CodeReviewer.js","sourceRoot":"","sources":["../../../src/core/git/CodeReviewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GitService } from './GitService';
|
|
2
|
+
import { ContextMeta } from '../context/ContextMeta';
|
|
2
3
|
/**
|
|
3
4
|
* 收集到的项目上下文接口
|
|
4
5
|
*/
|
|
@@ -10,6 +11,7 @@ export interface GatheredContext {
|
|
|
10
11
|
content: string;
|
|
11
12
|
}[];
|
|
12
13
|
summary: string;
|
|
14
|
+
meta: ContextMeta;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* 项目上下文采集器
|
|
@@ -37,4 +39,8 @@ export declare class ContextGatherer {
|
|
|
37
39
|
* 根据任务描述寻找相关文件
|
|
38
40
|
*/
|
|
39
41
|
private getRelevantFiles;
|
|
42
|
+
/**
|
|
43
|
+
* 获取审计日志
|
|
44
|
+
*/
|
|
45
|
+
getAuditLog(context: GatheredContext): string;
|
|
40
46
|
}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ContextGatherer = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const ContextMeta_1 = require("../context/ContextMeta");
|
|
9
10
|
/**
|
|
10
11
|
* 项目上下文采集器
|
|
11
12
|
* 负责为 LLM 提供项目现状的真实快照
|
|
@@ -24,11 +25,38 @@ class ContextGatherer {
|
|
|
24
25
|
async gather(taskDescription) {
|
|
25
26
|
const repoRoot = await this.gitService.getRepoRoot();
|
|
26
27
|
const fileTree = await this.getFileTree(repoRoot);
|
|
27
|
-
|
|
28
|
+
const metaBuilder = new ContextMeta_1.ContextMetaBuilder();
|
|
29
|
+
metaBuilder.setProvenance('ContextGatherer', 'git:files');
|
|
28
30
|
const isDocTask = /docs?\/|\.md$|\.html$|文章|章节|文档/.test(taskDescription.toLowerCase());
|
|
29
31
|
const packageJson = isDocTask ? undefined : await this.getPackageJson(repoRoot);
|
|
30
32
|
const relevantFiles = await this.getRelevantFiles(taskDescription, repoRoot, fileTree, isDocTask, packageJson);
|
|
31
|
-
|
|
33
|
+
let confidence = 0.5;
|
|
34
|
+
const confidenceReasons = [];
|
|
35
|
+
if (packageJson) {
|
|
36
|
+
confidence += 0.2;
|
|
37
|
+
confidenceReasons.push('Has package.json');
|
|
38
|
+
}
|
|
39
|
+
if (relevantFiles.length > 0) {
|
|
40
|
+
confidence += 0.2;
|
|
41
|
+
confidenceReasons.push(`Found ${relevantFiles.length} relevant files`);
|
|
42
|
+
}
|
|
43
|
+
if (fileTree.length > 0 && !fileTree.includes('无法获取完整文件树')) {
|
|
44
|
+
confidence += 0.1;
|
|
45
|
+
confidenceReasons.push('Successfully retrieved file tree');
|
|
46
|
+
}
|
|
47
|
+
const droppedItems = [];
|
|
48
|
+
const totalFiles = fileTree.split('\n').filter(Boolean).length;
|
|
49
|
+
if (totalFiles > 150) {
|
|
50
|
+
droppedItems.push(`${totalFiles - 150} files from file tree (truncated)`);
|
|
51
|
+
confidence -= 0.05;
|
|
52
|
+
confidenceReasons.push('File tree truncated');
|
|
53
|
+
}
|
|
54
|
+
if (droppedItems.length > 0) {
|
|
55
|
+
metaBuilder.setClipped('Context size limit exceeded', droppedItems);
|
|
56
|
+
}
|
|
57
|
+
confidence = Math.max(0, Math.min(1, confidence));
|
|
58
|
+
metaBuilder.setConfidence(confidence, confidenceReasons.join('; ') || 'Default confidence');
|
|
59
|
+
const meta = metaBuilder.build();
|
|
32
60
|
let summary = `[项目文件树 (主要结构)]\n${fileTree}\n\n`;
|
|
33
61
|
if (!isDocTask && packageJson) {
|
|
34
62
|
const deps = packageJson.dependencies ? Object.keys(packageJson.dependencies).join(', ') : 'none';
|
|
@@ -45,7 +73,8 @@ class ContextGatherer {
|
|
|
45
73
|
fileTree,
|
|
46
74
|
packageJson,
|
|
47
75
|
relevantFiles,
|
|
48
|
-
summary
|
|
76
|
+
summary,
|
|
77
|
+
meta,
|
|
49
78
|
};
|
|
50
79
|
}
|
|
51
80
|
/**
|
|
@@ -162,6 +191,12 @@ class ContextGatherer {
|
|
|
162
191
|
}
|
|
163
192
|
return results;
|
|
164
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* 获取审计日志
|
|
196
|
+
*/
|
|
197
|
+
getAuditLog(context) {
|
|
198
|
+
return (0, ContextMeta_1.toAuditLog)(context.meta);
|
|
199
|
+
}
|
|
165
200
|
}
|
|
166
201
|
exports.ContextGatherer = ContextGatherer;
|
|
167
202
|
//# sourceMappingURL=ContextGatherer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextGatherer.js","sourceRoot":"","sources":["../../../src/core/git/ContextGatherer.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;
|
|
1
|
+
{"version":3,"file":"ContextGatherer.js","sourceRoot":"","sources":["../../../src/core/git/ContextGatherer.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,14 @@ export interface GitDiff {
|
|
|
9
9
|
unstaged: string[];
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Git Numstat 统计信息
|
|
14
|
+
*/
|
|
15
|
+
export interface GitNumstat {
|
|
16
|
+
added: number;
|
|
17
|
+
deleted: number;
|
|
18
|
+
files: string[];
|
|
19
|
+
}
|
|
12
20
|
/**
|
|
13
21
|
* Git 分支信息
|
|
14
22
|
*/
|
|
@@ -54,6 +62,11 @@ export declare class GitService {
|
|
|
54
62
|
* 获取完整的 diff 信息
|
|
55
63
|
*/
|
|
56
64
|
getDiff(): Promise<GitDiff>;
|
|
65
|
+
/**
|
|
66
|
+
* 获取 diff 的 numstat 统计信息(准确统计行数)
|
|
67
|
+
* 格式:added deleted filename
|
|
68
|
+
*/
|
|
69
|
+
getDiffNumstat(): Promise<GitNumstat>;
|
|
57
70
|
/**
|
|
58
71
|
* 获取文件的 diff
|
|
59
72
|
*/
|
|
@@ -84,6 +84,56 @@ class GitService {
|
|
|
84
84
|
},
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* 获取 diff 的 numstat 统计信息(准确统计行数)
|
|
89
|
+
* 格式:added deleted filename
|
|
90
|
+
*/
|
|
91
|
+
async getDiffNumstat() {
|
|
92
|
+
const stagedNumstat = await this.execSafe('diff --staged --numstat');
|
|
93
|
+
const unstagedNumstat = await this.execSafe('diff --numstat');
|
|
94
|
+
let totalAdded = 0;
|
|
95
|
+
let totalDeleted = 0;
|
|
96
|
+
const allFiles = [];
|
|
97
|
+
// 解析 staged 的 numstat
|
|
98
|
+
if (stagedNumstat) {
|
|
99
|
+
for (const line of stagedNumstat.split('\n')) {
|
|
100
|
+
if (!line.trim())
|
|
101
|
+
continue;
|
|
102
|
+
const parts = line.split(/\s+/);
|
|
103
|
+
if (parts.length >= 3) {
|
|
104
|
+
const added = parseInt(parts[0], 10) || 0;
|
|
105
|
+
const deleted = parseInt(parts[1], 10) || 0;
|
|
106
|
+
totalAdded += added;
|
|
107
|
+
totalDeleted += deleted;
|
|
108
|
+
// 最后部分是文件名(可能包含空格)
|
|
109
|
+
const fileName = parts.slice(2).join(' ');
|
|
110
|
+
allFiles.push(fileName);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// 解析 unstaged 的 numstat
|
|
115
|
+
if (unstagedNumstat) {
|
|
116
|
+
for (const line of unstagedNumstat.split('\n')) {
|
|
117
|
+
if (!line.trim())
|
|
118
|
+
continue;
|
|
119
|
+
const parts = line.split(/\s+/);
|
|
120
|
+
if (parts.length >= 3) {
|
|
121
|
+
const added = parseInt(parts[0], 10) || 0;
|
|
122
|
+
const deleted = parseInt(parts[1], 10) || 0;
|
|
123
|
+
totalAdded += added;
|
|
124
|
+
totalDeleted += deleted;
|
|
125
|
+
// 最后部分是文件名(可能包含空格)
|
|
126
|
+
const fileName = parts.slice(2).join(' ');
|
|
127
|
+
allFiles.push(fileName);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
added: totalAdded,
|
|
133
|
+
deleted: totalDeleted,
|
|
134
|
+
files: allFiles,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
87
137
|
/**
|
|
88
138
|
* 获取文件的 diff
|
|
89
139
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../src/core/git/GitService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../src/core/git/GitService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare enum SecurityIssueType {
|
|
2
|
+
API_KEY = "api_key",
|
|
3
|
+
EMAIL = "email",
|
|
4
|
+
PHONE = "phone",
|
|
5
|
+
TOKEN = "token",
|
|
6
|
+
CREDENTIAL = "credential",
|
|
7
|
+
SECRET = "secret",
|
|
8
|
+
PASSWORD = "password"
|
|
9
|
+
}
|
|
10
|
+
export interface SecurityIssue {
|
|
11
|
+
type: SecurityIssueType;
|
|
12
|
+
match: string;
|
|
13
|
+
file: string;
|
|
14
|
+
line: number;
|
|
15
|
+
description: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ScanResult {
|
|
18
|
+
issues: SecurityIssue[];
|
|
19
|
+
summary: string;
|
|
20
|
+
redactedContent: string;
|
|
21
|
+
}
|
|
22
|
+
export interface SecurityScannerOptions {
|
|
23
|
+
patterns?: Record<SecurityIssueType, RegExp>;
|
|
24
|
+
whitelist?: string[];
|
|
25
|
+
}
|
|
26
|
+
export declare class SecurityScanner {
|
|
27
|
+
private patterns;
|
|
28
|
+
private whitelist;
|
|
29
|
+
constructor(options?: SecurityScannerOptions);
|
|
30
|
+
addToWhitelist(...items: string[]): void;
|
|
31
|
+
isInWhitelist(match: string): boolean;
|
|
32
|
+
scan(content: string, filePath: string): SecurityIssue[];
|
|
33
|
+
scanMultiple(files: Map<string, string>): SecurityIssue[];
|
|
34
|
+
redact(content: string): string;
|
|
35
|
+
scanAndRedact(content: string, filePath: string): ScanResult;
|
|
36
|
+
private getIssueDescription;
|
|
37
|
+
private generateSummary;
|
|
38
|
+
}
|
|
39
|
+
export declare const defaultSecurityScanner: SecurityScanner;
|