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
package/docs/DPA.md ADDED
@@ -0,0 +1,63 @@
1
+ # 数据处理协议(DPA)
2
+
3
+ > 版本:v1.0 · 更新:2026-08-26
4
+ > 晋江市飞虹智科技企业管理有限公司(以下简称「处理方」)与数据处理委托方(以下简称「控制方」)
5
+ > 就「飞虹 Code」软件及服务处理个人数据相关事宜达成协议。本协议为政企售前/签约配套材料。
6
+
7
+ ## 1. 定义与角色
8
+
9
+ - **控制方**:决定处理目的与方式的组织/个人(使用飞虹 Code 的客户)
10
+ - **处理方**:晋江市飞虹智科技企业管理有限公司(软件提供方)及其授权支持人员
11
+ - **数据主体**:控制方系统中的自然人(如客户员工、最终用户)
12
+
13
+ ## 2. 处理的数据类别
14
+
15
+ | 类别 | 说明 | 默认是否落盘 |
16
+ |---|---|---|
17
+ | 用户输入(代码/文本/指令) | 控制方在使用飞虹 Code 时提交的内容 | 本地工作区(默认) |
18
+ | 配置文件 | 模型供应商配置、token(经安全存储加密) | 本地安全存储 |
19
+ | 运行日志 | 事件日志、审计记录 | 本地(支持关闭) |
20
+ | 遥测/用量(如启用) | 功能用量统计 | 需控制方显式开启 |
21
+ | 不收集 | 键盘记录、屏幕内容、未经授权的通讯录/文件 | — |
22
+
23
+ **关键承诺**:飞虹 Code 采用**本地优先**架构,代码与配置默认不出本地;模型调用是否出域由控制方选择的模型供应商决定(可配置为私有化/本地模型,实现数据不出域)。
24
+
25
+ ## 3. 处理目的与法律依据
26
+
27
+ - 处理目的:提供代码补全、Agent 任务执行、会话管理与质量改进
28
+ - 法律依据:《个人信息保护法》(PIPL)下的「履行合同所必需」及「控制方合法处理」
29
+ - 处理期限:控制方卸载/删除数据后 30 日内删除相关本地副本(法律法规另有规定的除外)
30
+
31
+ ## 4. 处理方义务
32
+
33
+ 1. 按控制方书面指示处理数据,不得用于约定目的之外
34
+ 2. 采取安全措施:本地沙箱隔离、命令审批、变更审批流、审计哈希链、凭证加密、供应链安全 CI
35
+ 3. 不向第三方传输数据(除控制方明确选择的模型供应商,且以控制方配置为准)
36
+ 4. 发生数据安全事件时,按 PIPL 通知控制方与监管机构(如适用)
37
+ 5. 提供数据主体权利响应支持:查询、更正、删除
38
+
39
+ ## 5. 控制方义务
40
+
41
+ 1. 确保其数据处理行为合法(获得数据主体授权等)
42
+ 2. 对输出的数据内容负责(不输入违法违规/涉密数据)
43
+ 3. 合理配置安全策略(沙箱档位、审批、网络白名单等),按使用场景选择本地/私有化模型实现数据不出域
44
+
45
+ ## 6. 跨境传输
46
+
47
+ - 默认无跨境传输;若控制方选择境外模型供应商,跨境传输由控制方基于该供应商的合规声明自行决策,处理方不承担该环节合规责任
48
+ - 处理方如需跨境支持访问(如远程排障),须取得控制方书面同意并最小化数据范围
49
+
50
+ ## 7. 违约责任与争议
51
+
52
+ - 因处理方过错导致数据泄露的,处理方按《民法典》及相关法规承担赔偿责任
53
+ - 因控制方输入违法内容/错误配置导致的后果,由控制方承担
54
+ - 争议协商解决,协商不成提交处理方所在地有管辖权法院
55
+
56
+ ## 8. 附则
57
+
58
+ - 本协议作为软件采购/服务协议附件,冲突时以主协议为准
59
+ - 更新时提前 30 日通知控制方;控制方不接受更新的可停止使用
60
+ - 本协议不构成对第三方(含模型供应商)的义务承诺
61
+
62
+ ---
63
+ **联系**:晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
@@ -0,0 +1,67 @@
1
+ # 数据处理协议(DPA)模板 v1.0
2
+
3
+ **晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹**
4
+ **适用**:飞虹 Code(软件即本地部署工具,非云服务)——企业客户采购/部署时签署
5
+
6
+ > 本模板为面向企业客户的数据处理协议底稿。签署前请由法务复核并填写空白项(【】)。飞虹 Code 默认**本地部署、数据不出域**,数据处理面最小化。
7
+
8
+ ---
9
+
10
+ ## 一、双方与定义
11
+
12
+ **数据处理方(乙方)**:晋江市飞虹智科技企业管理有限公司(统一社会信用代码:【__】)
13
+ **数据控制方(甲方)**:【客户全称】
14
+
15
+ - **"个人数据"**:甲方或其员工在使用飞虹 Code 过程中提交、输入、生成的数据中涉及自然人个人信息的部分
16
+ - **"处理"**:收集、存储、使用、加工、传输、提供、删除等
17
+
18
+ ## 二、处理范围与目的
19
+
20
+ | 项 | 约定 |
21
+ |---|---|
22
+ | 处理目的 | 提供飞虹 Code 本地部署的 AI 编程智能体功能(代码生成、任务执行、知识检索) |
23
+ | 数据类型 | 代码、对话内容、配置、日志、审计记录(不含甲方明确标注的敏感个人信息类型) |
24
+ | 处理方式 | 乙方软件在甲方指定的本地服务器/终端运行;默认不向乙方服务器回传 |
25
+ | 数据位置 | 甲方本地(`~/.feihong-code` 或甲方指定目录);乙方不托管 |
26
+
27
+ ## 三、双方义务
28
+
29
+ ### 3.1 甲方(控制方)义务
30
+ 1. 保证其输入数据的合法性,取得必要的用户授权
31
+ 2. 按最小必要原则使用,配置 RBAC 控制访问权限
32
+ 3. 依据法律保存必要审计记录
33
+
34
+ ### 3.2 乙方(处理方)义务
35
+ 1. **仅在甲方本地处理**:软件不主动外传个人数据;联网仅为模型调用(可配置离线模式完全关闭)
36
+ 2. 提供访问控制、审计日志、数据删除(`fhcode` 数据目录清理)机制
37
+ 3. 配合甲方行使数据权利(访问 / 更正 / 删除 / 导出)
38
+ 4. 发现安全事件 48 小时内通知甲方
39
+ 5. 不向第三方出售个人数据
40
+
41
+ ## 四、安全措施(对应《安全白皮书 v7.2.0》)
42
+
43
+ - RBAC 权限隔离 + 多租户(企业模式)
44
+ - 审计日志(命令与关键操作可追溯)
45
+ - 沙箱隔离(read-only / workspace-write / container)
46
+ - 供应链安全(SBOM + npm audit + osv-scanner)
47
+ - 密钥环境变量注入,禁止明文落盘
48
+
49
+ ## 五、数据留存与删除
50
+
51
+ 1. 默认留存:会话 / 审计 / 经验库在甲方本地按配置留存
52
+ 2. 删除:甲方可随时清理数据目录;乙方提供删除指引
53
+ 3. 合同终止后:甲方删除本地数据或按甲方要求移交
54
+
55
+ ## 六、违约责任与争议
56
+
57
+ 1. 因乙方过错导致的数据泄露,乙方依法承担相应责任
58
+ 2. 争议解决:提交甲方所在地有管辖权的人民法院
59
+
60
+ ## 七、生效与变更
61
+
62
+ 本协议自双方盖章之日起生效;变更需双方书面确认。本模板空白项【】由双方填写后成为有效协议文本。
63
+
64
+ ---
65
+
66
+ *甲方(盖章):___ 乙方(盖章):晋江市飞虹智科技企业管理有限公司*
67
+ *签署日期:____年__月__日*
@@ -0,0 +1,74 @@
1
+ # 飞虹 Code · 安全白皮书(政企售前材料)
2
+
3
+ > 版本:v7.5.0-dev · 更新:2026-08-26
4
+ > 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
5
+ > **合规声明**:本文档为**自评估**材料,明确区分「已实现」与「目标项」,**不宣称已取得 SOC2/ISO27001 正式认证**。正式认证计划见第 5 节。
6
+
7
+ ## 1. 产品定位与数据流
8
+
9
+ 飞虹 Code 是本地优先的终端 AI 编程智能体(Muse Code 参照复刻),核心原则:**代码与配置默认留在本地工作区**,模型调用可通过本地/私有化模型供应商完成,满足政企数据不出域的诉求。
10
+
11
+ 数据流:
12
+ ```
13
+ 用户输入 → 本地 Agent 编排(Orchestrator)→ 工具执行(文件/shell/网络)→ 沙箱+审批+审计 → 结果回写工作区
14
+
15
+ 模型供应商(本地/私有化/云端可选)
16
+ ```
17
+
18
+ ## 2. 安全控制清单(已实现)
19
+
20
+ | 控制域 | 实现 | 位置 |
21
+ |---|---|---|
22
+ | 沙箱模式 | read-only / workspace-write / danger-full-access / container(Docker 隔离)四档 | `src/tools/sandbox.ts` |
23
+ | 容器隔离加固(P7-2) | docker run 默认 `--network none` + `--memory 512m` + `--pids-limit 256` + `--cap-drop ALL` + `no-new-privileges`,镜像/内存/网络可配 | `src/tools/shell/exec.ts` |
24
+ | 命令审批 | shell 执行默认需审批(requireApproval),支持交互/自动审批器 | `src/agent/approvers` |
25
+ | 危险命令黑名单 | rm -rf / 格式化 / 提权等拦截,danger-full-access 也生效 | `src/tools/shell` |
26
+ | 网络域名规则 | http(s) 目标 allow/deny 白黑名单,URL 工具与 shell 均校验 | `src/tools/sandbox.ts` |
27
+ | 变更审批流 | AI 写文件先暂存 → diff 审阅 → 接受/拒绝(含 hunk 级)后才落盘 | `src/agent/change-manager.ts` |
28
+ | RBAC / 多租户 | 策略 deny 优先,租户隔离与用量配额 | `src/enterprise` / `src/rbac` |
29
+ | 审计与哈希链 | 审计日志 + 哈希链校验(防篡改) | `src/agent/audit` |
30
+ | 会话检查点 | 可恢复会话,支持 rollback 回滚 AI 改动 | `src/runtime/session-persist.ts` |
31
+ | 供应链安全 | `npm audit` + CycloneDX SBOM + osv-scanner(可选) | `npm run security` |
32
+ | 凭证存储 | 密钥/令牌进系统安全存储(secure-store),不出现在日志 | `src/tools/secure-store.ts` |
33
+
34
+ ## 3. SOC 2 五大信任服务标准 · 自评估
35
+
36
+ | 标准 | 当前状态 | 主要差距 | 行动项 |
37
+ |---|---|---|---|
38
+ | **安全**(保护系统防未授权访问) | 中 | 沙箱/审批/审计/RBAC 已具备,但无独立渗透测试报告 | 每季度外部渗透测试 + 漏洞赏金计划 |
39
+ | **可用性**(系统可访问可运行) | 中 | 无 HA/容灾设计与 SLA 承诺 | 私有化交付提供 HA 架构图与 RTO/RPO 目标 |
40
+ | **处理完整性**(处理无错误、可授权) | 中 | 变更审批流覆盖文件写入,但 shell 高权操作依赖审批器配置 | 强制默认 requireApproval + 变更审批覆盖率指标 |
41
+ | **保密性**(数据访问受限) | 高(本地优先架构天然优势) | 多租户密钥轮换策略待完善 | 增加密钥定期轮换与最小权限复核 |
42
+ | **隐私**(PII 收集/使用/处置) | 中 | 需输出正式 DPA(见 docs/DPA.md)与数据处置清单 | 发布 DPA + 数据保留/删除策略 |
43
+
44
+ ## 4. ISO/IEC 27001 关键控制点 · 自评估
45
+
46
+ 对齐 ISO 27001:2022 附录 A 关键控制:
47
+
48
+ | 控制(A.x) | 现状 | 说明 |
49
+ |---|---|---|
50
+ | A.5.15 访问控制 | 已实现 | RBAC 策略 + deny 优先 |
51
+ | A.8.28 安全编码 | 部分 | OWASP 审计 skill + 安全 CI;需固化到流水线门禁 |
52
+ | A.8.8 漏洞管理 | 部分 | npm audit/SBOM 已就绪;需漏洞 SLA 与修复流程 |
53
+ | A.8.12 数据防泄漏 | 已实现 | 沙箱隔离 + 网络白名单 + 凭证脱敏 |
54
+ | A.8.24 加密 | 部分 | 凭证加密存储;传输层加密取决于部署(私有化建议 TLS) |
55
+ | A.8.26 应用安全测试 | 部分 | 需 SAST/DAST 流水线接入 |
56
+ | A.8.31 隔离环境 | 已实现 | Docker 容器隔离档位(不信任代码场景) |
57
+ | A.8.9 配置管理 / A.5.23 云安全 | 部分 | 私有化部署建议基线配置清单 |
58
+
59
+ ## 5. 正式认证路线图(目标,非已认证)
60
+
61
+ | 阶段 | 内容 | 预计 |
62
+ |---|---|---|
63
+ | 1 | SAST/DAST 流水线接入 + 渗透测试基线 | v7.6 |
64
+ | 2 | SOC 2 Type I 差距评估与整改 | v7.7 |
65
+ | 3 | SOC 2 Type I 认证 + ISO 27001 差距评估 | v8.0 |
66
+ | 4 | ISO 27001 认证 | v8.x |
67
+
68
+ ## 6. 政企采购对接建议
69
+
70
+ - 售前演示建议:`fhcode doctor` 展示沙箱档位与 Docker 探测;`fhcode audit verify` 展示审计哈希链;`fhcode policy` 展示 RBAC 策略
71
+ - 需要补签材料:`docs/DPA.md`(数据处理协议)
72
+ - 明确边界:飞虹 Code 提供安全**框架**与**默认安全**,具体合规责任按部署环境与使用方策略共同落实
73
+
74
+ > 本白皮书用于售前沟通与安全评估说明,不构成任何正式合规认证声明。
@@ -0,0 +1,55 @@
1
+ # 飞虹 Code · SWE-bench Verified 跑分状态与说明
2
+
3
+ > 更新时间:2026-08-26 · 版本:7.5.0-dev
4
+ > 本文档为 **SWE-bench 硬指标对外文案的事实依据**。所有数字均来自真实运行,不编造。
5
+
6
+ ## 1. 官方 harness 能力(已集成)
7
+
8
+ 飞虹 Code 内置 SWE-bench 官方评测 harness(`src/harness/`),对接 HuggingFace 官方数据集 `princeton-nlp/SWE-bench`(split 支持 `lite` / `verified`):
9
+
10
+ | 模块 | 作用 |
11
+ |---|---|
12
+ | `SwebenchLoader` | 从 HuggingFace datasets-server 分页拉取官方实例(含 instance_id / problem_statement / FAIL_TO_PASS / PASS_TO_PASS / patch 等) |
13
+ | `MockOrchestratorExecutor` | mock 模式:脚本化 orchestrator 回归,验证 harness 链路(不依赖模型) |
14
+ | `RealModelExecutor` | real 模式:真实模型推理,跑官方问题 |
15
+ | `FileExistsVerifier` | 通过标准=生成指定文件(链路自检用) |
16
+ | `TestVerifier`(P7-1) | **通过标准=官方测试通过**:有 FAIL_TO_PASS 用例时优先跑这些失败用例(`npm test -- <用例>`),退出码 0 判通过 |
17
+ | `MarkdownReporter` / `JsonReporter` | 报告输出 |
18
+
19
+ ## 2. 实测结果(诚实记录,mock 模式)
20
+
21
+ | 运行 | 数据集 | 实例数 | 通过率 | 说明 |
22
+ |---|---|---|---|---|
23
+ | 2026-08-26 | SWE-bench lite | 1 | 100% | `harness lite --limit 2 --mode mock`,django__django-11099,验证 harness 链路真实可用 |
24
+
25
+ > ⚠️ 该 1/1 为 **mock(脚本化)回归**,用于验证「拉取官方数据集 → 执行 → 验证 → 报告」全链路,**不代表模型真实解题能力**。真实硬指标必须以 `--mode real` + `--verifier test` 跑出。
26
+
27
+ ## 3. 真实跑分命令(需模型 + Docker 环境)
28
+
29
+ ```bash
30
+ # 官方 SWE-bench Verified,真实模型推理 + 官方测试验证
31
+ fhcode harness verified --limit 20 --mode real --verifier test --report docs/swe-bench-verified-run.md
32
+
33
+ # 全量(500 例,耗时长,建议 CI 分批)
34
+ fhcode harness verified --mode real --verifier test --report docs/swe-bench-verified-full.md
35
+
36
+ # 输出 JSON 供后续对标
37
+ fhcode harness verified --mode real --verifier test --json
38
+ ```
39
+
40
+ **环境前置**:
41
+ - 已配置模型供应商(`fhcode config set` 或 `~/.feihong-code/config.json` 的 `models.providers`)
42
+ - Docker 可用(验证器在容器内跑 FAIL_TO_PASS 测试,隔离不信任代码)
43
+ - 每实例需 clone 对应 repo(django / sympy / astropy 等),网络可达 GitHub
44
+
45
+ ## 4. 对外文案口径(有据可依)
46
+
47
+ - 可对外宣称:**「已接入 SWE-bench Verified 官方评测(HuggingFace 官方数据集 + FAIL_TO_PASS 测试验证器),支持一键跑分」**
48
+ - 在真实 `--mode real` 跑分未完成前,**禁止**对外发布任何「SWE-bench 通过率 X%」数字
49
+ - 当前公开口径:**「SWE-bench Verified 官方 harness 已就绪,跑分结果将随 v7.5.0 发布」**
50
+
51
+ ## 5. 与对标产品的差距定位(供内部参考)
52
+
53
+ - OpenAI Codex / Cursor / Claude Code 均已公开 SWE-bench Verified 通过率(如 60-75% 量级)
54
+ - 飞虹 Code 尚未完成真实跑分 → 差距仍在,但**从"无 harness"升级为"官方 harness 就绪,待真实跑分"**
55
+ - 真实跑分完成后的对标文案更新入口:`docs/BENCHMARK_REPORT_zh.md`