feihong-code 7.5.0 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/.github/workflows/ci.yml +193 -180
  2. package/.github/workflows/release.yml +203 -200
  3. package/.github/workflows/swebench-real.yml +84 -0
  4. package/CHANGELOG.md +117 -94
  5. package/CONTRIBUTING.md +9 -2
  6. package/README.md +636 -609
  7. package/README.self-evolve.md +279 -274
  8. package/dist/agent/change-manager.js +1 -1
  9. package/dist/agent/code-rag.js +1 -1
  10. package/dist/agent/code-review.js +1 -1
  11. package/dist/agent/code-writer.js +1 -1
  12. package/dist/agent/completion-postprocess.js +1 -1
  13. package/dist/agent/context-compactor.js +11 -0
  14. package/dist/agent/context-compactor.js.map +1 -1
  15. package/dist/agent/custom-agent.js +52 -52
  16. package/dist/agent/design-to-code.js +40 -40
  17. package/dist/agent/experience.js +1 -1
  18. package/dist/agent/layered-memory.js +1 -1
  19. package/dist/agent/lint.js +1 -1
  20. package/dist/agent/multi-agent.js +44 -44
  21. package/dist/agent/orchestrator.js +93 -18
  22. package/dist/agent/orchestrator.js.map +1 -1
  23. package/dist/agent/parallel-orchestrator.js +1 -1
  24. package/dist/agent/planner.js +8 -3
  25. package/dist/agent/planner.js.map +1 -1
  26. package/dist/agent/prompts.js +2 -2
  27. package/dist/agent/quality-gate.js +1 -1
  28. package/dist/agent/repo-context.js +1 -1
  29. package/dist/agent/repo-reader.js +1 -1
  30. package/dist/agent/repo-underwriter.js +1 -1
  31. package/dist/agent/self-correction.js +1 -1
  32. package/dist/agent/self-heal.js +5 -0
  33. package/dist/agent/self-heal.js.map +1 -1
  34. package/dist/agent/self-improver.js +1 -1
  35. package/dist/agent/subagent-summary.js +1 -1
  36. package/dist/agent/subagent.js +1 -1
  37. package/dist/agent/swe-agent.js +1 -1
  38. package/dist/agent/swe-verifier.js +1 -1
  39. package/dist/agent/symbol-index.js +1 -1
  40. package/dist/agent/team.js +1 -1
  41. package/dist/agent/type-checker.js +1 -1
  42. package/dist/cli/commands.js +7 -0
  43. package/dist/cli/commands.js.map +1 -1
  44. package/dist/cli/index.js +57 -2
  45. package/dist/cli/index.js.map +1 -1
  46. package/dist/cli/repl.js +1 -1
  47. package/dist/cli/run.js +40 -3
  48. package/dist/cli/run.js.map +1 -1
  49. package/dist/cli/self-evolve-cli.js +168 -0
  50. package/dist/cli/tui-run.js +1 -1
  51. package/dist/cli/tui.js +1 -1
  52. package/dist/cli/version.js +3 -3
  53. package/dist/cli/version.js.map +1 -1
  54. package/dist/enterprise/audit.js +1 -1
  55. package/dist/enterprise/index.js +1 -1
  56. package/dist/enterprise/policy.js +1 -1
  57. package/dist/enterprise/quota.js +1 -1
  58. package/dist/enterprise/tenant.js +1 -1
  59. package/dist/harness/executor.js +1 -1
  60. package/dist/harness/index.js +1 -1
  61. package/dist/harness/loader.js +1 -1
  62. package/dist/harness/types.js +1 -1
  63. package/dist/harness/verifier.js +52 -12
  64. package/dist/harness/verifier.js.map +1 -1
  65. package/dist/hello.js +14 -0
  66. package/dist/hello.js.map +1 -0
  67. package/dist/integrations/feishu-bridge.js +348 -0
  68. package/dist/integrations/feishu-bridge.js.map +1 -0
  69. package/dist/integrations/github-mcp.js +137 -0
  70. package/dist/integrations/github-mcp.js.map +1 -0
  71. package/dist/integrations/wechat-bridge.js +499 -0
  72. package/dist/integrations/wechat-bridge.js.map +1 -0
  73. package/dist/integrations/yuanbao-bridge.js +326 -0
  74. package/dist/integrations/yuanbao-bridge.js.map +1 -0
  75. package/dist/lsp/lsp-client.js +1 -1
  76. package/dist/models/model-router.js +1 -1
  77. package/dist/models/model.dto.js +1 -1
  78. package/dist/models/providers/ollama.provider.js +1 -1
  79. package/dist/models/providers/openai-compatible.provider.js +1 -1
  80. package/dist/plugins/plugin-loader.js +1 -1
  81. package/dist/runtime/event-log.js +1 -1
  82. package/dist/runtime/git.js +1 -1
  83. package/dist/runtime/hooks.js +71 -4
  84. package/dist/runtime/hooks.js.map +1 -1
  85. package/dist/runtime/session-persist.js +1 -1
  86. package/dist/runtime/worktree.js +1 -1
  87. package/dist/self-evolve/hook.ts +80 -0
  88. package/dist/self-evolve/manager.d.ts +8 -0
  89. package/dist/self-evolve/manager.js +517 -401
  90. package/dist/self-evolve/self-heal-scheduler.js +160 -0
  91. package/dist/self-evolve/self-heal-scheduler.js.map +1 -0
  92. package/dist/shared/concurrency.js +1 -1
  93. package/dist/shared/config.js +4 -2
  94. package/dist/shared/config.js.map +1 -1
  95. package/dist/shared/errors.js +1 -1
  96. package/dist/shared/i18n.js +1 -1
  97. package/dist/shared/i18n.js.map +1 -1
  98. package/dist/shared/secure-store.js +12 -5
  99. package/dist/shared/secure-store.js.map +1 -1
  100. package/dist/shared/types.js +1 -1
  101. package/dist/skills/goal.js +1 -1
  102. package/dist/skills/grill.js +1 -1
  103. package/dist/skills/plan.js +1 -1
  104. package/dist/skills/pua-hooks.js +273 -0
  105. package/dist/skills/pua-hooks.js.map +1 -0
  106. package/dist/skills/self-heal.js +9 -3
  107. package/dist/skills/self-heal.js.map +1 -1
  108. package/dist/skills/skill-loader.js +1 -1
  109. package/dist/skills/skill-market.js +84 -8
  110. package/dist/skills/skill-market.js.map +1 -1
  111. package/dist/tools/analysis/code-analyzer.js +1 -1
  112. package/dist/tools/file/edit.tool.js +18 -3
  113. package/dist/tools/file/edit.tool.js.map +1 -1
  114. package/dist/tools/file/list.tool.js +1 -1
  115. package/dist/tools/file/read.tool.js +1 -1
  116. package/dist/tools/file/write.tool.js +1 -1
  117. package/dist/tools/generator/code-generator.js +1 -1
  118. package/dist/tools/generator/test-generator.js +1 -1
  119. package/dist/tools/index.js +1 -1
  120. package/dist/tools/mcp/index.js +1 -1
  121. package/dist/tools/mcp/mcp-client.js +1 -1
  122. package/dist/tools/safe-path.js +1 -1
  123. package/dist/tools/search/grep.tool.js +1 -1
  124. package/dist/tools/shell/exec.js +1 -1
  125. package/dist/tools/shell/run-shell.tool.js +1 -1
  126. package/dist/tools/skills/load-skill.tool.js +1 -1
  127. package/dist/tools/tool.registry.js +10 -1
  128. package/dist/tools/tool.registry.js.map +1 -1
  129. package/dist/tools/verify/build-check.tool.js +1 -1
  130. package/dist/tools/verify/test-run.tool.js +1 -1
  131. package/dist/tools/web/web.tool.js +1 -1
  132. package/dist/voice/voice-programming.js +32 -6
  133. package/dist/voice/voice-programming.js.map +1 -1
  134. package/dist/web/auth.js +34 -2
  135. package/dist/web/auth.js.map +1 -1
  136. package/dist/web/channels.js +1 -1
  137. package/dist/web/public/css/style.css +1751 -1724
  138. package/dist/web/public/index.html +1243 -1242
  139. package/dist/web/public/js/api.js +558 -555
  140. package/dist/web/public/js/app.js +2233 -2210
  141. package/dist/web/public/js/mock-api.js +259 -234
  142. package/dist/web/public/js/monaco-editor.js +363 -363
  143. package/dist/web/public/js/ui.js +2217 -2251
  144. package/dist/web/public/js/utils.js +214 -214
  145. package/dist/web/public/manifest.json +59 -59
  146. package/dist/web/public/service-worker.js +149 -173
  147. package/dist/web/public/vendor/monaco/vs/abap-D-t0cyap.js +1 -0
  148. package/dist/web/public/vendor/monaco/vs/apex-CcIm7xu6.js +1 -0
  149. package/dist/web/public/vendor/monaco/vs/assets/css.worker-URu8fCFR.js +97 -0
  150. package/dist/web/public/vendor/monaco/vs/assets/editor.worker-lj3bdIIn.js +30 -0
  151. package/dist/web/public/vendor/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js +30 -0
  152. package/dist/web/public/vendor/monaco/vs/assets/html.worker-D1SL3iM8.js +474 -0
  153. package/dist/web/public/vendor/monaco/vs/assets/json.worker-CoJx_OPf.js +62 -0
  154. package/dist/web/public/vendor/monaco/vs/assets/ts.worker-BWKtMYOk.js +67722 -0
  155. package/dist/web/public/vendor/monaco/vs/azcli-BA0tQDCg.js +1 -0
  156. package/dist/web/public/vendor/monaco/vs/basic-languages/monaco.contribution.js +1 -0
  157. package/dist/web/public/vendor/monaco/vs/bat-C397hTD6.js +1 -0
  158. package/dist/web/public/vendor/monaco/vs/bicep-DF5aW17k.js +2 -0
  159. package/dist/web/public/vendor/monaco/vs/cameligo-plsz8qhj.js +1 -0
  160. package/dist/web/public/vendor/monaco/vs/clojure-Y2auQMzK.js +1 -0
  161. package/dist/web/public/vendor/monaco/vs/coffee-Bu45yuWE.js +1 -0
  162. package/dist/web/public/vendor/monaco/vs/cpp-CkKPQIni.js +1 -0
  163. package/dist/web/public/vendor/monaco/vs/csharp-CX28MZyh.js +1 -0
  164. package/dist/web/public/vendor/monaco/vs/csp-D8uWnyxW.js +1 -0
  165. package/dist/web/public/vendor/monaco/vs/css-CaeNmE3S.js +3 -0
  166. package/dist/web/public/vendor/monaco/vs/css.worker-CyhWkhHo.js +1 -0
  167. package/dist/web/public/vendor/monaco/vs/cssMode-CV6Ay48H.js +1 -0
  168. package/dist/web/public/vendor/monaco/vs/cypher-DVThT8BS.js +1 -0
  169. package/dist/web/public/vendor/monaco/vs/dart-CmGfCvrO.js +1 -0
  170. package/dist/web/public/vendor/monaco/vs/dockerfile-CZqqYdch.js +1 -0
  171. package/dist/web/public/vendor/monaco/vs/ecl-30fUercY.js +1 -0
  172. package/dist/web/public/vendor/monaco/vs/editor/editor.main.css +1 -0
  173. package/dist/web/public/vendor/monaco/vs/editor/editor.main.js +1 -0
  174. package/dist/web/public/vendor/monaco/vs/editor/editor.worker.js +1 -0
  175. package/dist/web/public/vendor/monaco/vs/editor-KLE6jdfb.js +831 -0
  176. package/dist/web/public/vendor/monaco/vs/editor.js +1 -0
  177. package/dist/web/public/vendor/monaco/vs/editorWorkerHost-fVE1cjcC.js +35 -0
  178. package/dist/web/public/vendor/monaco/vs/elixir-xjPaIfzF.js +1 -0
  179. package/dist/web/public/vendor/monaco/vs/flow9-DqtmStfK.js +1 -0
  180. package/dist/web/public/vendor/monaco/vs/freemarker2-FWreY7v7.js +3 -0
  181. package/dist/web/public/vendor/monaco/vs/fsharp-BOMdg4U1.js +1 -0
  182. package/dist/web/public/vendor/monaco/vs/go-D_hbi-Jt.js +1 -0
  183. package/dist/web/public/vendor/monaco/vs/graphql-CKUU4kLG.js +1 -0
  184. package/dist/web/public/vendor/monaco/vs/handlebars-CZi4pHCH.js +1 -0
  185. package/dist/web/public/vendor/monaco/vs/hcl-DTaboeZW.js +1 -0
  186. package/dist/web/public/vendor/monaco/vs/html-j_7ZTNRU.js +1 -0
  187. package/dist/web/public/vendor/monaco/vs/html.worker-CA3iAimZ.js +1 -0
  188. package/dist/web/public/vendor/monaco/vs/htmlMode-27by_KM4.js +1 -0
  189. package/dist/web/public/vendor/monaco/vs/index-049xrXrp.js +1 -0
  190. package/dist/web/public/vendor/monaco/vs/index-CBVt3dzv.js +5 -0
  191. package/dist/web/public/vendor/monaco/vs/index.js +1 -0
  192. package/dist/web/public/vendor/monaco/vs/ini-CsNwO04R.js +1 -0
  193. package/dist/web/public/vendor/monaco/vs/initialize-DL0l1TGY.js +1 -0
  194. package/dist/web/public/vendor/monaco/vs/java-CI4ZMsH9.js +1 -0
  195. package/dist/web/public/vendor/monaco/vs/javascript-DTJl4Jn1.js +1 -0
  196. package/dist/web/public/vendor/monaco/vs/json.worker-BizpAl9O.js +1 -0
  197. package/dist/web/public/vendor/monaco/vs/jsonMode-DLUiMUrI.js +1 -0
  198. package/dist/web/public/vendor/monaco/vs/julia-BwzEvaQw.js +1 -0
  199. package/dist/web/public/vendor/monaco/vs/kotlin-IUYPiTV8.js +1 -0
  200. package/dist/web/public/vendor/monaco/vs/language/css/css.worker.js +66 -0
  201. package/dist/web/public/vendor/monaco/vs/language/css/monaco.contribution.js +1 -0
  202. package/dist/web/public/vendor/monaco/vs/language/html/html.worker.js +443 -0
  203. package/dist/web/public/vendor/monaco/vs/language/html/monaco.contribution.js +1 -0
  204. package/dist/web/public/vendor/monaco/vs/language/json/json.worker.js +17 -0
  205. package/dist/web/public/vendor/monaco/vs/language/json/monaco.contribution.js +1 -0
  206. package/dist/web/public/vendor/monaco/vs/language/typescript/monaco.contribution.js +1 -0
  207. package/dist/web/public/vendor/monaco/vs/language/typescript/ts.worker.js +67693 -0
  208. package/dist/web/public/vendor/monaco/vs/less-C0eDYdqa.js +2 -0
  209. package/dist/web/public/vendor/monaco/vs/lexon-iON-Kj97.js +1 -0
  210. package/dist/web/public/vendor/monaco/vs/liquid-CLJYelW6.js +1 -0
  211. package/dist/web/public/vendor/monaco/vs/loader.js +1368 -0
  212. package/dist/web/public/vendor/monaco/vs/lspLanguageFeatures-BIkJOWLw.js +2 -0
  213. package/dist/web/public/vendor/monaco/vs/lua-DtygF91M.js +1 -0
  214. package/dist/web/public/vendor/monaco/vs/m3-CsR4AuFi.js +1 -0
  215. package/dist/web/public/vendor/monaco/vs/main-BEx-Fmlo.js +15 -0
  216. package/dist/web/public/vendor/monaco/vs/main-DsK8pnKg.js +3 -0
  217. package/dist/web/public/vendor/monaco/vs/markdown-C_rD0bIw.js +1 -0
  218. package/dist/web/public/vendor/monaco/vs/mdx-CpzZIPHF.js +1 -0
  219. package/dist/web/public/vendor/monaco/vs/mips-CiYP61RB.js +1 -0
  220. package/dist/web/public/vendor/monaco/vs/monaco.contribution-9cKT3C7t.js +1 -0
  221. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BE88ZNGY.js +1 -0
  222. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BPhsneLd.js +1 -0
  223. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BgRy6xDf.js +1 -0
  224. package/dist/web/public/vendor/monaco/vs/msdax-C38-sJlp.js +1 -0
  225. package/dist/web/public/vendor/monaco/vs/mysql-CdtbpvbG.js +1 -0
  226. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.d.ts +1 -0
  227. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.js +9 -0
  228. package/dist/web/public/vendor/monaco/vs/nls/lang/de.d.ts +1 -0
  229. package/dist/web/public/vendor/monaco/vs/nls/lang/de.js +9 -0
  230. package/dist/web/public/vendor/monaco/vs/nls/lang/es.d.ts +1 -0
  231. package/dist/web/public/vendor/monaco/vs/nls/lang/es.js +9 -0
  232. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.d.ts +1 -0
  233. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.js +9 -0
  234. package/dist/web/public/vendor/monaco/vs/nls/lang/it.d.ts +1 -0
  235. package/dist/web/public/vendor/monaco/vs/nls/lang/it.js +9 -0
  236. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.d.ts +1 -0
  237. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.js +9 -0
  238. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.d.ts +1 -0
  239. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.js +9 -0
  240. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.d.ts +1 -0
  241. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.js +9 -0
  242. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.d.ts +1 -0
  243. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.js +9 -0
  244. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.d.ts +1 -0
  245. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.js +9 -0
  246. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.d.ts +1 -0
  247. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.js +9 -0
  248. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.d.ts +1 -0
  249. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.js +9 -0
  250. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.d.ts +1 -0
  251. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.js +9 -0
  252. package/dist/web/public/vendor/monaco/vs/nls.messages-loader.js +1 -0
  253. package/dist/web/public/vendor/monaco/vs/objective-c-CntZFaHX.js +1 -0
  254. package/dist/web/public/vendor/monaco/vs/pascal-r6kuqfl_.js +1 -0
  255. package/dist/web/public/vendor/monaco/vs/pascaligo-BiXoTmXh.js +1 -0
  256. package/dist/web/public/vendor/monaco/vs/perl-DABw_TcH.js +1 -0
  257. package/dist/web/public/vendor/monaco/vs/pgsql-me_jFXeX.js +1 -0
  258. package/dist/web/public/vendor/monaco/vs/php-D_kh-9LK.js +1 -0
  259. package/dist/web/public/vendor/monaco/vs/pla-VfZjczW0.js +1 -0
  260. package/dist/web/public/vendor/monaco/vs/postiats-BBSzz8Pk.js +1 -0
  261. package/dist/web/public/vendor/monaco/vs/powerquery-Dt-g_2cc.js +1 -0
  262. package/dist/web/public/vendor/monaco/vs/powershell-B-7ap1zc.js +1 -0
  263. package/dist/web/public/vendor/monaco/vs/protobuf-BmtuEB1A.js +2 -0
  264. package/dist/web/public/vendor/monaco/vs/pug-BRpRNeEb.js +1 -0
  265. package/dist/web/public/vendor/monaco/vs/python-CqWUUgfu.js +1 -0
  266. package/dist/web/public/vendor/monaco/vs/qsharp-BzsFaUU9.js +1 -0
  267. package/dist/web/public/vendor/monaco/vs/r-f8dDdrp4.js +1 -0
  268. package/dist/web/public/vendor/monaco/vs/razor-hok5y9Km.js +1 -0
  269. package/dist/web/public/vendor/monaco/vs/redis-fvZQY4PI.js +1 -0
  270. package/dist/web/public/vendor/monaco/vs/redshift-45Et0LQi.js +1 -0
  271. package/dist/web/public/vendor/monaco/vs/restructuredtext-C7UUFKFD.js +1 -0
  272. package/dist/web/public/vendor/monaco/vs/ruby-CZO8zYTz.js +1 -0
  273. package/dist/web/public/vendor/monaco/vs/rust-Bfetafyc.js +1 -0
  274. package/dist/web/public/vendor/monaco/vs/sb-3GYllVck.js +1 -0
  275. package/dist/web/public/vendor/monaco/vs/scala-foMgrKo1.js +1 -0
  276. package/dist/web/public/vendor/monaco/vs/scheme-CHdMtr7p.js +1 -0
  277. package/dist/web/public/vendor/monaco/vs/scss-C1cmLt9V.js +3 -0
  278. package/dist/web/public/vendor/monaco/vs/shell-ClXCKCEW.js +1 -0
  279. package/dist/web/public/vendor/monaco/vs/solidity-MZ6ExpPy.js +1 -0
  280. package/dist/web/public/vendor/monaco/vs/sophia-DWkuSsPQ.js +1 -0
  281. package/dist/web/public/vendor/monaco/vs/sparql-AUGFYSyk.js +1 -0
  282. package/dist/web/public/vendor/monaco/vs/sql-32GpJSV2.js +1 -0
  283. package/dist/web/public/vendor/monaco/vs/st-CuDFIVZ_.js +1 -0
  284. package/dist/web/public/vendor/monaco/vs/swift-t-PfMj7W.js +1 -0
  285. package/dist/web/public/vendor/monaco/vs/systemverilog-Ch4vA8Yt.js +1 -0
  286. package/dist/web/public/vendor/monaco/vs/tcl-D74tq1nH.js +1 -0
  287. package/dist/web/public/vendor/monaco/vs/toggleHighContrast-qGX7E9o7.js +61 -0
  288. package/dist/web/public/vendor/monaco/vs/ts.worker-2QLmBukE.js +1 -0
  289. package/dist/web/public/vendor/monaco/vs/tsMode-B0S_kp2q.js +11 -0
  290. package/dist/web/public/vendor/monaco/vs/twig-C6taOxMV.js +1 -0
  291. package/dist/web/public/vendor/monaco/vs/typescript-_2t_511t.js +1 -0
  292. package/dist/web/public/vendor/monaco/vs/typespec-8OfoLt6R.js +1 -0
  293. package/dist/web/public/vendor/monaco/vs/vb-Dyb2648j.js +1 -0
  294. package/dist/web/public/vendor/monaco/vs/wgsl-BhLXMOR0.js +298 -0
  295. package/dist/web/public/vendor/monaco/vs/workers-BBttULjf.js +1 -0
  296. package/dist/web/public/vendor/monaco/vs/xml-cZjNDqDT.js +1 -0
  297. package/dist/web/public/vendor/monaco/vs/yaml-A1fOIdH6.js +1 -0
  298. package/dist/web/server.js +81 -16
  299. package/dist/web/server.js.map +1 -1
  300. package/dist/web/task-queue.js +6 -21
  301. package/dist/web/task-queue.js.map +1 -1
  302. package/dist/web/web-config.js +143 -0
  303. package/dist/web/web-config.js.map +1 -0
  304. package/docs/App/344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +1 -1
  305. package/docs/App/346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +1 -1
  306. package/docs/BENCHMARK_REPORT_en.md +386 -386
  307. package/docs/BENCHMARK_REPORT_zh.md +386 -386
  308. package/docs/DPA.md +65 -63
  309. 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 +69 -67
  310. package/docs/Deployment_Guide_EN.md +1 -1
  311. package/docs/SECURITY_WHITEPAPER.md +2 -2
  312. package/docs/SELF-EVOLVE-GUIDE.md +1 -1
  313. package/docs/SWE_BENCH_REPORT.md +73 -55
  314. package/docs/TECHNICAL_SPEC_en.md +292 -292
  315. package/docs/TECHNICAL_SPEC_zh.md +292 -292
  316. package/docs/Technical_Manual_EN.md +1 -1
  317. package/docs/UPDATE_NOTES_en.md +159 -159
  318. package/docs/UPDATE_NOTES_zh.md +159 -159
  319. package/docs/UPGRADE_7.2.0.md +309 -309
  320. package/docs/UPGRADE_GUIDE_7_5.md +86 -86
  321. package/docs/UPGRADE_GUIDE_7_6.md +153 -0
  322. package/docs/User_Manual_EN.md +1 -1
  323. package/docs/VOLTAGENT_SKILLS_CATALOG.md +95 -0
  324. package/docs/error-codes.md +1 -1
  325. package/docs/geo-feihong-code.html +391 -391
  326. package/docs//344/272/247/345/223/201/345/274/200/345/217/221/346/226/207/346/241/243.md +5 -3
  327. package/docs//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +140 -231
  328. 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 -208
  329. 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 -152
  330. 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 -271
  331. 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 -59
  332. package/docs//345/256/211/345/205/250/347/231/275/347/232/256/344/271/246_v7.2.0.md +84 -82
  333. package/docs//346/212/200/346/234/257/350/257/264/346/230/216/344/271/246.md +240 -149
  334. package/docs//351/203/250/347/275/262/350/257/264/346/230/216/344/271/246.md +2 -2
  335. package/electron/main.js +404 -404
  336. package/package.json +12 -5
  337. package/templates/skills/api-design/SKILL.md +1 -1
  338. package/templates/skills/code-review/SKILL.md +1 -1
  339. package/templates/skills/dependency-upgrade/SKILL.md +1 -1
  340. package/templates/skills/doc-gen/SKILL.md +1 -1
  341. package/templates/skills/git-flow/SKILL.md +1 -1
  342. package/templates/skills/onboarding/SKILL.md +1 -1
  343. package/templates/skills/performance/SKILL.md +1 -1
  344. package/templates/skills/refactor/SKILL.md +1 -1
  345. package/templates/skills/security-audit/SKILL.md +1 -1
  346. package/templates/skills/test-gen/SKILL.md +1 -1
  347. package/tool-schema.json +197 -197
@@ -1,4 +1,4 @@
1
- # 飞虹 CodeMuse Code 参照复刻)产品开发文档
1
+ # 飞虹 Code(对标 Muse Code,自研内核)产品开发文档
2
2
 
3
3
  > 项目代号:**飞虹 Code / FeiHong Code**
4
4
  > 文档类型:完整产品开发文档(定位 + 架构 + 模块 + 接口 + 数据模型 + 里程碑 + 落地计划)
@@ -29,11 +29,11 @@
29
29
 
30
30
  - Meta 于 2026-08 发布 **Muse Code**(终端 AI 编程 Agent,基于 Muse Spark 1.2),对标 Claude Code / OpenAI Codex,主打多智能体并行、长时任务、仓库级代码变更,并采用低价按量付费策略(贡献者套餐便宜逾 10 倍,但需授权数据留存)。
31
31
  - 该形态验证了「终端 Agent 自主完成完整软件工程任务」的市场价值,但**闭源、依赖 Meta 模型、数据留存策略对国内企业不友好**。
32
- - 飞虹 Code 的目标:**参照其能力范式,复刻一套自主可控、模型可切换、数据不出域、可私有化部署的终端编程智能体**,复用本团队 TS/Node 工程能力与飞扬企源企业管理方法学。
32
+ - 飞虹 Code 的目标:**参照其能力范式,自研一套自主可控、模型可切换、数据不出域、可私有化部署的终端编程智能体**,复用本团队 TS/Node 工程能力与飞扬企源企业管理方法学。
33
33
 
34
34
  ### 1.3 参照对象能力拆解(Muse Code)
35
35
 
36
- | 能力维度 | Muse Code 实现 | 我们是否复刻 | 我们的差异点 |
36
+ | 能力维度 | Muse Code 实现 | 我们是否覆盖 | 我们的差异点 |
37
37
  |----------|----------------|--------------|--------------|
38
38
  | 安装方式 | 单命令 `curl … | bash` | ✅ | 增加 `npm i -g` / 国内镜像源 |
39
39
  | 多智能体并行 | 主代理 + 多个持久化子代理,隔离 worktree 并行 | ✅ | 子代理角色可配置(规划/编码/审查) |
@@ -518,6 +518,8 @@ FH_REQUIRE_APPROVAL=true
518
518
 
519
519
  ## 10. 开发里程碑
520
520
 
521
+ > **编号体系说明**:M0→M9.1 为**能力里程碑编号**(工程开发阶段),全部交付后冻结不再扩展;对外发布的 **7.x** 为**产品化成熟度版本号**(SemVer),与 M 编号解耦——产品化迭代(桌面版、SWE-bench harness、企业治理、自进化等)以 7.x 版本号持续演进,详见 [CHANGELOG.md](../CHANGELOG.md) 头部说明。
522
+
521
523
  | 里程碑 | 周期(估) | 交付物 | 退出标准 |
522
524
  |--------|----------|--------|----------|
523
525
  | **M0 脚手架** | 3d | feature-first 工程结构、config/errors/logger、CLI 入口 | `fhcode --version` 可运行,构建通过 ✅(2026-08-10) |
@@ -1,9 +1,10 @@
1
1
  # 飞虹 Code(fhcode)使用说明书
2
2
 
3
- **版本**:v0.5.0-b
4
- **日期**:2026-08-16
5
- **产品**:飞虹 Code(feihong-code)— 终端 AI 编程智能体(Muse Code 参照复刻)
3
+ **版本**:v7.6.0
4
+ **日期**:2026-08-28
5
+ **产品**:飞虹 Code(feihong-code)— 终端 AI 编程智能体(对标 Muse Code,自研内核)
6
6
  **署名**:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
7
+ **配套文档**:`docs/技术说明书.md`(技术设计)、`docs/UPGRADE_GUIDE_7_6.md`(升级)、`docs/常见问题与故障排查.md`(FAQ)
7
8
 
8
9
  ---
9
10
 
@@ -15,304 +16,212 @@
15
16
  - npm ≥ 9
16
17
  - git(diff/rollback/并行 worktree 需要)
17
18
  - Docker(仅 `FH_SANDBOX_MODE=container` 时需要)
19
+ - 可选:Ollama(本地模型)、faster-whisper(本地语音)
18
20
 
19
21
  ### 1.2 安装
20
22
 
21
23
  ```bash
22
- # 方式一:源码构建(推荐)
24
+ # 方式一:npm 全局安装(推荐)
25
+ npm install -g feihong-code
26
+ fhcode --version # 应输出 7.6.0
27
+
28
+ # 方式二:源码构建
23
29
  git clone https://github.com/wch887292/feihong-code.git
24
30
  cd feihong-code
25
31
  npm install
26
32
  npm run build
33
+ node dist/cli/index.js --version # 7.6.0
27
34
 
28
- # 方式二:npm 全局安装
29
- npm install -g feihong-code
30
- fhcode --version # 验证
31
- ```
32
-
33
- ### 1.3 三秒上手
34
-
35
- ```bash
36
- # 未配置模型时自动进入离线模式(Mock 驱动闭环),可直接体验
37
- fhcode "写一个 hello.ts"
35
+ # 方式三:Electron 桌面版
36
+ npm run electron:build # 生成 Windows 安装包
38
37
 
39
- # 配置真实模型(DeepSeek 示例)后走真实模式
40
- export FH_PROVIDERS='[{"name":"deepseek","type":"openai-compatible","baseUrl":"https://api.deepseek.com/v1","apiKey":"sk-...","tags":["code-gen","reasoning"],"priority":1}]'
41
- fhcode "修复 src/auth.ts 中的 token 校验 bug"
38
+ # 方式四:Android APK(versionCode 8 / 7.6.0)
39
+ # 从发布渠道安装,配套桌面端使用
42
40
  ```
43
41
 
44
- ---
45
-
46
- ## 二、命令速查
42
+ ### 1.3 首次配置
47
43
 
48
44
  ```bash
49
- # 基础
50
- fhcode 进入交互式 REPL(TTY 下自动启用 TUI)
51
- fhcode "<需求>" 单命令执行一条需求
52
- fhcode --stream "<需求>" 流式输出(任务过程实时可见)
53
- fhcode --yes "<需求>" 跳过审批(危险操作需谨慎)
54
- fhcode --lang zh|en 设置界面语言
55
-
56
- # 只读技能
57
- fhcode /plan "<目标>" 生成实现计划
58
- fhcode /grill [路径] 红队式代码审查(文本)
59
- fhcode review [路径] [--json] 结构化代码审查(--json 供 IDE/CI 消费)
60
- fhcode /goal "<目标>" 分解并保存高层目标
61
-
62
- # 会话管理(M3)
63
- fhcode sessions 列出历史会话
64
- fhcode resume <id> 从检查点续跑
65
- fhcode diff [id] 查看会话/工作区变更
66
- fhcode rollback <id> --yes 回滚会话改动(破坏性)
67
-
68
- # 企业能力(M4)
69
- fhcode whoami 当前租户/用户/角色/配额
70
- fhcode policy 查看生效 RBAC 策略
71
- fhcode audit [verify] 审计记录 / 哈希链校验
72
- fhcode tenants 租户用量汇总
73
-
74
- # 自我进化(M6/M8/M9)
75
- fhcode model-stats 模型性能统计
76
- fhcode experiences [路径] 经验库
77
- fhcode code-write "<目标>" 自主编程
78
- fhcode quality-gate [路径] 质量门禁审查
79
- fhcode self-improve 自我改进统计
80
- fhcode swe "<目标>" 全自动软件工程 Agent
81
- fhcode team "<目标>" 多 agent 协作(共享任务板+消息总线)
82
-
83
- # 生态
84
- fhcode skill-market search "<关键词>" 搜索技能市场(agentskills.io)
85
- fhcode skill-market install <技能名> 安装技能
86
- fhcode skill-market list 列出本地技能
87
- fhcode plugin install <目录|git URL> 安装插件
88
- fhcode plugin list 列出插件
89
- fhcode doctor 环境自检
90
- ```
91
-
92
- **常用 flag**:`--parallel`(并行 worktree)/ `--repo`(swe 目标仓库/市场源)/ `--context-file <path>`(附加文件上下文)/ `--max-iterations N` / `--max-retries N` / `--plan-only` / `--verify-only` / `--json`。
93
-
94
- ---
95
-
96
- ## 三、模型配置
45
+ # 复制配置模板并填写模型 API Key
46
+ cp .env.example .env
47
+ # 编辑 .env:至少配置 FH_PROVIDERS 中一个 provider 的 apiKey
97
48
 
98
- ### 3.1 配置优先级
99
-
100
- 1. `FH_PROVIDERS`(JSON 数组,最高优先级)
101
- 2. `fhcode.config.json`(项目配置文件 `models.providers`)
102
- 3. 单环境变量 `FH_MODEL_*`
103
-
104
- ### 3.2 Ollama 本地模型
105
-
106
- ```bash
107
- export FH_MODEL_NAME=qwen3:8b
108
- export FH_MODEL_TYPE=ollama
109
- export FH_MODEL_BASE_URL=http://localhost:11434
110
- export FH_MODEL_TAGS=code-gen,reasoning,local
49
+ # 环境自检(可选)
50
+ fhcode doctor
111
51
  ```
112
52
 
113
- ### 3.3 DeepSeek / 通义
53
+ ### 1.4 第一个任务
114
54
 
115
55
  ```bash
116
- # DeepSeek
117
- export FH_PROVIDERS='[{"name":"deepseek","type":"openai-compatible","baseUrl":"https://api.deepseek.com/v1","apiKey":"sk-...","tags":["code-gen","reasoning"],"costPer1k":0.0001}]'
118
- # 通义千问
119
- export FH_PROVIDERS='[{"name":"qwen","type":"openai-compatible","baseUrl":"https://dashscope.aliyuncs.com/compatible-mode/v1","apiKey":"...","tags":["code-gen","long-context"]}]'
120
- ```
121
-
122
- ### 3.4 路由策略
56
+ # 直接下达自然语言任务
57
+ fhcode "给我写一个 Node.js 的 hello world HTTP 服务,监听 3000 端口"
123
58
 
124
- ```bash
125
- export FH_MODEL_STRATEGY=cost # cost | capability | latency
126
- export FH_BUDGET_USD=0.5 # 单任务成本上限(超限熔断)
59
+ # 查看会话与回滚
60
+ fhcode sessions # 列出历史会话
61
+ fhcode diff <会话ID> # 查看本次改动
62
+ fhcode rollback <会话ID> # 回滚改动
127
63
  ```
128
- 低成本标签 `cheap` 的 provider 会优先承担 `swe`/并行子任务(P1-1 模型分工)。
129
64
 
130
65
  ---
131
66
 
132
- ## 四、典型工作流
67
+ ## 二、CLI 命令手册
68
+
69
+ | 命令 | 说明 | 示例 |
70
+ |------|------|------|
71
+ | `fhcode <目标>` | 直接执行自然语言任务(默认入口) | `fhcode "修复登录接口的 bug"` |
72
+ | `fhcode sessions` | 列出历史会话 | `fhcode sessions` |
73
+ | `fhcode resume <id>` | 续跑指定会话 | `fhcode resume 3f9a…` |
74
+ | `fhcode diff <id>` | 查看会话产生的代码改动 | `fhcode diff 3f9a…` |
75
+ | `fhcode rollback <id>` | 回滚会话改动 | `fhcode rollback 3f9a…` |
76
+ | `fhcode whoami` | 查看当前身份与角色 | `fhcode whoami` |
77
+ | `fhcode policy` | 查看/管理权限策略 | `fhcode policy` |
78
+ | `fhcode audit` | 审计日志;`--verify` 校验哈希链 | `fhcode audit --verify` |
79
+ | `fhcode tenants` | 多租户管理 | `fhcode tenants` |
80
+ | `fhcode doctor` | 环境自检(依赖/权限/网络) | `fhcode doctor` |
81
+ | `fhcode tui` | 进入多面板终端 UI | `fhcode tui` |
82
+ | `fhcode serve [port]` | 启动 Web 控制台 | `fhcode serve 8080` |
83
+ | `fhcode plugin <action>` | 插件管理(install/list/remove) | `fhcode plugin install xxx` |
84
+ | `fhcode skill-market <action>` | 技能市场(search/install) | `fhcode skill-market search lint` |
85
+ | `fhcode skill-new <name>` | 新建技能(SKILL.md 模板) | `fhcode skill-new my-lint` |
86
+ | `fhcode review <path>` | 代码审查 | `fhcode review src/` |
87
+ | `fhcode team <目标>` | 多 agent 团队协作 | `fhcode team "完成这个模块"` |
88
+ | `fhcode code-write <目标>` | 纯代码生成 | `fhcode code-write "写一个排序函数"` |
89
+ | `fhcode quality-gate <path>` | 质量门禁检查 | `fhcode quality-gate src/` |
90
+ | `fhcode self-improve` | 查看自我改进学习沉淀 | `fhcode self-improve` |
91
+ | `fhcode self-evolve <action>` | 自我迭代运维(status/report) | `fhcode self-evolve status` |
92
+ | `fhcode model-stats` | 模型用量与成本统计 | `fhcode model-stats` |
93
+ | `fhcode experiences` | 浏览统一经验库 | `fhcode experiences` |
94
+ | `fhcode harness …` | SWE-bench 评测 | `fhcode harness --split lite --limit 1 --mode mock` |
95
+ | `fhcode swe <目标>` | 全自动软件工程任务 | `fhcode swe "实现排序功能"` |
96
+ | 内置技能 | `/plan`(规划)`/grill`(拷问)`/self-heal`(自愈) | `fhcode /plan "实现登录"` |
133
97
 
134
- ### 4.1 单任务
98
+ ---
135
99
 
136
- ```bash
137
- # 基础
138
- fhcode "实现一个 HTTP 服务器,监听 3000 端口"
139
- # 流式 + 指定上下文文件
140
- fhcode --stream --context-file src/auth.ts "审查并修复此文件中的安全问题"
141
- ```
100
+ ## 三、核心功能
142
101
 
143
- ### 4.2 全自动软件工程(swe)
102
+ ### 3.1 对话编程
144
103
 
145
- ```bash
146
- fhcode swe "修复 src/calc.ts 的 add 函数 bug,让 tests/calc.test.ts 通过" \
147
- --repo /path/to/project \
148
- --max-tasks 3 --max-iterations 5
149
- # --plan-only 仅规划 / --verify-only 仅验证 / --max-retries N 自愈重试
150
- ```
104
+ - 纯文本输出 + 实时思考过程展示
105
+ - 支持上下文压缩、检查点续跑(会话中途断线可 resume)
106
+ - 成本熔断:超预算自动止损(`FH_BUDGET_USD`)
151
107
 
152
- ### 4.3 agent 协作(team
108
+ ### 3.2 代码补全(Web / VS Code
153
109
 
154
- ```bash
155
- fhcode team "实现登录模块 并且 添加用户管理 并且 写集成测试"
156
- # 目标自动拆解 agent 并发认领 → 消息总线汇报 → 团队报告
157
- ```
110
+ - 多候选补全(按置信度 Top3)
111
+ - temperature 分层(quick 0 / full 0.3)
112
+ - 跨文件上下文(import 关联 + 工作区实时文档)
113
+ - 接受补全后自动 lint(语法错误实时波浪线提示)
158
114
 
159
- ### 4.4 技能市场与插件
115
+ ### 3.3 全自动软件工程(SWE)
160
116
 
161
117
  ```bash
162
- # agentskills.io 搜索并安装技能(安装后任务中自动发现)
163
- fhcode skill-market search "code review"
164
- fhcode skill-market install code-review
165
- # 安装插件(打包 skills+hooks+MCP)
166
- fhcode plugin install ./my-plugin
118
+ fhcode swe "给项目添加一个 markdown 转 HTML 的 CLI 工具"
167
119
  ```
168
120
 
169
- ### 4.5 会话恢复与回滚
170
-
171
- ```bash
172
- fhcode sessions # 找到会话 id
173
- fhcode resume <id> # 中断后续跑
174
- fhcode diff <id> # 查看改动
175
- fhcode rollback <id> --yes # 回滚(破坏性)
176
- ```
121
+ 流程:读取仓库结构 规划 → 实现 → 构建/测试验证 → 失败自动自愈重试 → 输出报告。验证支持测试(`--verifier test`)与文件级(`--verifier file`)两种模式。
177
122
 
178
- ### 4.6 环境自检
123
+ ### 3.4 SWE 评测(harness)
179
124
 
180
125
  ```bash
181
- fhcode doctor
182
- # Node 版本 / git / 模型配置 / 网络连通 / 主目录可写 / 沙箱模式
126
+ # 运行 mock 管道(无网络也可见证)
127
+ fhcode harness --split lite --limit 1 --mode mock --verifier file --report bench/run-xxx.md
128
+
129
+ # 使用官方测试验证器
130
+ fhcode harness --split lite --limit 1 --verifier test --test-command "npm run test"
183
131
  ```
184
132
 
185
- ---
133
+ 差分语义:修复前确认用例原本失败 → 修复后 FAIL_TO_PASS 全过 → PASS_TO_PASS 回归不破坏既有功能。
186
134
 
187
- ## 五、REPL / TUI 使用
135
+ ### 3.5 团队协作
188
136
 
189
137
  ```bash
190
- fhcode # 进入交互模式(TTY 自动启用 TUI)
138
+ fhcode team "让两个 agent 分别实现前端和后端"
191
139
  ```
192
- - TUI:顶部 sticky header 显示 模式/runId/迭代/成本/状态;内容区滚动;滚轮可回看
193
- - 输入需求回车执行;`exit`/`quit`/Ctrl+D 退出
194
- - 支持 `/plan` `/grill` `/goal` 斜杠技能
195
140
 
196
- ---
197
-
198
- ## 六、VSCode 扩展
199
-
200
- 在 `vscode-extension/` 目录打包(`npx @vscode/vsce package`)或 F5 调试加载:
201
-
202
- | 命令 | 说明 |
203
- |------|------|
204
- | `fhcode: 运行任务(附带选区上下文)` | 选中代码自动注入 `<selection>` 上下文 |
205
- | `fhcode: 内联评审当前文件` | `review --json` → 编辑器内联诊断(红/黄/蓝) |
206
- | `fhcode: 就地查看工作区 diff` | 原生 diff 编辑器 HEAD↔工作区 |
207
- | `fhcode: 查看最近任务输出` | 聚焦 Output Channel |
208
-
209
- 配置:`fhcode.binaryPath` / `fhcode.offline` / `fhcode.reviewOnSave`(保存自动评审,默认开)。
210
-
211
- ---
141
+ - 多 agent 消息总线协作
142
+ - 协作总览面板:任务状态漏斗 + 成员负载分布
212
143
 
213
- ## 七、Web 控制台(云执行)
144
+ ### 3.6 自我迭代(统一经验库)
214
145
 
215
146
  ```bash
216
- fhcode serve --port 8080
217
- # 浏览器打开 http://localhost:8080
147
+ fhcode self-improve # 查看学习沉淀(反思 + 经验库 + 成功率)
148
+ fhcode self-evolve status # 运维视图:失败记录/技能/共享经验库
149
+ fhcode experiences # 浏览经验库内容
218
150
  ```
219
151
 
220
- **任务面板**:输入 token(终端输出的 `FH_WEB_TOKEN`)→ 提交目标 → 轮询状态 → 展开结果详情。
152
+ - 失败、解决、技能沉淀自动写入共享经验库 `~/.feihong-code/experiences/experiences.jsonl`
153
+ - orchestrator 在后续任务自动检索注入经验,越用越强
221
154
 
222
- **API 调用**(Bearer 鉴权):
155
+ ### 3.7 语音编程
223
156
 
224
- ```bash
225
- TOKEN=$(echo $FH_WEB_TOKEN)
226
- # 提交任务
227
- curl -X POST http://localhost:8080/api/tasks \
228
- -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
229
- -d '{"goal":"写一个 hello.ts"}'
230
- # 查询
231
- curl http://localhost:8080/api/tasks -H "Authorization: Bearer $TOKEN"
232
- curl http://localhost:8080/api/tasks/<id> -H "Authorization: Bearer $TOKEN"
233
- # 注册 webhook(任务状态回调,可被 CI 调度)
234
- curl -X POST http://localhost:8080/api/webhook \
235
- -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
236
- -d '{"url":"https://your-ci.example.com/hook"}'
237
- ```
157
+ 支持口头指令 → 编辑器/终端动作:新建/打开文件、复制/粘贴/剪切、替换、取消注释、切换终端/侧边栏/全屏、解释代码等。适合现场调试场景(如「打开终端」「上下反了」等口语化指令)。
238
158
 
239
159
  ---
240
160
 
241
- ## 八、消息渠道
242
-
243
- ```bash
244
- # Telegram 通知(任务状态变化推送)
245
- export FH_CHANNEL_TELEGRAM_BOT_TOKEN=bot:xxx
246
- export FH_CHANNEL_TELEGRAM_CHAT_ID=12345
247
- # 企业微信群机器人(可多个 key)
248
- export FH_CHANNEL_WECOM_KEY=key1,key2
249
- # 出站白名单(可选,配置后仅白名单渠道可发)
250
- export FH_CHANNEL_ALLOW=telegram,wecom
251
- ```
161
+ ## 四、配置
162
+
163
+ ### 4.1 环境变量(.env)
164
+
165
+ | 变量 | 说明 | 默认 |
166
+ |------|------|------|
167
+ | `FH_HOME` | 数据目录 | `~/.feihong-code` |
168
+ | `FH_LOG_DIR` | 会话日志目录 | `~/.feihong-code/sessions` |
169
+ | `FH_PROVIDERS` | 模型供应商 JSON 数组(baseURL/apiKey/tags/costPer1k) | 空 |
170
+ | `FH_MODEL_STRATEGY` | 路由策略:cost / capability / latency | cost |
171
+ | `FH_BUDGET_USD` | 单任务预算上限(美元) | 0.5 |
172
+ | `FH_SANDBOX_MODE` | 沙箱模式:read-only / workspace-write / danger-full-access / container | workspace-write |
173
+ | `FH_SHELL_ALLOW` | Shell 白名单(逗号分隔) | git,npm,pnpm,node,ls,cat |
174
+ | `FH_REQUIRE_APPROVAL` | 危险操作是否需审批 | true |
175
+ | `FH_NETWORK_DENY` / `FH_NETWORK_ALLOW` | 网络域名黑白名单 | 空 |
176
+ | `FH_HOOKS` | hooks 配置(确定性控制) | 空 |
177
+ | `FH_MCP_SERVERS` | MCP 服务器配置 | 空 |
178
+
179
+ ### 4.2 沙箱模式速查
180
+
181
+ | 模式 | 适用场景 |
182
+ |------|---------|
183
+ | `read-only` | 只读勘察、审计场景 |
184
+ | `workspace-write` | 默认;日常开发 |
185
+ | `danger-full-access` | 需要全权限的自动化脚本 |
186
+ | `container` | 执行不可信代码(Docker 断网隔离) |
252
187
 
253
188
  ---
254
189
 
255
- ## 九、沙箱与安全使用
256
-
257
- ```bash
258
- # 沙箱模式
259
- export FH_SANDBOX_MODE=workspace-write # 默认
260
- export FH_SANDBOX_MODE=read-only # 只读勘察(禁写禁执行)
261
- export FH_SANDBOX_MODE=danger-full-access # 全权限(危险命令仍拦截)
262
- export FH_SANDBOX_MODE=container # Docker 容器内执行 shell
263
- export FH_SANDBOX_IMAGE=node:22-alpine # 容器镜像
264
-
265
- # 网络域名规则
266
- export FH_NETWORK_DENY=evil.example.com
267
- # export FH_NETWORK_ALLOW=api.example.com
268
-
269
- # 确定性 hooks(PreToolUse 非零退出拦截)
270
- export FH_HOOKS='[{"event":"PreToolUse","command":"node scripts/guard.js","tools":["run_shell"]}]'
271
- ```
190
+ ## 五、常见问题(FAQ)
272
191
 
273
- ---
192
+ **Q1:`fhcode --version` 显示的不是 7.6.0?**
193
+ 全局缓存旧包,先 `npm uninstall -g feihong-code` 再重装;源码方式先 `npm run build` 重新构建。
274
194
 
275
- ## 十、eval 跑分与回归门禁
195
+ **Q2:没有模型 API Key 怎么办?**
196
+ 使用 Ollama 本地模型(`FH_PROVIDERS` 配置 type 为 `ollama`),或使用内置 Mock 模式离线体验。
276
197
 
277
- ```bash
278
- # 本地跑分(场景 5 + 验收 5,验证真实产物)
279
- npm run build && npm run eval
198
+ **Q3:任务执行到一半断了?**
199
+ `fhcode sessions` 找到会话 ID,`fhcode resume <id>` 续跑;checkpoint 会自动保存进度。
280
200
 
281
- # 存档基线 + 对比门禁(低于基线即失败,可接入 CI)
282
- node scripts/eval.mjs --save-baseline bench/eval-baseline.json
283
- node scripts/eval.mjs --baseline bench/eval-baseline.json
201
+ **Q4:改了文件想撤销?**
202
+ `fhcode diff <id>` 查看改动,`fhcode rollback <id>` 一键回滚(基于 git)。
284
203
 
285
- # SWE-bench 数据集加载(HF 或镜像)
286
- node scripts/eval-swebench.mjs --split lite --limit 5
287
- node scripts/eval-swebench.mjs --split lite --limit 5 --run --report report.md
288
- FH_SWEBENCH_DATA_URL=https://mirror.example/swebench.json node scripts/eval-swebench.mjs --limit 3
289
- ```
204
+ **Q5:如何保证 AI 不乱改文件 / 不执行危险命令?**
205
+ 默认 `workspace-write` 模式:仅工作区可写、Shell 白名单 + 审批;网络域名规则可拦截目标站点;`FH_REQUIRE_APPROVAL=true` 时危险操作需确认。
290
206
 
291
- ---
207
+ **Q6:经验库会不会无限膨胀?**
208
+ 不会。统一经验库用稳定 id + upsert 合并:同一模式重复出现只累加 `sessionCount` 并更新成功率,不新增冗余条目。
292
209
 
293
- ## 十一、常见问题速查
210
+ **Q7:SWE 跑分准吗?**
211
+ 诚实口径:自建任务集真实模型跑分 5/5 全过;mock 管道可离线复现;官方 SWE-bench(Python)受网络/环境限制尚未产出,详见 `docs/SWE_BENCH_REPORT.md`。
294
212
 
295
- | 问题 | 处理 |
296
- |------|------|
297
- | 未配置模型却想用真实模式 | `FH_PROVIDERS` 或 `FH_MODEL_NAME` 配置后自动进入真实模式 |
298
- | 任务超预算中止 | 调高 `FH_BUDGET_USD` 或角色策略 `maxCostUsd`,用 `resume` 续跑 |
299
- | 配额拒绝(QUOTA_EXCEEDED) | 调整 `FH_TENANT_BUDGET_USD` 或 policy 的 tenantDailyBudgetUsd |
300
- | review 输出为空 | 确认路径为文件或目录且含受支持扩展名(ts/js/tsx/jsx/json/md/py/go/java) |
301
- | 技能市场拉取失败 | 检查网络或设 `FH_SWEBENCH_DATA_URL`/`--repo` 镜像源 |
302
- | 中文/英文切换 | `fhcode --lang en` 或 `FHCODE_LANG=en` |
213
+ **更多故障排查**:见 `docs/常见问题与故障排查.md`、错误码 `docs/error-codes.md`。
303
214
 
304
215
  ---
305
216
 
306
- ## 十二、故障排查与日志
217
+ ## 六、企业部署
307
218
 
308
- ```bash
309
- export FH_LOG_LEVEL=debug # 详细日志
310
- fhcode doctor # 环境自检(快速定位)
311
- fhcode audit verify # 审计链完整性校验
312
- # 日志目录:~/.feihong-code/sessions/<runId>.jsonl(事件日志)
313
- # 检查点:~/.feihong-code/sessions/<runId>.session.json
314
- ```
219
+ - 私有化部署:Docker 镜像 + `FH_HOME` 数据卷挂载,内网隔离
220
+ - 安全治理:RBAC(whoami/policy)、审计哈希链(audit --verify)、多租户(tenants)、SBOM(npm run security)
221
+ - 合规材料:安全白皮书(SOC2/ISO27001 自评估)`docs/SECURITY_WHITEPAPER.md`、数据处理协议 DPA `docs/DPA.md`
222
+ - 详细部署:`docs/部署说明书.md`、`docs/Deployment_Guide_EN.md`
315
223
 
316
224
  ---
317
225
 
318
- *完整配置清单见《配置参考》与《部署说明书》;常见错误码见《常见问题与故障排查》。*
226
+ *晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹*
227
+ *2026-08-28 · 使用说明书 v7.6.0*