feihong-code 0.5.1 → 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.
- package/CHANGELOG.md +465 -405
- package/README.md +59 -0
- package/dist/agent/code-writer.js +6 -3
- package/dist/agent/code-writer.js.map +1 -1
- package/dist/agent/experience.js +105 -70
- package/dist/agent/experience.js.map +1 -1
- package/dist/agent/orchestrator.js +103 -21
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/planner.js +30 -7
- package/dist/agent/planner.js.map +1 -1
- package/dist/agent/prompts.js +9 -0
- package/dist/agent/prompts.js.map +1 -1
- package/dist/agent/self-heal.js +43 -13
- package/dist/agent/self-heal.js.map +1 -1
- package/dist/cli/run.js +13 -14
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/enterprise/audit.js +70 -11
- package/dist/enterprise/audit.js.map +1 -1
- package/dist/models/model-router.js +83 -23
- package/dist/models/model-router.js.map +1 -1
- package/dist/models/model.dto.js +25 -3
- package/dist/models/model.dto.js.map +1 -1
- package/dist/models/providers/ollama.provider.js +12 -0
- package/dist/models/providers/ollama.provider.js.map +1 -1
- package/dist/models/providers/openai-compatible.provider.js +14 -1
- package/dist/models/providers/openai-compatible.provider.js.map +1 -1
- package/dist/self-evolve/hook.js +2 -2
- package/dist/self-evolve/hook.js.map +1 -1
- package/dist/self-evolve/hook.ts +80 -0
- package/dist/self-evolve/manager.d.ts +8 -0
- package/dist/self-evolve/manager.js +401 -0
- package/dist/shared/errors.js +6 -2
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/secure-store.js +117 -0
- package/dist/shared/secure-store.js.map +1 -0
- package/dist/tools/mcp/mcp-client.js +35 -13
- package/dist/tools/mcp/mcp-client.js.map +1 -1
- package/dist/tools/shell/exec.js +47 -3
- package/dist/tools/shell/exec.js.map +1 -1
- package/dist/tools/shell/run-shell.tool.js +33 -6
- package/dist/tools/shell/run-shell.tool.js.map +1 -1
- package/dist/tools/tool.registry.js +32 -0
- package/dist/tools/tool.registry.js.map +1 -1
- package/dist/web/auth.js +143 -7
- package/dist/web/auth.js.map +1 -1
- package/dist/web/public/css/style.css +1546 -0
- package/dist/web/public/index.html +806 -3253
- package/dist/web/public/js/api.js +309 -0
- package/dist/web/public/js/app.js +1472 -0
- package/dist/web/public/js/ui.js +832 -0
- package/dist/web/public/js/utils.js +170 -0
- package/dist/web/server.js +224 -77
- package/dist/web/server.js.map +1 -1
- package/dist/web/task-queue.js +128 -10
- package/dist/web/task-queue.js.map +1 -1
- package/docs/App/344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +299 -0
- package/docs/App/346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +554 -0
- package/docs/SELF-EVOLVE-GUIDE.md +313 -0
- package/docs/error-codes.md +198 -0
- package/docs/screenshots/cli-demo.png +0 -0
- package/docs/screenshots/feature-comparison.png +0 -0
- package/docs/screenshots/web-console.png +0 -0
- 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
- package/package.json +9 -15
- package/tool-schema.json +198 -127
- package/dist/web/public/index.html.tmp +0 -3117
- package/dist/web/public/index_new.html +0 -3196
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# 自我进化系统使用指南
|
|
2
|
+
|
|
3
|
+
> 版本: v0.5.1 | 最后更新: 2026-08-22
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 概述
|
|
8
|
+
|
|
9
|
+
自我进化(Self-Evolve)是 feihong-code 的核心能力之一,使系统能够从失败中学习、积累经验并持续优化。该系统包含三个主要组件:
|
|
10
|
+
|
|
11
|
+
1. **失败记录** - 自动捕获执行过程中的错误
|
|
12
|
+
2. **经验学习** - 分析历史失败,生成解决方案
|
|
13
|
+
3. **每日复盘** - 总结当日工作,优化策略
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 快速开始
|
|
18
|
+
|
|
19
|
+
### 启用自我进化
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# CLI 模式
|
|
23
|
+
fhcode "你的任务" --self-evolve
|
|
24
|
+
|
|
25
|
+
# Web 控制台
|
|
26
|
+
# 在设置中启用 "Self-Evolve" 开关
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 查看进化状态
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 查看当前进化状态
|
|
33
|
+
fhcode evolve status
|
|
34
|
+
|
|
35
|
+
# 查看失败记录
|
|
36
|
+
fhcode evolve failures
|
|
37
|
+
|
|
38
|
+
# 查看学习经验
|
|
39
|
+
fhcode evolve lessons
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 核心功能
|
|
45
|
+
|
|
46
|
+
### 1. 失败记录机制
|
|
47
|
+
|
|
48
|
+
系统自动记录以下类型的失败:
|
|
49
|
+
|
|
50
|
+
| 错误类型 | 触发条件 | 记录内容 |
|
|
51
|
+
|----------|----------|----------|
|
|
52
|
+
| `MODEL_TIMEOUT` | 模型响应超时 | 超时时长、模型名称 |
|
|
53
|
+
| `AUTH_FAILURE` | API 认证失败 | 错误代码、提供商 |
|
|
54
|
+
| `RATE_LIMIT` | 请求频率限制 | 限制值、重置时间 |
|
|
55
|
+
| `EXECUTION_ERROR` | 工具执行失败 | 工具名、错误信息 |
|
|
56
|
+
| `PERMISSION_DENIED` | 权限不足 | 操作类型、所需权限 |
|
|
57
|
+
|
|
58
|
+
**存储位置**: `~/.fhcode/evolve/failures.jsonl`
|
|
59
|
+
|
|
60
|
+
### 2. 经验学习引擎
|
|
61
|
+
|
|
62
|
+
系统会分析失败记录,生成可复用的解决方案:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// 经验数据结构
|
|
66
|
+
interface LearnedLesson {
|
|
67
|
+
errorType: string; // 错误类型
|
|
68
|
+
pattern: string; // 问题模式
|
|
69
|
+
solution: string; // 解决方案
|
|
70
|
+
confidence: number; // 置信度 (0-1)
|
|
71
|
+
usageCount: number; // 应用次数
|
|
72
|
+
createdAt: Date; // 创建时间
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**查看学习经验**:
|
|
77
|
+
```bash
|
|
78
|
+
fhcode evolve lessons --recent # 查看最近学习的经验
|
|
79
|
+
fhcode evolve lessons --type MODEL_TIMEOUT # 按类型筛选
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3. 每日复盘报告
|
|
83
|
+
|
|
84
|
+
系统每天自动生成复盘报告:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# 手动生成复盘报告
|
|
88
|
+
fhcode evolve report --date 2026-08-22
|
|
89
|
+
|
|
90
|
+
# 查看今日报告
|
|
91
|
+
fhcode evolve report --today
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**报告内容**:
|
|
95
|
+
- 今日失败统计
|
|
96
|
+
- 已应用的解决方案
|
|
97
|
+
- 未解决的问题
|
|
98
|
+
- 优化建议
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 配置选项
|
|
103
|
+
|
|
104
|
+
### 基本配置
|
|
105
|
+
|
|
106
|
+
编辑 `~/.fhcode/config.json`:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"selfEvolve": {
|
|
111
|
+
"enabled": true,
|
|
112
|
+
"maxFailuresToRemember": 100,
|
|
113
|
+
"lessonConfidenceThreshold": 0.7,
|
|
114
|
+
"dailyReportEnabled": true,
|
|
115
|
+
"autoApplyLessons": true
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 配置参数说明
|
|
121
|
+
|
|
122
|
+
| 参数 | 默认值 | 说明 |
|
|
123
|
+
|------|--------|------|
|
|
124
|
+
| `enabled` | `true` | 是否启用自我进化 |
|
|
125
|
+
| `maxFailuresToRemember` | `100` | 最大保留失败记录数 |
|
|
126
|
+
| `lessonConfidenceThreshold` | `0.7` | 经验应用的最低置信度 |
|
|
127
|
+
| `dailyReportEnabled` | `true` | 是否生成每日报告 |
|
|
128
|
+
| `autoApplyLessons` | `true` | 是否自动应用学习到的经验 |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 高级用法
|
|
133
|
+
|
|
134
|
+
### 强制重新学习
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# 清除所有学习经验,重新开始
|
|
138
|
+
fhcode evolve reset --lessons
|
|
139
|
+
|
|
140
|
+
# 仅清除失败记录
|
|
141
|
+
fhcode evolve reset --failures
|
|
142
|
+
|
|
143
|
+
# 完全重置(谨慎使用)
|
|
144
|
+
fhcode evolve reset --all
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 导出学习数据
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# 导出失败记录
|
|
151
|
+
fhcode evolve export --type failures --format json
|
|
152
|
+
|
|
153
|
+
# 导出学习经验
|
|
154
|
+
fhcode evolve export --type lessons --format json
|
|
155
|
+
|
|
156
|
+
# 导出复盘报告
|
|
157
|
+
fhcode evolve export --type report --format markdown
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 导入外部经验
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 从 JSON 文件导入经验
|
|
164
|
+
fhcode evolve import --file lessons.json
|
|
165
|
+
|
|
166
|
+
# 从 GitHub Gist 导入
|
|
167
|
+
fhcode evolve import --url https://gist.github.com/...
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 与企业安全集成
|
|
173
|
+
|
|
174
|
+
自我进化系统完全兼容企业安全策略:
|
|
175
|
+
|
|
176
|
+
- **审计链**: 所有失败记录和解决方案变更都会记录到审计日志
|
|
177
|
+
- **权限控制**: 可通过 RBAC 控制谁可以查看/修改学习经验
|
|
178
|
+
- **数据隔离**: 多租户场景下,各租户的学习经验相互隔离
|
|
179
|
+
|
|
180
|
+
### 安全配置示例
|
|
181
|
+
|
|
182
|
+
```json
|
|
183
|
+
{
|
|
184
|
+
"selfEvolve": {
|
|
185
|
+
"enabled": true,
|
|
186
|
+
"auditEnabled": true,
|
|
187
|
+
"dataIsolation": "tenant",
|
|
188
|
+
"maxRetentionDays": 90
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 故障排查
|
|
196
|
+
|
|
197
|
+
### 常见问题
|
|
198
|
+
|
|
199
|
+
**Q: 自我进化没有正常工作?**
|
|
200
|
+
|
|
201
|
+
检查项:
|
|
202
|
+
1. 确认 `selfEvolve.enabled` 为 `true`
|
|
203
|
+
2. 检查 `~/.fhcode/evolve/` 目录权限
|
|
204
|
+
3. 查看日志: `cat ~/.fhcode/logs/evolve.log`
|
|
205
|
+
|
|
206
|
+
**Q: 学习经验没有生效?**
|
|
207
|
+
|
|
208
|
+
检查项:
|
|
209
|
+
1. 确认 `autoApplyLessons` 为 `true`
|
|
210
|
+
2. 检查经验的 `confidence` 是否达到阈值
|
|
211
|
+
3. 查看应用日志: `fhcode evolve lessons --verbose`
|
|
212
|
+
|
|
213
|
+
**Q: 每日报告没有生成?**
|
|
214
|
+
|
|
215
|
+
检查项:
|
|
216
|
+
1. 确认 `dailyReportEnabled` 为 `true`
|
|
217
|
+
2. 报告在每天 23:59 自动生成,检查当时系统是否运行
|
|
218
|
+
3. 手动生成测试: `fhcode evolve report --today`
|
|
219
|
+
|
|
220
|
+
### 日志位置
|
|
221
|
+
|
|
222
|
+
| 日志类型 | 路径 |
|
|
223
|
+
|----------|------|
|
|
224
|
+
| 主日志 | `~/.fhcode/logs/main.log` |
|
|
225
|
+
| 进化日志 | `~/.fhcode/logs/evolve.log` |
|
|
226
|
+
| 审计日志 | `~/.fhcode/audit/audit.jsonl` |
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 最佳实践
|
|
231
|
+
|
|
232
|
+
### 1. 定期审查学习经验
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# 每周审查一次
|
|
236
|
+
fhcode evolve lessons --review
|
|
237
|
+
|
|
238
|
+
# 清理低置信度经验
|
|
239
|
+
fhcode evolve clean --confidence < 0.5
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### 2. 分享成功经验
|
|
243
|
+
|
|
244
|
+
将学习到的经验分享给团队:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# 导出团队可用的经验
|
|
248
|
+
fhcode evolve export --scope team --format json
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 3. 监控进化指标
|
|
252
|
+
|
|
253
|
+
关注以下指标评估自我进化效果:
|
|
254
|
+
|
|
255
|
+
- **失败率下降趋势**: 同类错误重复发生次数应逐渐减少
|
|
256
|
+
- **经验应用成功率**: 自动应用的解决方案成功率应 > 80%
|
|
257
|
+
- **问题解决时长**: 从首次失败到解决方案生成的时间
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 技术架构
|
|
262
|
+
|
|
263
|
+
### 数据流
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
267
|
+
│ 任务执行 │ ──→ │ 失败捕获 │ ──→ │ 经验学习 │
|
|
268
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
269
|
+
┌─────────────┐
|
|
270
|
+
│ 每日复盘 │
|
|
271
|
+
└─────────────┘
|
|
272
|
+
│
|
|
273
|
+
↓
|
|
274
|
+
┌─────────────┐
|
|
275
|
+
│ 策略优化 │
|
|
276
|
+
└─────────────┘
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### 核心类
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
// 自我进化管理器
|
|
283
|
+
class SelfEvolveManager {
|
|
284
|
+
init(): void;
|
|
285
|
+
recordFailure(errorType: string, error: any, attemptedSolutions?: string[]): void;
|
|
286
|
+
searchSolution(errorType: string, errorMessage: string): Lesson[];
|
|
287
|
+
generateDailyReport(): Report;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// 经验数据模型
|
|
291
|
+
interface LearnedLesson {
|
|
292
|
+
id: string;
|
|
293
|
+
errorType: string;
|
|
294
|
+
pattern: string;
|
|
295
|
+
solution: string;
|
|
296
|
+
confidence: number;
|
|
297
|
+
usageCount: number;
|
|
298
|
+
createdAt: Date;
|
|
299
|
+
updatedAt: Date;
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## 相关链接
|
|
306
|
+
|
|
307
|
+
- [错误码参考](./error-codes.md)
|
|
308
|
+
- [企业部署指南](../DEPLOYMENT-GUIDE.md)
|
|
309
|
+
- [自我进化实现细节](./self-evolve-implementation.md)
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
*本系统由飞扬企源研发中心 (FyqyRDC) 开发*
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# FH_ 错误码完整参考
|
|
2
|
+
|
|
3
|
+
> 版本: v0.5.1 | 最后更新: 2026-08-22
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 错误码分类
|
|
8
|
+
|
|
9
|
+
| 分类 | 前缀 | 说明 |
|
|
10
|
+
|------|------|------|
|
|
11
|
+
| 配置错误 | FH_CFG_ | 配置相关错误 |
|
|
12
|
+
| 模型错误 | FH_MDL_ | 模型调用相关错误 |
|
|
13
|
+
| 代理错误 | FH_AGT_ | 代理执行相关错误 |
|
|
14
|
+
| 会话错误 | FH_SSN_ | 会话管理相关错误 |
|
|
15
|
+
| 工具错误 | FH_TL_ | 工具调用相关错误 |
|
|
16
|
+
| 安全错误 | FH_SEC_ | 安全相关错误 |
|
|
17
|
+
| 网络错误 | FH_NET_ | 网络连接相关错误 |
|
|
18
|
+
| 系统错误 | FH_SYS_ | 系统级错误 |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 配置错误 (FH_CFG_)
|
|
23
|
+
|
|
24
|
+
### FH_CFG_001 - 配置文件缺失
|
|
25
|
+
- **原因**: `fhcode.config.json` 不存在或路径错误
|
|
26
|
+
- **解决**: 运行 `fhcode init` 初始化配置
|
|
27
|
+
|
|
28
|
+
### FH_CFG_002 - 配置验证失败
|
|
29
|
+
- **原因**: 配置文件格式错误或必填字段缺失
|
|
30
|
+
- **解决**: 检查配置文件 JSON 格式,确保必填字段存在
|
|
31
|
+
|
|
32
|
+
### FH_CFG_003 - 环境变量缺失
|
|
33
|
+
- **原因**: 必需的环境变量未设置
|
|
34
|
+
- **解决**: 设置所需环境变量(见环境变量表)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 模型错误 (FH_MDL_)
|
|
39
|
+
|
|
40
|
+
### FH_MDL_001 - 模型提供商不可用
|
|
41
|
+
- **原因**: 配置的模型提供商连接失败
|
|
42
|
+
- **解决**: 检查网络连通性,验证 API Key 有效性
|
|
43
|
+
|
|
44
|
+
### FH_MDL_002 - 模型名称无效
|
|
45
|
+
- **原因**: 指定的模型名称在提供商中不存在
|
|
46
|
+
- **解决**: 查看提供商文档确认可用模型列表
|
|
47
|
+
|
|
48
|
+
### FH_MDL_003 - API 配额超限
|
|
49
|
+
- **原因**: API Key 配额已用完或达到速率限制
|
|
50
|
+
- **解决**: 等待配额重置或升级账户
|
|
51
|
+
|
|
52
|
+
### FH_MDL_004 - 模型响应超时
|
|
53
|
+
- **原因**: 模型响应时间超过设定阈值
|
|
54
|
+
- **解决**: 增加 `modelTimeout` 配置或检查网络延迟
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 代理错误 (FH_AGT_)
|
|
59
|
+
|
|
60
|
+
### FH_AGT_001 - 代理执行超时
|
|
61
|
+
- **原因**: 代理任务执行时间超过最大迭代次数
|
|
62
|
+
- **解决**:
|
|
63
|
+
- 增加 `maxIterations` 参数
|
|
64
|
+
- 拆分复杂任务为多个子任务
|
|
65
|
+
- 检查是否有无限循环
|
|
66
|
+
|
|
67
|
+
### FH_AGT_002 - 并行代理数量超限
|
|
68
|
+
- **原因**: 同时运行的代理数量超过限制
|
|
69
|
+
- **解决**: 减少 `maxParallelAgents` 配置
|
|
70
|
+
|
|
71
|
+
### FH_AGT_003 - 代理状态丢失
|
|
72
|
+
- **原因**: 恢复审计时找不到代理状态
|
|
73
|
+
- **解决**: 检查 `.fhcode/audit/` 目录权限
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 会话错误 (FH_SSN_)
|
|
78
|
+
|
|
79
|
+
### FH_SSN_001 - 会话 ID 无效
|
|
80
|
+
- **原因**: 提供的会话 ID 不存在
|
|
81
|
+
- **解决**: 使用 `fhcode session list` 查看有效会话
|
|
82
|
+
|
|
83
|
+
### FH_SSN_002 - 会话锁定
|
|
84
|
+
- **原因**: 会话正在进行中,无法访问
|
|
85
|
+
- **解决**: 等待当前任务完成或使用 `--force` 强制解锁
|
|
86
|
+
|
|
87
|
+
### FH_SSN_003 - 会话数据损坏
|
|
88
|
+
- **原因**: 会话文件损坏或不完整
|
|
89
|
+
- **解决**: 删除损坏的会话文件,重新开始
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 工具错误 (FH_TL_)
|
|
94
|
+
|
|
95
|
+
### FH_TL_001 - 工具调用失败
|
|
96
|
+
- **原因**: 工具执行过程中出错
|
|
97
|
+
- **解决**: 查看具体工具的错误日志
|
|
98
|
+
|
|
99
|
+
### FH_TL_002 - 工具权限不足
|
|
100
|
+
- **原因**: 工具需要额外权限但未授权
|
|
101
|
+
- **解决**: 使用 `--allow` 标志授权工具
|
|
102
|
+
|
|
103
|
+
### FH_TL_003 - 工具参数验证失败
|
|
104
|
+
- **原因**: 传递给工具的参数不符合要求
|
|
105
|
+
- **解决**: 检查工具文档确认参数格式
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 安全错误 (FH_SEC_)
|
|
110
|
+
|
|
111
|
+
### FH_SEC_001 - 操作被安全策略拦截
|
|
112
|
+
- **原因**: 操作违反了企业安全策略
|
|
113
|
+
- **解决**: 联系管理员调整安全策略配置
|
|
114
|
+
|
|
115
|
+
### FH_SEC_002 - 敏感数据检测
|
|
116
|
+
- **原因**: 检测到可能包含敏感信息的内容
|
|
117
|
+
- **解决**: 确认内容安全或添加白名单
|
|
118
|
+
|
|
119
|
+
### FH_SEC_003 - 未授权的操作类型
|
|
120
|
+
- **原因**: 当前用户角色无权执行该操作
|
|
121
|
+
- **解决**: 使用具有适当权限的账户
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 网络错误 (FH_NET_)
|
|
126
|
+
|
|
127
|
+
### FH_NET_001 - 网络连接失败
|
|
128
|
+
- **原因**: 无法连接到目标服务器
|
|
129
|
+
- **解决**:
|
|
130
|
+
- 检查网络连接
|
|
131
|
+
- 验证代理设置
|
|
132
|
+
- 检查防火墙规则
|
|
133
|
+
|
|
134
|
+
### FH_NET_002 - DNS 解析失败
|
|
135
|
+
- **原因**: 无法解析域名
|
|
136
|
+
- **解决**: 检查 DNS 设置或使用 IP 地址
|
|
137
|
+
|
|
138
|
+
### FH_NET_003 - SSL/TLS 握手失败
|
|
139
|
+
- **原因**: 证书验证失败
|
|
140
|
+
- **解决**:
|
|
141
|
+
- 检查系统时间
|
|
142
|
+
- 更新 CA 证书
|
|
143
|
+
- 必要时设置 `NODE_TLS_REJECT_UNAUTHORIZED=0`(仅测试环境)
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 系统错误 (FH_SYS_)
|
|
148
|
+
|
|
149
|
+
### FH_SYS_001 - 文件系统错误
|
|
150
|
+
- **原因**: 文件读写操作失败
|
|
151
|
+
- **解决**: 检查文件权限和磁盘空间
|
|
152
|
+
|
|
153
|
+
### FH_SYS_002 - 内存不足
|
|
154
|
+
- **原因**: 进程占用内存超过限制
|
|
155
|
+
- **解决**:
|
|
156
|
+
- 增加 Node.js 内存限制: `export NODE_OPTIONS="--max-old-space-size=4096"`
|
|
157
|
+
- 减少并行代理数量
|
|
158
|
+
|
|
159
|
+
### FH_SYS_003 - 进程被终止
|
|
160
|
+
- **原因**: 进程被系统或用户强制终止
|
|
161
|
+
- **解决**: 重新启动任务
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 环境变量参考
|
|
166
|
+
|
|
167
|
+
| 变量名 | 说明 | 必填 |
|
|
168
|
+
|--------|------|------|
|
|
169
|
+
| `DEEPSEEK_API_KEY` | DeepSeek API 密钥 | 是(如使用 DeepSeek) |
|
|
170
|
+
| `DASHSCOPE_API_KEY` | 通义千问 API 密钥 | 是(如使用通义) |
|
|
171
|
+
| `OPENAI_API_KEY` | OpenAI API 密钥 | 是(如使用 OpenAI) |
|
|
172
|
+
| `OLLAMA_HOST` | Ollama 服务地址 | 否(默认 localhost:11434) |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 排查流程图
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
遇到错误
|
|
180
|
+
↓
|
|
181
|
+
查看错误码前缀
|
|
182
|
+
↓
|
|
183
|
+
对应分类章节
|
|
184
|
+
↓
|
|
185
|
+
按照解决方案排查
|
|
186
|
+
↓
|
|
187
|
+
仍无法解决?
|
|
188
|
+
├─ 是 → 查看日志文件 ~/.fhcode/logs/
|
|
189
|
+
└─ 否 → 问题解决 ✓
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 获取帮助
|
|
195
|
+
|
|
196
|
+
- GitHub Issues: https://github.com/wch887292/feihong-code/issues
|
|
197
|
+
- 文档: https://github.com/wch887292/feihong-code/tree/master/docs
|
|
198
|
+
- 联系我们: wch887292@gmail.com
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>飞虹 Code Web 控制台 — 页面功能复盘与冒烟测试报告</title>
|
|
7
|
+
<style>
|
|
8
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
9
|
+
body { font-family: "Microsoft YaHei", "PingFang SC", sans-serif; background: #f5f7fa; color: #1f2937; padding: 32px 16px; }
|
|
10
|
+
.wrap { max-width: 980px; margin: 0 auto; }
|
|
11
|
+
h1 { font-size: 24px; margin-bottom: 4px; }
|
|
12
|
+
.sub { color: #6b7280; font-size: 13px; margin-bottom: 24px; }
|
|
13
|
+
.card { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 20px 24px; margin-bottom: 18px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
|
|
14
|
+
h2 { font-size: 16px; margin-bottom: 12px; border-left: 4px solid #4f46e5; padding-left: 10px; }
|
|
15
|
+
table { width: 100%; border-collapse: collapse; font-size: 13px; }
|
|
16
|
+
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #eef0f3; vertical-align: top; }
|
|
17
|
+
th { background: #f9fafb; color: #374151; font-weight: 600; white-space: nowrap; }
|
|
18
|
+
.ok { color: #059669; font-weight: 600; }
|
|
19
|
+
.warn { color: #d97706; font-weight: 600; }
|
|
20
|
+
.badge { display: inline-block; padding: 1px 8px; border-radius: 99px; font-size: 12px; font-weight: 600; }
|
|
21
|
+
.b-green { background: #ecfdf5; color: #059669; }
|
|
22
|
+
.b-blue { background: #eff6ff; color: #2563eb; }
|
|
23
|
+
.b-gray { background: #f3f4f6; color: #6b7280; }
|
|
24
|
+
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 4px; }
|
|
25
|
+
.stat { background: #f9fafb; border-radius: 10px; padding: 14px; text-align: center; }
|
|
26
|
+
.stat .n { font-size: 26px; font-weight: 700; color: #4f46e5; }
|
|
27
|
+
.stat .l { font-size: 12px; color: #6b7280; margin-top: 2px; }
|
|
28
|
+
ul { padding-left: 18px; font-size: 13px; line-height: 1.9; }
|
|
29
|
+
code { background: #f3f4f6; padding: 1px 6px; border-radius: 4px; font-size: 12px; color: #b91c1c; }
|
|
30
|
+
.foot { text-align: center; color: #9ca3af; font-size: 12px; margin-top: 20px; }
|
|
31
|
+
@media (max-width: 700px){ .stat-grid { grid-template-columns: repeat(2, 1fr); } }
|
|
32
|
+
</style>
|
|
33
|
+
</head>
|
|
34
|
+
<body>
|
|
35
|
+
<div class="wrap">
|
|
36
|
+
<h1>🦞 飞虹 Code Web 控制台 — 页面功能复盘与冒烟测试报告</h1>
|
|
37
|
+
<div class="sub">2026-08-23 · 版本 v0.5.1 · 复盘 + 查漏补缺 + 全面冒烟测试</div>
|
|
38
|
+
|
|
39
|
+
<div class="card">
|
|
40
|
+
<div class="stat-grid">
|
|
41
|
+
<div class="stat"><div class="n">7</div><div class="l">1 级页面</div></div>
|
|
42
|
+
<div class="stat"><div class="n">11</div><div class="l">2 级页面/模态框</div></div>
|
|
43
|
+
<div class="stat"><div class="n">27/27</div><div class="l">接口冒烟通过</div></div>
|
|
44
|
+
<div class="stat"><div class="n">183/183</div><div class="l">单元测试通过</div></div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div class="card">
|
|
49
|
+
<h2>一、1 级页面(顶部导航)功能状态</h2>
|
|
50
|
+
<table>
|
|
51
|
+
<tr><th>页面</th><th>核心功能</th><th>状态</th><th>验证方式</th></tr>
|
|
52
|
+
<tr><td>💬 对话(主界面)</td><td>任务列表、新建任务、发送/多轮续接、停止任务、刷新、模型切换、截图/上传/语音/智能体菜单、工作区选择、通话(演示)</td><td><span class="badge b-green">全部实现</span></td><td>代码审阅 + API 实测</td></tr>
|
|
53
|
+
<tr><td>⚡ 自动化</td><td>列表、新建指令、一键运行、删除</td><td><span class="badge b-green">全部实现</span></td><td>GET/POST/DELETE/run 实测</td></tr>
|
|
54
|
+
<tr><td>📚 模板库</td><td>内置模板、我的模板、填入输入框、保存当前为模板、删除</td><td><span class="badge b-green">全部实现</span></td><td>GET/POST/DELETE 实测</td></tr>
|
|
55
|
+
<tr><td>🧩 插件市场</td><td>搜索、来源筛选、安装、已安装列表</td><td><span class="badge b-green">实现</span><br><span class="warn">外部网络依赖</span></td><td>接口实测(外部源当前可达)</td></tr>
|
|
56
|
+
<tr><td>📎 办公助理</td><td>能力清单、点击生成提示词</td><td><span class="badge b-green">全部实现</span></td><td>接口实测</td></tr>
|
|
57
|
+
<tr><td>🧠 记忆系统</td><td>统计卡片、短期/长期/历史 Tab、按日查看、立即总结</td><td><span class="badge b-green">全部实现</span></td><td>4 个接口实测</td></tr>
|
|
58
|
+
<tr><td>🚀 发布</td><td>品牌故事静态页(无接口依赖)</td><td><span class="badge b-gray">静态内容</span></td><td>页面审阅</td></tr>
|
|
59
|
+
</table>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="card">
|
|
63
|
+
<h2>二、2 级页面 / 模态框功能状态</h2>
|
|
64
|
+
<table>
|
|
65
|
+
<tr><th>功能块</th><th>实现内容</th><th>状态</th></tr>
|
|
66
|
+
<tr><td>📦 任务详情(右侧面板)</td><td>任务属性、步骤追踪、复制/编辑/分享/创建文档气泡操作、打开文件夹/浏览器</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
67
|
+
<tr><td>👁 产物预览(右侧面板)</td><td>文件内容预览、图片预览、产物链接化点击</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
68
|
+
<tr><td>+ 新建任务</td><td>任务描述、智能体类型、工作区选择、创建并归属对话</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
69
|
+
<tr><td>⚙️ 设置</td><td>栏目/主题切换、权限处理、会话管理(自动新建/自动重置/清空历史)、大模型内嵌管理</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
70
|
+
<tr><td>🔒 权限窗口</td><td>可读范围(工作区/指定目录/全部)+ 操作权限开关,持久化到 localStorage</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
71
|
+
<tr><td>🤖 选择智能体类型</td><td>4 种智能体(通用/修复/编写/执行命令)切换</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
72
|
+
<tr><td>📂 选择工作区文件夹</td><td>驱动器扫描、目录树浏览、确认切换并持久化</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
73
|
+
<tr><td>🧠 大模型设置</td><td>模型增删改、RSA 加密传输 Key、设为默认、底部快捷切换</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
74
|
+
<tr><td>⚡ 新建快捷指令</td><td>名称 + 目标保存</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
75
|
+
<tr><td>📚 保存模板</td><td>标题 + 分类 + 目标内容</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
76
|
+
<tr><td>🎉 欢迎引导</td><td>首次登录欢迎任务展示与一键运行</td><td><span class="badge b-green">已实现</span></td></tr>
|
|
77
|
+
</table>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div class="card">
|
|
81
|
+
<h2>三、本轮修复与优化</h2>
|
|
82
|
+
<ul>
|
|
83
|
+
<li><b>版本号统一</b>:<code>src/cli/version.ts</code> 0.5.0 → <b>0.5.1</b>,对齐 <code>package.json</code> 与发布页(此前 health 接口与发布页不一致)</li>
|
|
84
|
+
<li><b>dist 产物陈旧修复</b>:dist 被 IDE/Defender 锁导致构建未真正覆盖 → 用 <code>tsc --outDir dist_tmp</code> + 复制前端 + 整体回拷 dist 成功出包;<code>dist/web/public/index.html</code> 已含「执行过程折叠 / ⏹ 停止按钮 / 刷新清空对话」等全部修复(9 处命中),<code>version.js = 0.5.1</code></li>
|
|
85
|
+
<li><b>.gitignore</b>:新增 <code>dist_tmp/</code> 构建中转目录,避免误提交</li>
|
|
86
|
+
<li><b>代码健壮性核对</b>:前端 20+ 关键函数全部有定义且唯一;关键 DOM id(11 个模态框等)全部存在,无白屏隐患</li>
|
|
87
|
+
</ul>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<div class="card">
|
|
91
|
+
<h2>四、冒烟测试结果(27/27 通过)</h2>
|
|
92
|
+
<table>
|
|
93
|
+
<tr><th>#</th><th>接口</th><th>结果</th><th>说明</th></tr>
|
|
94
|
+
<tr><td>1-4</td><td>health / 登录 / auth.me / drives</td><td class="ok">✅</td><td>手机号直登拿到 token,鉴权链路通</td></tr>
|
|
95
|
+
<tr><td>5-10</td><td>models / tasks 列表 / 创建 / 详情 / 多轮续接 / 停止</td><td class="ok">✅</td><td>创建→running→stop 全链路;续接后 conversation 完整保留 system+目标+工具+上轮回复+新消息(M3 resume 验证 OK)</td></tr>
|
|
96
|
+
<tr><td>11-14</td><td>automations 列表/创建/删除/run</td><td class="ok">✅</td><td>删除后 run 返回 404(符合预期)</td></tr>
|
|
97
|
+
<tr><td>15-17</td><td>templates 列表/创建/删除</td><td class="ok">✅</td><td>含内置模板 + 自定义模板 CRUD</td></tr>
|
|
98
|
+
<tr><td>18-21</td><td>memory stats / short / long / history</td><td class="ok">✅</td><td>短期/长期/总结历史与统计</td></tr>
|
|
99
|
+
<tr><td>22-26</td><td>workspace / workspace.list / office / skills.installed / skills.market</td><td class="ok">✅</td><td>插件市场外部源当前可达</td></tr>
|
|
100
|
+
<tr><td>27</td><td>静态首页 <code>GET /</code></td><td class="ok">✅</td><td>HTTP 200,前端资源可访问</td></tr>
|
|
101
|
+
</table>
|
|
102
|
+
<p style="font-size:13px;color:#6b7280;margin-top:10px;">另:真实模型执行链路验证 —— 首次登录自动创建的 3 个引导任务全部 <span class="badge b-green">done</span>(编排器→模型→工具→落盘端到端跑通);单元测试回归 <b>183/183 全部通过</b>。</p>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div class="card">
|
|
106
|
+
<h2>五、遗留注意</h2>
|
|
107
|
+
<ul>
|
|
108
|
+
<li>本机 <b>8099 端口仍有一个旧版 fhcode server</b> 在运行(加载的是旧 dist / 旧前端),<b>需重启该服务</b>才会加载本轮修复后的新 UI</li>
|
|
109
|
+
<li>本轮冒烟测试服务运行在 <b>http://localhost:8077</b>(临时数据目录 C:/fhsmoke,登录任意手机号即可),可直接打开验证新界面;若进程已退出可自行重启:<code>FH_WEB_PORT=8077 node dist/cli/index.js serve</code></li>
|
|
110
|
+
<li>插件市场(🧩)依赖外部技能源网络,离线时优雅降级为错误提示,不影响其他功能</li>
|
|
111
|
+
</ul>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div class="foot">晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹</div>
|
|
115
|
+
</div>
|
|
116
|
+
</body>
|
|
117
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "feihong-code",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "fhcode(飞虹 Code)— 终端 AI 编程智能体,对标 Muse Code / Cursor CLI:多模型路由(DeepSeek/通义/Ollama/OpenAI)、企业级 RBAC 审计、全自动 SWE Agent、支持离线私有化",
|
|
5
5
|
"bin": {
|
|
6
6
|
"fhcode": "dist/cli/index.js"
|
|
@@ -64,22 +64,16 @@
|
|
|
64
64
|
"automation",
|
|
65
65
|
"mcp",
|
|
66
66
|
"tool-use",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"devops",
|
|
71
|
-
"agent-framework",
|
|
72
|
-
"ai-tools",
|
|
73
|
-
"coding-assistant",
|
|
74
|
-
"self-improving",
|
|
67
|
+
"self-evolving",
|
|
68
|
+
"self-healing",
|
|
69
|
+
"swebench",
|
|
75
70
|
"offline-ai",
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"llm-agent",
|
|
80
|
-
"nodejs-cli",
|
|
71
|
+
"multi-model",
|
|
72
|
+
"production-ready",
|
|
73
|
+
"enterprise-grade",
|
|
81
74
|
"code-assistant",
|
|
82
|
-
"agentic-ai"
|
|
75
|
+
"agentic-ai",
|
|
76
|
+
"prompt-template"
|
|
83
77
|
],
|
|
84
78
|
"author": "吴赐虹 (晋江市飞虹智科技企业管理有限公司) <wch887292@gmail.com>",
|
|
85
79
|
"license": "MIT",
|