nexforge-cli 0.2.9__tar.gz → 0.2.12__tar.gz

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 (183) hide show
  1. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/PKG-INFO +17 -17
  2. nexforge_cli-0.2.12/README.md +109 -0
  3. nexforge_cli-0.2.12/docs/submission/README-/346/212/225/347/250/277/350/257/264/346/230/216.md +67 -0
  4. nexforge_cli-0.2.12/docs/submission/nexforge.md +97 -0
  5. nexforge_cli-0.2.12/docs/submission/nexforge.zh-CN.md +97 -0
  6. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/01-/345/256/211/350/243/205/344/270/216/351/205/215/347/275/256.md +1 -1
  7. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/02-/347/225/214/351/235/242/344/270/216/345/277/253/346/215/267/351/224/256.md +6 -2
  8. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/03-/346/250/241/345/236/213/351/205/215/347/275/256.md +34 -1
  9. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/04-/345/267/245/345/205/267/345/217/202/350/200/203.md +8 -2
  10. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/05-/346/225/260/346/215/256/344/270/216/346/220/234/347/264/242.md +2 -0
  11. nexforge_cli-0.2.12/manual/07-/344/274/232/350/257/235/344/270/216/350/256/260/345/277/206.md +100 -0
  12. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/08-/350/207/252/345/256/232/344/271/211/351/205/215/347/275/256.md +19 -3
  13. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/09-/345/270/270/350/247/201/351/227/256/351/242/230.md +5 -1
  14. nexforge_cli-0.2.12/manual/10-/346/217/222/344/273/266/345/274/200/345/217/221.md +78 -0
  15. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/README.md +1 -1
  16. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/pyproject.toml +1 -1
  17. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/__init__.py +1 -1
  18. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/app.py +2 -1
  19. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/config.py +102 -14
  20. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/agent.py +17 -2
  21. nexforge_cli-0.2.12/src/nexforge/core/context.py +26 -0
  22. nexforge_cli-0.2.12/src/nexforge/core/federation.py +494 -0
  23. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/goal_manager.py +13 -5
  24. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/jobs.py +120 -103
  25. nexforge_cli-0.2.12/src/nexforge/core/knowledge_base.py +231 -0
  26. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/memory_engine.py +5 -3
  27. nexforge_cli-0.2.12/src/nexforge/core/plugin.py +263 -0
  28. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/project_mapper.py +236 -73
  29. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/provider.py +8 -0
  30. nexforge_cli-0.2.12/src/nexforge/core/session.py +157 -0
  31. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/summarizer.py +41 -3
  32. nexforge_cli-0.2.12/src/nexforge/core/system_inject.py +50 -0
  33. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/tool_manifest.py +5 -4
  34. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/types.py +104 -103
  35. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/auto_skills.py +9 -1
  36. nexforge_cli-0.2.12/src/nexforge/features/federation_feature.py +183 -0
  37. nexforge_cli-0.2.12/src/nexforge/features/kb_feature.py +43 -0
  38. nexforge_cli-0.2.12/src/nexforge/features/map_feature.py +54 -0
  39. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/memory_feature.py +7 -4
  40. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/mode_features.py +151 -37
  41. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/plan_feature.py +7 -6
  42. nexforge_cli-0.2.12/src/nexforge/features/registry.py +44 -0
  43. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/session_feature.py +78 -21
  44. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/tool_manifest_feature.py +4 -2
  45. nexforge_cli-0.2.12/src/nexforge/i18n.py +373 -0
  46. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/provider/__init__.py +1 -0
  47. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/provider/_retry.py +1 -1
  48. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/provider/balance.py +58 -37
  49. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/provider/deepseek.py +5 -0
  50. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/provider/openai.py +105 -0
  51. nexforge_cli-0.2.12/src/nexforge/provider/qianwen.py +295 -0
  52. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/skills/loader.py +103 -102
  53. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/stats/heartbeat.py +62 -58
  54. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/store/plan_store.py +120 -112
  55. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/store/session_store.py +133 -20
  56. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/theme.tcss +144 -130
  57. nexforge_cli-0.2.12/src/nexforge/tools/_paths.py +50 -0
  58. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/base.py +57 -56
  59. nexforge_cli-0.2.12/src/nexforge/tools/federation.py +175 -0
  60. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/image_tools.py +173 -150
  61. nexforge_cli-0.2.12/src/nexforge/tools/kb_tools.py +133 -0
  62. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/ops_tools.py +7 -4
  63. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/registry.py +6 -0
  64. nexforge_cli-0.2.12/src/nexforge/tools/screenshot_tools.py +320 -0
  65. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/screens/chat.py +301 -124
  66. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/screens/chat_actions.py +97 -18
  67. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/screens/splash.py +0 -19
  68. nexforge_cli-0.2.12/src/nexforge/ui/slash_handler.py +784 -0
  69. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/apikey_modal.py +87 -84
  70. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/confirm_modal.py +60 -58
  71. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/diff_modal.py +78 -73
  72. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/image_sidebar.py +98 -91
  73. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/messages.py +38 -13
  74. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/mode_warning.py +12 -30
  75. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/model_sidebar.py +36 -29
  76. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/multiline_modal.py +5 -3
  77. nexforge_cli-0.2.12/src/nexforge/ui/widgets/plan_sidebar.py +96 -0
  78. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/sidebar.py +106 -100
  79. nexforge_cli-0.2.12/src/nexforge/ui/widgets/statusbar.py +92 -0
  80. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/web/server.py +16 -5
  81. nexforge_cli-0.2.12/tests/conftest.py +16 -0
  82. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_config.py +34 -1
  83. nexforge_cli-0.2.12/tests/test_federation.py +476 -0
  84. nexforge_cli-0.2.12/tests/test_goal_confirm.py +154 -0
  85. nexforge_cli-0.2.12/tests/test_i18n.py +87 -0
  86. nexforge_cli-0.2.12/tests/test_lang_cmd.py +155 -0
  87. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_manual_consistency.py +9 -8
  88. nexforge_cli-0.2.12/tests/test_p2_core.py +127 -0
  89. nexforge_cli-0.2.12/tests/test_plugin.py +270 -0
  90. nexforge_cli-0.2.12/tests/test_sanitize.py +63 -0
  91. nexforge_cli-0.2.12/tests/test_screenshot_tools.py +77 -0
  92. nexforge_cli-0.2.12/tests/test_session_repair.py +141 -0
  93. nexforge_cli-0.2.12/tests/test_session_store.py +189 -0
  94. nexforge_cli-0.2.12/tests/test_statusbar.py +53 -0
  95. nexforge_cli-0.2.12/tests/test_system_inject.py +90 -0
  96. nexforge_cli-0.2.9/= +0 -0
  97. nexforge_cli-0.2.9/README.md +0 -109
  98. nexforge_cli-0.2.9/manual/07-/344/274/232/350/257/235/344/270/216/350/256/260/345/277/206.md +0 -59
  99. nexforge_cli-0.2.9/src/nexforge/core/federation.py +0 -195
  100. nexforge_cli-0.2.9/src/nexforge/core/session.py +0 -80
  101. nexforge_cli-0.2.9/src/nexforge/features/federation_feature.py +0 -45
  102. nexforge_cli-0.2.9/src/nexforge/features/map_feature.py +0 -47
  103. nexforge_cli-0.2.9/src/nexforge/features/registry.py +0 -29
  104. nexforge_cli-0.2.9/src/nexforge/tools/_paths.py +0 -22
  105. nexforge_cli-0.2.9/src/nexforge/tools/federation.py +0 -85
  106. nexforge_cli-0.2.9/src/nexforge/ui/slash_handler.py +0 -510
  107. nexforge_cli-0.2.9/src/nexforge/ui/widgets/plan_sidebar.py +0 -90
  108. nexforge_cli-0.2.9/src/nexforge/ui/widgets/statusbar.py +0 -83
  109. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/.gitignore +0 -0
  110. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/INSTALL.md +0 -0
  111. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/STATS_API.md +0 -0
  112. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/agent.svg +0 -0
  113. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/cost.svg +0 -0
  114. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/edit.svg +0 -0
  115. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/err.svg +0 -0
  116. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/file.svg +0 -0
  117. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/model.svg +0 -0
  118. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/ok.svg +0 -0
  119. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/read.svg +0 -0
  120. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/running.svg +0 -0
  121. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/search.svg +0 -0
  122. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/shell.svg +0 -0
  123. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/thinking.svg +0 -0
  124. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/web.svg +0 -0
  125. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/assets/icons/write.svg +0 -0
  126. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/config.example.toml +0 -0
  127. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/devlog/2026-07-07.md +0 -0
  128. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/doc//344/273/243/347/240/201/344/274/230/345/214/226/350/256/241/345/210/222.md" +0 -0
  129. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/doc//347/211/271/346/200/247/346/250/241/345/235/227/346/263/250/345/206/214/345/210/266-/345/256/236/346/226/275/350/256/241/345/210/222.md" +0 -0
  130. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/doc//351/241/271/347/233/256/346/200/273/347/233/221/345/276/252/347/216/257-/345/274/200/345/217/221/350/256/241/345/210/222.md" +0 -0
  131. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual/06-/346/235/203/351/231/220/344/270/216/346/250/241/345/274/217.md" +0 -0
  132. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/manual//351/231/204/345/275/225-/345/257/271/346/257/224/345/210/206/346/236/220.md" +0 -0
  133. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/scripts/publish.sh +0 -0
  134. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/scripts/smoke_provider.py +0 -0
  135. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/scripts/smoke_tui.py +0 -0
  136. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/__main__.py +0 -0
  137. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/cli.py +0 -0
  138. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/__init__.py +0 -0
  139. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/permissions.py +0 -0
  140. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/core/router.py +0 -0
  141. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/__init__.py +0 -0
  142. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/base.py +0 -0
  143. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/slash_feature.py +0 -0
  144. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/features/stats_feature.py +0 -0
  145. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/icons.py +0 -0
  146. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/mcp/__init__.py +0 -0
  147. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/provider/anthropic.py +0 -0
  148. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/stats/__init__.py +0 -0
  149. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/store/__init__.py +0 -0
  150. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/__init__.py +0 -0
  151. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/background.py +0 -0
  152. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/data_tools.py +0 -0
  153. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/edit_file.py +0 -0
  154. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/fs_ops.py +0 -0
  155. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/git.py +0 -0
  156. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/list_dir.py +0 -0
  157. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/multi_edit.py +0 -0
  158. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/read_file.py +0 -0
  159. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/search.py +0 -0
  160. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/search_content.py +0 -0
  161. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/search_files.py +0 -0
  162. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/shell.py +0 -0
  163. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/web.py +0 -0
  164. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/tools/write_file.py +0 -0
  165. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/__init__.py +0 -0
  166. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/clipboard_image.py +0 -0
  167. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/screen_api.py +0 -0
  168. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/screens/__init__.py +0 -0
  169. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/__init__.py +0 -0
  170. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/banner.py +0 -0
  171. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/ui/widgets/multiline_prompt.py +0 -0
  172. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/utils/__init__.py +0 -0
  173. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/utils/logging.py +0 -0
  174. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/web/__init__.py +0 -0
  175. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/src/nexforge/web/static/index.html +0 -0
  176. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_approval.py +0 -0
  177. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_icons.py +0 -0
  178. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_m2_tools.py +0 -0
  179. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_sidebar.py +0 -0
  180. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_sidebar_actions.py +0 -0
  181. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_splash_modal.py +0 -0
  182. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_tools.py +0 -0
  183. {nexforge_cli-0.2.9 → nexforge_cli-0.2.12}/tests/test_tui.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: nexforge-cli
3
- Version: 0.2.9
3
+ Version: 0.2.12
4
4
  Summary: NexForgeCLI — 一个面向 DeepSeek V4 的终端智能体(TUI + CLI 双模式)
5
5
  Project-URL: Homepage, https://gitee.com/Lighthorn/nexforgecli
6
6
  Author: NexForge
@@ -49,9 +49,9 @@ Description-Content-Type: text/markdown
49
49
 
50
50
  </div>
51
51
 
52
- NexForgeCLI 是一个运行在终端里的智能体助手,专为 **DeepSeek V4** 打造。既能作为全屏 TUI 交互式对话/编码,也能作为 one-shot 命令行工具嵌进脚本和管道。
52
+ NexForgeCLI 是一个运行在终端里的智能体助手,既支持 DeepSeek/千问等多模型,也是**插件宿主**(plugins 目录即插即用)。既能作为全屏 TUI 交互式对话/编码,也能作为 one-shot 命令行工具嵌进脚本和管道。
53
53
 
54
- > 当前版本:**v0.2.5** · PyPI: `pip install nexforge-cli`
54
+ > 当前版本:**v0.2.11** · PyPI: `pip install nexforge-cli`
55
55
 
56
56
  ---
57
57
 
@@ -81,14 +81,16 @@ API Key 获取: https://platform.deepseek.com/api_keys
81
81
 
82
82
  ## ✨ 特性
83
83
 
84
- - **DeepSeek V4 深度优化** —— thinking 模式、KV Cache、streaming、采样参数、JSON Mode、tool_choice 全适配
85
- - **TUI 全屏交互** —— Textual 驱动,流式 Markdown、可折叠思考面板、工具卡片、状态栏
86
- - **安全分级** —— safe/supervised/auto 三级权限,审批弹窗
84
+ - **多模型底座** —— DeepSeek(内置) / 千问专用底座 / 通用 OpenAI 兼容 / Anthropic,`/provider` 即切
85
+ - **插件宿主** —— `plugins/` 目录即插即用(工具/UI特性/技能),无需改主程序
86
+ - **三级知识库** —— 全局+项目+项目地图,kb_search 检索、kb_write 沉淀
87
+ - **DeepSeek 深度优化** —— thinking 模式、KV Cache、streaming、采样参数、JSON Mode、tool_choice 全适配
88
+ - **TUI 全屏交互** —— Textual 驱动,流式 Markdown、可折叠思考面板、工具卡片、状态栏
89
+ - **安全分级** —— safe/supervised/auto 三级权限,审批弹窗
87
90
  - **会话管理** —— 自动保存/恢复、多会话切换、重命名/删除
88
- - **计划模式** —— 只读讨论,AI 生成计划后执行
91
+ - **计划模式** —— 只读讨论,AI 生成计划后执行
89
92
  - **多行输入** —— F2 弹窗面板、F3 系统编辑器
90
93
  - **一键安装** —— `pip install nexforge-cli`
91
- - **性能优化** —— O(n²)→O(n) 流式渲染、DOM 查询缓存、I/O 异步化
92
94
 
93
95
  ---
94
96
 
@@ -125,14 +127,12 @@ nexforge -p "这个项目是做什么的?"
125
127
 
126
128
  | 文档 | 内容 |
127
129
  |------|------|
128
- | [总览](doc/总览.md) | 项目介绍 |
129
- | [安装与配置](doc/安装与配置.md) | 安装/配置/FAQ |
130
- | [命令与快捷键](doc/命令与快捷键.md) | 全部命令和快捷键 |
131
- | [工具参考](doc/工具参考.md) | AI 可调用工具说明 |
132
- | [会话管理](doc/会话管理.md) | 会话保存/恢复/切换 |
133
- | [计划模式](doc/计划模式.md) | 只读讨论模式 |
134
- | [权限系统](doc/权限系统.md) | 三级权限 |
135
- | [高级功能](doc/高级功能.md) | DeepSeek 集成/Web/技能 |
130
+ | [01-安装与配置](manual/01-安装与配置.md) | 安装/配置/API Key |
131
+ | [02-界面与快捷键](manual/02-界面与快捷键.md) | 全部命令和快捷键 |
132
+ | [03-模型配置](manual/03-模型配置.md) | DeepSeek/千问/多模型接入 |
133
+ | [04-工具参考](manual/04-工具参考.md) | AI 可调用工具说明 |
134
+ | [08-自定义配置](manual/08-自定义配置.md) | config.toml/models.toml 全字段 |
135
+ | [10-插件开发](manual/10-插件开发.md) | 插件宿主开发指南 |
136
136
 
137
137
  ---
138
138
 
@@ -0,0 +1,109 @@
1
+ <div align="center">
2
+
3
+ # ◆ NexForgeCLI
4
+
5
+ **面向 DeepSeek V4 的终端智能体 · TUI + CLI 双模式**
6
+
7
+ </div>
8
+
9
+ NexForgeCLI 是一个运行在终端里的智能体助手,既支持 DeepSeek/千问等多模型,也是**插件宿主**(plugins 目录即插即用)。既能作为全屏 TUI 交互式对话/编码,也能作为 one-shot 命令行工具嵌进脚本和管道。
10
+
11
+ > 当前版本:**v0.2.11** · PyPI: `pip install nexforge-cli`
12
+
13
+ ---
14
+
15
+ ## 📦 安装
16
+
17
+ ```bash
18
+ # pipx 安装(推荐,自动管理 PATH)
19
+ pipx install nexforge-cli
20
+
21
+ # pip 安装
22
+ pip install nexforge-cli
23
+
24
+ # 开发版
25
+ pip install git+https://gitee.com/Lighthorn/nexforgecli.git
26
+ ```
27
+
28
+ 设置 API Key:
29
+
30
+ ```bash
31
+ export DEEPSEEK_API_KEY="sk-..."
32
+ # 或启动后在输入框输入: /key sk-...
33
+ ```
34
+
35
+ API Key 获取: https://platform.deepseek.com/api_keys
36
+
37
+ ---
38
+
39
+ ## ✨ 特性
40
+
41
+ - **多模型底座** —— DeepSeek(内置) / 千问专用底座 / 通用 OpenAI 兼容 / Anthropic,`/provider` 即切
42
+ - **插件宿主** —— `plugins/` 目录即插即用(工具/UI特性/技能),无需改主程序
43
+ - **三级知识库** —— 全局+项目+项目地图,kb_search 检索、kb_write 沉淀
44
+ - **DeepSeek 深度优化** —— thinking 模式、KV Cache、streaming、采样参数、JSON Mode、tool_choice 全适配
45
+ - **TUI 全屏交互** —— Textual 驱动,流式 Markdown、可折叠思考面板、工具卡片、状态栏
46
+ - **安全分级** —— safe/supervised/auto 三级权限,审批弹窗
47
+ - **会话管理** —— 自动保存/恢复、多会话切换、重命名/删除
48
+ - **计划模式** —— 只读讨论,AI 生成计划后执行
49
+ - **多行输入** —— F2 弹窗面板、F3 系统编辑器
50
+ - **一键安装** —— `pip install nexforge-cli`
51
+
52
+ ---
53
+
54
+ ## 🚀 使用
55
+
56
+ ```bash
57
+ # 全屏 TUI(默认)
58
+ nexforge
59
+
60
+ # 或简写
61
+ nf
62
+
63
+ # one-shot 模式
64
+ nexforge -p "这个项目是做什么的?"
65
+ ```
66
+
67
+ ### 快捷键
68
+
69
+ | 快捷键 | 功能 |
70
+ |--------|------|
71
+ | `Enter` | 发送消息 |
72
+ | `F1` | 帮助 |
73
+ | `F2` | 多行输入弹窗 |
74
+ | `F3` | 外部编辑器 |
75
+ | `Ctrl+S` | 会话面板 |
76
+ | `Ctrl+B` | 计划面板 |
77
+ | `Ctrl+L` | 清屏 |
78
+ | `Ctrl+Shift+C` | 复制 AI 回复 |
79
+ | `Esc` | 停止/退出 |
80
+
81
+ ---
82
+
83
+ ## 📁 文档
84
+
85
+ | 文档 | 内容 |
86
+ |------|------|
87
+ | [01-安装与配置](manual/01-安装与配置.md) | 安装/配置/API Key |
88
+ | [02-界面与快捷键](manual/02-界面与快捷键.md) | 全部命令和快捷键 |
89
+ | [03-模型配置](manual/03-模型配置.md) | DeepSeek/千问/多模型接入 |
90
+ | [04-工具参考](manual/04-工具参考.md) | AI 可调用工具说明 |
91
+ | [08-自定义配置](manual/08-自定义配置.md) | config.toml/models.toml 全字段 |
92
+ | [10-插件开发](manual/10-插件开发.md) | 插件宿主开发指南 |
93
+
94
+ ---
95
+
96
+ ## 🧪 开发
97
+
98
+ ```bash
99
+ git clone https://gitee.com/Lighthorn/nexforgecli.git
100
+ cd nexforgecli
101
+ pip install -e ".[dev]"
102
+ python -m pytest -q
103
+ ```
104
+
105
+ ---
106
+
107
+ ## 📄 License
108
+
109
+ MIT
@@ -0,0 +1,67 @@
1
+ # 投稿 NexForgeCLI 到 awesome-deepseek-agent
2
+
3
+ ## 已准备好的文件
4
+
5
+ ```
6
+ docs/submission/
7
+ nexforge.md ← 英文指南(可直接用)
8
+ nexforge.zh-CN.md ← 简体中文指南(可直接用)
9
+ ```
10
+
11
+ ## 需要你手动做的 4 步(需要 GitHub 账号)
12
+
13
+ ### 第 1 步: Fork 仓库
14
+
15
+ 1. 打开 https://github.com/deepseek-ai/awesome-deepseek-agent
16
+ 2. 点右上角 **Fork** 到你的账号
17
+
18
+ ### 第 2 步: 上传两个指南文件
19
+
20
+ 在你的 fork 里进入 `docs/` 目录 → **Add file → Upload files**:
21
+
22
+ ```
23
+ docs/nexforge.md ← 内容取自 docs/submission/nexforge.md
24
+ docs/nexforge.zh-CN.md ← 内容取自 docs/submission/nexforge.zh-CN.md
25
+ ```
26
+
27
+ ### 第 3 步: 修改两个 README(插入表格条目)
28
+
29
+ **README.md**(英文版): 在 `| **nanobot** |` 行之后、`| **Oh My Pi** |` 行之前插入:
30
+
31
+ ```markdown
32
+ | **NexForgeCLI** | Open-source terminal AI coding assistant with 35 built-in tools, native DeepSeek-V4 support (1M context), data analysis, web search, and a director-loop goal mode. | [Guide](./docs/nexforge.md) |
33
+ ```
34
+
35
+ **README.zh-CN.md**(中文版): 同样位置(在 nanobot 之后、Oh My Pi 之前)插入:
36
+
37
+ ```markdown
38
+ | **NexForgeCLI** | 开源终端 AI 编程助手,内置 35 个工具,原生支持 DeepSeek-V4(100 万上下文)、数据分析、网络搜索与总监循环目标模式。 | [指南](./docs/nexforge.zh-CN.md) |
39
+ ```
40
+
41
+ > 注意: 按字母序插入(Ne 在 na 和 Oh 之间), 不要追加到表格末尾, 否则合并冲突概率高。
42
+
43
+ ### 第 4 步: 提交 PR
44
+
45
+ 1. 在 fork 仓库页面点 **Contribute → Open Pull Request**
46
+ 2. Base: `deepseek-ai/awesome-deepseek-agent:main` ← Compare: `你的fork:main`
47
+ 3. PR 标题建议: `Add NexForgeCLI integration guide (EN + zh-CN)`
48
+ 4. 描述里注明: 双语指南在一个 PR 内、README 表格按字母序插入
49
+
50
+ ## 已满足的 CONTRIBUTING.md 硬性要求
51
+
52
+ | 要求 | 状态 |
53
+ |------|------|
54
+ | 双语(英文 + 简体中文, 单 PR) | ✓ 两个文件同 PR |
55
+ | README 表格按字母序插入 | ✓ nanobot 与 Oh My Pi 之间 |
56
+ | 模型命名用新名 deepseek-v4-pro/flash | ✓ 全文无 v3 旧名 |
57
+ | 1M 上下文提及/配置 | ✓ context_window = 1000000 |
58
+ | max 思考档兼容 | ✓ auto 路由自动升级到 max |
59
+ | 不写降级 workaround | ✓ 无 |
60
+ | 配置字段真实存在 | ✓ 全部核实过代码 |
61
+ | 截图 | 未涉及 |
62
+
63
+ ## 注意事项
64
+
65
+ - 仓库托管在 **gitee**(https://gitee.com/Lighthorn/nexforgecli), PR 描述里说明即可, 不影响收录(README 表格中其他项目也有非 GitHub 托管的情况, 但多数为 GitHub; 若被要求 GitHub 镜像可再考虑)
66
+ - 若 PR 被要求修改, 在 fork 里改对应文件, PR 会自动更新
67
+ - 提交后把 PR 链接发我, 我可以帮你复核 diff
@@ -0,0 +1,97 @@
1
+ [English](./nexforge.md) | [简体中文](./nexforge.zh-CN.md) · [← Back](../README.md)
2
+
3
+ # Integrate with NexForgeCLI
4
+
5
+ NexForgeCLI is an open-source terminal AI coding assistant with 35 built-in tools covering file editing, shell execution, Git, data analysis (CSV / SQLite / text), web search, image understanding, and ops automation. It talks to `api.deepseek.com` natively with DeepSeek-V4-Pro / DeepSeek-V4-Flash, supports the full 1M-token context window, and can also drive any OpenAI-compatible or Anthropic-compatible endpoint (Kimi, GPT, Claude, …) through a single `models.toml`.
6
+
7
+ - **Repository:** <https://gitee.com/Lighthorn/nexforgecli>
8
+ - **PyPI:** <https://pypi.org/project/nexforge-cli/>
9
+
10
+ #### 1. Install NexForgeCLI
11
+
12
+ Requires Python 3.11+:
13
+
14
+ ```sh
15
+ pip install nexforge-cli
16
+ ```
17
+
18
+ Verify:
19
+
20
+ ```sh
21
+ nf --version
22
+ ```
23
+
24
+ #### 2. Get a DeepSeek API Key
25
+
26
+ Get your API Key from the [DeepSeek Platform](https://platform.deepseek.com/api_keys), then save it:
27
+
28
+ ```sh
29
+ nf --login
30
+ ```
31
+
32
+ This stores the key in `~/.nexforge/auth.toml`. You can also set the `DEEPSEEK_API_KEY` environment variable — it takes precedence.
33
+
34
+ #### 3. Enter a project directory and launch
35
+
36
+ ```sh
37
+ cd /path/to/my-project
38
+ nf
39
+ ```
40
+
41
+ NexForgeCLI defaults to **DeepSeek-V4-Flash** with thinking enabled (effort `high`). Press `F6` to open the model sidebar and switch to **DeepSeek-V4-Pro** at any time. `auto` tier routes automatically: it starts on Flash and escalates to Pro + `max` effort when the task looks complex or tools keep failing.
42
+
43
+ #### Modes
44
+
45
+ | Mode | What it does |
46
+ |---|---|
47
+ | **safe** | Read-only tools run freely; mutations require approval. |
48
+ | **supervised** | Reads + writes run freely; shell and deletions require approval. |
49
+ | **auto** | Everything auto-approved (same as "YOLO"). |
50
+ | **Plan** | Read-only investigation. No mutations, no shell (`/plan`). |
51
+ | **Goal** | Director–worker loop: the director agent decomposes your goal, reviews each round, and issues the next instruction automatically. |
52
+
53
+ #### Key shortcuts
54
+
55
+ | Key | Action |
56
+ |-----|--------|
57
+ | `Enter` | Send the prompt |
58
+ | `F1` | Help |
59
+ | `F2` | Cycle approval mode (safe / supervised / auto) |
60
+ | `F3` | Open the editor (multiline input) |
61
+ | `F5` | Session sidebar |
62
+ | `F6` | Model sidebar (switch provider / model / thinking) |
63
+ | `F7` | Ops mode (validated runbook reuse) |
64
+ | `F8` | Goal mode (director loop) |
65
+ | `F10` | Quick reply (repeat the last prompt N times) |
66
+ | `Esc` | Interrupt the current turn |
67
+ | `Ctrl+L` | Clear the screen |
68
+
69
+ #### Slash commands (highlights)
70
+
71
+ | Command | What it does |
72
+ |---|---|
73
+ | `/model [flash\|pro\|auto]` | Switch tier |
74
+ | `/think on\|off` | Toggle DeepSeek thinking mode |
75
+ | `/provider [<name>]` | List / switch provider |
76
+ | `/mode safe\|supervised\|auto` | Approval mode |
77
+ | `/plan` | Enter plan mode (read-only) |
78
+ | `/goal` | Enter goal mode (director loop) |
79
+ | `/balance` | Query DeepSeek balance |
80
+ | `/cost` | Show accumulated token usage and cost |
81
+ | `/map view\|check\|sync` | View / check / sync the project map |
82
+ | `/memory view\|add\|search` | Project memory |
83
+ | `/federation` | Link multiple projects |
84
+
85
+ #### Configuration
86
+
87
+ - `~/.nexforge/config.toml` — main config (theme, icons, mode, router, pricing).
88
+ - `~/.nexforge/models.toml` — add any OpenAI-compatible / Anthropic-compatible provider. For DeepSeek, 1M context is already set via `context_window = 1000000`; thinking mode is on by default with `reasoning_effort = "high"` (router escalates to `max` automatically).
89
+ - `~/.nexforge/tools.json` — register external tools (git-bash, godot, …) so the agent calls them with exact paths instead of guessing. Project-level `.nexforge/tools.json` overrides the user-level one.
90
+ - `.nexforge/map.md` — auto-synced project map (module layers, dependency graph, call graph, symbol index) refreshed every turn.
91
+
92
+ #### Highlights
93
+
94
+ - **Director loop (goal mode)** — the director agent (separate hidden session) decomposes goals, reviews each developer round, and keeps the loop running until the goal is achieved.
95
+ - **Data tools** — `read_csv` (auto delimiter/encoding), `query_sqlite` (read-only, injection-safe), `inspect_text` (line/word/encoding/top-freq stats) — all stdlib, no extra deps.
96
+ - **Search & fetch** — `search_web` (Bing HTML by default, no key needed; optional Google / DuckDuckGo / SearXNG) plus `web_fetch` (5 MB cap, streaming).
97
+ - **Session persistence** — auto-save every turn and on exit; sessions resume after restart and are project-scoped.
@@ -0,0 +1,97 @@
1
+ [English](./nexforge.md) | [简体中文](./nexforge.zh-CN.md) · [← 返回](../README.zh-CN.md)
2
+
3
+ # 接入 NexForgeCLI
4
+
5
+ NexForgeCLI 是一款开源的终端 AI 编程助手,内置 35 个工具,覆盖文件编辑、Shell 执行、Git、数据分析(CSV / SQLite / 文本)、网络搜索、图片理解与运维自动化。原生对接 `api.deepseek.com`,支持 DeepSeek-V4-Pro 与 DeepSeek-V4-Flash 全 100 万 token 上下文,也可通过一份 `models.toml` 驱动任意 OpenAI 兼容或 Anthropic 兼容的端点(Kimi、GPT、Claude 等)。
6
+
7
+ - **仓库:** <https://gitee.com/Lighthorn/nexforgecli>
8
+ - **PyPI:** <https://pypi.org/project/nexforge-cli/>
9
+
10
+ #### 1. 安装 NexForgeCLI
11
+
12
+ 需要 Python 3.11+:
13
+
14
+ ```sh
15
+ pip install nexforge-cli
16
+ ```
17
+
18
+ 验证安装:
19
+
20
+ ```sh
21
+ nf --version
22
+ ```
23
+
24
+ #### 2. 获取 DeepSeek API Key
25
+
26
+ 在 [DeepSeek 开放平台](https://platform.deepseek.com/api_keys) 获取 API Key,然后保存:
27
+
28
+ ```sh
29
+ nf --login
30
+ ```
31
+
32
+ Key 会保存到 `~/.nexforge/auth.toml`。也可以直接设置环境变量 `DEEPSEEK_API_KEY`(优先级更高)。
33
+
34
+ #### 3. 进入项目目录并启动
35
+
36
+ ```sh
37
+ cd /path/to/my-project
38
+ nf
39
+ ```
40
+
41
+ NexForgeCLI 默认使用 **DeepSeek-V4-Flash**,思考模式开启(effort `high`)。随时按 `F6` 打开模型侧边栏切换到 **DeepSeek-V4-Pro**。`auto` 档位会自动路由:默认 Flash 起步,任务复杂或工具连续失败时自动升级到 Pro + `max` 思考强度。
42
+
43
+ #### 模式
44
+
45
+ | 模式 | 说明 |
46
+ |---|---|
47
+ | **safe** | 只读工具自由执行,写操作需审批。 |
48
+ | **supervised** | 读写自由执行,Shell 与删除需审批。 |
49
+ | **auto** | 全部自动批准(相当于 YOLO)。 |
50
+ | **Plan** | 只读调研模式。不写文件、不执行 Shell(`/plan`)。 |
51
+ | **Goal** | 总监-开发者循环:总监 agent 分解目标、每轮复盘审核、自动下发下一步指令。 |
52
+
53
+ #### 快捷键
54
+
55
+ | 按键 | 操作 |
56
+ |-----|------|
57
+ | `Enter` | 发送 prompt |
58
+ | `F1` | 帮助 |
59
+ | `F2` | 循环切换审批模式(safe / supervised / auto) |
60
+ | `F3` | 打开编辑器(多行输入) |
61
+ | `F5` | 会话侧边栏 |
62
+ | `F6` | 模型侧边栏(切换 provider / 模型 / 思考模式) |
63
+ | `F7` | 运维模式(复用已验证方案) |
64
+ | `F8` | 目标模式(总监循环) |
65
+ | `F10` | 快捷回复(重复上次 prompt N 次) |
66
+ | `Esc` | 中断当前回合 |
67
+ | `Ctrl+L` | 清屏 |
68
+
69
+ #### 斜杠命令(节选)
70
+
71
+ | 命令 | 说明 |
72
+ |---|---|
73
+ | `/model [flash\|pro\|auto]` | 切换档位 |
74
+ | `/think on\|off` | 切换 DeepSeek 思考模式 |
75
+ | `/provider [<name>]` | 列出 / 切换 provider |
76
+ | `/mode safe\|supervised\|auto` | 审批模式 |
77
+ | `/plan` | 进入计划模式(只读) |
78
+ | `/goal` | 进入目标模式(总监循环) |
79
+ | `/balance` | 查询 DeepSeek 余额 |
80
+ | `/cost` | 显示累计 token 用量与费用 |
81
+ | `/map view\|check\|sync` | 查看 / 检查 / 同步项目地图 |
82
+ | `/memory view\|add\|search` | 项目记忆 |
83
+ | `/federation` | 联结多个项目 |
84
+
85
+ #### 配置
86
+
87
+ - `~/.nexforge/config.toml` —— 主配置(主题、图标、模式、路由、定价)。
88
+ - `~/.nexforge/models.toml` —— 添加任意 OpenAI 兼容 / Anthropic 兼容 provider。DeepSeek 已配置 1M 上下文(`context_window = 1000000`),思考模式默认开启(`reasoning_effort = "high"`,路由自动升级到 `max`)。
89
+ - `~/.nexforge/tools.json` —— 注册外部工具(git-bash、godot 等),让 agent 用精确路径调用而不是猜测。项目级 `.nexforge/tools.json` 覆盖用户级配置。
90
+ - `.nexforge/map.md` —— 每轮自动同步的项目地图(模块分层、依赖图、调用图、符号索引)。
91
+
92
+ #### 亮点
93
+
94
+ - **总监循环(目标模式)** —— 总监 agent(独立隐藏会话)分解目标、审核每一轮开发者产出、自动下发下一步指令,直到目标达成。
95
+ - **数据工具** —— `read_csv`(自动识别分隔符/编码)、`query_sqlite`(只读、防注入)、`inspect_text`(行数/字数/编码/词频统计),全部标准库实现,零额外依赖。
96
+ - **搜索与抓取** —— `search_web`(默认 Bing HTML,无需 Key;可选 Google / DuckDuckGo / SearXNG)与 `web_fetch`(5 MB 上限、流式读取)。
97
+ - **会话持久化** —— 每轮与退出时自动保存,重启后恢复,按项目隔离。
@@ -1,6 +1,6 @@
1
1
  # 安装与配置
2
2
 
3
- > NexForgeCLI v0.2.9
3
+ > NexForgeCLI v0.2.12
4
4
 
5
5
  ## 环境要求
6
6
 
@@ -76,9 +76,10 @@
76
76
  | `/mode safe|supervised|auto` | 切换权限级别(审批模式) |
77
77
  | `/plan` | 切换计划模式(只读讨论) |
78
78
  | `/json` | 切换 JSON 输出模式 |
79
- | `/goal` | 切换目标模式(总监循环) |
79
+ | `/goal` | 切换目标模式(总监循环, 先出方案等确认再动工) |
80
80
  | `/ops` | 切换运维场景 |
81
- | `/max <N>` | 目标场景最大轮数(默认200) |
81
+ | `/max <N>` | 目标场景最大轮数(0=不限额,默认0) |
82
+ | `/timeout <N>` | 单轮执行超时秒数(0=不限额,默认0) |
82
83
 
83
84
  **会话管理**
84
85
 
@@ -100,6 +101,8 @@
100
101
  | `/memory [view|add|search]` | 管理持久记忆 |
101
102
  | `/federation init|add|context|memory` | 联结体管理 |
102
103
  | `/map view|check|sync` | 项目地图管理 |
104
+ | `/kb search|add|list|path` | 知识库管理(检索/添加/列出/设置路径) |
105
+ | `/plugins [list\|reload]` | 插件管理(列出/重载第三方插件) |
103
106
  | `/web start|stop` | Web 管理面板(端口8899) |
104
107
 
105
108
  **系统**
@@ -107,4 +110,5 @@
107
110
  | 命令 | 说明 |
108
111
  |------|------|
109
112
  | `/help` | 显示帮助 |
113
+ | `/lang zh|en` | 切换界面语言(立即生效,无需重启) |
110
114
  | `/quit` | 退出 |
@@ -5,6 +5,7 @@ NexForgeCLI 支持多模型:
5
5
  | 模型 | 支持方式 | 说明 |
6
6
  |------|----------|------|
7
7
  | **DeepSeek V4** | 内置 | flash/pro 双档位 + auto 自动路由,无需额外配置 |
8
+ | **千问(qianwen)** | 专用底座 | 思考链流式显示 / enable_thinking 开关 / 多模态贴图直发(与 DeepSeek 平级) |
8
9
  | **OpenAI 兼容** | models.toml | Kimi/GPT/通义千问/智谱等一切 OpenAI 兼容接口 |
9
10
  | **Anthropic** | models.toml | Claude 系列(需安装额外依赖) |
10
11
 
@@ -20,6 +21,8 @@ DeepSeek 是内置的默认模型,首次运行只需提供 API Key 即可使
20
21
  | pro | 推理模型 | 复杂算法、架构设计、调试 |
21
22
  | auto | 自动路由 | 默认。小任务 flash,大任务自动升级 pro |
22
23
 
24
+ **默认 flash**:deepseek 涨价后默认固定 flash 省成本;需要深度推理时用 `/model pro`,或 `/model auto` 恢复自动路由。
25
+
23
26
  auto 模式下的升级触发条件:
24
27
  - 关键词(重构/架构/算法/证明/调试/为什么/设计)
25
28
  - 上下文超过 200K tokens
@@ -29,6 +32,34 @@ auto 模式下的升级触发条件:
29
32
  - 默认开启,实时显示 AI 的推理过程(可折叠面板)
30
33
  - `/think off` 关闭思考(速度更快、费用更低)
31
34
 
35
+ ## 千问(qianwen 专用底座)
36
+
37
+ 千问AI平台(platform.qianwenai.com / 阿里云百炼)有专用 provider,深度匹配千问特性:
38
+
39
+ ```toml
40
+ [[provider]]
41
+ name = "qianwen"
42
+ type = "qianwen" # 专用底座(非通用 openai)
43
+ api_key = "sk-sp-..."
44
+ base_url = "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"
45
+ models = ["qwen3.8-max"]
46
+ default_model = "qwen3.8-max"
47
+ ```
48
+
49
+ **千问专用特性(与 DeepSeek 平级)**:
50
+
51
+ | 特性 | 说明 |
52
+ |------|------|
53
+ | 思考链流式显示 | reasoning_content 实时解析,UI 实时显示推理过程(与 DeepSeek 同体验) |
54
+ | `/think on/off` | enable_thinking 开关。思考开启时复杂任务思考可达 1-2 分钟(流式实时显示思考);关闭时快 7 倍 |
55
+ | 多模态贴图 | 剪贴板截图直接 base64 发给模型,AI 自己看图(不再走识图工具) |
56
+ | 识图/生图工具 | 自动跟随 qianwen provider 的 base_url/key(生图 wan2.7-image、识图 qwen3.8-max) |
57
+ | 切换 | `/provider qianwen` |
58
+
59
+ **说明**:
60
+ - 思考型模型思考期间流式持续输出思考链,UI 不会无反应;若网络慢导致 3s 无首块,UI 会提示"深入思考中…"
61
+ - 其他模型(如 Kimi/GLM)建议用通用 `type = "openai"` 接入,不做深度定制
62
+
32
63
  ## 配置多模型(models.toml)
33
64
 
34
65
  编辑 `~/.nexforge/models.toml`(首次运行自动生成模板):
@@ -43,6 +74,8 @@ base_url = "https://api.example.com/v1"
43
74
  models = ["kimi-k3"]
44
75
  ```
45
76
 
77
+ **加载规则(两级合并)**:`~/.nexforge/models.toml`(用户级)先加载做基线,项目 `.nexforge/models.toml`(项目级)后加载覆盖/追加同名与新增 provider。两个文件里的 provider 都会生效。
78
+
46
79
  ```toml
47
80
  # 示例:Claude
48
81
  [[provider]]
@@ -55,7 +88,7 @@ models = ["claude-sonnet-4-20250514"]
55
88
 
56
89
  **配置要点**:
57
90
  - `name`:唯一标识符,用于切换
58
- - `type`:`openai` 或 `anthropic`
91
+ - `type`:`openai`、`anthropic` 或 `qianwen`(千问专用底座,见下)
59
92
  - `api_key`:直接填写 Key;也可留空,改用 `api_key_env` 指定环境变量名
60
93
  - `api_key_env`:可选,指定从哪个环境变量读取 Key(如 `KIMI_API_KEY`)
61
94
  - `api_key` 和 `api_key_env` 都未配置 → 回退到全局保存的 Key(`~/.nexforge/auth.toml`)
@@ -47,6 +47,10 @@ NexForgeCLI 内置 **35 个工具**供 AI 调用(`git_commit` 需在 config.to
47
47
  | `search_web` | 网络搜索(默认 Bing, 可选 Google/DuckDuckGo/SearXNG) |
48
48
  | `image_vision` | 图片识别(阿里云千问 VL) |
49
49
  | `image_gen` | 图片生成(阿里云通义万相) |
50
+ | `kb_search` | 知识库检索(全局+项目两级) |
51
+ | `kb_write` | 知识沉淀(写入项目/全局知识库) |
52
+ | `window_screenshot` | 指定窗口截图(Windows, 标题/进程定位, 遮挡也能截) |
53
+ | `web_screenshot` | Web 页面离线渲染截图(无头浏览器, 不弹窗) |
50
54
 
51
55
  详见 [05-数据与搜索](05-数据与搜索.md)。
52
56
 
@@ -75,14 +79,16 @@ NexForgeCLI 内置 **35 个工具**供 AI 调用(`git_commit` 需在 config.to
75
79
 
76
80
  | 工具 | 功能 |
77
81
  |------|------|
78
- | `federation` | 多项目联结体管理 |
82
+ | `federation` | 多项目联结体管理(init/add/remove/context/status/memory/sessions/handoff/close/task-add/task-list/task-done) |
83
+ | `kb_search` | 知识检索(scope 支持 fed 聚合联结体成员、member:<名> 指定成员) |
84
+ | `kb_write` | 知识沉淀(scope 支持 `member:<成员名>` 写回联结体成员知识库) |
79
85
 
80
86
  ## 工具限制
81
87
 
82
88
  | 限制 | 值 | 说明 |
83
89
  |------|-----|------|
84
90
  | 工具调用轮数 | 200 | 防死循环 |
85
- | 单轮总超时 | 300 秒 | |
91
+ | 单轮总超时 | 0(不限额) | 默认不限额; 可 /timeout <秒> 或 config.toml 的 `turn_timeout` 设置 |
86
92
  | 单工具超时 | 60 秒 | |
87
93
 
88
94
  ## 审批规则
@@ -60,3 +60,5 @@ HTTP GET 抓取指定 URL,返回正文(截断至 20000 字符)。带浏览
60
60
  1. config.toml 中 `[image] api_key = "sk-..."`(优先)
61
61
  2. 环境变量 `DASHSCOPE_API_KEY`
62
62
  3. `~/.nexforge/dashscope.key` 文件
63
+
64
+ 图片工具端点独立于对话模型:默认 DashScope 全局域名(`dashscope.aliyuncs.com`),如使用业务空间专属域名可在 `[image] base_url` 另行指定。