soloforge 1.0.0 → 1.1.1

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.
Files changed (182) hide show
  1. package/README.md +4 -1
  2. package/dist/adapters/claude_code/claude_md.d.ts +1 -2
  3. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/claude_md.js +2 -76
  5. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  6. package/dist/adapters/claude_code/server.d.ts +16 -0
  7. package/dist/adapters/claude_code/server.d.ts.map +1 -1
  8. package/dist/adapters/claude_code/server.js +17 -1
  9. package/dist/adapters/claude_code/server.js.map +1 -1
  10. package/dist/adapters/claude_code/tools.d.ts +32 -1
  11. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  12. package/dist/adapters/claude_code/tools.js +65 -30
  13. package/dist/adapters/claude_code/tools.js.map +1 -1
  14. package/dist/adapters/codex/codex_config.d.ts +3 -0
  15. package/dist/adapters/codex/codex_config.d.ts.map +1 -0
  16. package/dist/adapters/codex/codex_config.js +51 -0
  17. package/dist/adapters/codex/codex_config.js.map +1 -0
  18. package/dist/adapters/codex/codex_rules.d.ts +2 -0
  19. package/dist/adapters/codex/codex_rules.d.ts.map +1 -0
  20. package/dist/adapters/codex/codex_rules.js +5 -0
  21. package/dist/adapters/codex/codex_rules.js.map +1 -0
  22. package/dist/adapters/shared/workflow_template.d.ts +3 -0
  23. package/dist/adapters/shared/workflow_template.d.ts.map +1 -0
  24. package/dist/adapters/shared/workflow_template.js +78 -0
  25. package/dist/adapters/shared/workflow_template.js.map +1 -0
  26. package/dist/adapters/trae/trae_rules.d.ts +1 -2
  27. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  28. package/dist/adapters/trae/trae_rules.js +2 -75
  29. package/dist/adapters/trae/trae_rules.js.map +1 -1
  30. package/dist/bin/soloforge.js +171 -22
  31. package/dist/bin/soloforge.js.map +1 -1
  32. package/dist/engine/change_coordinator.d.ts +20 -5
  33. package/dist/engine/change_coordinator.d.ts.map +1 -1
  34. package/dist/engine/change_coordinator.js +36 -22
  35. package/dist/engine/change_coordinator.js.map +1 -1
  36. package/dist/engine/classifier.d.ts +7 -0
  37. package/dist/engine/classifier.d.ts.map +1 -1
  38. package/dist/engine/classifier.js +75 -3
  39. package/dist/engine/classifier.js.map +1 -1
  40. package/dist/engine/code_reviewer.d.ts +37 -1
  41. package/dist/engine/code_reviewer.d.ts.map +1 -1
  42. package/dist/engine/code_reviewer.js +126 -24
  43. package/dist/engine/code_reviewer.js.map +1 -1
  44. package/dist/engine/confidence_scorer.d.ts +21 -0
  45. package/dist/engine/confidence_scorer.d.ts.map +1 -1
  46. package/dist/engine/confidence_scorer.js +19 -6
  47. package/dist/engine/confidence_scorer.js.map +1 -1
  48. package/dist/engine/contract_guard.d.ts +23 -0
  49. package/dist/engine/contract_guard.d.ts.map +1 -1
  50. package/dist/engine/contract_guard.js +152 -43
  51. package/dist/engine/contract_guard.js.map +1 -1
  52. package/dist/engine/convention_detector.d.ts +20 -0
  53. package/dist/engine/convention_detector.d.ts.map +1 -1
  54. package/dist/engine/convention_detector.js +19 -1
  55. package/dist/engine/convention_detector.js.map +1 -1
  56. package/dist/engine/debt_reporter.d.ts +5 -0
  57. package/dist/engine/debt_reporter.d.ts.map +1 -1
  58. package/dist/engine/debt_reporter.js +30 -6
  59. package/dist/engine/debt_reporter.js.map +1 -1
  60. package/dist/engine/debt_tracker.d.ts +52 -0
  61. package/dist/engine/debt_tracker.d.ts.map +1 -1
  62. package/dist/engine/debt_tracker.js +66 -1
  63. package/dist/engine/debt_tracker.js.map +1 -1
  64. package/dist/engine/debugger.d.ts +9 -0
  65. package/dist/engine/debugger.d.ts.map +1 -1
  66. package/dist/engine/debugger.js +112 -20
  67. package/dist/engine/debugger.js.map +1 -1
  68. package/dist/engine/delivery.d.ts +27 -0
  69. package/dist/engine/delivery.d.ts.map +1 -1
  70. package/dist/engine/delivery.js +67 -13
  71. package/dist/engine/delivery.js.map +1 -1
  72. package/dist/engine/dependency_scanner.d.ts +5 -8
  73. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  74. package/dist/engine/dependency_scanner.js +46 -29
  75. package/dist/engine/dependency_scanner.js.map +1 -1
  76. package/dist/engine/evolver.d.ts +54 -0
  77. package/dist/engine/evolver.d.ts.map +1 -1
  78. package/dist/engine/evolver.js +159 -6
  79. package/dist/engine/evolver.js.map +1 -1
  80. package/dist/engine/exploration.d.ts +114 -0
  81. package/dist/engine/exploration.d.ts.map +1 -0
  82. package/dist/engine/exploration.js +414 -0
  83. package/dist/engine/exploration.js.map +1 -0
  84. package/dist/engine/failure_classifier.d.ts +28 -0
  85. package/dist/engine/failure_classifier.d.ts.map +1 -1
  86. package/dist/engine/failure_classifier.js +51 -5
  87. package/dist/engine/failure_classifier.js.map +1 -1
  88. package/dist/engine/git_deps.d.ts +29 -0
  89. package/dist/engine/git_deps.d.ts.map +1 -1
  90. package/dist/engine/git_deps.js +1 -0
  91. package/dist/engine/git_deps.js.map +1 -1
  92. package/dist/engine/impact_analyzer.d.ts +17 -0
  93. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  94. package/dist/engine/impact_analyzer.js +76 -4
  95. package/dist/engine/impact_analyzer.js.map +1 -1
  96. package/dist/engine/intent_expander.d.ts +58 -0
  97. package/dist/engine/intent_expander.d.ts.map +1 -1
  98. package/dist/engine/intent_expander.js +173 -1
  99. package/dist/engine/intent_expander.js.map +1 -1
  100. package/dist/engine/migration_guard.d.ts +6 -0
  101. package/dist/engine/migration_guard.d.ts.map +1 -1
  102. package/dist/engine/migration_guard.js +26 -7
  103. package/dist/engine/migration_guard.js.map +1 -1
  104. package/dist/engine/observability.d.ts +31 -7
  105. package/dist/engine/observability.d.ts.map +1 -1
  106. package/dist/engine/observability.js +88 -28
  107. package/dist/engine/observability.js.map +1 -1
  108. package/dist/engine/onboarding.d.ts +41 -1
  109. package/dist/engine/onboarding.d.ts.map +1 -1
  110. package/dist/engine/onboarding.js +83 -8
  111. package/dist/engine/onboarding.js.map +1 -1
  112. package/dist/engine/scaffolder.d.ts +10 -0
  113. package/dist/engine/scaffolder.d.ts.map +1 -1
  114. package/dist/engine/scaffolder.js +55 -10
  115. package/dist/engine/scaffolder.js.map +1 -1
  116. package/dist/engine/scope_controller.d.ts +13 -0
  117. package/dist/engine/scope_controller.d.ts.map +1 -1
  118. package/dist/engine/scope_controller.js +76 -12
  119. package/dist/engine/scope_controller.js.map +1 -1
  120. package/dist/engine/task_context.d.ts +124 -0
  121. package/dist/engine/task_context.d.ts.map +1 -1
  122. package/dist/engine/task_context.js +155 -7
  123. package/dist/engine/task_context.js.map +1 -1
  124. package/dist/engine/task_planner.d.ts +17 -0
  125. package/dist/engine/task_planner.d.ts.map +1 -1
  126. package/dist/engine/task_planner.js +51 -4
  127. package/dist/engine/task_planner.js.map +1 -1
  128. package/dist/engine/team_awareness.d.ts +17 -0
  129. package/dist/engine/team_awareness.d.ts.map +1 -1
  130. package/dist/engine/team_awareness.js +29 -11
  131. package/dist/engine/team_awareness.js.map +1 -1
  132. package/dist/engine/test_generator.d.ts +5 -4
  133. package/dist/engine/test_generator.d.ts.map +1 -1
  134. package/dist/engine/test_generator.js +22 -5
  135. package/dist/engine/test_generator.js.map +1 -1
  136. package/dist/engine/test_quality.d.ts +11 -4
  137. package/dist/engine/test_quality.d.ts.map +1 -1
  138. package/dist/engine/test_quality.js +171 -14
  139. package/dist/engine/test_quality.js.map +1 -1
  140. package/dist/engine/verifier.d.ts +41 -0
  141. package/dist/engine/verifier.d.ts.map +1 -1
  142. package/dist/engine/verifier.js +110 -1
  143. package/dist/engine/verifier.js.map +1 -1
  144. package/dist/git/operations.d.ts +1 -0
  145. package/dist/git/operations.d.ts.map +1 -1
  146. package/dist/git/operations.js +3 -0
  147. package/dist/git/operations.js.map +1 -1
  148. package/dist/index.d.ts +9 -0
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +14 -0
  151. package/dist/index.js.map +1 -1
  152. package/dist/knowledge/index_manager.d.ts +7 -1
  153. package/dist/knowledge/index_manager.d.ts.map +1 -1
  154. package/dist/knowledge/index_manager.js +112 -37
  155. package/dist/knowledge/index_manager.js.map +1 -1
  156. package/dist/knowledge/loader.d.ts +31 -0
  157. package/dist/knowledge/loader.d.ts.map +1 -1
  158. package/dist/knowledge/loader.js +102 -8
  159. package/dist/knowledge/loader.js.map +1 -1
  160. package/dist/types.d.ts +608 -0
  161. package/dist/types.d.ts.map +1 -1
  162. package/package.json +1 -1
  163. package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +19 -0
  164. package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +4 -0
  165. package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +4 -1
  166. package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +34 -0
  167. package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +66 -0
  168. package/templates/scaffolds/react/Form.tsx.hbs +9 -1
  169. package/templates/scaffolds/react/List.tsx.hbs +10 -1
  170. package/templates/scaffolds/react/Page.tsx.hbs +4 -1
  171. package/templates/scaffolds/react/service.ts.hbs +29 -0
  172. package/templates/scaffolds/react/types.ts.hbs +7 -1
  173. package/templates/scaffolds/react/use{{ModuleName}}.ts.hbs +34 -2
  174. package/templates/scaffolds/spring-boot/Controller.java.hbs +27 -0
  175. package/templates/scaffolds/spring-boot/DTO.java.hbs +7 -1
  176. package/templates/scaffolds/spring-boot/Entity.java.hbs +11 -1
  177. package/templates/scaffolds/spring-boot/ErrorCode.java.hbs +13 -1
  178. package/templates/scaffolds/spring-boot/Mapper.java.hbs +4 -1
  179. package/templates/scaffolds/spring-boot/PageResponse.java.hbs +24 -1
  180. package/templates/scaffolds/spring-boot/Service.java.hbs +32 -0
  181. package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +23 -5
  182. package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +7 -1
@@ -1,24 +1,43 @@
1
- // ── 分类规则表 ──
1
+ /**
2
+ * 任务分类器 — 根据用户意图文本分类任务类型、风险等级和执行策略。
3
+ * 零 AI 依赖,纯关键词 + 规则匹配。
4
+ *
5
+ * 职责:
6
+ * - 识别任务类型(feature / bugfix / refactor 等 12 种)
7
+ * - 评估歧义度(low / medium / high),高歧义时生成澄清问题
8
+ * - 评估风险等级(low / medium / high)
9
+ * - 推断复杂度和执行策略(skip_soloForge / quick_fix / full_pipeline)
10
+ * - 猜测涉及的仓库(backend / frontend)
11
+ */
12
+ // ── 分类规则表: 按优先级排列,每个规则包含匹配关键词和对应的任务类型 ──
2
13
  const TYPE_RULES = [
3
14
  { keywords: ["新建", "新建模块", "初始化", "脚手架", "scaffold"], type: "scaffold" },
4
15
  { keywords: ["紧急修复", "线上问题", "生产环境", "hotfix"], type: "hotfix" },
5
16
  { keywords: ["修复", "fix", "bug", "错误", "异常", "NPE", "空指针", "报错"], type: "bugfix" },
6
17
  { keywords: ["review", "审查", "看看", "检查代码", "代码质量"], type: "review" },
7
18
  { keywords: ["解释", "说明", "什么意思", "怎么理解"], type: "explain" },
8
- { keywords: ["优化", "性能", "加速", "慢", "提高性能"], type: "optimize" },
19
+ { keywords: ["优化", "性能", "加速", "慢", "提高性能", "加快"], type: "optimize" },
9
20
  { keywords: ["文档", "注释", "README"], type: "document" },
10
21
  { keywords: ["测试", "test", "补测试", "写测试", "单元测试"], type: "test" },
11
22
  { keywords: ["调试", "排障", "为什么报错", "排查"], type: "debug" },
12
23
  { keywords: ["重构", "优化结构", "提取", "抽象", "拆分"], type: "refactor" },
13
- { keywords: ["加功能", "新增", "新功能", "创建", "实现", "开发", "添加"], type: "feature" },
24
+ { keywords: ["加功能", "新增", "新功能", "创建", "实现", "开发", "添加", "加一个", "加个", "加上", "增加", "做一个", "写一个", "写个", "做个"], type: "feature" },
14
25
  ];
26
+ // 高歧义动词: 缺乏明确操作目标的模糊动作词
15
27
  const HIGH_AMBIGUITY_VERBS = ["优化", "重构", "改进", "提升", "调整", "完善", "梳理"];
28
+ // 明确动词: 指向具体操作的可执行动作词
16
29
  const CLEAR_VERBS = ["加", "修", "删", "改", "新建", "创建", "实现"];
30
+ // 明确对象模式: 匹配类名、文件路径、API 路径等具体技术实体
17
31
  const CLEAR_OBJECTS_PATTERNS = [
18
32
  /^[A-Z]\w*(Service|Controller|Mapper|Repository|Component|Module)/,
19
33
  /\.(ts|tsx|java|py|yaml|json)$/,
20
34
  /api\/|\/v\d\//,
21
35
  ];
36
+ /**
37
+ * 对用户意图进行分类,返回任务类型、风险、复杂度等决策信息。
38
+ * @param input - 分类输入,包含意图文本和可选的项目路径
39
+ * @returns 分类结果,包含 task_type / risk / complexity / strategy / ambiguity 等
40
+ */
22
41
  export function classify(input) {
23
42
  const { intent } = input;
24
43
  const normalized = intent.toLowerCase();
@@ -27,6 +46,7 @@ export function classify(input) {
27
46
  const risk = assessRisk(taskType, normalized);
28
47
  const complexity = assessComplexity(normalized);
29
48
  const strategy = selectStrategy(taskType);
49
+ // 执行模式: skip 策略直通,高风险需人工监督,其余自动执行
30
50
  const mode = strategy === "skip_soloForge" ? "passthrough" : risk === "high" ? "supervised" : "autonomous";
31
51
  const result = {
32
52
  task_type: taskType,
@@ -50,8 +70,18 @@ export function classify(input) {
50
70
  }
51
71
  return result;
52
72
  }
73
+ /**
74
+ * 匹配任务类型,按优先级依次检查特殊组合模式和关键词规则。
75
+ * @param normalized - 小写化后的意图文本
76
+ * @returns 匹配到的任务类型,默认返回 "passthrough"
77
+ */
53
78
  function matchType(normalized) {
79
+ // "加 + 名词短语"模式:加批量删除、加权限、加字段 等(排除加快/加密/加载/加剧等非功能词汇)
80
+ // 负向前瞻 (?!快|密|载|...) 排除动词前缀,后跟 1-8 个字符的对象名 + 功能后缀词
81
+ if (/加(?!快|密|载|剧|速|深|重)[^\s]{1,8}(接口|功能|模块|页面|字段|按钮|服务|权限|配置|能力|校验|逻辑|规则|支持|特性)/.test(normalized))
82
+ return "feature";
54
83
  // 优先检查需要区分的组合关键词(如"优化结构" → refactor,而非 optimize)
84
+ // 必须在 TYPE_RULES 遍历之前,否则"优化"会被错误匹配为 optimize
55
85
  if (/优化.*(结构|架构|代码|组织|设计)/i.test(normalized))
56
86
  return "refactor";
57
87
  if (normalized.includes("新建模块") || normalized.includes("脚手架") || normalized.includes("scaffold"))
@@ -65,6 +95,12 @@ function matchType(normalized) {
65
95
  }
66
96
  return "passthrough";
67
97
  }
98
+ /**
99
+ * 评估意图歧义度,基于动词明确性和对象具体性综合判断。
100
+ * @param intent - 原始意图文本(保留大小写用于模式匹配)
101
+ * @param normalized - 小写化后的意图文本
102
+ * @returns 歧义等级: "low" / "medium" / "high"
103
+ */
68
104
  function assessAmbiguity(intent, normalized) {
69
105
  const hasClearVerb = CLEAR_VERBS.some((v) => normalized.includes(v));
70
106
  const hasClearObject = CLEAR_OBJECTS_PATTERNS.some((p) => p.test(intent));
@@ -77,6 +113,12 @@ function assessAmbiguity(intent, normalized) {
77
113
  return "low";
78
114
  return "medium";
79
115
  }
116
+ /**
117
+ * 评估任务风险等级,hotfix 和涉及数据库变更的 bugfix/refactor 为高风险。
118
+ * @param type - 已识别的任务类型
119
+ * @param normalized - 小写化后的意图文本,用于检测数据库相关关键词
120
+ * @returns 风险等级: "low" / "medium" / "high"
121
+ */
80
122
  function assessRisk(type, normalized) {
81
123
  if (type === "hotfix")
82
124
  return "high";
@@ -88,6 +130,11 @@ function assessRisk(type, normalized) {
88
130
  return "low";
89
131
  return "medium";
90
132
  }
133
+ /**
134
+ * 评估任务复杂度,基于意图中的范围关键词(多个、批量、跨等)和操作粒度判断。
135
+ * @param normalized - 小写化后的意图文本
136
+ * @returns 复杂度: "low" / "medium" / "high"
137
+ */
91
138
  function assessComplexity(normalized) {
92
139
  const complexHints = ["多个", "批量", "跨", "联调", "前后端", "多仓库", "全链路"];
93
140
  if (complexHints.some((h) => normalized.includes(h)))
@@ -96,6 +143,13 @@ function assessComplexity(normalized) {
96
143
  return "low";
97
144
  return "medium";
98
145
  }
146
+ /**
147
+ * 根据任务类型选择执行策略。
148
+ * review/explain/document 等只读类型跳过 SoloForge 流程,
149
+ * bugfix/hotfix/test 走快速修复路径,其余走完整流水线。
150
+ * @param type - 已识别的任务类型
151
+ * @returns 执行策略: "skip_soloForge" / "quick_fix" / "full_pipeline"
152
+ */
99
153
  function selectStrategy(type) {
100
154
  if (["review", "explain", "document", "passthrough"].includes(type))
101
155
  return "skip_soloForge";
@@ -103,6 +157,12 @@ function selectStrategy(type) {
103
157
  return "quick_fix";
104
158
  return "full_pipeline";
105
159
  }
160
+ /**
161
+ * 根据意图文本中的技术关键词推测涉及的仓库。
162
+ * 无法判断时默认同时涉及 backend 和 frontend。
163
+ * @param normalized - 小写化后的意图文本
164
+ * @returns 仓库名称数组,如 ["backend"] 或 ["backend", "frontend"]
165
+ */
106
166
  function guessRepos(normalized) {
107
167
  const repos = [];
108
168
  if (/后端|backend|java|spring|service|controller|mapper|api/i.test(normalized))
@@ -113,9 +173,21 @@ function guessRepos(normalized) {
113
173
  repos.push("backend", "frontend");
114
174
  return repos;
115
175
  }
176
+ /**
177
+ * 构建分类摘要文本。
178
+ * @param intent - 原始意图
179
+ * @param type - 识别到的任务类型
180
+ * @returns 摘要字符串
181
+ */
116
182
  function buildSummary(intent, type) {
117
183
  return `意图分析: ${type} 类型 — "${intent}"`;
118
184
  }
185
+ /**
186
+ * 为高歧义意图生成澄清问题列表。
187
+ * @param intent - 原始意图文本
188
+ * @param _type - 任务类型(预留参数,当前未使用)
189
+ * @returns 澄清问题数组
190
+ */
119
191
  function generateQuestions(intent, _type) {
120
192
  const questions = [];
121
193
  if (/优化/.test(intent)) {
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/engine/classifier.ts"],"names":[],"mappings":"AAEA,cAAc;AAEd,MAAM,UAAU,GAAkD;IAChE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IACxE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClF,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3D,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/D,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IACtD,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAChE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IACxD,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;IAChE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;CAC5E,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACxE,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,MAAM,sBAAsB,GAAG;IAC7B,kEAAkE;IAClE,+BAA+B;IAC/B,eAAe;CAChB,CAAC;AAOF,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAE3G,MAAM,MAAM,GAAmB;QAC7B,SAAS,EAAE,QAAQ;QACnB,IAAI;QACJ,UAAU;QACV,SAAS;QACT,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC;QACtC,IAAI;QACJ,QAAQ;KACT,CAAC;IAEF,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,aAAa,GAAG;YACrB,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;SACxC,CAAC;IACJ,CAAC;SAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,aAAa,GAAG;YACrB,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YACvC,SAAS,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,UAAkB;IACnC,iDAAiD;IACjD,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACpH,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEhJ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,UAAkB;IACzD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,gBAAgB,IAAI,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC;IACvD,IAAI,YAAY,IAAI,cAAc;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,YAAY,IAAI,cAAc;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,UAAkB;IACpD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IACzG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACpE,IAAI,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACpE,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,UAAkB;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,uDAAuD,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpG,IAAI,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,IAAc;IAClD,OAAO,SAAS,IAAI,UAAU,MAAM,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAe;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/engine/classifier.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,36 @@
1
- import type { ClassifyResult, CodeReviewResult, ProjectConfig, ReviewRole, UncertaintyTrigger } from "../types.js";
1
+ import type { ClassifyResult, ReviewFinding, CodeReviewResult, ProjectConfig, ReviewRole, UncertaintyTrigger } from "../types.js";
2
2
  import { DebtTracker } from "./debt_tracker.js";
3
3
  import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
4
+ /**
5
+ * 代码审查引擎 — 对变更文件执行多维度静态审查,包括质量、安全、性能、技术债务和知识驱动规则检查。
6
+ * 纯规则驱动,零 AI 依赖。支持自审/同行审查角色切换、风险调整审查和不确定性触发条件检测。
7
+ *
8
+ * 机制 3: 认知减负路由 — 按信任分级过滤审查发现,减少决策疲劳:
9
+ * - 白盒/建议跳过: 完全符合 Pattern 且测试全绿的 CRUD 逻辑
10
+ * - 灰盒/建议审查: 涉及核心算法、安全边界或熔断决策后的实现
11
+ * - 黑盒/强制审查: 自创的、无知识库支撑的非标逻辑
12
+ */
13
+ /** 审查信任分级 */
14
+ export type ReviewTrustLevel = "white_box" | "gray_box" | "black_box";
15
+ /** 分级审查结果 */
16
+ export interface TrustClassifiedFinding extends ReviewFinding {
17
+ /** 信任级别 */
18
+ trust_level: ReviewTrustLevel;
19
+ /** 分级理由 */
20
+ trust_reason: string;
21
+ }
22
+ /** 分级审查汇总 */
23
+ export interface TrustClassificationSummary {
24
+ /** 白盒发现数(建议跳过) */
25
+ white_box_count: number;
26
+ /** 灰盒发现数(建议审查) */
27
+ gray_box_count: number;
28
+ /** 黑盒发现数(强制审查) */
29
+ black_box_count: number;
30
+ /** 审查建议 */
31
+ recommendation: string;
32
+ }
33
+ /** 代码审查输入参数 */
4
34
  export interface ReviewInput {
5
35
  changedFiles: string[];
6
36
  projectPath: string;
@@ -11,5 +41,11 @@ export interface ReviewInput {
11
41
  review_role?: ReviewRole;
12
42
  uncertainty_triggers?: UncertaintyTrigger[];
13
43
  }
44
+ /**
45
+ * 执行代码审查 — 对变更文件逐一进行质量、安全、性能、技术债务和知识规则检查。
46
+ * @param input - 审查输入参数,包含变更文件列表、项目路径、配置和分类结果等
47
+ * @param tracker - 可选的技术债务追踪器,审查中发现的技术债务会自动记录
48
+ * @returns 代码审查结果,包含发现列表、严重度统计和总体评估
49
+ */
14
50
  export declare function reviewCode(input: ReviewInput, tracker?: DebtTracker): Promise<CodeReviewResult>;
15
51
  //# sourceMappingURL=code_reviewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code_reviewer.d.ts","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAiB,gBAAgB,EAAE,aAAa,EAAmC,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnK,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC7C;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA2G3B"}
1
+ {"version":3,"file":"code_reviewer.d.ts","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAmC,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnK,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E;;;;;;;;GAQG;AAEH,aAAa;AACb,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtE,aAAa;AACb,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,WAAW;IACX,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,aAAa;AACb,MAAM,WAAW,0BAA0B;IACzC,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,cAAc,EAAE,MAAM,CAAC;CACxB;AAyFD,eAAe;AACf,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAoH3B"}
@@ -1,13 +1,88 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
+ /**
4
+ * 机制 3: 对审查发现进行信任分级路由。
5
+ * 白盒 → 建议跳过(CRUD/符合模式),灰盒 → 建议审查(核心算法/安全),黑盒 → 强制审查(非标逻辑)
6
+ */
7
+ function classifyFindingsByTrust(findings, knowledgeIndex, changedFiles, fileContents) {
8
+ // 获取知识库中的 review_rule 条目用于匹配
9
+ const knowledgeRules = knowledgeIndex
10
+ ? knowledgeIndex.query({ type: "review_rule", limit: 50 })
11
+ : [];
12
+ let whiteCount = 0;
13
+ let grayCount = 0;
14
+ let blackCount = 0;
15
+ const classified = findings.map((f) => {
16
+ const { level, reason } = determineTrustLevel(f, knowledgeRules, fileContents);
17
+ if (level === "white_box")
18
+ whiteCount++;
19
+ else if (level === "gray_box")
20
+ grayCount++;
21
+ else
22
+ blackCount++;
23
+ return { ...f, trust_level: level, trust_reason: reason };
24
+ });
25
+ const recommendation = blackCount > 0
26
+ ? `强制审查 ${blackCount} 项黑盒发现(无知识库支撑的非标逻辑)`
27
+ : grayCount > 0
28
+ ? `建议审查 ${grayCount} 项灰盒发现(核心算法/安全边界相关)`
29
+ : `全部为白盒发现,建议跳过详细审查`;
30
+ return {
31
+ classified,
32
+ summary: {
33
+ white_box_count: whiteCount,
34
+ gray_box_count: grayCount,
35
+ black_box_count: blackCount,
36
+ recommendation,
37
+ },
38
+ };
39
+ }
40
+ /** 判断单条发现的信任级别 */
41
+ function determineTrustLevel(finding, knowledgeRules, _fileContents) {
42
+ // 黑盒判定: 无知识库支撑的 critical 发现
43
+ if (finding.severity === "critical") {
44
+ const hasKnowledgeSupport = knowledgeRules.some((rule) => rule.body && rule.body.includes(finding.title));
45
+ if (!hasKnowledgeSupport) {
46
+ return {
47
+ level: "black_box",
48
+ reason: "严重问题且无知识库规则支撑,属于非标逻辑",
49
+ };
50
+ }
51
+ }
52
+ // 灰盒判定: 安全维度 或 architecture 维度
53
+ if (finding.dimension === "security" || finding.dimension === "architecture") {
54
+ return {
55
+ level: "gray_box",
56
+ reason: `涉及${finding.dimension === "security" ? "安全边界" : "架构"},建议审查`,
57
+ };
58
+ }
59
+ // 灰盒判定: 严重度为 warning 的性能问题
60
+ if (finding.dimension === "performance" && finding.severity === "warning") {
61
+ return {
62
+ level: "gray_box",
63
+ reason: "性能警告,涉及核心逻辑效率",
64
+ };
65
+ }
66
+ // 白盒判定: 其余所有(quality/info/debt 等)
67
+ return {
68
+ level: "white_box",
69
+ reason: "常规质量/技术债务检查项,符合已知模式",
70
+ };
71
+ }
72
+ /**
73
+ * 执行代码审查 — 对变更文件逐一进行质量、安全、性能、技术债务和知识规则检查。
74
+ * @param input - 审查输入参数,包含变更文件列表、项目路径、配置和分类结果等
75
+ * @param tracker - 可选的技术债务追踪器,审查中发现的技术债务会自动记录
76
+ * @returns 代码审查结果,包含发现列表、严重度统计和总体评估
77
+ */
3
78
  export async function reviewCode(input, tracker) {
4
79
  const { changedFiles, projectPath, config, classification, fileContents, knowledgeIndex, review_role, uncertainty_triggers } = input;
5
- // 能力 5: 角色检测 — 默认自审
80
+ // 能力 5: 角色检测 — 默认自审,自审模式下置信度降低 0.2
6
81
  const role = review_role ?? "self_review";
7
82
  const selfReviewConfidencePenalty = role === "self_review" ? -0.2 : 0;
8
- // 能力 1: 风险调整审查
83
+ // 能力 1: 风险调整审查 — 高/中风险任务启用加强审查
9
84
  const riskAdjusted = classification?.risk === "high" || classification?.risk === "medium";
10
- // 跳过逻辑
85
+ // 跳过逻辑: hotfix 类型自动跳过审查以加速修复
11
86
  if (classification?.task_type === "hotfix") {
12
87
  return {
13
88
  task_id: "",
@@ -80,9 +155,11 @@ export async function reviewCode(input, tracker) {
80
155
  uncertaintyViolations.push(`${trigger.trigger_type}: ${trigger.description} — 未确认`);
81
156
  }
82
157
  }
158
+ // 机制 3: 认知减负路由 — 按信任分级过滤审查发现
159
+ const { classified: trustClassified, summary: trustSummary } = classifyFindingsByTrust(findings, knowledgeIndex, changedFiles, fileContents);
83
160
  return {
84
161
  task_id: "",
85
- findings,
162
+ findings: trustClassified,
86
163
  summary: { total: findings.length, by_dimension: byDimension, by_severity: bySeverity, debt_items: debtCount },
87
164
  overall_assessment: formatAssessment(findings.length, bySeverity, role, riskAdjusted),
88
165
  review_role: role,
@@ -90,13 +167,14 @@ export async function reviewCode(input, tracker) {
90
167
  disputes: [],
91
168
  uncertainty_violations: uncertaintyViolations.length > 0 ? uncertaintyViolations : undefined,
92
169
  risk_adjusted: riskAdjusted,
170
+ trust_classification: trustSummary,
93
171
  };
94
172
  }
95
- // ── 质量检查 ──
173
+ /** 质量维度检查 检测 console.log 和 TypeScript any 类型使用 */
96
174
  function checkQuality(filePath, content, lines, ext, startIdx) {
97
175
  const findings = [];
98
176
  let idx = startIdx;
99
- // console.log 检测(非测试文件)
177
+ // console.log 检测(跳过测试文件,测试中 console.log 可接受)
100
178
  if (!/\.test\.|\.spec\./.test(filePath)) {
101
179
  lines.forEach((line, i) => {
102
180
  if (/console\.log\(/.test(line)) {
@@ -104,7 +182,7 @@ function checkQuality(filePath, content, lines, ext, startIdx) {
104
182
  }
105
183
  });
106
184
  }
107
- // TypeScript any 类型
185
+ // TypeScript any 类型检测 — 三种 any 用法: 类型注解(: any)、断言(as any)、泛型(<any>)
108
186
  if (ext === ".ts" || ext === ".tsx") {
109
187
  lines.forEach((line, i) => {
110
188
  if (/: any\b/.test(line) || /as any/.test(line) || /<any>/.test(line)) {
@@ -114,11 +192,11 @@ function checkQuality(filePath, content, lines, ext, startIdx) {
114
192
  }
115
193
  return findings;
116
194
  }
117
- // ── 安全检查 ──
195
+ /** 安全维度检查 检测 SQL 拼接、eval/Function 构造器和 innerHTML 赋值 */
118
196
  function checkSecurity(filePath, content, lines, ext, startIdx) {
119
197
  const findings = [];
120
198
  let idx = startIdx;
121
- // SQL 拼接
199
+ // SQL 拼接检测 — 匹配含 SQL 关键字且使用字符串拼接(+/${}/%s)的行,仅检查 Java/TS 文件
122
200
  if (ext === ".java" || ext === ".ts") {
123
201
  lines.forEach((line, i) => {
124
202
  if (/["'`]SELECT|INSERT|UPDATE|DELETE/i.test(line) && (/\+/.test(line) || /\$\{/.test(line) || /%s/.test(line))) {
@@ -126,13 +204,13 @@ function checkSecurity(filePath, content, lines, ext, startIdx) {
126
204
  }
127
205
  });
128
206
  }
129
- // eval 检测
207
+ // eval/Function 构造器检测 — 动态代码执行,任意文件类型均检查
130
208
  lines.forEach((line, i) => {
131
209
  if (/\beval\s*\(/.test(line) || /\bFunction\s*\(/.test(line)) {
132
210
  findings.push(makeFinding(idx++, filePath, i + 1, "security", "critical", "使用了 eval 或 Function 构造器", `第 ${i + 1} 行使用了动态代码执行`, "避免 eval,使用安全的替代方案"));
133
211
  }
134
212
  });
135
- // innerHTML 检测
213
+ // innerHTML 检测 — XSS 攻击面,仅检查前端文件 (TSX/JSX/HTML)
136
214
  if (ext === ".tsx" || ext === ".jsx" || ext === ".html") {
137
215
  lines.forEach((line, i) => {
138
216
  if (/\.innerHTML\s*=/.test(line)) {
@@ -142,11 +220,11 @@ function checkSecurity(filePath, content, lines, ext, startIdx) {
142
220
  }
143
221
  return findings;
144
222
  }
145
- // ── 性能检查 ──
223
+ /** 性能维度检查 检测循环内数据库调用(N+1 问题)和 SELECT * 语句 */
146
224
  function checkPerformance(filePath, content, lines, ext, startIdx) {
147
225
  const findings = [];
148
226
  let idx = startIdx;
149
- // 循环内数据库调用
227
+ // 循环内数据库调用检测 — 通过花括号深度追踪 for/while 循环范围,仅检查 Java 文件
150
228
  if (ext === ".java") {
151
229
  const loopPattern = /(for|while)\s*\(/;
152
230
  const dbPattern = /\.(select|insert|update|delete|save|findBy|query)\s*\(/i;
@@ -174,7 +252,7 @@ function checkPerformance(filePath, content, lines, ext, startIdx) {
174
252
  }
175
253
  });
176
254
  }
177
- // SELECT * 检测
255
+ // SELECT * 检测 — 返回不必要字段造成资源浪费,任意文件类型均检查
178
256
  lines.forEach((line, i) => {
179
257
  if (/SELECT\s+\*/i.test(line)) {
180
258
  findings.push(makeFinding(idx++, filePath, i + 1, "performance", "info", "使用了 SELECT *", `第 ${i + 1} 行使用了 SELECT *,可能返回不必要的数据`, "明确列出需要的字段"));
@@ -182,7 +260,7 @@ function checkPerformance(filePath, content, lines, ext, startIdx) {
182
260
  });
183
261
  return findings;
184
262
  }
185
- // ── 技术债务检查 ──
263
+ /** 技术债务维度检查 检测 TODO/FIXME/HACK/XXX 标记和过长文件(>500行) */
186
264
  function checkDebt(filePath, content, lines, startIdx) {
187
265
  const findings = [];
188
266
  let idx = startIdx;
@@ -205,11 +283,17 @@ function checkDebt(filePath, content, lines, startIdx) {
205
283
  }
206
284
  return findings;
207
285
  }
286
+ /**
287
+ * 从知识条目正文中解析审查规则 — 支持格式: `- [ID] 描述 | pattern: /regex/flags | severity: level | scope: scope`
288
+ * @param body - 知识条目正文内容
289
+ * @param fileName - 知识条目文件名,用于推断审查维度
290
+ * @returns 解析后的规则数组,无效规则(如非法正则)自动跳过
291
+ */
208
292
  function parseRulesFromEntry(body, fileName) {
209
293
  const rules = [];
210
294
  if (!body.includes("## 规则"))
211
295
  return rules;
212
- // 从文件名推断维度
296
+ // 从文件名关键字推断审查维度 (security/quality/performance/architecture)
213
297
  const dimensionFromName = (fn) => {
214
298
  if (fn.includes("security"))
215
299
  return "security";
@@ -231,7 +315,7 @@ function parseRulesFromEntry(body, fileName) {
231
315
  if (inSection && line.startsWith("## "))
232
316
  break;
233
317
  if (inSection) {
234
- // 格式: - [ID] 描述 | pattern: regex | severity: level | scope: scope
318
+ // 规则格式: - [ID] 描述 | pattern: regex | severity: level | scope: scope
235
319
  const match = line.match(/- \[([A-Z]+-\d+)\]\s*(.+?)(?:\s*\|\s*(.+))?$/);
236
320
  if (!match)
237
321
  continue;
@@ -263,11 +347,11 @@ function parseRulesFromEntry(body, fileName) {
263
347
  function checkKnowledgeRules(filePath, content, lines, ext, knowledgeIndex, startIdx) {
264
348
  const findings = [];
265
349
  let idx = startIdx;
266
- // 查询所有 review_rule 类型的知识条目
350
+ // 查询知识库中所有 review_rule 类型的条目(最多 20 条)
267
351
  const entries = knowledgeIndex.query({ type: "review_rule", limit: 20 });
268
352
  if (entries.length === 0)
269
353
  return findings;
270
- // 判断文件所在端
354
+ // 根据文件扩展名判断所属端(前端/后端),用于 scope 过滤
271
355
  const isFrontend = /\.(tsx?|jsx?|vue|css|scss|html)$/.test(filePath);
272
356
  const isTest = /\.test\.|\.spec\./.test(filePath);
273
357
  const fileSide = isFrontend ? "frontend" : "backend";
@@ -286,7 +370,7 @@ function checkKnowledgeRules(filePath, content, lines, ext, knowledgeIndex, star
286
370
  continue;
287
371
  if (rule.scope === "frontend" && !isFrontend)
288
372
  continue;
289
- // 特殊处理:行数检查规则
373
+ // 特殊 scope: "check: lines" — 文件行数检查规则,阈值 300 行
290
374
  if (rule.scope === "check: lines") {
291
375
  if (lines.length > 300) {
292
376
  findings.push(makeFinding(idx++, filePath, undefined, inferDimension(entry.file_path), rule.severity, `文件过长(${lines.length} 行)`, `${filePath} 超过 300 行,建议按职责拆分`, "按单一职责拆分为多个组件/模块"));
@@ -303,9 +387,10 @@ function checkKnowledgeRules(filePath, content, lines, ext, knowledgeIndex, star
303
387
  });
304
388
  }
305
389
  }
306
- // 去重:如果硬编码检查和知识规则在同一行发现相同问题,保留知识规则
390
+ // 去重:同一文件+行号+标题末30字符视为重复,保留先出现的发现
307
391
  return deduplicateFindings(findings);
308
392
  }
393
+ /** 从文件路径推断审查维度 — 根据路径关键字映射到 quality/security/performance/architecture */
309
394
  function inferDimension(filePath) {
310
395
  if (filePath.includes("security"))
311
396
  return "security";
@@ -317,6 +402,7 @@ function inferDimension(filePath) {
317
402
  return "architecture";
318
403
  return "quality";
319
404
  }
405
+ /** 发现去重 — 同一文件+行号+标题末30字符视为重复项,仅保留首次出现 */
320
406
  function deduplicateFindings(findings) {
321
407
  const seen = new Map();
322
408
  for (const f of findings) {
@@ -327,16 +413,26 @@ function deduplicateFindings(findings) {
327
413
  }
328
414
  return [...seen.values()];
329
415
  }
330
- // ── 辅助函数 ──
416
+ /** 构造审查发现对象 生成统一格式的 ReviewFinding */
331
417
  function makeFinding(idx, file, line, dimension, severity, title, description, suggestion) {
332
418
  return { id: `R-${String(idx).padStart(3, "0")}`, file, line, dimension, severity, title, description, suggestion, is_debt: false };
333
419
  }
420
+ /** 创建全零的维度计数器 */
334
421
  function emptyDimension() {
335
422
  return { quality: 0, security: 0, performance: 0, debt: 0, architecture: 0 };
336
423
  }
424
+ /** 创建全零的严重度计数器 */
337
425
  function emptySeverity() {
338
426
  return { info: 0, warning: 0, critical: 0 };
339
427
  }
428
+ /**
429
+ * 格式化总体评估文本 — 根据发现问题数量和严重度生成中文摘要。
430
+ * @param total - 发现总数
431
+ * @param bySeverity - 各严重度计数
432
+ * @param role - 审查角色,自审模式附加置信度提示
433
+ * @param riskAdjusted - 是否启用风险调整审查
434
+ * @returns 中文格式的评估摘要字符串
435
+ */
340
436
  function formatAssessment(total, bySeverity, role, riskAdjusted) {
341
437
  if (total === 0)
342
438
  return "代码审查通过,未发现问题";
@@ -356,16 +452,22 @@ function formatAssessment(total, bySeverity, role, riskAdjusted) {
356
452
  }
357
453
  return assessment;
358
454
  }
455
+ /**
456
+ * 批量读取文件内容 — 无法读取的文件自动跳过(如已被删除)。
457
+ * @param files - 相对于 basePath 的文件路径列表
458
+ * @param basePath - 项目根目录
459
+ * @returns 文件路径到内容的映射
460
+ */
359
461
  async function readFiles(files, basePath) {
360
462
  const contents = {};
361
- for (const file of files) {
463
+ await Promise.all(files.map(async (file) => {
362
464
  try {
363
465
  contents[file] = await fs.readFile(path.join(basePath, file), "utf-8");
364
466
  }
365
467
  catch {
366
468
  // 文件无法读取时跳过
367
469
  }
368
- }
470
+ }));
369
471
  return contents;
370
472
  }
371
473
  //# sourceMappingURL=code_reviewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code_reviewer.js","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code_reviewer.js","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"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"}