feihong-code 7.2.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/.github/workflows/ci.yml +180 -140
  2. package/.github/workflows/release.yml +200 -173
  3. package/CHANGELOG.md +94 -115
  4. package/README.md +609 -586
  5. package/dist/agent/completion-engine.js +76 -45
  6. package/dist/agent/completion-engine.js.map +1 -1
  7. package/dist/agent/completion-postprocess.js +109 -0
  8. package/dist/agent/completion-postprocess.js.map +1 -0
  9. package/dist/agent/context-budget.js +121 -0
  10. package/dist/agent/context-budget.js.map +1 -0
  11. package/dist/agent/context-compactor.js +47 -0
  12. package/dist/agent/context-compactor.js.map +1 -1
  13. package/dist/agent/custom-agent.js +52 -52
  14. package/dist/agent/design-to-code.js +40 -40
  15. package/dist/agent/lint.js +121 -0
  16. package/dist/agent/lint.js.map +1 -0
  17. package/dist/agent/multi-agent.js +44 -44
  18. package/dist/agent/orchestrator.js +20 -20
  19. package/dist/agent/prompts.js +54 -54
  20. package/dist/agent/self-correction.js +24 -24
  21. package/dist/agent/self-heal.js +27 -27
  22. package/dist/cli/commands.js +9 -0
  23. package/dist/cli/commands.js.map +1 -1
  24. package/dist/cli/index.js +9 -0
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/multi-pane-tui.js +217 -0
  27. package/dist/cli/multi-pane-tui.js.map +1 -0
  28. package/dist/cli/run.js +129 -40
  29. package/dist/cli/run.js.map +1 -1
  30. package/dist/cli/tui-run.js +79 -0
  31. package/dist/cli/tui-run.js.map +1 -0
  32. package/dist/cli/tui.js.map +1 -1
  33. package/dist/cli/version.js +1 -1
  34. package/dist/lsp/lsp-client.js +183 -0
  35. package/dist/lsp/lsp-client.js.map +1 -0
  36. package/dist/lsp/lsp-service.js +159 -0
  37. package/dist/lsp/lsp-service.js.map +1 -0
  38. package/dist/plugins/manager.js +50 -2
  39. package/dist/plugins/manager.js.map +1 -1
  40. package/dist/shared/i18n.js +108 -100
  41. package/dist/shared/i18n.js.map +1 -1
  42. package/dist/tools/generator/code-generator.js +40 -40
  43. package/dist/tools/generator/test-generator.js +9 -9
  44. package/dist/tools/shell/exec.js +23 -1
  45. package/dist/tools/shell/exec.js.map +1 -1
  46. package/dist/web/extra-apis.js +440 -0
  47. package/dist/web/extra-apis.js.map +1 -0
  48. package/dist/web/public/css/style.css +1715 -1715
  49. package/dist/web/public/index.html +1242 -1200
  50. package/dist/web/public/js/api.js +555 -496
  51. package/dist/web/public/js/app.js +2210 -2210
  52. package/dist/web/public/js/mock-api.js +234 -234
  53. package/dist/web/public/js/monaco-editor.js +363 -203
  54. package/dist/web/public/js/ui.js +2251 -1981
  55. package/dist/web/public/js/utils.js +214 -214
  56. package/dist/web/public/manifest.json +59 -59
  57. package/dist/web/public/service-worker.js +173 -173
  58. package/dist/web/server.js +97 -45
  59. package/dist/web/server.js.map +1 -1
  60. package/docs/BENCHMARK_REPORT_en.md +386 -329
  61. package/docs/BENCHMARK_REPORT_zh.md +386 -329
  62. package/docs/DPA.md +63 -0
  63. package/docs/DPA/346/225/260/346/215/256/345/244/204/347/220/206/345/215/217/350/256/256/346/250/241/346/235/277_v1.0.md +67 -0
  64. package/docs/SECURITY_WHITEPAPER.md +74 -0
  65. package/docs/SWE_BENCH_REPORT.md +55 -0
  66. package/docs/TECHNICAL_SPEC_en.md +292 -292
  67. package/docs/TECHNICAL_SPEC_zh.md +292 -292
  68. package/docs/UPDATE_NOTES_en.md +159 -159
  69. package/docs/UPDATE_NOTES_zh.md +159 -159
  70. package/docs/UPGRADE_7.2.0.md +309 -0
  71. package/docs/UPGRADE_GUIDE_7_5.md +86 -0
  72. package/docs/geo-feihong-code.html +391 -0
  73. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_50/350/275/256/346/267/261/345/272/246/345/256/241/350/256/241_v7.2.0.md +208 -0
  74. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_6/351/241/271/351/207/215/347/202/271/346/240/270/346/237/245_v7.2.0.md +152 -0
  75. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_/350/277/220/350/241/214/346/227/266/345/256/236/346/265/213/347/211/210_v7.2.0.md +271 -0
  76. package/docs//345/220/210/350/247/204/350/256/244/350/257/201/345/207/206/345/244/207/346/270/205/345/215/225_v7.2.0.md +59 -0
  77. package/docs//345/256/211/345/205/250/347/231/275/347/232/256/344/271/246_v7.2.0.md +82 -0
  78. package/electron/main.js +404 -602
  79. package/package.json +175 -172
  80. package/templates/skills/api-design/SKILL.md +27 -0
  81. package/templates/skills/code-review/SKILL.md +35 -0
  82. package/templates/skills/dependency-upgrade/SKILL.md +29 -0
  83. package/templates/skills/doc-gen/SKILL.md +29 -0
  84. package/templates/skills/git-flow/SKILL.md +26 -0
  85. package/templates/skills/onboarding/SKILL.md +27 -0
  86. package/templates/skills/performance/SKILL.md +29 -0
  87. package/templates/skills/refactor/SKILL.md +28 -0
  88. package/templates/skills/security-audit/SKILL.md +28 -0
  89. package/templates/skills/test-gen/SKILL.md +30 -0
  90. package/tool-schema.json +197 -197
  91. package/dist/hello.js +0 -14
  92. package/dist/hello.js.map +0 -1
  93. package/dist/self-evolve/hook.ts +0 -80
  94. package/dist/self-evolve/manager.d.ts +0 -8
  95. package/dist/web/public/vendor/monaco/vs/abap-D-t0cyap.js +0 -1
  96. package/dist/web/public/vendor/monaco/vs/apex-CcIm7xu6.js +0 -1
  97. package/dist/web/public/vendor/monaco/vs/assets/css.worker-URu8fCFR.js +0 -97
  98. package/dist/web/public/vendor/monaco/vs/assets/editor.worker-lj3bdIIn.js +0 -30
  99. package/dist/web/public/vendor/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js +0 -30
  100. package/dist/web/public/vendor/monaco/vs/assets/html.worker-D1SL3iM8.js +0 -474
  101. package/dist/web/public/vendor/monaco/vs/assets/json.worker-CoJx_OPf.js +0 -62
  102. package/dist/web/public/vendor/monaco/vs/assets/ts.worker-BWKtMYOk.js +0 -67722
  103. package/dist/web/public/vendor/monaco/vs/azcli-BA0tQDCg.js +0 -1
  104. package/dist/web/public/vendor/monaco/vs/basic-languages/monaco.contribution.js +0 -1
  105. package/dist/web/public/vendor/monaco/vs/bat-C397hTD6.js +0 -1
  106. package/dist/web/public/vendor/monaco/vs/bicep-DF5aW17k.js +0 -2
  107. package/dist/web/public/vendor/monaco/vs/cameligo-plsz8qhj.js +0 -1
  108. package/dist/web/public/vendor/monaco/vs/clojure-Y2auQMzK.js +0 -1
  109. package/dist/web/public/vendor/monaco/vs/coffee-Bu45yuWE.js +0 -1
  110. package/dist/web/public/vendor/monaco/vs/cpp-CkKPQIni.js +0 -1
  111. package/dist/web/public/vendor/monaco/vs/csharp-CX28MZyh.js +0 -1
  112. package/dist/web/public/vendor/monaco/vs/csp-D8uWnyxW.js +0 -1
  113. package/dist/web/public/vendor/monaco/vs/css-CaeNmE3S.js +0 -3
  114. package/dist/web/public/vendor/monaco/vs/css.worker-CyhWkhHo.js +0 -1
  115. package/dist/web/public/vendor/monaco/vs/cssMode-CV6Ay48H.js +0 -1
  116. package/dist/web/public/vendor/monaco/vs/cypher-DVThT8BS.js +0 -1
  117. package/dist/web/public/vendor/monaco/vs/dart-CmGfCvrO.js +0 -1
  118. package/dist/web/public/vendor/monaco/vs/dockerfile-CZqqYdch.js +0 -1
  119. package/dist/web/public/vendor/monaco/vs/ecl-30fUercY.js +0 -1
  120. package/dist/web/public/vendor/monaco/vs/editor/editor.main.css +0 -1
  121. package/dist/web/public/vendor/monaco/vs/editor/editor.main.js +0 -1
  122. package/dist/web/public/vendor/monaco/vs/editor/editor.worker.js +0 -1
  123. package/dist/web/public/vendor/monaco/vs/editor-KLE6jdfb.js +0 -831
  124. package/dist/web/public/vendor/monaco/vs/editor.js +0 -1
  125. package/dist/web/public/vendor/monaco/vs/editorWorkerHost-fVE1cjcC.js +0 -35
  126. package/dist/web/public/vendor/monaco/vs/elixir-xjPaIfzF.js +0 -1
  127. package/dist/web/public/vendor/monaco/vs/flow9-DqtmStfK.js +0 -1
  128. package/dist/web/public/vendor/monaco/vs/freemarker2-FWreY7v7.js +0 -3
  129. package/dist/web/public/vendor/monaco/vs/fsharp-BOMdg4U1.js +0 -1
  130. package/dist/web/public/vendor/monaco/vs/go-D_hbi-Jt.js +0 -1
  131. package/dist/web/public/vendor/monaco/vs/graphql-CKUU4kLG.js +0 -1
  132. package/dist/web/public/vendor/monaco/vs/handlebars-CZi4pHCH.js +0 -1
  133. package/dist/web/public/vendor/monaco/vs/hcl-DTaboeZW.js +0 -1
  134. package/dist/web/public/vendor/monaco/vs/html-j_7ZTNRU.js +0 -1
  135. package/dist/web/public/vendor/monaco/vs/html.worker-CA3iAimZ.js +0 -1
  136. package/dist/web/public/vendor/monaco/vs/htmlMode-27by_KM4.js +0 -1
  137. package/dist/web/public/vendor/monaco/vs/index-049xrXrp.js +0 -1
  138. package/dist/web/public/vendor/monaco/vs/index-CBVt3dzv.js +0 -5
  139. package/dist/web/public/vendor/monaco/vs/index.js +0 -1
  140. package/dist/web/public/vendor/monaco/vs/ini-CsNwO04R.js +0 -1
  141. package/dist/web/public/vendor/monaco/vs/initialize-DL0l1TGY.js +0 -1
  142. package/dist/web/public/vendor/monaco/vs/java-CI4ZMsH9.js +0 -1
  143. package/dist/web/public/vendor/monaco/vs/javascript-DTJl4Jn1.js +0 -1
  144. package/dist/web/public/vendor/monaco/vs/json.worker-BizpAl9O.js +0 -1
  145. package/dist/web/public/vendor/monaco/vs/jsonMode-DLUiMUrI.js +0 -1
  146. package/dist/web/public/vendor/monaco/vs/julia-BwzEvaQw.js +0 -1
  147. package/dist/web/public/vendor/monaco/vs/kotlin-IUYPiTV8.js +0 -1
  148. package/dist/web/public/vendor/monaco/vs/language/css/css.worker.js +0 -66
  149. package/dist/web/public/vendor/monaco/vs/language/css/monaco.contribution.js +0 -1
  150. package/dist/web/public/vendor/monaco/vs/language/html/html.worker.js +0 -443
  151. package/dist/web/public/vendor/monaco/vs/language/html/monaco.contribution.js +0 -1
  152. package/dist/web/public/vendor/monaco/vs/language/json/json.worker.js +0 -17
  153. package/dist/web/public/vendor/monaco/vs/language/json/monaco.contribution.js +0 -1
  154. package/dist/web/public/vendor/monaco/vs/language/typescript/monaco.contribution.js +0 -1
  155. package/dist/web/public/vendor/monaco/vs/language/typescript/ts.worker.js +0 -67693
  156. package/dist/web/public/vendor/monaco/vs/less-C0eDYdqa.js +0 -2
  157. package/dist/web/public/vendor/monaco/vs/lexon-iON-Kj97.js +0 -1
  158. package/dist/web/public/vendor/monaco/vs/liquid-CLJYelW6.js +0 -1
  159. package/dist/web/public/vendor/monaco/vs/loader.js +0 -1368
  160. package/dist/web/public/vendor/monaco/vs/lspLanguageFeatures-BIkJOWLw.js +0 -2
  161. package/dist/web/public/vendor/monaco/vs/lua-DtygF91M.js +0 -1
  162. package/dist/web/public/vendor/monaco/vs/m3-CsR4AuFi.js +0 -1
  163. package/dist/web/public/vendor/monaco/vs/main-BEx-Fmlo.js +0 -15
  164. package/dist/web/public/vendor/monaco/vs/main-DsK8pnKg.js +0 -3
  165. package/dist/web/public/vendor/monaco/vs/markdown-C_rD0bIw.js +0 -1
  166. package/dist/web/public/vendor/monaco/vs/mdx-CpzZIPHF.js +0 -1
  167. package/dist/web/public/vendor/monaco/vs/mips-CiYP61RB.js +0 -1
  168. package/dist/web/public/vendor/monaco/vs/monaco.contribution-9cKT3C7t.js +0 -1
  169. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BE88ZNGY.js +0 -1
  170. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BPhsneLd.js +0 -1
  171. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BgRy6xDf.js +0 -1
  172. package/dist/web/public/vendor/monaco/vs/msdax-C38-sJlp.js +0 -1
  173. package/dist/web/public/vendor/monaco/vs/mysql-CdtbpvbG.js +0 -1
  174. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.d.ts +0 -1
  175. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.js +0 -9
  176. package/dist/web/public/vendor/monaco/vs/nls/lang/de.d.ts +0 -1
  177. package/dist/web/public/vendor/monaco/vs/nls/lang/de.js +0 -9
  178. package/dist/web/public/vendor/monaco/vs/nls/lang/es.d.ts +0 -1
  179. package/dist/web/public/vendor/monaco/vs/nls/lang/es.js +0 -9
  180. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.d.ts +0 -1
  181. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.js +0 -9
  182. package/dist/web/public/vendor/monaco/vs/nls/lang/it.d.ts +0 -1
  183. package/dist/web/public/vendor/monaco/vs/nls/lang/it.js +0 -9
  184. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.d.ts +0 -1
  185. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.js +0 -9
  186. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.d.ts +0 -1
  187. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.js +0 -9
  188. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.d.ts +0 -1
  189. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.js +0 -9
  190. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.d.ts +0 -1
  191. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.js +0 -9
  192. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.d.ts +0 -1
  193. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.js +0 -9
  194. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.d.ts +0 -1
  195. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.js +0 -9
  196. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.d.ts +0 -1
  197. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.js +0 -9
  198. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.d.ts +0 -1
  199. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.js +0 -9
  200. package/dist/web/public/vendor/monaco/vs/nls.messages-loader.js +0 -1
  201. package/dist/web/public/vendor/monaco/vs/objective-c-CntZFaHX.js +0 -1
  202. package/dist/web/public/vendor/monaco/vs/pascal-r6kuqfl_.js +0 -1
  203. package/dist/web/public/vendor/monaco/vs/pascaligo-BiXoTmXh.js +0 -1
  204. package/dist/web/public/vendor/monaco/vs/perl-DABw_TcH.js +0 -1
  205. package/dist/web/public/vendor/monaco/vs/pgsql-me_jFXeX.js +0 -1
  206. package/dist/web/public/vendor/monaco/vs/php-D_kh-9LK.js +0 -1
  207. package/dist/web/public/vendor/monaco/vs/pla-VfZjczW0.js +0 -1
  208. package/dist/web/public/vendor/monaco/vs/postiats-BBSzz8Pk.js +0 -1
  209. package/dist/web/public/vendor/monaco/vs/powerquery-Dt-g_2cc.js +0 -1
  210. package/dist/web/public/vendor/monaco/vs/powershell-B-7ap1zc.js +0 -1
  211. package/dist/web/public/vendor/monaco/vs/protobuf-BmtuEB1A.js +0 -2
  212. package/dist/web/public/vendor/monaco/vs/pug-BRpRNeEb.js +0 -1
  213. package/dist/web/public/vendor/monaco/vs/python-CqWUUgfu.js +0 -1
  214. package/dist/web/public/vendor/monaco/vs/qsharp-BzsFaUU9.js +0 -1
  215. package/dist/web/public/vendor/monaco/vs/r-f8dDdrp4.js +0 -1
  216. package/dist/web/public/vendor/monaco/vs/razor-hok5y9Km.js +0 -1
  217. package/dist/web/public/vendor/monaco/vs/redis-fvZQY4PI.js +0 -1
  218. package/dist/web/public/vendor/monaco/vs/redshift-45Et0LQi.js +0 -1
  219. package/dist/web/public/vendor/monaco/vs/restructuredtext-C7UUFKFD.js +0 -1
  220. package/dist/web/public/vendor/monaco/vs/ruby-CZO8zYTz.js +0 -1
  221. package/dist/web/public/vendor/monaco/vs/rust-Bfetafyc.js +0 -1
  222. package/dist/web/public/vendor/monaco/vs/sb-3GYllVck.js +0 -1
  223. package/dist/web/public/vendor/monaco/vs/scala-foMgrKo1.js +0 -1
  224. package/dist/web/public/vendor/monaco/vs/scheme-CHdMtr7p.js +0 -1
  225. package/dist/web/public/vendor/monaco/vs/scss-C1cmLt9V.js +0 -3
  226. package/dist/web/public/vendor/monaco/vs/shell-ClXCKCEW.js +0 -1
  227. package/dist/web/public/vendor/monaco/vs/solidity-MZ6ExpPy.js +0 -1
  228. package/dist/web/public/vendor/monaco/vs/sophia-DWkuSsPQ.js +0 -1
  229. package/dist/web/public/vendor/monaco/vs/sparql-AUGFYSyk.js +0 -1
  230. package/dist/web/public/vendor/monaco/vs/sql-32GpJSV2.js +0 -1
  231. package/dist/web/public/vendor/monaco/vs/st-CuDFIVZ_.js +0 -1
  232. package/dist/web/public/vendor/monaco/vs/swift-t-PfMj7W.js +0 -1
  233. package/dist/web/public/vendor/monaco/vs/systemverilog-Ch4vA8Yt.js +0 -1
  234. package/dist/web/public/vendor/monaco/vs/tcl-D74tq1nH.js +0 -1
  235. package/dist/web/public/vendor/monaco/vs/toggleHighContrast-qGX7E9o7.js +0 -61
  236. package/dist/web/public/vendor/monaco/vs/ts.worker-2QLmBukE.js +0 -1
  237. package/dist/web/public/vendor/monaco/vs/tsMode-B0S_kp2q.js +0 -11
  238. package/dist/web/public/vendor/monaco/vs/twig-C6taOxMV.js +0 -1
  239. package/dist/web/public/vendor/monaco/vs/typescript-_2t_511t.js +0 -1
  240. package/dist/web/public/vendor/monaco/vs/typespec-8OfoLt6R.js +0 -1
  241. package/dist/web/public/vendor/monaco/vs/vb-Dyb2648j.js +0 -1
  242. package/dist/web/public/vendor/monaco/vs/wgsl-BhLXMOR0.js +0 -298
  243. package/dist/web/public/vendor/monaco/vs/workers-BBttULjf.js +0 -1
  244. package/dist/web/public/vendor/monaco/vs/xml-cZjNDqDT.js +0 -1
  245. package/dist/web/public/vendor/monaco/vs/yaml-A1fOIdH6.js +0 -1
  246. package/dist/web/web-config.js +0 -143
  247. package/dist/web/web-config.js.map +0 -1
  248. package/docs/DEPLOYMENT.md +0 -382
  249. package/docs/MODEL_FINETUNING.md +0 -405
@@ -1,292 +1,292 @@
1
- # 飞虹 Code v7.0.0 技术说明书
2
-
3
- **版本**:7.0.0
4
- **日期**:2026年8月24日
5
- **研发团队**:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心
6
-
7
- ---
8
-
9
- ## 1. 产品概述
10
-
11
- 飞虹 Code(feihong-code)是一款终端 AI 编程智能体,对标 Muse Code / Cursor CLI,支持多模型路由、企业级 RBAC 审计、全自动 SWE Agent,支持离线私有化部署。
12
-
13
- ### 1.1 核心能力
14
-
15
- - 自然语言到代码变更:将用户需求转化为真实、可验证的代码仓库变更
16
- - 多模型路由:支持 DeepSeek、通义千问、Ollama、OpenAI 等多种模型
17
- - 全自动 SWE Agent:自主规划、执行、验证、修复
18
- - 企业级安全:RBAC 权限、审计日志、工作区隔离
19
- - 全平台支持:Web 控制台、Electron 桌面版、CLI 命令行
20
-
21
- ### 1.2 技术栈
22
-
23
- | 层级 | 技术 | 版本 |
24
- |------|------|------|
25
- | 运行时 | Node.js | 18+ |
26
- | 语言 | TypeScript | 5.x |
27
- | Web 框架 | Express | 4.x |
28
- | 数据校验 | Zod | 3.x |
29
- | 前端 | 原生 HTML/CSS/JS | - |
30
- | 桌面端 | Electron | 41.x |
31
- | 打包 | electron-builder | 26.x |
32
- | 构建 | tsc | 5.x |
33
-
34
- ---
35
-
36
- ## 2. 系统架构
37
-
38
- ### 2.1 整体架构
39
-
40
- ```
41
- ┌─────────────────────────────────────────────────┐
42
- │ 用户界面层 │
43
- │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
44
- │ │ Web 控制台 │ │ 桌面版 │ │ CLI 命令行 │ │
45
- │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
46
- └───────┼─────────────┼───────────────┼──────────┘
47
- │ │ │
48
- └─────────────┼───────────────┘
49
-
50
- ┌───────▼───────┐
51
- │ Express API │
52
- │ 服务层 │
53
- └───────┬───────┘
54
-
55
- ┌─────────────┼─────────────┐
56
- │ │ │
57
- ┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
58
- │ 任务队列 │ │ 模型路由 │ │ 权限审计 │
59
- │ TaskQueue │ │ Router │ │ Security │
60
- └─────┬─────┘ └─────┬─────┘ └───────────┘
61
- │ │
62
- ┌─────▼─────────────▼─────┐
63
- │ SWE Agent 编排层 │
64
- │ Orchestrator │
65
- └─────┬───────────────────┘
66
-
67
- ┌─────▼───────────────────┐
68
- │ 工具执行层 │
69
- │ 文件操作 / Shell / 浏览器│
70
- └─────────────────────────┘
71
- ```
72
-
73
- ### 2.2 核心模块
74
-
75
- #### 2.2.1 Agent 编排层(src/agent/)
76
-
77
- - **orchestrator.ts**:核心编排器,管理对话循环、工具调用、错误恢复
78
- - **prompts.ts**:系统提示词,定义 AI 行为边界和能力要求
79
- - **self-heal.ts**:自我修复模块,错误分类、修复建议生成
80
- - **code-writer.ts**:代码生成模块
81
- - **swe-agent.ts**:SWE Agent 实现
82
- - **experience.ts**:经验检索与复用
83
-
84
- #### 2.2.2 Web 服务层(src/web/)
85
-
86
- - **server.ts**:Express 服务,API 路由、静态文件服务
87
- - **task-queue.ts**:任务队列,并发控制、任务持久化、状态管理
88
- - **public/**:前端静态资源(HTML/CSS/JS)
89
-
90
- #### 2.2.3 CLI 层(src/cli/)
91
-
92
- - **index.ts**:CLI 入口,命令解析
93
- - **commands.ts**:命令实现(serve/run/init 等)
94
- - **version.ts**:版本号集中定义
95
- - **repl.ts**:交互式 REPL
96
-
97
- #### 2.2.4 桌面端(electron/)
98
-
99
- - **main.js**:Electron 主进程,窗口管理、服务器启动、IPC 通信
100
- - **preload.js**:预加载脚本,安全暴露 API 给渲染进程
101
-
102
- #### 2.2.5 本地语音识别(funasr-server/)
103
-
104
- - **app.py**:FastAPI 服务,基于 faster-whisper
105
- - **requirements.txt**:Python 依赖
106
- - **启动语音识别服务.bat**:Windows 一键启动
107
-
108
- ---
109
-
110
- ## 3. 核心机制
111
-
112
- ### 3.1 任务执行流程
113
-
114
- 1. **任务提交**:用户通过 Web/桌面/CLI 提交任务
115
- 2. **任务入队**:TaskQueue 接收任务,设置状态为 queued
116
- 3. **任务执行**:并发控制下取出任务,调用 Orchestrator
117
- 4. **编排循环**:Orchestrator 管理模型调用、工具执行、结果验证
118
- 5. **错误恢复**:连续错误触发 self-heal,生成修复建议并重试
119
- 6. **任务完成**:结果持久化,触发 webhook/通知
120
-
121
- ### 3.2 对话流渲染机制
122
-
123
- - **conversation**:完整对话历史,上限 300 条
124
- - **steps**:思维链路步骤,上限 500 条
125
- - **实时轮询**:前端每 1 秒轮询任务状态
126
- - **纯文本输出**:前端 stripMarkdown 硬防线,剥离所有格式符号
127
- - **思考过程展示**:从 steps 中提取 model.response 内容实时显示
128
-
129
- ### 3.3 自我修复机制
130
-
131
- - **错误分类**:compile-error / runtime-error / build-error / timeout 等 11 类
132
- - **连续错误检测**:遍历所有连续错误消息分类记录
133
- - **修复建议生成**:基于错误类型生成具体排查步骤
134
- - **最大重试次数**:默认 3 次,可配置
135
- - **结构化报告**:错误类型 + 最后错误 + 修复建议 + 下一步操作
136
-
137
- ### 3.4 权限与安全
138
-
139
- - **RBAC 权限**:读范围、写权限、Shell 权限、网络权限、浏览器权限
140
- - **工作区隔离**:文件操作限制在工作区范围内
141
- - **审计日志**:所有操作记录到 event-log
142
- - **安全审批**:危险操作需要用户确认
143
-
144
- ---
145
-
146
- ## 4. API 接口
147
-
148
- ### 4.1 核心 API
149
-
150
- | 方法 | 路径 | 说明 |
151
- |------|------|------|
152
- | GET | /api/health | 健康检查 |
153
- | POST | /api/auth/login | 登录 |
154
- | GET | /api/tasks | 任务列表 |
155
- | POST | /api/tasks | 创建任务 |
156
- | GET | /api/tasks/:id | 任务详情 |
157
- | POST | /api/tasks/:id/cancel | 取消任务 |
158
- | DELETE | /api/tasks/:id | 删除任务 |
159
- | POST | /api/tasks/:id/continue | 继续任务 |
160
- | GET | /api/models | 可用模型列表 |
161
- | POST | /api/computer/screenshot | 电脑截图 |
162
- | POST | /api/computer/mouse/move | 鼠标移动 |
163
- | POST | /api/computer/mouse/click | 鼠标点击 |
164
- | POST | /api/computer/keyboard/type | 键盘输入 |
165
- | POST | /api/computer/keyboard/press | 按键 |
166
-
167
- ### 4.2 本地语音识别 API
168
-
169
- | 方法 | 路径 | 说明 |
170
- |------|------|------|
171
- | GET | /health | 健康检查 |
172
- | POST | /api/recognize | 语音识别(文件上传) |
173
- | POST | /api/recognize-bytes | 语音识别(字节流) |
174
-
175
- ---
176
-
177
- ## 5. 部署方式
178
-
179
- ### 5.1 npm 全局安装
180
-
181
- ```bash
182
- npm install -g feihong-code
183
- fhcode serve
184
- ```
185
-
186
- ### 5.2 源码部署
187
-
188
- ```bash
189
- git clone https://github.com/wch887292/feihong-code.git
190
- cd feihong-code
191
- npm install
192
- npm run build
193
- node dist/cli/index.js serve
194
- ```
195
-
196
- ### 5.3 桌面版
197
-
198
- ```bash
199
- # 一键启动
200
- 双击 一键启动桌面版.bat
201
-
202
- # 或手动
203
- npm run build
204
- npm run electron
205
- ```
206
-
207
- ### 5.4 本地语音识别服务
208
-
209
- ```bash
210
- cd funasr-server
211
- 双击 启动语音识别服务.bat
212
- # 服务地址:http://localhost:8082
213
- ```
214
-
215
- ---
216
-
217
- ## 6. 配置说明
218
-
219
- ### 6.1 环境变量
220
-
221
- | 变量 | 说明 | 默认值 |
222
- |------|------|--------|
223
- | FH_WEB_PORT | Web 服务端口 | 8080 |
224
- | FH_WEB_TOKEN | 访问令牌 | 自动生成 |
225
- | FH_HOME | 数据目录 | ~/.feihong-code |
226
- | FH_TASK_CONCURRENCY | 任务并发数 | 2 |
227
- | FH_TASK_PERSIST_DIR | 任务持久化目录 | FH_HOME/tasks |
228
- | FH_TASK_WEBHOOK_URL | 任务 Webhook | - |
229
-
230
- ### 6.2 模型配置
231
-
232
- 支持多模型路由,可在 Web 控制台配置:
233
- - DeepSeek(deepseek-chat / deepseek-coder)
234
- - 通义千问(qwen-turbo / qwen-max)
235
- - Ollama(本地模型)
236
- - OpenAI 兼容接口
237
-
238
- ---
239
-
240
- ## 7. 扩展开发
241
-
242
- ### 7.1 新增工具
243
-
244
- 在 `src/agent/tools/` 下新增工具定义,遵循 Zod schema 规范。
245
-
246
- ### 7.2 新增技能
247
-
248
- 在工作区 `.feihong/skills/` 下创建技能目录,包含 SKILL.md 和脚本。
249
-
250
- ### 7.3 插件系统
251
-
252
- 模板库支持自定义来源,通过节点连接外部插件系统。
253
-
254
- ---
255
-
256
- ## 8. 性能指标
257
-
258
- | 指标 | 数值 |
259
- |------|------|
260
- | 启动时间 | < 3 秒 |
261
- | 任务并发 | 默认 2,可配置 |
262
- | 对话历史 | 300 条 |
263
- | 思维步骤 | 500 条 |
264
- | 前端轮询间隔 | 1 秒 |
265
- | 构建时间 | < 10 秒 |
266
- | 桌面版内存 | ~200MB |
267
-
268
- ---
269
-
270
- ## 9. 目录结构
271
-
272
- ```
273
- feihong-code/
274
- ├── src/ # 源码
275
- │ ├── agent/ # Agent 核心
276
- │ ├── cli/ # CLI 命令行
277
- │ ├── models/ # 模型抽象
278
- │ ├── runtime/ # 运行时
279
- │ ├── shared/ # 共享工具
280
- │ └── web/ # Web 服务
281
- ├── electron/ # Electron 桌面端
282
- ├── funasr-server/ # 本地语音识别服务
283
- ├── docs/ # 文档
284
- ├── dist/ # 构建输出
285
- ├── package.json
286
- ├── tool-schema.json
287
- └── README.md
288
- ```
289
-
290
- ---
291
-
292
- *晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心*
1
+ # 飞虹 Code v7.0.0 技术说明书
2
+
3
+ **版本**:7.0.0
4
+ **日期**:2026年8月24日
5
+ **研发团队**:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心
6
+
7
+ ---
8
+
9
+ ## 1. 产品概述
10
+
11
+ 飞虹 Code(feihong-code)是一款终端 AI 编程智能体,对标 Muse Code / Cursor CLI,支持多模型路由、企业级 RBAC 审计、全自动 SWE Agent,支持离线私有化部署。
12
+
13
+ ### 1.1 核心能力
14
+
15
+ - 自然语言到代码变更:将用户需求转化为真实、可验证的代码仓库变更
16
+ - 多模型路由:支持 DeepSeek、通义千问、Ollama、OpenAI 等多种模型
17
+ - 全自动 SWE Agent:自主规划、执行、验证、修复
18
+ - 企业级安全:RBAC 权限、审计日志、工作区隔离
19
+ - 全平台支持:Web 控制台、Electron 桌面版、CLI 命令行
20
+
21
+ ### 1.2 技术栈
22
+
23
+ | 层级 | 技术 | 版本 |
24
+ |------|------|------|
25
+ | 运行时 | Node.js | 18+ |
26
+ | 语言 | TypeScript | 5.x |
27
+ | Web 框架 | Express | 4.x |
28
+ | 数据校验 | Zod | 3.x |
29
+ | 前端 | 原生 HTML/CSS/JS | - |
30
+ | 桌面端 | Electron | 41.x |
31
+ | 打包 | electron-builder | 26.x |
32
+ | 构建 | tsc | 5.x |
33
+
34
+ ---
35
+
36
+ ## 2. 系统架构
37
+
38
+ ### 2.1 整体架构
39
+
40
+ ```
41
+ ┌─────────────────────────────────────────────────┐
42
+ │ 用户界面层 │
43
+ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
44
+ │ │ Web 控制台 │ │ 桌面版 │ │ CLI 命令行 │ │
45
+ │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
46
+ └───────┼─────────────┼───────────────┼──────────┘
47
+ │ │ │
48
+ └─────────────┼───────────────┘
49
+
50
+ ┌───────▼───────┐
51
+ │ Express API │
52
+ │ 服务层 │
53
+ └───────┬───────┘
54
+
55
+ ┌─────────────┼─────────────┐
56
+ │ │ │
57
+ ┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
58
+ │ 任务队列 │ │ 模型路由 │ │ 权限审计 │
59
+ │ TaskQueue │ │ Router │ │ Security │
60
+ └─────┬─────┘ └─────┬─────┘ └───────────┘
61
+ │ │
62
+ ┌─────▼─────────────▼─────┐
63
+ │ SWE Agent 编排层 │
64
+ │ Orchestrator │
65
+ └─────┬───────────────────┘
66
+
67
+ ┌─────▼───────────────────┐
68
+ │ 工具执行层 │
69
+ │ 文件操作 / Shell / 浏览器│
70
+ └─────────────────────────┘
71
+ ```
72
+
73
+ ### 2.2 核心模块
74
+
75
+ #### 2.2.1 Agent 编排层(src/agent/)
76
+
77
+ - **orchestrator.ts**:核心编排器,管理对话循环、工具调用、错误恢复
78
+ - **prompts.ts**:系统提示词,定义 AI 行为边界和能力要求
79
+ - **self-heal.ts**:自我修复模块,错误分类、修复建议生成
80
+ - **code-writer.ts**:代码生成模块
81
+ - **swe-agent.ts**:SWE Agent 实现
82
+ - **experience.ts**:经验检索与复用
83
+
84
+ #### 2.2.2 Web 服务层(src/web/)
85
+
86
+ - **server.ts**:Express 服务,API 路由、静态文件服务
87
+ - **task-queue.ts**:任务队列,并发控制、任务持久化、状态管理
88
+ - **public/**:前端静态资源(HTML/CSS/JS)
89
+
90
+ #### 2.2.3 CLI 层(src/cli/)
91
+
92
+ - **index.ts**:CLI 入口,命令解析
93
+ - **commands.ts**:命令实现(serve/run/init 等)
94
+ - **version.ts**:版本号集中定义
95
+ - **repl.ts**:交互式 REPL
96
+
97
+ #### 2.2.4 桌面端(electron/)
98
+
99
+ - **main.js**:Electron 主进程,窗口管理、服务器启动、IPC 通信
100
+ - **preload.js**:预加载脚本,安全暴露 API 给渲染进程
101
+
102
+ #### 2.2.5 本地语音识别(funasr-server/)
103
+
104
+ - **app.py**:FastAPI 服务,基于 faster-whisper
105
+ - **requirements.txt**:Python 依赖
106
+ - **启动语音识别服务.bat**:Windows 一键启动
107
+
108
+ ---
109
+
110
+ ## 3. 核心机制
111
+
112
+ ### 3.1 任务执行流程
113
+
114
+ 1. **任务提交**:用户通过 Web/桌面/CLI 提交任务
115
+ 2. **任务入队**:TaskQueue 接收任务,设置状态为 queued
116
+ 3. **任务执行**:并发控制下取出任务,调用 Orchestrator
117
+ 4. **编排循环**:Orchestrator 管理模型调用、工具执行、结果验证
118
+ 5. **错误恢复**:连续错误触发 self-heal,生成修复建议并重试
119
+ 6. **任务完成**:结果持久化,触发 webhook/通知
120
+
121
+ ### 3.2 对话流渲染机制
122
+
123
+ - **conversation**:完整对话历史,上限 300 条
124
+ - **steps**:思维链路步骤,上限 500 条
125
+ - **实时轮询**:前端每 1 秒轮询任务状态
126
+ - **纯文本输出**:前端 stripMarkdown 硬防线,剥离所有格式符号
127
+ - **思考过程展示**:从 steps 中提取 model.response 内容实时显示
128
+
129
+ ### 3.3 自我修复机制
130
+
131
+ - **错误分类**:compile-error / runtime-error / build-error / timeout 等 11 类
132
+ - **连续错误检测**:遍历所有连续错误消息分类记录
133
+ - **修复建议生成**:基于错误类型生成具体排查步骤
134
+ - **最大重试次数**:默认 3 次,可配置
135
+ - **结构化报告**:错误类型 + 最后错误 + 修复建议 + 下一步操作
136
+
137
+ ### 3.4 权限与安全
138
+
139
+ - **RBAC 权限**:读范围、写权限、Shell 权限、网络权限、浏览器权限
140
+ - **工作区隔离**:文件操作限制在工作区范围内
141
+ - **审计日志**:所有操作记录到 event-log
142
+ - **安全审批**:危险操作需要用户确认
143
+
144
+ ---
145
+
146
+ ## 4. API 接口
147
+
148
+ ### 4.1 核心 API
149
+
150
+ | 方法 | 路径 | 说明 |
151
+ |------|------|------|
152
+ | GET | /api/health | 健康检查 |
153
+ | POST | /api/auth/login | 登录 |
154
+ | GET | /api/tasks | 任务列表 |
155
+ | POST | /api/tasks | 创建任务 |
156
+ | GET | /api/tasks/:id | 任务详情 |
157
+ | POST | /api/tasks/:id/cancel | 取消任务 |
158
+ | DELETE | /api/tasks/:id | 删除任务 |
159
+ | POST | /api/tasks/:id/continue | 继续任务 |
160
+ | GET | /api/models | 可用模型列表 |
161
+ | POST | /api/computer/screenshot | 电脑截图 |
162
+ | POST | /api/computer/mouse/move | 鼠标移动 |
163
+ | POST | /api/computer/mouse/click | 鼠标点击 |
164
+ | POST | /api/computer/keyboard/type | 键盘输入 |
165
+ | POST | /api/computer/keyboard/press | 按键 |
166
+
167
+ ### 4.2 本地语音识别 API
168
+
169
+ | 方法 | 路径 | 说明 |
170
+ |------|------|------|
171
+ | GET | /health | 健康检查 |
172
+ | POST | /api/recognize | 语音识别(文件上传) |
173
+ | POST | /api/recognize-bytes | 语音识别(字节流) |
174
+
175
+ ---
176
+
177
+ ## 5. 部署方式
178
+
179
+ ### 5.1 npm 全局安装
180
+
181
+ ```bash
182
+ npm install -g feihong-code
183
+ fhcode serve
184
+ ```
185
+
186
+ ### 5.2 源码部署
187
+
188
+ ```bash
189
+ git clone https://github.com/wch887292/feihong-code.git
190
+ cd feihong-code
191
+ npm install
192
+ npm run build
193
+ node dist/cli/index.js serve
194
+ ```
195
+
196
+ ### 5.3 桌面版
197
+
198
+ ```bash
199
+ # 一键启动
200
+ 双击 一键启动桌面版.bat
201
+
202
+ # 或手动
203
+ npm run build
204
+ npm run electron
205
+ ```
206
+
207
+ ### 5.4 本地语音识别服务
208
+
209
+ ```bash
210
+ cd funasr-server
211
+ 双击 启动语音识别服务.bat
212
+ # 服务地址:http://localhost:8082
213
+ ```
214
+
215
+ ---
216
+
217
+ ## 6. 配置说明
218
+
219
+ ### 6.1 环境变量
220
+
221
+ | 变量 | 说明 | 默认值 |
222
+ |------|------|--------|
223
+ | FH_WEB_PORT | Web 服务端口 | 8080 |
224
+ | FH_WEB_TOKEN | 访问令牌 | 自动生成 |
225
+ | FH_HOME | 数据目录 | ~/.feihong-code |
226
+ | FH_TASK_CONCURRENCY | 任务并发数 | 2 |
227
+ | FH_TASK_PERSIST_DIR | 任务持久化目录 | FH_HOME/tasks |
228
+ | FH_TASK_WEBHOOK_URL | 任务 Webhook | - |
229
+
230
+ ### 6.2 模型配置
231
+
232
+ 支持多模型路由,可在 Web 控制台配置:
233
+ - DeepSeek(deepseek-chat / deepseek-coder)
234
+ - 通义千问(qwen-turbo / qwen-max)
235
+ - Ollama(本地模型)
236
+ - OpenAI 兼容接口
237
+
238
+ ---
239
+
240
+ ## 7. 扩展开发
241
+
242
+ ### 7.1 新增工具
243
+
244
+ 在 `src/agent/tools/` 下新增工具定义,遵循 Zod schema 规范。
245
+
246
+ ### 7.2 新增技能
247
+
248
+ 在工作区 `.feihong/skills/` 下创建技能目录,包含 SKILL.md 和脚本。
249
+
250
+ ### 7.3 插件系统
251
+
252
+ 模板库支持自定义来源,通过节点连接外部插件系统。
253
+
254
+ ---
255
+
256
+ ## 8. 性能指标
257
+
258
+ | 指标 | 数值 |
259
+ |------|------|
260
+ | 启动时间 | < 3 秒 |
261
+ | 任务并发 | 默认 2,可配置 |
262
+ | 对话历史 | 300 条 |
263
+ | 思维步骤 | 500 条 |
264
+ | 前端轮询间隔 | 1 秒 |
265
+ | 构建时间 | < 10 秒 |
266
+ | 桌面版内存 | ~200MB |
267
+
268
+ ---
269
+
270
+ ## 9. 目录结构
271
+
272
+ ```
273
+ feihong-code/
274
+ ├── src/ # 源码
275
+ │ ├── agent/ # Agent 核心
276
+ │ ├── cli/ # CLI 命令行
277
+ │ ├── models/ # 模型抽象
278
+ │ ├── runtime/ # 运行时
279
+ │ ├── shared/ # 共享工具
280
+ │ └── web/ # Web 服务
281
+ ├── electron/ # Electron 桌面端
282
+ ├── funasr-server/ # 本地语音识别服务
283
+ ├── docs/ # 文档
284
+ ├── dist/ # 构建输出
285
+ ├── package.json
286
+ ├── tool-schema.json
287
+ └── README.md
288
+ ```
289
+
290
+ ---
291
+
292
+ *晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心*