feihong-code 0.2.3 → 0.6.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.
Files changed (180) hide show
  1. package/.github/FUNDING.yml +4 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +37 -37
  3. package/.github/ISSUE_TEMPLATE/config.yml +14 -14
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +28 -28
  5. package/.github/PULL_REQUEST_TEMPLATE.md +46 -46
  6. package/.github/SECURITY.md +67 -67
  7. package/.github/dependabot.yml +16 -0
  8. package/.github/workflows/ci.yml +1 -1
  9. package/AGENT-GUIDE.md +382 -237
  10. package/CHANGELOG.md +392 -0
  11. package/CODE_OF_CONDUCT.md +56 -56
  12. package/CONTRIBUTING.md +68 -68
  13. package/LICENSE +22 -22
  14. package/README.md +586 -522
  15. package/README.self-evolve.md +274 -0
  16. package/dist/agent/code-review.js +2 -0
  17. package/dist/agent/code-review.js.map +1 -1
  18. package/dist/agent/code-writer.js +74 -18
  19. package/dist/agent/code-writer.js.map +1 -1
  20. package/dist/agent/context-compactor.js +13 -4
  21. package/dist/agent/context-compactor.js.map +1 -1
  22. package/dist/agent/experience.js +319 -84
  23. package/dist/agent/experience.js.map +1 -1
  24. package/dist/agent/orchestrator.js +233 -71
  25. package/dist/agent/orchestrator.js.map +1 -1
  26. package/dist/agent/planner.js +30 -7
  27. package/dist/agent/planner.js.map +1 -1
  28. package/dist/agent/prompts.js +9 -0
  29. package/dist/agent/prompts.js.map +1 -1
  30. package/dist/agent/quality-gate.js +10 -4
  31. package/dist/agent/quality-gate.js.map +1 -1
  32. package/dist/agent/repo-context.js +181 -0
  33. package/dist/agent/repo-context.js.map +1 -0
  34. package/dist/agent/repo-reader.js +92 -99
  35. package/dist/agent/repo-reader.js.map +1 -1
  36. package/dist/agent/self-heal.js +80 -60
  37. package/dist/agent/self-heal.js.map +1 -1
  38. package/dist/agent/self-improver.js +65 -61
  39. package/dist/agent/self-improver.js.map +1 -1
  40. package/dist/agent/subagent-summary.js +31 -0
  41. package/dist/agent/subagent-summary.js.map +1 -0
  42. package/dist/agent/subagent.js +52 -2
  43. package/dist/agent/subagent.js.map +1 -1
  44. package/dist/agent/symbol-index.js +160 -0
  45. package/dist/agent/symbol-index.js.map +1 -0
  46. package/dist/agent/team.js +193 -0
  47. package/dist/agent/team.js.map +1 -0
  48. package/dist/cli/commands.js +124 -143
  49. package/dist/cli/commands.js.map +1 -1
  50. package/dist/cli/index.js +113 -106
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/repl.js +82 -7
  53. package/dist/cli/repl.js.map +1 -1
  54. package/dist/cli/run.js +600 -95
  55. package/dist/cli/run.js.map +1 -1
  56. package/dist/cli/tui.js +145 -0
  57. package/dist/cli/tui.js.map +1 -0
  58. package/dist/cli/version.js +1 -1
  59. package/dist/enterprise/audit.js +145 -23
  60. package/dist/enterprise/audit.js.map +1 -1
  61. package/dist/enterprise/index.js +14 -11
  62. package/dist/enterprise/index.js.map +1 -1
  63. package/dist/enterprise/policy.js +22 -10
  64. package/dist/enterprise/policy.js.map +1 -1
  65. package/dist/harness/executor.js +127 -0
  66. package/dist/harness/executor.js.map +1 -0
  67. package/dist/harness/harness.js +87 -0
  68. package/dist/harness/harness.js.map +1 -0
  69. package/dist/harness/index.js +31 -0
  70. package/dist/harness/index.js.map +1 -0
  71. package/dist/harness/loader.js +138 -0
  72. package/dist/harness/loader.js.map +1 -0
  73. package/dist/harness/reporter.js +34 -0
  74. package/dist/harness/reporter.js.map +1 -0
  75. package/dist/harness/types.js +10 -0
  76. package/dist/harness/types.js.map +1 -0
  77. package/dist/harness/verifier.js +48 -0
  78. package/dist/harness/verifier.js.map +1 -0
  79. package/dist/hello.js +14 -0
  80. package/dist/hello.js.map +1 -0
  81. package/dist/memory/auto-summarize.js +208 -0
  82. package/dist/memory/auto-summarize.js.map +1 -0
  83. package/dist/memory/index.js +228 -0
  84. package/dist/memory/index.js.map +1 -0
  85. package/dist/models/model-router.js +100 -27
  86. package/dist/models/model-router.js.map +1 -1
  87. package/dist/models/model.dto.js +25 -3
  88. package/dist/models/model.dto.js.map +1 -1
  89. package/dist/models/providers/ollama.provider.js +12 -0
  90. package/dist/models/providers/ollama.provider.js.map +1 -1
  91. package/dist/models/providers/openai-compatible.provider.js +14 -1
  92. package/dist/models/providers/openai-compatible.provider.js.map +1 -1
  93. package/dist/plugins/plugin-loader.js +179 -0
  94. package/dist/plugins/plugin-loader.js.map +1 -0
  95. package/dist/runtime/event-log.js.map +1 -1
  96. package/dist/runtime/hooks.js +80 -0
  97. package/dist/runtime/hooks.js.map +1 -0
  98. package/dist/self-evolve/hook.js +60 -0
  99. package/dist/self-evolve/hook.js.map +1 -0
  100. package/dist/self-evolve/hook.ts +80 -0
  101. package/dist/self-evolve/manager.d.ts +8 -0
  102. package/dist/self-evolve/manager.js +401 -0
  103. package/dist/shared/config.js +35 -3
  104. package/dist/shared/config.js.map +1 -1
  105. package/dist/shared/errors.js +6 -2
  106. package/dist/shared/errors.js.map +1 -1
  107. package/dist/shared/i18n.js +535 -0
  108. package/dist/shared/i18n.js.map +1 -0
  109. package/dist/shared/secure-store.js +117 -0
  110. package/dist/shared/secure-store.js.map +1 -0
  111. package/dist/skills/grill.js +2 -1
  112. package/dist/skills/grill.js.map +1 -1
  113. package/dist/skills/self-heal.js +73 -0
  114. package/dist/skills/self-heal.js.map +1 -0
  115. package/dist/skills/skill-loader.js +131 -0
  116. package/dist/skills/skill-loader.js.map +1 -0
  117. package/dist/skills/skill-market.js +195 -0
  118. package/dist/skills/skill-market.js.map +1 -0
  119. package/dist/tools/analysis/code-analyzer.js +45 -18
  120. package/dist/tools/analysis/code-analyzer.js.map +1 -1
  121. package/dist/tools/index.js +5 -0
  122. package/dist/tools/index.js.map +1 -1
  123. package/dist/tools/mcp/index.js +84 -0
  124. package/dist/tools/mcp/index.js.map +1 -0
  125. package/dist/tools/mcp/mcp-client.js +194 -0
  126. package/dist/tools/mcp/mcp-client.js.map +1 -0
  127. package/dist/tools/sandbox.js +126 -0
  128. package/dist/tools/sandbox.js.map +1 -0
  129. package/dist/tools/shell/exec.js +72 -3
  130. package/dist/tools/shell/exec.js.map +1 -1
  131. package/dist/tools/shell/run-shell.tool.js +37 -7
  132. package/dist/tools/shell/run-shell.tool.js.map +1 -1
  133. package/dist/tools/skills/load-skill.tool.js +36 -0
  134. package/dist/tools/skills/load-skill.tool.js.map +1 -0
  135. package/dist/tools/tool.interface.js.map +1 -1
  136. package/dist/tools/tool.registry.js +69 -1
  137. package/dist/tools/tool.registry.js.map +1 -1
  138. package/dist/tools/web/web.tool.js +139 -0
  139. package/dist/tools/web/web.tool.js.map +1 -0
  140. package/dist/web/auth.js +178 -3
  141. package/dist/web/auth.js.map +1 -1
  142. package/dist/web/channels.js +171 -0
  143. package/dist/web/channels.js.map +1 -0
  144. package/dist/web/public/css/style.css +1546 -0
  145. package/dist/web/public/index.html +804 -37
  146. package/dist/web/public/js/api.js +309 -0
  147. package/dist/web/public/js/app.js +1472 -0
  148. package/dist/web/public/js/ui.js +832 -0
  149. package/dist/web/public/js/utils.js +170 -0
  150. package/dist/web/server.js +937 -11
  151. package/dist/web/server.js.map +1 -1
  152. package/dist/web/task-queue.js +470 -0
  153. package/dist/web/task-queue.js.map +1 -0
  154. package/dist/web/web-config.js +143 -0
  155. package/dist/web/web-config.js.map +1 -0
  156. package/docs/App/344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +299 -0
  157. package/docs/App/346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +554 -0
  158. package/docs/Deployment_Guide_EN.md +288 -0
  159. package/docs/SELF-EVOLVE-GUIDE.md +313 -0
  160. package/docs/Technical_Manual_EN.md +216 -0
  161. package/docs/User_Manual_EN.md +314 -0
  162. package/docs/error-codes.md +198 -0
  163. package/docs/screenshots/cli-demo.png +0 -0
  164. package/docs/screenshots/feature-comparison.png +0 -0
  165. package/docs/screenshots/web-console.png +0 -0
  166. package/docs/self-evolve-implementation.md +165 -0
  167. package/docs/self-evolve.md +166 -0
  168. package/docs//344/272/247/345/223/201/345/274/200/345/217/221/346/226/207/346/241/243.md +614 -614
  169. package/docs//344/274/201/344/270/232/351/203/250/347/275/262/344/270/216/345/220/210/350/247/204.md +267 -267
  170. package/docs//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +318 -358
  171. package/docs//345/270/270/350/247/201/351/227/256/351/242/230/344/270/216/346/225/205/351/232/234/346/216/222/346/237/245.md +130 -130
  172. package/docs//346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +216 -303
  173. package/docs//346/236/266/346/236/204/344/270/216API.md +238 -238
  174. package/docs//347/224/250/346/210/267/346/211/213/345/206/214.md +196 -196
  175. package/docs//351/203/250/347/275/262/346/214/207/345/215/227.md +165 -165
  176. package/docs//351/203/250/347/275/262/350/257/264/346/230/216/344/271/246.md +288 -0
  177. package/docs//351/205/215/347/275/256/345/217/202/350/200/203.md +127 -127
  178. package/docs//351/241/265/351/235/242/345/212/237/350/203/275/345/244/215/347/233/230/344/270/216/345/206/222/347/203/237/346/265/213/350/257/225/346/212/245/345/221/212.html +117 -0
  179. package/package.json +108 -109
  180. package/tool-schema.json +117 -46
@@ -0,0 +1,274 @@
1
+ # 飞虹 Code - 自我迭代升级系统
2
+
3
+ > 让 AI 编程助手能够自我学习、持续进化
4
+
5
+ ## 🎯 系统概述
6
+
7
+ Self-Evolve 是飞虹 Code 的**元技能系统**,让它能够:
8
+
9
+ 1. **自动记录失败** - 每次任务失败都会被记录并分析
10
+ 2. **提取错误模式** - 识别重复出现的错误类型
11
+ 3. **创建解决技能** - 当遇到无解问题时,自动生成新技能
12
+ 4. **定期复盘优化** - 每日/每周回顾,持续改进
13
+
14
+ ## 📦 包含内容
15
+
16
+ ### 核心系统
17
+ - `skills/self-evolve/SKILL.md` - Self-Evolve 技能定义
18
+ - `src/self-evolve/manager.js` - 核心管理器
19
+ - `src/self-evolve/hook.ts` - 集成钩子
20
+ - `src/cli/self-evolve-cli.js` - 命令行接口
21
+
22
+ ### 文档
23
+ - `docs/self-evolve.md` - 用户文档
24
+ - `docs/self-evolve-implementation.md` - 实现指南
25
+
26
+ ### 测试
27
+ - `tests/unit/self-evolve.test.js` - 单元测试
28
+ - `tests/demo/self-evolve-demo.js` - 演示脚本
29
+
30
+ ### 脚本
31
+ - `scripts/self-evolve-setup.sh` - 初始化脚本
32
+ - `scripts/quick-start.js` - 快速开始脚本
33
+
34
+ ## 🚀 快速开始
35
+
36
+ ### 1. 初始化系统
37
+
38
+ ```bash
39
+ # 运行安装脚本
40
+ bash scripts/self-evolve-setup.sh
41
+
42
+ # 或使用 Node.js 快速开始
43
+ node scripts/quick-start.js
44
+ ```
45
+
46
+ ### 2. 查看系统状态
47
+
48
+ ```bash
49
+ # 设置别名(可选)
50
+ alias fe='fhcode self-evolve'
51
+
52
+ # 查看统计
53
+ fe status
54
+ ```
55
+
56
+ ### 3. 开始使用
57
+
58
+ ```bash
59
+ # 列出失败记录
60
+ fe failures list
61
+
62
+ # 查看技能库
63
+ fe skills list
64
+
65
+ # 每日复盘
66
+ fe review --daily
67
+
68
+ # 分析错误模式
69
+ fe analyze
70
+ ```
71
+
72
+ ## 📊 核心功能
73
+
74
+ ### 失败记录
75
+ 自动记录所有失败的执行,包括:
76
+ - 错误类型(编译、运行时、路径、权限、API等)
77
+ - 完整的错误信息
78
+ - 尝试的解决方案
79
+ - 根本原因分析
80
+
81
+ ### 错误模式识别
82
+ - 按类型统计失败频率
83
+ - 识别重复出现的错误
84
+ - 建议创建针对性技能
85
+
86
+ ### 技能自动生成
87
+ 当遇到无法解决的新问题时:
88
+ ```bash
89
+ # 系统会提示创建技能
90
+ fe create-skill \
91
+ --name my-error-handler \
92
+ --description "处理我的特定错误" \
93
+ --pattern error-type \
94
+ --solution "具体解决步骤" \
95
+ --triggers "触发关键词"
96
+ ```
97
+
98
+ ### 定期复盘
99
+ ```bash
100
+ # 每日复盘
101
+ fe review --daily
102
+
103
+ # 查看周统计
104
+ fe status --week
105
+ ```
106
+
107
+ ## 🔄 工作流程
108
+
109
+ ```
110
+ 任务执行
111
+
112
+ 成功? → 记录成功
113
+ ↓ 失败
114
+ 自动记录失败
115
+
116
+ 搜索已知解决方案
117
+ ↓ 找到 → 应用方案
118
+ ↓ 未找到
119
+ 分析根因
120
+
121
+ 创建新技能? → 是 → 保存到 ~/.feihong-code/skills/
122
+ ↓ 否
123
+ 标记待人工处理
124
+
125
+ 每日复盘 → 优化系统
126
+ ```
127
+
128
+ ## 📁 数据结构
129
+
130
+ 所有数据存储在 `~/.feihong-code/self-evolve/`:
131
+
132
+ ```
133
+ ~/.feihong-code/
134
+ ├── self-evolve/
135
+ │ ├── config.json # 配置
136
+ │ ├── failures.json # 失败记录
137
+ │ ├── skills-index.json # 技能索引
138
+ │ ├── history.json # 操作历史
139
+ │ └── report-YYYY-MM-DD.json # 每日报告
140
+ ├── skills/
141
+ │ └── <skill-name>/
142
+ │ └── SKILL.md
143
+ └── ...
144
+ ```
145
+
146
+ ## 🔧 集成开发
147
+
148
+ ### 在工具中记录失败
149
+
150
+ ```typescript
151
+ import { selfEvolveHook } from './self-evolve/hook.ts';
152
+
153
+ try {
154
+ await someToolCall(input);
155
+ } catch (error) {
156
+ selfEvolveHook.onToolFailure({
157
+ tool: 'tool-name',
158
+ input: input,
159
+ error: error.message,
160
+ attemptedSolutions: []
161
+ });
162
+ throw error;
163
+ }
164
+ ```
165
+
166
+ ### 定期复盘
167
+
168
+ ```javascript
169
+ // 每天运行
170
+ const report = await selfEvolveHook.dailyReview();
171
+ console.log(`今日失败: ${report.total_failures}`);
172
+ ```
173
+
174
+ ## 📚 与现有系统集成
175
+
176
+ Self-Evolve 可以与以下技能配合:
177
+
178
+ | 技能 | 集成点 | 作用 |
179
+ |------|--------|------|
180
+ | `/self-heal` | 自动创建修复技能 | 解决技术错误 |
181
+ | `/plan` | 计划时参考历史 | 避免重复失败 |
182
+ | `/goal` | 目标设定参考 | 追踪迭代进度 |
183
+
184
+ ## 🎯 使用示例
185
+
186
+ ### 示例1:处理编译错误
187
+
188
+ ```bash
189
+ # 分析最近7天的编译错误
190
+ fe analyze --days 7 --type compile-error
191
+
192
+ # 创建通用编译错误处理技能
193
+ fe create-skill \
194
+ --name compile-error-handler \
195
+ --description "处理TypeScript编译错误" \
196
+ --pattern compile-error \
197
+ --solution "1. 检查导入路径\n2. 验证类型定义\n3. 安装缺失依赖" \
198
+ --triggers "error TS, syntax error, cannot find module"
199
+ ```
200
+
201
+ ### 示例2:处理路径穿越
202
+
203
+ ```bash
204
+ # 创建路径安全技能
205
+ fe create-skill \
206
+ --name path-security-handler \
207
+ --description "处理路径穿越安全问题" \
208
+ --pattern path-error \
209
+ --solution "1. 验证路径在workspace内\n2. 使用相对路径\n3. 规范化路径" \
210
+ --triggers "path traversal, outside workspace, EACCES"
211
+ ```
212
+
213
+ ### 示例3:查看每日复盘
214
+
215
+ ```bash
216
+ fe review --daily
217
+ ```
218
+
219
+ 输出:
220
+ ```
221
+ 📅 每日复盘报告
222
+ ========================================
223
+ 日期: 2026-08-16
224
+ 失败任务: 5
225
+ 已解决: 3
226
+ 待处理: 2
227
+ 新技能: 1
228
+
229
+ 今日失败详情:
230
+ ✅ [a1b2c3d4] compile-error: error TS2307...
231
+ ⏳ [e5f6g7h8] path-error: Path traversal...
232
+ ```
233
+
234
+ ## 🛡️ 纪律与原则
235
+
236
+ 1. **诚实记录** - 失败就是失败,不伪造成功
237
+ 2. **及时复盘** - 每日至少一次复盘分析
238
+ 3. **渐进改进** - 每次迭代只优化一个方面
239
+ 4. **验证优先** - 新技能必须经过测试验证
240
+ 5. **可追溯** - 所有变更记录保存历史版本
241
+
242
+ ## 📈 版本历史
243
+
244
+ - **v1.0.0** (2026-08-16) - 初始版本
245
+ - 基础失败记录功能
246
+ - 技能自动生成
247
+ - 每日复盘
248
+ - CLI 接口
249
+
250
+ ## 🔮 未来规划
251
+
252
+ - [ ] 自动检测技能冲突
253
+ - [ ] 技能效果追踪
254
+ - [ ] 团队共享技能库
255
+ - [ ] AI 辅助技能创建
256
+ - [ ] 失败预测模型
257
+
258
+ ## 🤝 贡献指南
259
+
260
+ 欢迎贡献!请遵循以下步骤:
261
+
262
+ 1. Fork 本仓库
263
+ 2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
264
+ 3. 提交更改 (`git commit -m 'Add amazing feature'`)
265
+ 4. 推送到分支 (`git push origin feature/amazing-feature`)
266
+ 5. 创建 Pull Request
267
+
268
+ ## 📄 许可证
269
+
270
+ MIT License
271
+
272
+ ---
273
+
274
+ **让飞虹 Code 越来越聪明!** 🚀
@@ -57,6 +57,8 @@ function reviewCode(filePath, content, rules = DEFAULT_RULES) {
57
57
  for (let i = 0; i < lines.length; i++) {
58
58
  const line = lines[i];
59
59
  for (const rule of rules) {
60
+ // 关键:规则正则带 g 标志时 RegExp.test 会残留 lastIndex,必须每次重置,否则跨行误判
61
+ rule.pattern.lastIndex = 0;
60
62
  if (rule.pattern.test(line)) {
61
63
  issues.push({
62
64
  ruleId: rule.id,
@@ -1 +1 @@
1
- {"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../src/agent/code-review.ts"],"names":[],"mappings":";;AAwEA,gCAwBC;AAGD,0CAcC;AAGD,0CAQC;AAGD,gCAQC;AAvID;;;;;;;;;GASG;AACH,2BAA6D;AAyB7D,aAAa;AACb,MAAM,aAAa,GAAiB;IAClC;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,4DAA4D;QACrE,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,gBAAgB;QACzB,GAAG,EAAE,gBAAgB;KACtB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,2DAA2D;QACpE,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,SAAS;KACf;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,iCAAiC;QAC1C,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,kBAAkB;KACxB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,oBAAoB;QAC7B,GAAG,EAAE,cAAc;KACpB;CACF,CAAC;AAEF,aAAa;AACb,SAAgB,UAAU,CAAC,QAAgB,EAAE,OAAe,EAAE,QAAsB,aAAa;IAC/F,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,IAAI,EAAE,CAAC,GAAG,CAAC;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,aAAa;AACb,SAAgB,eAAe,CAAC,OAAe,EAAE,MAAqB;IACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;SAC/B,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;KACxE,CAAC,CAAC,CAAC;AACN,CAAC;AAED,cAAc;AACd,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC;QAAE,OAAO,aAAa,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,OAAQ,MAAM,CAAC,KAAsB,IAAI,aAAa,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,SAAgB,UAAU,CAAC,QAAgB,EAAE,OAAe,EAAE,KAAsD;IAClH,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IACD,IAAA,kBAAa,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../src/agent/code-review.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,12 @@ exports.createCodeWriter = createCodeWriter;
7
7
  * 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
8
8
  *
9
9
  * 自主代码编写器(M8):
10
- * - 任务规划 → 代码编写 → 测试生成 → 审查反馈 → 迭代优化
10
+ * - 任务规划 → 代码编写 → 测试生成 → 审查反馈 → 自愈修复 → 迭代优化
11
11
  * - 内置代码生成模板(API 路由、Model、工具骨架)
12
12
  * - 自动测试生成(Jest/Vitest)
13
13
  * - 质量门禁集成(审查规则 + 分析结果)
14
+ * - 安全修复:仅对已知安全模式做针对性修复,杜绝「通配正则整体覆盖文件」的破坏性修复
15
+ * - 自愈闭环:审查 → 修复 → 复审查,多轮收敛至无高优先级问题
14
16
  */
15
17
  const fs_1 = require("fs");
16
18
  const path_1 = require("path");
@@ -69,7 +71,8 @@ class CodeWriter {
69
71
  }
70
72
  code = result.content;
71
73
  if (template === 'api-route') {
72
- filename = params.path.replace(/^\//, '').replace(/\//g, '-') + '.ts';
74
+ // Windows 文件名不含 ':',将路径段中非法字符替换为 '-'
75
+ filename = params.path.replace(/^\//, '').replace(/[^a-zA-Z0-9-]/g, '-').replace(/-+/g, '-').replace(/-$/, '') + '.ts';
73
76
  }
74
77
  else if (template === 'model') {
75
78
  filename = params.name + '.ts';
@@ -99,7 +102,7 @@ class CodeWriter {
99
102
  return { type: 'review', content: `跳过审查:文件不存在 ${filePath}` };
100
103
  }
101
104
  const content = (0, fs_1.readFileSync)(absPath, 'utf8');
102
- const result = (0, code_review_1.reviewCode)(filePath, content, this.rules);
105
+ const result = (0, code_review_1.reviewCode)(filePath, content, this.rules.length ? this.rules : undefined);
103
106
  this.issuesFound += result.issues.length;
104
107
  const step = {
105
108
  type: 'review',
@@ -110,31 +113,75 @@ class CodeWriter {
110
113
  console.log(`[M8 Review] ${step.content}`);
111
114
  return step;
112
115
  }
113
- /** 阶段 5:修复高优先级问题 */
116
+ /**
117
+ * 阶段 5:安全修复高优先级问题
118
+ * 关键安全约束:仅对「硬编码密钥 / SQL 拼接」等已知安全模式做针对性替换(替换首个匹配),
119
+ * 任何无明确安全方案的问题一律跳过并提示人工处理,绝不使用通配正则把整个文件覆盖为建议文本。
120
+ */
114
121
  fix(filePath, maxFixes = 3) {
115
122
  const absPath = (0, path_1.join)(this.cwd, filePath);
116
123
  if (!(0, fs_1.existsSync)(absPath)) {
117
124
  return { type: 'fix', content: `文件不存在 ${filePath}` };
118
125
  }
119
126
  const content = (0, fs_1.readFileSync)(absPath, 'utf8');
120
- const result = (0, code_review_1.reviewCode)(filePath, content, this.rules);
127
+ const result = (0, code_review_1.reviewCode)(filePath, content, this.rules.length ? this.rules : undefined);
121
128
  const highIssues = result.issues.filter((i) => i.severity === 'high').slice(0, maxFixes);
122
129
  if (highIssues.length === 0) {
123
130
  return { type: 'fix', content: '无高优先级问题需要修复' };
124
131
  }
125
132
  let newContent = content;
133
+ const applied = [];
126
134
  for (const issue of highIssues) {
127
- const fix = this.issueToFix(issue);
128
- newContent = newContent.replace(fix.pattern, fix.replacement);
135
+ const safeFix = this.issueToSafeFix(issue);
136
+ if (!safeFix)
137
+ continue; // 仅做安全修复
138
+ const next = newContent.replace(safeFix.pattern, safeFix.replacement);
139
+ if (next !== newContent) {
140
+ newContent = next;
141
+ applied.push(issue.message);
142
+ }
143
+ }
144
+ if (applied.length === 0) {
145
+ return {
146
+ type: 'fix',
147
+ content: `高优先级问题无安全自动修复,建议人工处理: ${highIssues.map((i) => i.message).join(', ')}`,
148
+ file: filePath,
149
+ };
129
150
  }
130
151
  (0, fs_1.writeFileSync)(absPath, newContent, 'utf8');
131
- this.issuesFixed += highIssues.length;
152
+ this.issuesFixed += applied.length;
132
153
  return {
133
154
  type: 'fix',
134
- content: `已修复 ${highIssues.length} 个高优先级问题: ${highIssues.map((i) => i.message).join(', ')}`,
155
+ content: `已安全修复 ${applied.length} 个高优先级问题: ${applied.join(', ')}`,
135
156
  file: filePath,
136
157
  };
137
158
  }
159
+ /**
160
+ * 阶段 5b:自愈闭环
161
+ * 审查 → 修复 → 复审查,最多 maxRounds 轮,直到无高优先级问题或达上限。
162
+ * 修复动作复用安全修复(不会破坏文件),输出每轮收敛情况。
163
+ */
164
+ selfHealFix(filePath, maxRounds = 3) {
165
+ const steps = [];
166
+ for (let round = 0; round < maxRounds; round++) {
167
+ this.review(filePath); // 推入审查步骤
168
+ const fixStep = this.fix(filePath);
169
+ steps.push(fixStep);
170
+ // 静默复审查(不重复推步骤),判定是否收敛
171
+ const absPath = (0, path_1.join)(this.cwd, filePath);
172
+ if (!(0, fs_1.existsSync)(absPath))
173
+ break;
174
+ const content = (0, fs_1.readFileSync)(absPath, 'utf8');
175
+ const re = (0, code_review_1.reviewCode)(filePath, content, this.rules);
176
+ const high = re.issues.filter((i) => i.severity === 'high').length;
177
+ if (high === 0) {
178
+ steps.push({ type: 'fix', content: `自愈收敛:第 ${round + 1} 轮后无高优先级问题` });
179
+ return steps;
180
+ }
181
+ }
182
+ steps.push({ type: 'fix', content: `已达自愈上限(${maxRounds}轮),剩余高优先级问题建议人工复核` });
183
+ return steps;
184
+ }
138
185
  /** 阶段 6:分析代码质量 */
139
186
  analyze(filePath) {
140
187
  const absPath = (0, path_1.join)(this.cwd, filePath);
@@ -158,14 +205,14 @@ class CodeWriter {
158
205
  this.steps.push(step);
159
206
  return step;
160
207
  }
161
- /** 完整流程:规划 → 编写 → 测试 → 审查 → 修复 → 总结 */
208
+ /** 完整流程:规划 → 编写 → 测试 → 审查 → 自愈修复 → 总结 */
162
209
  async run(goal, code, filePath) {
163
210
  this.plan(goal);
164
211
  this.write(code, filePath);
165
212
  this.test(filePath);
166
213
  this.review(filePath);
167
214
  this.analyze(filePath);
168
- this.fix(filePath);
215
+ this.selfHealFix(filePath, 3);
169
216
  this.summary();
170
217
  return this.getResult();
171
218
  }
@@ -206,17 +253,26 @@ class CodeWriter {
206
253
  const match = content.match(/export\s+(?:async\s+)?function\s+(\w+)/);
207
254
  return match?.[1] || 'main';
208
255
  }
209
- issueToFix(issue) {
210
- if (issue.message.includes('硬编码')) {
256
+ /**
257
+ * 将审查问题映射到「安全修复」。
258
+ * 仅对硬编码密钥、SQL 拼接两类有明确安全方案的问题生成针对性正则;其余一律返回 null。
259
+ */
260
+ issueToSafeFix(issue) {
261
+ if (/硬编码|密码|密钥|secret|token|api[_-]?key/i.test(issue.message)) {
262
+ // 匹配变量名含敏感关键词(password/secret/token/apiKey)且赋值为字符串字面量的模式
263
+ // 例如:const dbPassword = "password-abc-123"; 或 const apiKey = 'sk-123';
211
264
  return {
212
- pattern: /['"`][^'"`]*(password|secret|key|token)[^'"`]*['"`]/gi,
213
- replacement: (_sub, p1) => `process.env.FH_${p1?.toUpperCase() ?? 'UNKNOWN'}`,
265
+ pattern: /(\w*[Pp]assword\w*|\w*[Ss]ecret\w*|\w*[Tt]oken\w*|\w*[Aa][Pp][Ii]?\w*[Kk]ey\w*)\s*=\s*(['"`])([^'"`]+)\2/gi,
266
+ replacement: '$1 = process.env.FH_SECRET',
214
267
  };
215
268
  }
216
- if (issue.message.includes('SQL')) {
217
- return { pattern: /['"][\s\S]*?SELECT[\s\S]*?['"]/gi, replacement: '// 使用参数化查询' };
269
+ if (/sql/i.test(issue.message)) {
270
+ return {
271
+ pattern: /(['"`])[\s\S]*?select[\s\S]*?\1/gi,
272
+ replacement: '/* 使用参数化查询,避免 SQL 拼接 */',
273
+ };
218
274
  }
219
- return { pattern: /.*/, replacement: issue.suggestion };
275
+ return null;
220
276
  }
221
277
  }
222
278
  exports.CodeWriter = CodeWriter;
@@ -1 +1 @@
1
- {"version":3,"file":"code-writer.js","sourceRoot":"","sources":["../../src/agent/code-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-writer.js","sourceRoot":"","sources":["../../src/agent/code-writer.ts"],"names":[],"mappings":"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"}
@@ -65,10 +65,16 @@ function compactContext(messages, preservedCount = 10) {
65
65
  // 始终保留首条 system 指令(messages[0]),避免压缩后丢失系统级提示导致行为退化
66
66
  const systemMsg = messages[0]?.role === 'system' ? messages[0] : null;
67
67
  const body = systemMsg ? messages.slice(1) : messages;
68
+ // P0 修复:始终保留首条 user 消息(即原始目标),否则压缩后消息数组不再含 user 角色,
69
+ // 部分模型网关(如 agnes-ai.cn)会拒绝并返回 "No user query found in messages"。
70
+ // 先把首条 user 从 body 中摘除,压缩后再放回,避免在 recent 中重复。
71
+ const firstUserIdx = body.findIndex((m) => m.role === 'user');
72
+ const firstUser = firstUserIdx >= 0 ? body[firstUserIdx] : undefined;
73
+ const bodySansUser = firstUser ? [...body.slice(0, firstUserIdx), ...body.slice(firstUserIdx + 1)] : body;
68
74
  const totalRounds = Math.floor(body.length / 2); // 假设每轮 2 条消息(assistant + tool)
69
- const preservedMessages = Math.min(preservedCount * 2, body.length);
70
- const earlyMessages = body.slice(0, body.length - preservedMessages);
71
- const recentMessages = body.slice(body.length - preservedMessages);
75
+ const preservedMessages = Math.min(preservedCount * 2, bodySansUser.length);
76
+ const earlyMessages = bodySansUser.slice(0, bodySansUser.length - preservedMessages);
77
+ const recentMessages = bodySansUser.slice(bodySansUser.length - preservedMessages);
72
78
  if (earlyMessages.length === 0) {
73
79
  return { messages, stats: { originalLength: messages.length, compressedLength: messages.length, preservedMessages, compressedRounds: 0, timestamp: new Date().toISOString() } };
74
80
  }
@@ -81,7 +87,10 @@ function compactContext(messages, preservedCount = 10) {
81
87
  content: compactionPrompt,
82
88
  };
83
89
  const prefix = systemMsg ? [systemMsg, systemHint] : [systemHint];
84
- const compacted = [...prefix, ...recentMessages];
90
+ // 首条 user 目标始终置于 system 之后、recent 之前,保证下游模型请求必含 user 角色
91
+ const compacted = firstUser
92
+ ? [...prefix, firstUser, ...recentMessages]
93
+ : [...prefix, ...recentMessages];
85
94
  const stats = {
86
95
  originalLength: messages.length,
87
96
  compressedLength: compacted.length,
@@ -1 +1 @@
1
- {"version":3,"file":"context-compactor.js","sourceRoot":"","sources":["../../src/agent/context-compactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-compactor.js","sourceRoot":"","sources":["../../src/agent/context-compactor.ts"],"names":[],"mappings":"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"}