feihong-code 0.2.2 → 0.5.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 (152) 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 +405 -73
  11. package/CODE_OF_CONDUCT.md +56 -56
  12. package/CONTRIBUTING.md +68 -68
  13. package/LICENSE +22 -22
  14. package/README.md +31 -25
  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 +70 -17
  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 +262 -62
  23. package/dist/agent/experience.js.map +1 -1
  24. package/dist/agent/orchestrator.js +148 -68
  25. package/dist/agent/orchestrator.js.map +1 -1
  26. package/dist/agent/quality-gate.js +10 -4
  27. package/dist/agent/quality-gate.js.map +1 -1
  28. package/dist/agent/repo-context.js +181 -0
  29. package/dist/agent/repo-context.js.map +1 -0
  30. package/dist/agent/repo-reader.js +92 -99
  31. package/dist/agent/repo-reader.js.map +1 -1
  32. package/dist/agent/self-heal.js +38 -48
  33. package/dist/agent/self-heal.js.map +1 -1
  34. package/dist/agent/self-improver.js +65 -61
  35. package/dist/agent/self-improver.js.map +1 -1
  36. package/dist/agent/subagent-summary.js +31 -0
  37. package/dist/agent/subagent-summary.js.map +1 -0
  38. package/dist/agent/subagent.js +52 -2
  39. package/dist/agent/subagent.js.map +1 -1
  40. package/dist/agent/symbol-index.js +160 -0
  41. package/dist/agent/symbol-index.js.map +1 -0
  42. package/dist/agent/team.js +193 -0
  43. package/dist/agent/team.js.map +1 -0
  44. package/dist/cli/commands.js +124 -143
  45. package/dist/cli/commands.js.map +1 -1
  46. package/dist/cli/index.js +113 -106
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/repl.js +82 -7
  49. package/dist/cli/repl.js.map +1 -1
  50. package/dist/cli/run.js +601 -95
  51. package/dist/cli/run.js.map +1 -1
  52. package/dist/cli/tui.js +145 -0
  53. package/dist/cli/tui.js.map +1 -0
  54. package/dist/cli/version.js +1 -1
  55. package/dist/enterprise/audit.js +75 -12
  56. package/dist/enterprise/audit.js.map +1 -1
  57. package/dist/enterprise/index.js +14 -11
  58. package/dist/enterprise/index.js.map +1 -1
  59. package/dist/enterprise/policy.js +22 -10
  60. package/dist/enterprise/policy.js.map +1 -1
  61. package/dist/harness/executor.js +127 -0
  62. package/dist/harness/executor.js.map +1 -0
  63. package/dist/harness/harness.js +87 -0
  64. package/dist/harness/harness.js.map +1 -0
  65. package/dist/harness/index.js +31 -0
  66. package/dist/harness/index.js.map +1 -0
  67. package/dist/harness/loader.js +138 -0
  68. package/dist/harness/loader.js.map +1 -0
  69. package/dist/harness/reporter.js +34 -0
  70. package/dist/harness/reporter.js.map +1 -0
  71. package/dist/harness/types.js +10 -0
  72. package/dist/harness/types.js.map +1 -0
  73. package/dist/harness/verifier.js +48 -0
  74. package/dist/harness/verifier.js.map +1 -0
  75. package/dist/hello.js +14 -0
  76. package/dist/hello.js.map +1 -0
  77. package/dist/memory/auto-summarize.js +208 -0
  78. package/dist/memory/auto-summarize.js.map +1 -0
  79. package/dist/memory/index.js +228 -0
  80. package/dist/memory/index.js.map +1 -0
  81. package/dist/models/model-router.js +23 -10
  82. package/dist/models/model-router.js.map +1 -1
  83. package/dist/plugins/plugin-loader.js +179 -0
  84. package/dist/plugins/plugin-loader.js.map +1 -0
  85. package/dist/runtime/event-log.js.map +1 -1
  86. package/dist/runtime/hooks.js +80 -0
  87. package/dist/runtime/hooks.js.map +1 -0
  88. package/dist/self-evolve/hook.js +60 -0
  89. package/dist/self-evolve/hook.js.map +1 -0
  90. package/dist/shared/config.js +35 -3
  91. package/dist/shared/config.js.map +1 -1
  92. package/dist/shared/i18n.js +535 -0
  93. package/dist/shared/i18n.js.map +1 -0
  94. package/dist/skills/grill.js +2 -1
  95. package/dist/skills/grill.js.map +1 -1
  96. package/dist/skills/self-heal.js +73 -0
  97. package/dist/skills/self-heal.js.map +1 -0
  98. package/dist/skills/skill-loader.js +131 -0
  99. package/dist/skills/skill-loader.js.map +1 -0
  100. package/dist/skills/skill-market.js +195 -0
  101. package/dist/skills/skill-market.js.map +1 -0
  102. package/dist/tools/analysis/code-analyzer.js +45 -18
  103. package/dist/tools/analysis/code-analyzer.js.map +1 -1
  104. package/dist/tools/index.js +5 -0
  105. package/dist/tools/index.js.map +1 -1
  106. package/dist/tools/mcp/index.js +84 -0
  107. package/dist/tools/mcp/index.js.map +1 -0
  108. package/dist/tools/mcp/mcp-client.js +172 -0
  109. package/dist/tools/mcp/mcp-client.js.map +1 -0
  110. package/dist/tools/sandbox.js +126 -0
  111. package/dist/tools/sandbox.js.map +1 -0
  112. package/dist/tools/shell/exec.js +25 -0
  113. package/dist/tools/shell/exec.js.map +1 -1
  114. package/dist/tools/shell/run-shell.tool.js +4 -1
  115. package/dist/tools/shell/run-shell.tool.js.map +1 -1
  116. package/dist/tools/skills/load-skill.tool.js +36 -0
  117. package/dist/tools/skills/load-skill.tool.js.map +1 -0
  118. package/dist/tools/tool.interface.js.map +1 -1
  119. package/dist/tools/tool.registry.js +37 -1
  120. package/dist/tools/tool.registry.js.map +1 -1
  121. package/dist/tools/web/web.tool.js +139 -0
  122. package/dist/tools/web/web.tool.js.map +1 -0
  123. package/dist/web/auth.js +42 -3
  124. package/dist/web/auth.js.map +1 -1
  125. package/dist/web/channels.js +171 -0
  126. package/dist/web/channels.js.map +1 -0
  127. package/dist/web/public/index.html +3253 -39
  128. package/dist/web/public/index.html.tmp +3117 -0
  129. package/dist/web/public/index_new.html +3196 -0
  130. package/dist/web/server.js +790 -11
  131. package/dist/web/server.js.map +1 -1
  132. package/dist/web/task-queue.js +352 -0
  133. package/dist/web/task-queue.js.map +1 -0
  134. package/dist/web/web-config.js +143 -0
  135. package/dist/web/web-config.js.map +1 -0
  136. package/docs/Deployment_Guide_EN.md +288 -0
  137. package/docs/Technical_Manual_EN.md +216 -0
  138. package/docs/User_Manual_EN.md +314 -0
  139. package/docs/self-evolve-implementation.md +165 -0
  140. package/docs/self-evolve.md +166 -0
  141. package/docs//344/272/247/345/223/201/345/274/200/345/217/221/346/226/207/346/241/243.md +614 -614
  142. 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
  143. package/docs//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +318 -358
  144. 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
  145. package/docs//346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +216 -303
  146. package/docs//346/236/266/346/236/204/344/270/216API.md +238 -238
  147. package/docs//347/224/250/346/210/267/346/211/213/345/206/214.md +196 -196
  148. package/docs//351/203/250/347/275/262/346/214/207/345/215/227.md +165 -165
  149. package/docs//351/203/250/347/275/262/350/257/264/346/230/216/344/271/246.md +288 -0
  150. package/docs//351/205/215/347/275/256/345/217/202/350/200/203.md +127 -127
  151. package/package.json +114 -109
  152. package/tool-schema.json +127 -127
@@ -133,104 +133,8 @@ function langFromExt(ext) {
133
133
  };
134
134
  return map[ext.toLowerCase()] || (ext ? ext.slice(1) : 'other');
135
135
  }
136
- /** 读取整个代码仓库,产出结构化快照 */
137
- function readRepository(root, opts = {}) {
138
- const maxFiles = opts.maxFiles ?? 2000;
139
- const treeDepth = opts.treeDepth ?? 3;
140
- const maxContextLength = opts.maxContextLength ?? 6000;
141
- const maxPreviewBytes = opts.maxPreviewBytes ?? 64 * 1024;
142
- const ignores = parseGitignore(root);
143
- const files = [];
144
- const languages = {};
145
- let totalBytes = 0;
146
- let truncated = false;
147
- // BFS 遍历,带深度限制与忽略
148
- const walk = (dir, depth) => {
149
- if (files.length >= maxFiles) {
150
- truncated = true;
151
- return;
152
- }
153
- let entries;
154
- try {
155
- entries = (0, fs_1.readdirSync)(dir);
156
- }
157
- catch {
158
- return;
159
- }
160
- for (const name of entries) {
161
- if (files.length >= maxFiles) {
162
- truncated = true;
163
- break;
164
- }
165
- const abs = (0, path_1.join)(dir, name);
166
- let st;
167
- try {
168
- st = (0, fs_1.statSync)(abs);
169
- }
170
- catch {
171
- continue;
172
- }
173
- const rel = (0, path_1.relative)(root, abs);
174
- if (DEFAULT_IGNORES.includes(name) || matchesIgnore(rel, ignores))
175
- continue;
176
- if (st.isDirectory()) {
177
- walk(abs, depth + 1);
178
- }
179
- else if (st.isFile()) {
180
- const ext = (0, path_1.extname)(name).toLowerCase();
181
- const isSource = SOURCE_EXTS.has(ext);
182
- const entry = {
183
- path: rel,
184
- abs,
185
- size: st.size,
186
- ext,
187
- isSource,
188
- isTest: isTestFile(rel),
189
- };
190
- files.push(entry);
191
- totalBytes += st.size;
192
- if (isSource) {
193
- const lang = langFromExt(ext);
194
- languages[lang] = (languages[lang] ?? 0) + 1;
195
- }
196
- }
197
- }
198
- };
199
- walk(root, 0);
200
- // 关键文件识别
201
- const keyFiles = [];
202
- const candidates = [
203
- 'package.json',
204
- 'pyproject.toml',
205
- 'go.mod',
206
- 'Cargo.toml',
207
- 'pom.xml',
208
- 'build.gradle',
209
- 'requirements.txt',
210
- 'README.md',
211
- 'README.rst',
212
- 'README',
213
- 'tsconfig.json',
214
- 'vite.config.ts',
215
- 'webpack.config.js',
216
- 'jest.config.js',
217
- 'vitest.config.ts',
218
- 'Dockerfile',
219
- '.github/workflows',
220
- ];
221
- for (const c of candidates) {
222
- if ((0, fs_1.existsSync)((0, path_1.join)(root, c)))
223
- keyFiles.push(c);
224
- }
225
- // 入口文件(index/main/bin)
226
- for (const f of files) {
227
- const b = (0, path_1.basename)(f.path);
228
- if (/^(index|main|app|server|cli)\.(ts|tsx|js|jsx|mjs|go|py|rs|java)$/.test(b)) {
229
- if (!keyFiles.includes(f.path))
230
- keyFiles.push(f.path);
231
- }
232
- }
233
- // 测试 / 构建命令探测
136
+ /** 探测测试 / 构建命令(package.json 优先,Python/Go/Rust 兜底) */
137
+ function detectTestBuild(root) {
234
138
  let testCommand;
235
139
  let testFramework;
236
140
  let buildCommand;
@@ -267,7 +171,6 @@ function readRepository(root, opts = {}) {
267
171
  /* 忽略损坏的 package.json */
268
172
  }
269
173
  }
270
- // Python / Go / Rust 兜底
271
174
  if (!testCommand) {
272
175
  if ((0, fs_1.existsSync)((0, path_1.join)(root, 'pyproject.toml')) || (0, fs_1.existsSync)((0, path_1.join)(root, 'pytest.ini'))) {
273
176
  testFramework = 'pytest';
@@ -282,6 +185,96 @@ function readRepository(root, opts = {}) {
282
185
  testCommand = 'cargo test';
283
186
  }
284
187
  }
188
+ return { testCommand, testFramework, buildCommand, hasPackageJson };
189
+ }
190
+ /** BFS 遍历仓库(带文件数限流与忽略规则),结果写入 WalkState */
191
+ function walkRepository(dir, root, maxFiles, ignores, state) {
192
+ if (state.files.length >= maxFiles) {
193
+ state.truncated = true;
194
+ return;
195
+ }
196
+ let entries;
197
+ try {
198
+ entries = (0, fs_1.readdirSync)(dir);
199
+ }
200
+ catch {
201
+ return;
202
+ }
203
+ for (const name of entries) {
204
+ if (state.files.length >= maxFiles) {
205
+ state.truncated = true;
206
+ break;
207
+ }
208
+ const abs = (0, path_1.join)(dir, name);
209
+ let st;
210
+ try {
211
+ st = (0, fs_1.statSync)(abs);
212
+ }
213
+ catch {
214
+ continue;
215
+ }
216
+ const rel = (0, path_1.relative)(root, abs);
217
+ if (DEFAULT_IGNORES.includes(name) || matchesIgnore(rel, ignores))
218
+ continue;
219
+ if (st.isDirectory()) {
220
+ walkRepository(abs, root, maxFiles, ignores, state);
221
+ }
222
+ else if (st.isFile()) {
223
+ const ext = (0, path_1.extname)(name).toLowerCase();
224
+ const isSource = SOURCE_EXTS.has(ext);
225
+ state.files.push({ path: rel, abs, size: st.size, ext, isSource, isTest: isTestFile(rel) });
226
+ state.totalBytes += st.size;
227
+ if (isSource) {
228
+ const lang = langFromExt(ext);
229
+ state.languages[lang] = (state.languages[lang] ?? 0) + 1;
230
+ }
231
+ }
232
+ }
233
+ }
234
+ /** 读取整个代码仓库,产出结构化快照 */
235
+ function readRepository(root, opts = {}) {
236
+ const maxFiles = opts.maxFiles ?? 2000;
237
+ const treeDepth = opts.treeDepth ?? 3;
238
+ const maxContextLength = opts.maxContextLength ?? 6000;
239
+ const maxPreviewBytes = opts.maxPreviewBytes ?? 64 * 1024;
240
+ const ignores = parseGitignore(root);
241
+ const state = { files: [], languages: {}, totalBytes: 0, truncated: false };
242
+ walkRepository(root, root, maxFiles, ignores, state);
243
+ const { files, languages, totalBytes, truncated } = state;
244
+ // 关键文件识别
245
+ const keyFiles = [];
246
+ const candidates = [
247
+ 'package.json',
248
+ 'pyproject.toml',
249
+ 'go.mod',
250
+ 'Cargo.toml',
251
+ 'pom.xml',
252
+ 'build.gradle',
253
+ 'requirements.txt',
254
+ 'README.md',
255
+ 'README.rst',
256
+ 'README',
257
+ 'tsconfig.json',
258
+ 'vite.config.ts',
259
+ 'webpack.config.js',
260
+ 'jest.config.js',
261
+ 'vitest.config.ts',
262
+ 'Dockerfile',
263
+ '.github/workflows',
264
+ ];
265
+ for (const c of candidates) {
266
+ if ((0, fs_1.existsSync)((0, path_1.join)(root, c)))
267
+ keyFiles.push(c);
268
+ }
269
+ // 入口文件(index/main/bin)
270
+ for (const f of files) {
271
+ const b = (0, path_1.basename)(f.path);
272
+ if (/^(index|main|app|server|cli)\.(ts|tsx|js|jsx|mjs|go|py|rs|java)$/.test(b)) {
273
+ if (!keyFiles.includes(f.path))
274
+ keyFiles.push(f.path);
275
+ }
276
+ }
277
+ const { testCommand, testFramework, buildCommand, hasPackageJson } = detectTestBuild(root);
285
278
  const tree = buildTree(root, files, treeDepth);
286
279
  const contextString = buildContextString({
287
280
  root,
@@ -1 +1 @@
1
- {"version":3,"file":"repo-reader.js","sourceRoot":"","sources":["../../src/agent/repo-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-reader.js","sourceRoot":"","sources":["../../src/agent/repo-reader.ts"],"names":[],"mappings":"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"}
@@ -7,56 +7,46 @@ exports.countConsecutiveErrors = countConsecutiveErrors;
7
7
  exports.buildReflectContext = buildReflectContext;
8
8
  exports.logRecoveryAttempt = logRecoveryAttempt;
9
9
  const logger_1 = require("../shared/logger");
10
- /** 错误分类器:根据工具返回结果判断错误类型 */
10
+ /** 错误分类规则表(顺序即优先级,命中即返回) */
11
+ const ERROR_RULES = [
12
+ {
13
+ category: 'compile-error',
14
+ keywords: ['error ts', 'typescript error', 'cannot find module', 'syntax error', '编译', 'tsc'],
15
+ fixHint: '检查 TypeScript 类型错误、缺失依赖或路径拼写错误。尝试运行 npm run build 查看完整错误信息。',
16
+ },
17
+ {
18
+ category: 'runtime-error',
19
+ keywords: ['undefined is not', 'cannot read property', 'referenceerror', 'typeerror', '未定义', 'is not a function'],
20
+ fixHint: '检查变量是否已定义、函数调用是否正确、空值处理是否完善。',
21
+ },
22
+ {
23
+ category: 'path-traversal',
24
+ keywords: ['path traversal', 'outside workspace', 'safe-path', 'forbidden', '路径', '穿越'],
25
+ fixHint: '文件路径包含非法字符或试图访问工作区外部。使用相对路径,避免 ../ 穿越。',
26
+ },
27
+ {
28
+ category: 'timeout',
29
+ keywords: ['timeout', 'timed out', 'ETIMEDOUT', '超时'],
30
+ fixHint: '命令执行超时。检查是否存在死循环或需要长时间运行的进程。',
31
+ },
32
+ {
33
+ category: 'permission-denied',
34
+ keywords: ['permission denied', 'eacces', 'eperm', '权限', '拒绝'],
35
+ fixHint: '文件权限不足或路径不存在。检查文件权限和目录结构。',
36
+ },
37
+ {
38
+ category: 'model-error',
39
+ keywords: ['api error', 'rate limit', '429', '500', '模型', '限流'],
40
+ fixHint: '模型 API 错误。检查 API 密钥、速率限制或网络连通性。',
41
+ },
42
+ ];
43
+ /** 错误分类器:根据工具返回结果判断错误类型(规则表驱动,中英双语识别) */
11
44
  function classifyError(output, error) {
12
45
  const text = (error || output).toLowerCase();
13
- // 编译错误
14
- if (text.includes('error ts') || text.includes('typescript error') || text.includes('cannot find module') || text.includes('syntax error')) {
15
- return {
16
- category: 'compile-error',
17
- message: error || output,
18
- fixHint: '检查 TypeScript 类型错误、缺失依赖或路径拼写错误。尝试运行 npm run build 查看完整错误信息。',
19
- };
20
- }
21
- // 运行时错误
22
- if (text.includes('undefined is not') || text.includes('cannot read property') || text.includes('referenceerror') || text.includes('typeerror')) {
23
- return {
24
- category: 'runtime-error',
25
- message: error || output,
26
- fixHint: '检查变量是否已定义、函数调用是否正确、空值处理是否完善。',
27
- };
28
- }
29
- // 路径穿越
30
- if (text.includes('path traversal') || text.includes('outside workspace') || text.includes('safe-path') || text.includes('forbidden')) {
31
- return {
32
- category: 'path-traversal',
33
- message: error || output,
34
- fixHint: '文件路径包含非法字符或试图访问工作区外部。使用相对路径,避免 ../ 穿越。',
35
- };
36
- }
37
- // 超时
38
- if (text.includes('timeout') || text.includes('timed out') || text.includes('ETIMEDOUT')) {
39
- return {
40
- category: 'timeout',
41
- message: error || output,
42
- fixHint: '命令执行超时。检查是否存在死循环或需要长时间运行的进程。',
43
- };
44
- }
45
- // 权限拒绝
46
- if (text.includes('permission denied') || text.includes('eacces') || text.includes('epERM')) {
47
- return {
48
- category: 'permission-denied',
49
- message: error || output,
50
- fixHint: '文件权限不足或路径不存在。检查文件权限和目录结构。',
51
- };
52
- }
53
- // 模型错误
54
- if (text.includes('api error') || text.includes('rate limit') || text.includes('429') || text.includes('500')) {
55
- return {
56
- category: 'model-error',
57
- message: error || output,
58
- fixHint: '模型 API 错误。检查 API 密钥、速率限制或网络连通性。',
59
- };
46
+ for (const rule of ERROR_RULES) {
47
+ if (rule.keywords.some((kw) => text.includes(kw))) {
48
+ return { category: rule.category, message: error || output, fixHint: rule.fixHint };
49
+ }
60
50
  }
61
51
  return null;
62
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"self-heal.js","sourceRoot":"","sources":["../../src/agent/self-heal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"self-heal.js","sourceRoot":"","sources":["../../src/agent/self-heal.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,20 @@ exports.createSelfImprover = createSelfImprover;
6
6
  * 飞虹 Code (Muse Code 参照复刻)
7
7
  * 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
8
8
  *
9
- * 自我改进(M8):
10
- * - 任务后反思:提取成功/失败模式
11
- * - 策略优化:基于历史表现调整行为
12
- * - 经验融合:将反思结果注入经验库
9
+ * 自我改进(M6 / 自我迭代核心):
10
+ * - 任务后反思:从真实对话中统计工具调用、错误簇、自愈恢复,产出具体模式与改进
11
+ * - 经验融合:将反思结果以「稳定 id + upsert」写入与 orchestrator 同一套 experiences 库,
12
+ * 使自我迭代真正回流到后续任务(闭合环),而非写入互不相连的孤岛目录
13
+ * - 人类可读账本:另存 improvements.json 供 self-improve 命令展示
13
14
  */
14
15
  const fs_1 = require("fs");
15
16
  const path_1 = require("path");
17
+ const os_1 = require("os");
16
18
  const experience_1 = require("./experience");
17
19
  const DEFAULT_CONFIG = {
18
20
  reflectionEnabled: true,
19
21
  maxPatternsPerTask: 5,
20
- experienceDir: (0, path_1.join)(require('os').homedir(), '.feihong-code', 'improvements'),
22
+ experienceDir: (0, path_1.join)((0, os_1.homedir)(), '.feihong-code', 'experiences'),
21
23
  };
22
24
  class SelfImprover {
23
25
  config;
@@ -25,18 +27,57 @@ class SelfImprover {
25
27
  constructor(config = {}) {
26
28
  this.config = { ...DEFAULT_CONFIG, ...config };
27
29
  }
28
- /** 任务后反思 */
29
- reflect(messages, success, durationMs) {
30
- const patterns = this.extractPatterns(messages, success);
31
- const improvements = this.generateImprovements(messages, success, patterns);
32
- const strategyChanges = this.deriveStrategyChanges(patterns, improvements);
30
+ /** 经验库目录(与 orchestrator 共用,供命令层展示) */
31
+ get experienceStoreDir() {
32
+ return this.config.experienceDir;
33
+ }
34
+ /** 任务后反思(基于真实对话内容分析,异步持久化到统一经验库) */
35
+ async reflect(messages, success, durationMs) {
36
+ const toolCalls = messages
37
+ .filter((m) => m.role === 'assistant' && m.toolCalls)
38
+ .flatMap((m) => m.toolCalls ?? []);
39
+ const errors = messages.filter((m) => m.role === 'tool' && (m.content || '').startsWith('错误:'));
40
+ const hasSelfHeal = errors.length > 0 &&
41
+ messages.some((m) => m.role === 'assistant' && /修复|已修复|解决|resolved|fixed|通过验证|验证通过/i.test(m.content || ''));
42
+ // 模式提取(具体、可观测)
43
+ const patterns = [];
44
+ if (success)
45
+ patterns.push('任务成功完成,核心策略有效');
46
+ else
47
+ patterns.push('任务未达成,需调整策略');
48
+ if (toolCalls.length >= 3)
49
+ patterns.push(`工具调用高频(${toolCalls.length}次),注意批次化与最小改动`);
50
+ if (errors.length > 0)
51
+ patterns.push(`出现 ${errors.length} 处工具错误,需增强前置校验`);
52
+ if (hasSelfHeal)
53
+ patterns.push('发生自愈并恢复,闭环修复有效');
54
+ // 改进建议(针对性)
55
+ const improvements = [];
56
+ if (!success) {
57
+ improvements.push('复盘失败任务:定位首个错误根因,先最小化复现再修复');
58
+ improvements.push('考虑将大目标拆为更小、可独立验证的子任务');
59
+ }
60
+ if (errors.length > 0)
61
+ improvements.push('为高频错误类型补充前置校验,减少运行时失败');
62
+ if (toolCalls.length >= 5)
63
+ improvements.push('工具调用偏多,先勘察再动手可减少往返轮次');
64
+ if (improvements.length === 0)
65
+ improvements.push('维持当前执行节奏,持续监控工具效率');
66
+ // 策略变化
67
+ const strategyChanges = [];
68
+ if (errors.length > 0)
69
+ strategyChanges.push('增强错误检测与前置校验');
70
+ if (hasSelfHeal)
71
+ strategyChanges.push('固化自愈闭环为默认行为');
72
+ if (strategyChanges.length === 0)
73
+ strategyChanges.push('保持当前策略');
33
74
  const result = {
34
75
  success,
35
76
  patterns: patterns.slice(0, this.config.maxPatternsPerTask),
36
77
  improvements,
37
78
  strategyChanges,
38
79
  };
39
- // 保存反思记录
80
+ // 内存账本
40
81
  this.improvements.push({
41
82
  timestamp: new Date().toISOString(),
42
83
  success,
@@ -44,26 +85,33 @@ class SelfImprover {
44
85
  patterns: result.patterns,
45
86
  improvements: result.improvements,
46
87
  });
47
- // 写入经验库
88
+ // 写入统一经验库(与 orchestrator 共用,实现回流)
48
89
  if (this.config.reflectionEnabled) {
90
+ const key = `reflect:${result.patterns.slice(0, 2).join('|')}`;
49
91
  const exp = {
50
- id: `improvement-${Date.now()}`,
92
+ id: (0, experience_1.normalizeExperienceId)(success ? 'success-pattern' : 'error-pattern', key),
51
93
  type: success ? 'success-pattern' : 'error-pattern',
52
- title: success ? '成功模式提取' : '失败模式分析',
53
- content: result.improvements.join('\n'),
94
+ title: success ? '成功模式反思' : '失败模式反思',
95
+ content: `反思结论:\n${result.improvements.join('\n')}\n策略变化: ${result.strategyChanges.join('; ')}`,
54
96
  metadata: {
55
97
  successRate: success ? 1.0 : 0.0,
56
98
  sessionCount: 1,
57
- tags: result.patterns.slice(0, 3),
99
+ tags: result.patterns.slice(0, 3).map((p) => p.replace(/[^\p{L}\p{N}]/gu, '').slice(0, 12)),
58
100
  createdAt: new Date().toISOString(),
59
101
  lastUsedAt: new Date().toISOString(),
60
102
  },
61
103
  };
62
104
  (0, fs_1.mkdirSync)(this.config.experienceDir, { recursive: true });
63
- (0, experience_1.saveExperience)(this.config.experienceDir, exp).catch(() => { });
105
+ await (0, experience_1.upsertExperience)(this.config.experienceDir, exp);
106
+ this.saveImprovements(this.improvements);
64
107
  }
65
108
  return result;
66
109
  }
110
+ /** 基于目标召回既往学习,生成注入模型的「学习提示」 */
111
+ async getLearnedPrompt(goal) {
112
+ const exps = await (0, experience_1.retrieveRelevantExperiences)(this.config.experienceDir, goal);
113
+ return (0, experience_1.generateExperiencePrompt)(exps);
114
+ }
67
115
  /** 加载历史改进记录 */
68
116
  loadImprovements() {
69
117
  const file = (0, path_1.join)(this.config.experienceDir, 'improvements.json');
@@ -95,50 +143,6 @@ class SelfImprover {
95
143
  avgDurationMs: avgDuration,
96
144
  };
97
145
  }
98
- extractPatterns(_messages, success) {
99
- const patterns = [];
100
- // 成功/失败模式
101
- if (success) {
102
- patterns.push('任务成功完成,策略有效');
103
- }
104
- else {
105
- patterns.push('任务未完成,需要调整策略');
106
- }
107
- return patterns;
108
- }
109
- generateImprovements(_messages, success, patterns) {
110
- const improvements = [];
111
- if (!success) {
112
- improvements.push('失败任务:检查错误分类并重试');
113
- improvements.push('失败任务:考虑简化目标或分解子任务');
114
- }
115
- // 基于模式生成改进建议
116
- for (const pattern of patterns) {
117
- if (pattern.includes('工具') && pattern.includes('高频')) {
118
- improvements.push('高频工具调用:考虑批量操作优化');
119
- }
120
- if (pattern.includes('错误')) {
121
- improvements.push('错误模式:增加前置校验减少运行时错误');
122
- }
123
- }
124
- if (improvements.length === 0) {
125
- improvements.push('持续监控工具调用效率');
126
- }
127
- return improvements;
128
- }
129
- deriveStrategyChanges(patterns, improvements) {
130
- const changes = [];
131
- if (patterns.some((p) => p.includes('错误模式'))) {
132
- changes.push('增强错误检测机制');
133
- }
134
- if (improvements.some((i) => i.includes('批量操作'))) {
135
- changes.push('优化工具调用批次');
136
- }
137
- if (changes.length === 0) {
138
- changes.push('保持当前策略');
139
- }
140
- return changes;
141
- }
142
146
  }
143
147
  exports.SelfImprover = SelfImprover;
144
148
  /** 便捷函数 */
@@ -1 +1 @@
1
- {"version":3,"file":"self-improver.js","sourceRoot":"","sources":["../../src/agent/self-improver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"self-improver.js","sourceRoot":"","sources":["../../src/agent/self-improver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * 飞虹 Code (Muse Code 参照复刻)
4
+ * 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
5
+ *
6
+ * P2-2 子代理结果摘要(对齐 Claude Code subagents:只回摘要+元数据,
7
+ * 隔离中间结果,避免大输出撑爆主上下文)。
8
+ *
9
+ * 策略:保留首部关键信息(做什么/验证什么),超长截断并标注;同时输出
10
+ * 结构化元数据(字符数/截断标记),供上层报告或审计使用。
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.SUBAGENT_SUMMARY_MAX = void 0;
14
+ exports.summarizeSubTaskAnswer = summarizeSubTaskAnswer;
15
+ /** 子代理结果摘要:默认保留长度 */
16
+ exports.SUBAGENT_SUMMARY_MAX = 600;
17
+ /**
18
+ * 摘要化子任务最终答案:
19
+ * - ≤ max 直接返回原文
20
+ * - > max 保留首部,尾部追加截断标注(含原始长度),不丢"做了什么"的语义
21
+ */
22
+ function summarizeSubTaskAnswer(answer, max = exports.SUBAGENT_SUMMARY_MAX) {
23
+ const originalLength = answer.length;
24
+ if (answer.length <= max) {
25
+ return { text: answer, originalLength, truncated: false };
26
+ }
27
+ const head = answer.slice(0, max);
28
+ const tail = `\n…(已截断,原文 ${originalLength} 字符)`;
29
+ return { text: head + tail, originalLength, truncated: true };
30
+ }
31
+ //# sourceMappingURL=subagent-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-summary.js","sourceRoot":"","sources":["../../src/agent/subagent-summary.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAmBH,wDAQC;AAzBD,qBAAqB;AACR,QAAA,oBAAoB,GAAG,GAAG,CAAC;AAWxC;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,MAAc,EAAE,GAAG,GAAG,4BAAoB;IAC/E,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,cAAc,cAAc,MAAM,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChE,CAAC"}