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
package/tool-schema.json CHANGED
@@ -1,127 +1,127 @@
1
- {
2
- "name": "feihong-code",
3
- "version": "0.2.1",
4
- "description": "Terminal AI Coding Agent — 终端 AI 编程智能体",
5
- "tools": [
6
- {
7
- "name": "write_file",
8
- "description": "写入或覆盖文件内容。如果文件不存在则创建,如果已存在则完全替换。",
9
- "parameters": {
10
- "type": "object",
11
- "properties": {
12
- "path": { "type": "string", "description": "文件相对路径(相对于工作区根目录)" },
13
- "content": { "type": "string", "description": "文件的完整内容" }
14
- },
15
- "required": ["path", "content"],
16
- "additionalProperties": false
17
- },
18
- "example": { "path": "src/main.ts", "content": "export function hello() { return 'world'; }" }
19
- },
20
- {
21
- "name": "edit_file",
22
- "description": "在文件中插入、删除或替换文本块。使用 oldText/newText 精确匹配。",
23
- "parameters": {
24
- "type": "object",
25
- "properties": {
26
- "path": { "type": "string", "description": "目标文件路径" },
27
- "oldText": { "type": "string", "description": "待替换的原文本(必须唯一存在于文件中)" },
28
- "newText": { "type": "string", "description": "替换后的新文本" }
29
- },
30
- "required": ["path", "oldText", "newText"],
31
- "additionalProperties": false
32
- },
33
- "example": { "path": "src/calc.ts", "oldText": "return a - b;", "newText": "return a + b;" }
34
- },
35
- {
36
- "name": "read_file",
37
- "description": "读取文件的全部内容。",
38
- "parameters": {
39
- "type": "object",
40
- "properties": {
41
- "path": { "type": "string", "description": "文件相对路径" }
42
- },
43
- "required": ["path"],
44
- "additionalProperties": false
45
- },
46
- "example": { "path": "package.json" }
47
- },
48
- {
49
- "name": "list_files",
50
- "description": "列出目录下的文件和子目录。",
51
- "parameters": {
52
- "type": "object",
53
- "properties": {
54
- "path": { "type": "string", "description": "目录路径,默认为 '.'(工作区根)" }
55
- },
56
- "additionalProperties": false
57
- },
58
- "example": { "path": "src/" }
59
- },
60
- {
61
- "name": "grep",
62
- "description": "使用正则表达式在项目中搜索文本。",
63
- "parameters": {
64
- "type": "object",
65
- "properties": {
66
- "pattern": { "type": "string", "description": "正则表达式模式" },
67
- "path": { "type": "string", "description": "搜索起始目录,默认为工作区根" }
68
- },
69
- "required": ["pattern"],
70
- "additionalProperties": false
71
- },
72
- "example": { "pattern": "class.*Error", "path": "src/" }
73
- },
74
- {
75
- "name": "run_shell",
76
- "description": "在工作区内执行 shell 命令。命令需通过白名单验证。",
77
- "parameters": {
78
- "type": "object",
79
- "properties": {
80
- "command": { "type": "string", "description": "要执行的完整命令(如 'npm test'、'node index.js')" }
81
- },
82
- "required": ["command"],
83
- "additionalProperties": false
84
- },
85
- "example": { "command": "npm run typecheck" }
86
- },
87
- {
88
- "name": "build_check",
89
- "description": "检查项目是否能成功编译(运行 tsc --noEmit)。",
90
- "parameters": {
91
- "type": "object",
92
- "properties": {},
93
- "additionalProperties": false
94
- },
95
- "example": {}
96
- },
97
- {
98
- "name": "run_tests",
99
- "description": "运行测试套件并返回结果。",
100
- "parameters": {
101
- "type": "object",
102
- "properties": {},
103
- "additionalProperties": false
104
- },
105
- "example": {}
106
- }
107
- ],
108
- "toolCategories": {
109
- "file": ["write_file", "edit_file", "read_file", "list_files"],
110
- "search": ["grep"],
111
- "shell": ["run_shell"],
112
- "verify": ["build_check", "run_tests"]
113
- },
114
- "security": {
115
- "sandbox": "所有文件操作限制在工作区目录内",
116
- "approval": "危险操作(shell 命令、写入敏感文件)可能需要人工审批",
117
- "audit": "所有工具调用记录到 JSONL 事件日志"
118
- },
119
- "errorCodes": {
120
- "FH_4001": "配额超限 — 日预算已耗尽,等待次日重置或申请配额",
121
- "FH_4003": "权限拒绝 — 当前角色无权执行此操作,检查 RBAC 策略",
122
- "FH_5001": "模型调用失败 — 网络问题或 API Key 无效,检查 provider 配置",
123
- "FH_5002": "上下文压缩失败 — 对话过长,尝试使用 /plan 重新规划",
124
- "FH_6001": "文件路径越权 — 路径包含 '..' 或符号链接,检查沙箱规则"
125
- },
126
- "authoredBy": "晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹"
127
- }
1
+ {
2
+ "name": "feihong-code",
3
+ "version": "0.2.1",
4
+ "description": "Terminal AI Coding Agent — 终端 AI 编程智能体",
5
+ "tools": [
6
+ {
7
+ "name": "write_file",
8
+ "description": "写入或覆盖文件内容。如果文件不存在则创建,如果已存在则完全替换。",
9
+ "parameters": {
10
+ "type": "object",
11
+ "properties": {
12
+ "path": { "type": "string", "description": "文件相对路径(相对于工作区根目录)" },
13
+ "content": { "type": "string", "description": "文件的完整内容" }
14
+ },
15
+ "required": ["path", "content"],
16
+ "additionalProperties": false
17
+ },
18
+ "example": { "path": "src/main.ts", "content": "export function hello() { return 'world'; }" }
19
+ },
20
+ {
21
+ "name": "edit_file",
22
+ "description": "在文件中插入、删除或替换文本块。使用 oldText/newText 精确匹配。",
23
+ "parameters": {
24
+ "type": "object",
25
+ "properties": {
26
+ "path": { "type": "string", "description": "目标文件路径" },
27
+ "oldText": { "type": "string", "description": "待替换的原文本(必须唯一存在于文件中)" },
28
+ "newText": { "type": "string", "description": "替换后的新文本" }
29
+ },
30
+ "required": ["path", "oldText", "newText"],
31
+ "additionalProperties": false
32
+ },
33
+ "example": { "path": "src/calc.ts", "oldText": "return a - b;", "newText": "return a + b;" }
34
+ },
35
+ {
36
+ "name": "read_file",
37
+ "description": "读取文件的全部内容。",
38
+ "parameters": {
39
+ "type": "object",
40
+ "properties": {
41
+ "path": { "type": "string", "description": "文件相对路径" }
42
+ },
43
+ "required": ["path"],
44
+ "additionalProperties": false
45
+ },
46
+ "example": { "path": "package.json" }
47
+ },
48
+ {
49
+ "name": "list_files",
50
+ "description": "列出目录下的文件和子目录。",
51
+ "parameters": {
52
+ "type": "object",
53
+ "properties": {
54
+ "path": { "type": "string", "description": "目录路径,默认为 '.'(工作区根)" }
55
+ },
56
+ "additionalProperties": false
57
+ },
58
+ "example": { "path": "src/" }
59
+ },
60
+ {
61
+ "name": "grep",
62
+ "description": "使用正则表达式在项目中搜索文本。",
63
+ "parameters": {
64
+ "type": "object",
65
+ "properties": {
66
+ "pattern": { "type": "string", "description": "正则表达式模式" },
67
+ "path": { "type": "string", "description": "搜索起始目录,默认为工作区根" }
68
+ },
69
+ "required": ["pattern"],
70
+ "additionalProperties": false
71
+ },
72
+ "example": { "pattern": "class.*Error", "path": "src/" }
73
+ },
74
+ {
75
+ "name": "run_shell",
76
+ "description": "在工作区内执行 shell 命令。命令需通过白名单验证。",
77
+ "parameters": {
78
+ "type": "object",
79
+ "properties": {
80
+ "command": { "type": "string", "description": "要执行的完整命令(如 'npm test'、'node index.js')" }
81
+ },
82
+ "required": ["command"],
83
+ "additionalProperties": false
84
+ },
85
+ "example": { "command": "npm run typecheck" }
86
+ },
87
+ {
88
+ "name": "build_check",
89
+ "description": "检查项目是否能成功编译(运行 tsc --noEmit)。",
90
+ "parameters": {
91
+ "type": "object",
92
+ "properties": {},
93
+ "additionalProperties": false
94
+ },
95
+ "example": {}
96
+ },
97
+ {
98
+ "name": "run_tests",
99
+ "description": "运行测试套件并返回结果。",
100
+ "parameters": {
101
+ "type": "object",
102
+ "properties": {},
103
+ "additionalProperties": false
104
+ },
105
+ "example": {}
106
+ }
107
+ ],
108
+ "toolCategories": {
109
+ "file": ["write_file", "edit_file", "read_file", "list_files"],
110
+ "search": ["grep"],
111
+ "shell": ["run_shell"],
112
+ "verify": ["build_check", "run_tests"]
113
+ },
114
+ "security": {
115
+ "sandbox": "所有文件操作限制在工作区目录内",
116
+ "approval": "危险操作(shell 命令、写入敏感文件)可能需要人工审批",
117
+ "audit": "所有工具调用记录到 JSONL 事件日志"
118
+ },
119
+ "errorCodes": {
120
+ "FH_4001": "配额超限 — 日预算已耗尽,等待次日重置或申请配额",
121
+ "FH_4003": "权限拒绝 — 当前角色无权执行此操作,检查 RBAC 策略",
122
+ "FH_5001": "模型调用失败 — 网络问题或 API Key 无效,检查 provider 配置",
123
+ "FH_5002": "上下文压缩失败 — 对话过长,尝试使用 /plan 重新规划",
124
+ "FH_6001": "文件路径越权 — 路径包含 '..' 或符号链接,检查沙箱规则"
125
+ },
126
+ "authoredBy": "晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹"
127
+ }