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.
- package/.github/FUNDING.yml +4 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +37 -37
- package/.github/ISSUE_TEMPLATE/config.yml +14 -14
- package/.github/ISSUE_TEMPLATE/feature_request.md +28 -28
- package/.github/PULL_REQUEST_TEMPLATE.md +46 -46
- package/.github/SECURITY.md +67 -67
- package/.github/dependabot.yml +16 -0
- package/.github/workflows/ci.yml +1 -1
- package/AGENT-GUIDE.md +382 -237
- package/CHANGELOG.md +405 -73
- package/CODE_OF_CONDUCT.md +56 -56
- package/CONTRIBUTING.md +68 -68
- package/LICENSE +22 -22
- package/README.md +31 -25
- package/README.self-evolve.md +274 -0
- package/dist/agent/code-review.js +2 -0
- package/dist/agent/code-review.js.map +1 -1
- package/dist/agent/code-writer.js +70 -17
- package/dist/agent/code-writer.js.map +1 -1
- package/dist/agent/context-compactor.js +13 -4
- package/dist/agent/context-compactor.js.map +1 -1
- package/dist/agent/experience.js +262 -62
- package/dist/agent/experience.js.map +1 -1
- package/dist/agent/orchestrator.js +148 -68
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/quality-gate.js +10 -4
- package/dist/agent/quality-gate.js.map +1 -1
- package/dist/agent/repo-context.js +181 -0
- package/dist/agent/repo-context.js.map +1 -0
- package/dist/agent/repo-reader.js +92 -99
- package/dist/agent/repo-reader.js.map +1 -1
- package/dist/agent/self-heal.js +38 -48
- package/dist/agent/self-heal.js.map +1 -1
- package/dist/agent/self-improver.js +65 -61
- package/dist/agent/self-improver.js.map +1 -1
- package/dist/agent/subagent-summary.js +31 -0
- package/dist/agent/subagent-summary.js.map +1 -0
- package/dist/agent/subagent.js +52 -2
- package/dist/agent/subagent.js.map +1 -1
- package/dist/agent/symbol-index.js +160 -0
- package/dist/agent/symbol-index.js.map +1 -0
- package/dist/agent/team.js +193 -0
- package/dist/agent/team.js.map +1 -0
- package/dist/cli/commands.js +124 -143
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/index.js +113 -106
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl.js +82 -7
- package/dist/cli/repl.js.map +1 -1
- package/dist/cli/run.js +601 -95
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/tui.js +145 -0
- package/dist/cli/tui.js.map +1 -0
- package/dist/cli/version.js +1 -1
- package/dist/enterprise/audit.js +75 -12
- package/dist/enterprise/audit.js.map +1 -1
- package/dist/enterprise/index.js +14 -11
- package/dist/enterprise/index.js.map +1 -1
- package/dist/enterprise/policy.js +22 -10
- package/dist/enterprise/policy.js.map +1 -1
- package/dist/harness/executor.js +127 -0
- package/dist/harness/executor.js.map +1 -0
- package/dist/harness/harness.js +87 -0
- package/dist/harness/harness.js.map +1 -0
- package/dist/harness/index.js +31 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/loader.js +138 -0
- package/dist/harness/loader.js.map +1 -0
- package/dist/harness/reporter.js +34 -0
- package/dist/harness/reporter.js.map +1 -0
- package/dist/harness/types.js +10 -0
- package/dist/harness/types.js.map +1 -0
- package/dist/harness/verifier.js +48 -0
- package/dist/harness/verifier.js.map +1 -0
- package/dist/hello.js +14 -0
- package/dist/hello.js.map +1 -0
- package/dist/memory/auto-summarize.js +208 -0
- package/dist/memory/auto-summarize.js.map +1 -0
- package/dist/memory/index.js +228 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/models/model-router.js +23 -10
- package/dist/models/model-router.js.map +1 -1
- package/dist/plugins/plugin-loader.js +179 -0
- package/dist/plugins/plugin-loader.js.map +1 -0
- package/dist/runtime/event-log.js.map +1 -1
- package/dist/runtime/hooks.js +80 -0
- package/dist/runtime/hooks.js.map +1 -0
- package/dist/self-evolve/hook.js +60 -0
- package/dist/self-evolve/hook.js.map +1 -0
- package/dist/shared/config.js +35 -3
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/i18n.js +535 -0
- package/dist/shared/i18n.js.map +1 -0
- package/dist/skills/grill.js +2 -1
- package/dist/skills/grill.js.map +1 -1
- package/dist/skills/self-heal.js +73 -0
- package/dist/skills/self-heal.js.map +1 -0
- package/dist/skills/skill-loader.js +131 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/skill-market.js +195 -0
- package/dist/skills/skill-market.js.map +1 -0
- package/dist/tools/analysis/code-analyzer.js +45 -18
- package/dist/tools/analysis/code-analyzer.js.map +1 -1
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp/index.js +84 -0
- package/dist/tools/mcp/index.js.map +1 -0
- package/dist/tools/mcp/mcp-client.js +172 -0
- package/dist/tools/mcp/mcp-client.js.map +1 -0
- package/dist/tools/sandbox.js +126 -0
- package/dist/tools/sandbox.js.map +1 -0
- package/dist/tools/shell/exec.js +25 -0
- package/dist/tools/shell/exec.js.map +1 -1
- package/dist/tools/shell/run-shell.tool.js +4 -1
- package/dist/tools/shell/run-shell.tool.js.map +1 -1
- package/dist/tools/skills/load-skill.tool.js +36 -0
- package/dist/tools/skills/load-skill.tool.js.map +1 -0
- package/dist/tools/tool.interface.js.map +1 -1
- package/dist/tools/tool.registry.js +37 -1
- package/dist/tools/tool.registry.js.map +1 -1
- package/dist/tools/web/web.tool.js +139 -0
- package/dist/tools/web/web.tool.js.map +1 -0
- package/dist/web/auth.js +42 -3
- package/dist/web/auth.js.map +1 -1
- package/dist/web/channels.js +171 -0
- package/dist/web/channels.js.map +1 -0
- package/dist/web/public/index.html +3253 -39
- package/dist/web/public/index.html.tmp +3117 -0
- package/dist/web/public/index_new.html +3196 -0
- package/dist/web/server.js +790 -11
- package/dist/web/server.js.map +1 -1
- package/dist/web/task-queue.js +352 -0
- package/dist/web/task-queue.js.map +1 -0
- package/dist/web/web-config.js +143 -0
- package/dist/web/web-config.js.map +1 -0
- package/docs/Deployment_Guide_EN.md +288 -0
- package/docs/Technical_Manual_EN.md +216 -0
- package/docs/User_Manual_EN.md +314 -0
- package/docs/self-evolve-implementation.md +165 -0
- package/docs/self-evolve.md +166 -0
- package/docs//344/272/247/345/223/201/345/274/200/345/217/221/346/226/207/346/241/243.md +614 -614
- 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
- package/docs//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +318 -358
- 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
- package/docs//346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +216 -303
- package/docs//346/236/266/346/236/204/344/270/216API.md +238 -238
- package/docs//347/224/250/346/210/267/346/211/213/345/206/214.md +196 -196
- package/docs//351/203/250/347/275/262/346/214/207/345/215/227.md +165 -165
- package/docs//351/203/250/347/275/262/350/257/264/346/230/216/344/271/246.md +288 -0
- package/docs//351/205/215/347/275/256/345/217/202/350/200/203.md +127 -127
- package/package.json +114 -109
- 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
|
|
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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"}
|
package/dist/agent/self-heal.js
CHANGED
|
@@ -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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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":";;
|
|
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
|
-
* 自我改进(
|
|
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)(
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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:
|
|
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.
|
|
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":";;;
|
|
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"}
|