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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feihong-code",
3
- "version": "7.5.0",
3
+ "version": "7.6.0",
4
4
  "description": "fhcode(飞虹 Code)— 终端 AI 编程智能体,对标 Muse Code / Cursor CLI:多模型路由(DeepSeek/通义/Ollama/OpenAI)、企业级 RBAC 审计、全自动 SWE Agent、支持离线私有化",
5
5
  "bin": {
6
6
  "fhcode": "dist/cli/index.js"
@@ -29,9 +29,13 @@
29
29
  "verify:m7": "node scripts/verify-m7.mjs",
30
30
  "verify:m8": "node scripts/verify-m8.mjs",
31
31
  "verify:m9": "node scripts/verify-m9.mjs",
32
+ "check:version": "node scripts/check-version.mjs",
33
+ "check:cross": "node scripts/check-cross-platform.mjs",
34
+ "check:compliance": "node scripts/check-compliance-claims.mjs",
35
+ "bump": "node scripts/bump-version.mjs",
32
36
  "eval": "node scripts/eval.mjs",
33
37
  "test": "tsx --test tests/unit/*.test.ts",
34
- "verify": "npm run typecheck && npm run build && npm run verify:m4 && npm run verify:m6 && npm run verify:m7 && npm run verify:m8 && npm run verify:m9",
38
+ "verify": "npm run typecheck && npm run check:version && npm run build && npm run verify:m4 && npm run verify:m6 && npm run verify:m7 && npm run verify:m8 && npm run verify:m9",
35
39
  "prepublishOnly": "npm run build",
36
40
  "electron": "electron .",
37
41
  "electron:dev": "electron .",
@@ -100,18 +104,18 @@
100
104
  "url": "https://www.klai.top"
101
105
  },
102
106
  "devDependencies": {
103
- "@capacitor/android": "^8.5.0",
107
+ "@capacitor/android": "^7.6.8",
104
108
  "@capacitor/cli": "^7.6.8",
105
109
  "@types/express": "^5.0.6",
106
110
  "@types/node": "^26.2.0",
107
- "electron": "^41.7.1",
111
+ "electron": "^41.10.7",
108
112
  "electron-builder": "^26.15.3",
109
113
  "tsx": "^4.19.2",
110
114
  "typescript": "^5.6.3",
111
115
  "typescript-language-server": "^5.3.0"
112
116
  },
113
117
  "dependencies": {
114
- "@capacitor/core": "^8.5.0",
118
+ "@capacitor/core": "^7.6.8",
115
119
  "express": "^4.21.2",
116
120
  "monaco-editor": "^0.56.0",
117
121
  "playwright-core": "^1.62.1",
@@ -171,5 +175,8 @@
171
175
  "portable": {
172
176
  "artifactName": "飞虹Code-Portable-${version}.exe"
173
177
  }
178
+ },
179
+ "overrides": {
180
+ "dompurify": ">=3.4.13"
174
181
  }
175
182
  }
@@ -24,4 +24,4 @@ description: "对 API 设计进行评审:资源建模、状态码、校验、
24
24
  ## 自检与边界
25
25
  - 评审结论必须基于请求/响应契约,不臆测业务未定义的行为
26
26
  - 破坏性变更(如删字段)必须给出兼容策略与版本化建议
27
- - 示例 JSON 需与 schema 一致,不得自相矛盾
27
+ - 示例 JSON 需与 schema 一致,不得自相矛盾
@@ -32,4 +32,4 @@ description: "对指定文件/改动进行系统代码审查:定位缺陷、
32
32
  ## 自检与边界
33
33
  - 每条问题给出可定位的证据(文件:行或代码片段),不空泛断言
34
34
  - 分级标准固定:严重=必修/建议=应修/优化=可选,不夸大风险
35
- - 未覆盖范围(如未读文件)明确声明,不声称"全量审查完成"
35
+ - 未覆盖范围(如未读文件)明确声明,不声称"全量审查完成"
@@ -26,4 +26,4 @@ description: "检查依赖版本、升级风险与兼容性,生成安全升级
26
26
  ## 自检与边界
27
27
  - 只给出建议命令,不代替用户实际执行升级
28
28
  - 版本号必须来自 package.json / 官方 changelog,禁止编造版本
29
- - 大版本升级必须附迁移要点;未实际验证前标注"待验证"
29
+ - 大版本升级必须附迁移要点;未实际验证前标注"待验证"
@@ -26,4 +26,4 @@ description: "为代码生成文档:模块说明、函数注释、README、CHA
26
26
  ## 自检与边界
27
27
  - 不编造不存在的 API/参数/行为;不确定处标注"待确认"
28
28
  - 注释只解释"为什么",不逐行翻译代码
29
- - 文档与实现不一致时以代码为准并提示差异
29
+ - 文档与实现不一致时以代码为准并提示差异
@@ -23,4 +23,4 @@ description: "Git 提交规范、分支管理、rebase/合并、冲突解决的
23
23
  ## 自检与边界
24
24
  - 不擅自执行 git reset --hard / force push 等破坏性命令,只给命令并附风险警告
25
25
  - 回滚建议区分 revert(保留历史)与 reset(丢弃历史),说明影响面
26
- - 先 git status 确认当前状态再给操作序列,命令必须与实际状态一致
26
+ - 先 git status 确认当前状态再给操作序列,命令必须与实际状态一致
@@ -24,4 +24,4 @@ description: "快速理解陌生代码库:架构、目录、入口、构建运
24
24
 
25
25
  ## 自检与边界
26
26
  - 不编造架构信息:所有结论来自实际文件阅读,注明来源文件
27
- - 未探查到的模块标注"未探查",不猜测职责
27
+ - 未探查到的模块标注"未探查",不猜测职责
@@ -26,4 +26,4 @@ description: "定位性能瓶颈并给出优化方案:复杂度、I/O、缓存
26
26
  ## 自检与边界
27
27
  - 优化建议需给出量化方法(如耗时/内存测量),不凭感觉断言瓶颈
28
28
  - 收益预估需注明假设与测量前提,标注"估算"
29
- - 不为了性能牺牲正确性/可读性,权衡需说明
29
+ - 不为了性能牺牲正确性/可读性,权衡需说明
@@ -25,4 +25,4 @@ description: "对既有代码提出可落地的重构方案:保持行为不变
25
25
  ## 自检与边界
26
26
  - 不改变行为:重构建议必须配套测试验证,未覆盖路径明确提示
27
27
  - 不编造测试结果,验证需实际运行
28
- - 重构 ≠ 加功能,小步提交,每步跑测试
28
+ - 重构 ≠ 加功能,小步提交,每步跑测试
@@ -25,4 +25,4 @@ description: "对代码进行安全审计:OWASP Top 10、敏感信息、依赖
25
25
  ## 自检与边界
26
26
  - 只报告已确认的问题,不夸大;每项标注证据位置
27
27
  - 敏感信息不得在输出中明文展示完整密钥/令牌(脱敏展示)
28
- - 明确声明未检查范围,不声称"全库无漏洞"
28
+ - 明确声明未检查范围,不声称"全库无漏洞"
@@ -27,4 +27,4 @@ description: "为指定函数/模块生成高质量单元测试:覆盖正常/
27
27
  ## 自检与边界
28
28
  - 测试代码必须可运行:先跑通再交付,不交付未验证用例
29
29
  - 不编造测试结果,运行输出需真实
30
- - 外部依赖用 mock/stub,不依赖真实网络/数据库(除非明确要求集成测试)
30
+ - 外部依赖用 mock/stub,不依赖真实网络/数据库(除非明确要求集成测试)
package/tool-schema.json CHANGED
@@ -1,198 +1,198 @@
1
- {
2
- "name": "feihong-code",
3
- "version": "7.0.0",
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": {
13
- "type": "string",
14
- "description": "鏂囦欢鐩稿璺緞锛堢浉瀵逛簬宸ヤ綔鍖烘牴鐩綍锛?
15
- },
16
- "content": {
17
- "type": "string",
18
- "description": "鏂囦欢鐨勫畬鏁村唴瀹?
19
- }
20
- },
21
- "required": [
22
- "path",
23
- "content"
24
- ],
25
- "additionalProperties": false
26
- },
27
- "example": {
28
- "path": "src/main.ts",
29
- "content": "export function hello() { return 'world'; }"
30
- }
31
- },
32
- {
33
- "name": "edit_file",
34
- "description": "鍦ㄦ枃浠朵腑鎻掑叆銆佸垹闄ゆ垨鏇挎崲鏂囨湰鍧椼€備娇鐢?oldText/newText 绮剧‘鍖归厤銆?,
35
- "parameters": {
36
- "type": "object",
37
- "properties": {
38
- "path": {
39
- "type": "string",
40
- "description": "鐩爣鏂囦欢璺緞"
41
- },
42
- "oldText": {
43
- "type": "string",
44
- "description": "寰呮浛鎹㈢殑鍘熸枃鏈紙蹇呴』鍞竴瀛樺湪浜庢枃浠朵腑锛?
45
- },
46
- "newText": {
47
- "type": "string",
48
- "description": "鏇挎崲鍚庣殑鏂版枃鏈?
49
- }
50
- },
51
- "required": [
52
- "path",
53
- "oldText",
54
- "newText"
55
- ],
56
- "additionalProperties": false
57
- },
58
- "example": {
59
- "path": "src/calc.ts",
60
- "oldText": "return a - b;",
61
- "newText": "return a + b;"
62
- }
63
- },
64
- {
65
- "name": "read_file",
66
- "description": "璇诲彇鏂囦欢鐨勫叏閮ㄥ唴瀹广€?,
67
- "parameters": {
68
- "type": "object",
69
- "properties": {
70
- "path": {
71
- "type": "string",
72
- "description": "鏂囦欢鐩稿璺緞"
73
- }
74
- },
75
- "required": [
76
- "path"
77
- ],
78
- "additionalProperties": false
79
- },
80
- "example": {
81
- "path": "package.json"
82
- }
83
- },
84
- {
85
- "name": "list_files",
86
- "description": "鍒楀嚭鐩綍涓嬬殑鏂囦欢鍜屽瓙鐩綍銆?,
87
- "parameters": {
88
- "type": "object",
89
- "properties": {
90
- "path": {
91
- "type": "string",
92
- "description": "鐩綍璺緞锛岄粯璁や负 '.'锛堝伐浣滃尯鏍癸級"
93
- }
94
- },
95
- "additionalProperties": false
96
- },
97
- "example": {
98
- "path": "src/"
99
- }
100
- },
101
- {
102
- "name": "grep",
103
- "description": "浣跨敤姝e垯琛ㄨ揪寮忓湪椤圭洰涓悳绱㈡枃鏈€?,
104
- "parameters": {
105
- "type": "object",
106
- "properties": {
107
- "pattern": {
108
- "type": "string",
109
- "description": "姝e垯琛ㄨ揪寮忔ā寮?
110
- },
111
- "path": {
112
- "type": "string",
113
- "description": "鎼滅储璧峰鐩綍锛岄粯璁や负宸ヤ綔鍖烘牴"
114
- }
115
- },
116
- "required": [
117
- "pattern"
118
- ],
119
- "additionalProperties": false
120
- },
121
- "example": {
122
- "pattern": "class.*Error",
123
- "path": "src/"
124
- }
125
- },
126
- {
127
- "name": "run_shell",
128
- "description": "鍦ㄥ伐浣滃尯鍐呮墽琛?shell 鍛戒护銆傚懡浠ら渶閫氳繃鐧藉悕鍗曢獙璇併€?,
129
- "parameters": {
130
- "type": "object",
131
- "properties": {
132
- "command": {
133
- "type": "string",
134
- "description": "瑕佹墽琛岀殑瀹屾暣鍛戒护锛堝 'npm test'銆?node index.js'锛?
135
- }
136
- },
137
- "required": [
138
- "command"
139
- ],
140
- "additionalProperties": false
141
- },
142
- "example": {
143
- "command": "npm run typecheck"
144
- }
145
- },
146
- {
147
- "name": "build_check",
148
- "description": "妫€鏌ラ」鐩槸鍚﹁兘鎴愬姛缂栬瘧锛堣繍琛?tsc --noEmit锛夈€?,
149
- "parameters": {
150
- "type": "object",
151
- "properties": {},
152
- "additionalProperties": false
153
- },
154
- "example": {}
155
- },
156
- {
157
- "name": "run_tests",
158
- "description": "杩愯娴嬭瘯濂椾欢骞惰繑鍥炵粨鏋溿€?,
159
- "parameters": {
160
- "type": "object",
161
- "properties": {},
162
- "additionalProperties": false
163
- },
164
- "example": {}
165
- }
166
- ],
167
- "toolCategories": {
168
- "file": [
169
- "write_file",
170
- "edit_file",
171
- "read_file",
172
- "list_files"
173
- ],
174
- "search": [
175
- "grep"
176
- ],
177
- "shell": [
178
- "run_shell"
179
- ],
180
- "verify": [
181
- "build_check",
182
- "run_tests"
183
- ]
184
- },
185
- "security": {
186
- "sandbox": "鎵€鏈夋枃浠舵搷浣滈檺鍒跺湪宸ヤ綔鍖虹洰褰曞唴",
187
- "approval": "鍗遍櫓鎿嶄綔锛坰hell 鍛戒护銆佸啓鍏ユ晱鎰熸枃浠讹級鍙兘闇€瑕佷汉宸ュ鎵?,
188
- "audit": "鎵€鏈夊伐鍏疯皟鐢ㄨ褰曞埌 JSONL 浜嬩欢鏃ュ織"
189
- },
190
- "errorCodes": {
191
- "FH_4001": "閰嶉瓒呴檺 鈥?鏃ラ绠楀凡鑰楀敖锛岀瓑寰呮鏃ラ噸缃垨鐢宠閰嶉",
192
- "FH_4003": "鏉冮檺鎷掔粷 鈥?褰撳墠瑙掕壊鏃犳潈鎵ц姝ゆ搷浣滐紝妫€鏌?RBAC 绛栫暐",
193
- "FH_5001": "妯″瀷璋冪敤澶辫触 鈥?缃戠粶闂鎴?API Key 鏃犳晥锛屾鏌?provider 閰嶇疆",
194
- "FH_5002": "涓婁笅鏂囧帇缂╁け璐?鈥?瀵硅瘽杩囬暱锛屽皾璇曚娇鐢?/plan 閲嶆柊瑙勫垝",
195
- "FH_6001": "鏂囦欢璺緞瓒婃潈 鈥?璺緞鍖呭惈 '..' 鎴栫鍙烽摼鎺ワ紝妫€鏌ユ矙绠辫鍒?
196
- },
197
- "authoredBy": "鏅嬫睙甯傞铏规櫤绉戞妧浼佷笟绠$悊鏈夐檺鍏徃 路 椋炴壃浼佹簮鐮斿彂涓績 路 璐熻矗浜猴細鍚磋祼铏?
1
+ {
2
+ "name": "feihong-code",
3
+ "version": "7.0.0",
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": {
13
+ "type": "string",
14
+ "description": "鏂囦欢鐩稿璺緞锛堢浉瀵逛簬宸ヤ綔鍖烘牴鐩綍锛?
15
+ },
16
+ "content": {
17
+ "type": "string",
18
+ "description": "鏂囦欢鐨勫畬鏁村唴瀹?
19
+ }
20
+ },
21
+ "required": [
22
+ "path",
23
+ "content"
24
+ ],
25
+ "additionalProperties": false
26
+ },
27
+ "example": {
28
+ "path": "src/main.ts",
29
+ "content": "export function hello() { return 'world'; }"
30
+ }
31
+ },
32
+ {
33
+ "name": "edit_file",
34
+ "description": "鍦ㄦ枃浠朵腑鎻掑叆銆佸垹闄ゆ垨鏇挎崲鏂囨湰鍧椼€備娇鐢?oldText/newText 绮剧‘鍖归厤銆?,
35
+ "parameters": {
36
+ "type": "object",
37
+ "properties": {
38
+ "path": {
39
+ "type": "string",
40
+ "description": "鐩爣鏂囦欢璺緞"
41
+ },
42
+ "oldText": {
43
+ "type": "string",
44
+ "description": "寰呮浛鎹㈢殑鍘熸枃鏈紙蹇呴』鍞竴瀛樺湪浜庢枃浠朵腑锛?
45
+ },
46
+ "newText": {
47
+ "type": "string",
48
+ "description": "鏇挎崲鍚庣殑鏂版枃鏈?
49
+ }
50
+ },
51
+ "required": [
52
+ "path",
53
+ "oldText",
54
+ "newText"
55
+ ],
56
+ "additionalProperties": false
57
+ },
58
+ "example": {
59
+ "path": "src/calc.ts",
60
+ "oldText": "return a - b;",
61
+ "newText": "return a + b;"
62
+ }
63
+ },
64
+ {
65
+ "name": "read_file",
66
+ "description": "璇诲彇鏂囦欢鐨勫叏閮ㄥ唴瀹广€?,
67
+ "parameters": {
68
+ "type": "object",
69
+ "properties": {
70
+ "path": {
71
+ "type": "string",
72
+ "description": "鏂囦欢鐩稿璺緞"
73
+ }
74
+ },
75
+ "required": [
76
+ "path"
77
+ ],
78
+ "additionalProperties": false
79
+ },
80
+ "example": {
81
+ "path": "package.json"
82
+ }
83
+ },
84
+ {
85
+ "name": "list_files",
86
+ "description": "鍒楀嚭鐩綍涓嬬殑鏂囦欢鍜屽瓙鐩綍銆?,
87
+ "parameters": {
88
+ "type": "object",
89
+ "properties": {
90
+ "path": {
91
+ "type": "string",
92
+ "description": "鐩綍璺緞锛岄粯璁や负 '.'锛堝伐浣滃尯鏍癸級"
93
+ }
94
+ },
95
+ "additionalProperties": false
96
+ },
97
+ "example": {
98
+ "path": "src/"
99
+ }
100
+ },
101
+ {
102
+ "name": "grep",
103
+ "description": "浣跨敤姝e垯琛ㄨ揪寮忓湪椤圭洰涓悳绱㈡枃鏈€?,
104
+ "parameters": {
105
+ "type": "object",
106
+ "properties": {
107
+ "pattern": {
108
+ "type": "string",
109
+ "description": "姝e垯琛ㄨ揪寮忔ā寮?
110
+ },
111
+ "path": {
112
+ "type": "string",
113
+ "description": "鎼滅储璧峰鐩綍锛岄粯璁や负宸ヤ綔鍖烘牴"
114
+ }
115
+ },
116
+ "required": [
117
+ "pattern"
118
+ ],
119
+ "additionalProperties": false
120
+ },
121
+ "example": {
122
+ "pattern": "class.*Error",
123
+ "path": "src/"
124
+ }
125
+ },
126
+ {
127
+ "name": "run_shell",
128
+ "description": "鍦ㄥ伐浣滃尯鍐呮墽琛?shell 鍛戒护銆傚懡浠ら渶閫氳繃鐧藉悕鍗曢獙璇併€?,
129
+ "parameters": {
130
+ "type": "object",
131
+ "properties": {
132
+ "command": {
133
+ "type": "string",
134
+ "description": "瑕佹墽琛岀殑瀹屾暣鍛戒护锛堝 'npm test'銆?node index.js'锛?
135
+ }
136
+ },
137
+ "required": [
138
+ "command"
139
+ ],
140
+ "additionalProperties": false
141
+ },
142
+ "example": {
143
+ "command": "npm run typecheck"
144
+ }
145
+ },
146
+ {
147
+ "name": "build_check",
148
+ "description": "妫€鏌ラ」鐩槸鍚﹁兘鎴愬姛缂栬瘧锛堣繍琛?tsc --noEmit锛夈€?,
149
+ "parameters": {
150
+ "type": "object",
151
+ "properties": {},
152
+ "additionalProperties": false
153
+ },
154
+ "example": {}
155
+ },
156
+ {
157
+ "name": "run_tests",
158
+ "description": "杩愯娴嬭瘯濂椾欢骞惰繑鍥炵粨鏋溿€?,
159
+ "parameters": {
160
+ "type": "object",
161
+ "properties": {},
162
+ "additionalProperties": false
163
+ },
164
+ "example": {}
165
+ }
166
+ ],
167
+ "toolCategories": {
168
+ "file": [
169
+ "write_file",
170
+ "edit_file",
171
+ "read_file",
172
+ "list_files"
173
+ ],
174
+ "search": [
175
+ "grep"
176
+ ],
177
+ "shell": [
178
+ "run_shell"
179
+ ],
180
+ "verify": [
181
+ "build_check",
182
+ "run_tests"
183
+ ]
184
+ },
185
+ "security": {
186
+ "sandbox": "鎵€鏈夋枃浠舵搷浣滈檺鍒跺湪宸ヤ綔鍖虹洰褰曞唴",
187
+ "approval": "鍗遍櫓鎿嶄綔锛坰hell 鍛戒护銆佸啓鍏ユ晱鎰熸枃浠讹級鍙兘闇€瑕佷汉宸ュ鎵?,
188
+ "audit": "鎵€鏈夊伐鍏疯皟鐢ㄨ褰曞埌 JSONL 浜嬩欢鏃ュ織"
189
+ },
190
+ "errorCodes": {
191
+ "FH_4001": "閰嶉瓒呴檺 鈥?鏃ラ绠楀凡鑰楀敖锛岀瓑寰呮鏃ラ噸缃垨鐢宠閰嶉",
192
+ "FH_4003": "鏉冮檺鎷掔粷 鈥?褰撳墠瑙掕壊鏃犳潈鎵ц姝ゆ搷浣滐紝妫€鏌?RBAC 绛栫暐",
193
+ "FH_5001": "妯″瀷璋冪敤澶辫触 鈥?缃戠粶闂鎴?API Key 鏃犳晥锛屾鏌?provider 閰嶇疆",
194
+ "FH_5002": "涓婁笅鏂囧帇缂╁け璐?鈥?瀵硅瘽杩囬暱锛屽皾璇曚娇鐢?/plan 閲嶆柊瑙勫垝",
195
+ "FH_6001": "鏂囦欢璺緞瓒婃潈 鈥?璺緞鍖呭惈 '..' 鎴栫鍙烽摼鎺ワ紝妫€鏌ユ矙绠辫鍒?
196
+ },
197
+ "authoredBy": "鏅嬫睙甯傞铏规櫤绉戞妧浼佷笟绠$悊鏈夐檺鍏徃 路 椋炴壃浼佹簮鐮斿彂涓績 路 璐熻矗浜猴細鍚磋祼铏?
198
198
  }