fr-cli 2.3.3__tar.gz → 2.4.1__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 (172) hide show
  1. fr_cli-2.4.1/MANIFEST.in +5 -0
  2. {fr_cli-2.3.3/fr_cli.egg-info → fr_cli-2.4.1}/PKG-INFO +138 -49
  3. {fr_cli-2.3.3 → fr_cli-2.4.1}/README.md +134 -47
  4. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/WEAPON.MD +1 -1
  5. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/__init__.py +1 -1
  6. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/addon/plugin.py +2 -1
  7. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/__init__.py +1 -3
  8. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/a2a.py +2 -1
  9. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/acp.py +19 -15
  10. fr_cli-2.4.1/fr_cli/agent/artifact_detector.py +106 -0
  11. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/__init__.py +1 -1
  12. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/db.py +49 -6
  13. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/local.py +18 -3
  14. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/powerful_agent_template.py +3 -3
  15. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/rag.py +9 -8
  16. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/rag_watcher_daemon.py +7 -6
  17. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/remote.py +3 -2
  18. fr_cli-2.4.1/fr_cli/agent/builtins/spider.py +951 -0
  19. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/coding_helper.py +1 -1
  20. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/context_files.py +2 -1
  21. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/gateway.py +2 -1
  22. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/generator.py +4 -4
  23. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/hermes.py +4 -3
  24. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/hermes_daemon.py +70 -3
  25. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/manager.py +16 -5
  26. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/master.py +43 -66
  27. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/personality.py +2 -1
  28. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/plugin_system.py +1 -1
  29. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/remote.py +3 -2
  30. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/skills.py +2 -1
  31. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/workflow.py +1 -1
  32. fr_cli-2.4.1/fr_cli/agent/workflow_system/__init__.py +14 -0
  33. fr_cli-2.4.1/fr_cli/agent/workflow_system/engine.py +414 -0
  34. fr_cli-2.4.1/fr_cli/agent/workflow_system/executor.py +217 -0
  35. fr_cli-2.4.1/fr_cli/agent/workflow_system/manager.py +84 -0
  36. fr_cli-2.4.1/fr_cli/agent/workflow_system/models.py +195 -0
  37. fr_cli-2.4.1/fr_cli/agent/workflow_system/monitor.py +68 -0
  38. fr_cli-2.4.1/fr_cli/agent/workflow_system/tools.py +224 -0
  39. fr_cli-2.4.1/fr_cli/agent/workflow_system.py +23 -0
  40. fr_cli-2.4.1/fr_cli/assets/splash.jpeg +0 -0
  41. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/command/executor.py +82 -11
  42. fr_cli-2.4.1/fr_cli/command/handlers/__init__.py +15 -0
  43. fr_cli-2.4.1/fr_cli/command/handlers/agent.py +73 -0
  44. fr_cli-2.4.1/fr_cli/command/handlers/app.py +31 -0
  45. fr_cli-2.4.1/fr_cli/command/handlers/config.py +167 -0
  46. fr_cli-2.4.1/fr_cli/command/handlers/cron.py +56 -0
  47. fr_cli-2.4.1/fr_cli/command/handlers/dataframe.py +34 -0
  48. fr_cli-2.4.1/fr_cli/command/handlers/disk.py +84 -0
  49. fr_cli-2.4.1/fr_cli/command/handlers/fs.py +95 -0
  50. fr_cli-2.4.1/fr_cli/command/handlers/mail.py +81 -0
  51. fr_cli-2.4.1/fr_cli/command/handlers/mcp.py +46 -0
  52. fr_cli-2.4.1/fr_cli/command/handlers/other.py +34 -0
  53. fr_cli-2.4.1/fr_cli/command/handlers/session.py +79 -0
  54. fr_cli-2.4.1/fr_cli/command/handlers/system.py +189 -0
  55. fr_cli-2.4.1/fr_cli/command/handlers/vision.py +38 -0
  56. fr_cli-2.4.1/fr_cli/command/handlers/web.py +34 -0
  57. fr_cli-2.4.1/fr_cli/command/registered/agent_data_mcp.py +287 -0
  58. fr_cli-2.4.1/fr_cli/command/registered/fs.py +84 -0
  59. fr_cli-2.4.1/fr_cli/command/registered/image.py +37 -0
  60. fr_cli-2.4.1/fr_cli/command/registered/main_routes.py +47 -0
  61. fr_cli-2.4.1/fr_cli/command/registered/services.py +236 -0
  62. fr_cli-2.4.1/fr_cli/command/registered/session_config.py +309 -0
  63. fr_cli-2.4.1/fr_cli/command/registered/web.py +33 -0
  64. fr_cli-2.4.1/fr_cli/command/registry.py +280 -0
  65. fr_cli-2.4.1/fr_cli/conf/__init__.py +34 -0
  66. fr_cli-2.4.1/fr_cli/conf/config.py +229 -0
  67. fr_cli-2.4.1/fr_cli/conf/paths.py +185 -0
  68. fr_cli-2.4.1/fr_cli/core/cache.py +107 -0
  69. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/chat.py +96 -88
  70. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/core.py +117 -19
  71. fr_cli-2.4.1/fr_cli/core/errors.py +202 -0
  72. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/intent.py +4 -4
  73. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/llm.py +160 -29
  74. fr_cli-2.4.1/fr_cli/core/model_factory.py +326 -0
  75. fr_cli-2.4.1/fr_cli/core/optimizations.py +195 -0
  76. fr_cli-2.4.1/fr_cli/core/preferences.py +103 -0
  77. fr_cli-2.4.1/fr_cli/core/project.py +177 -0
  78. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/recommender.py +38 -2
  79. fr_cli-2.4.1/fr_cli/core/stream.py +268 -0
  80. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/thinking.py +12 -6
  81. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/gatekeeper/__init__.py +1 -1
  82. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/gatekeeper/daemon.py +6 -5
  83. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/gatekeeper/manager.py +5 -4
  84. fr_cli-2.4.1/fr_cli/lang/i18n.py +8 -0
  85. fr_cli-2.4.1/fr_cli/lang/translations/__init__.py +9 -0
  86. fr_cli-2.4.1/fr_cli/lang/translations/en.py +164 -0
  87. fr_cli-2.4.1/fr_cli/lang/translations/zh.py +167 -0
  88. fr_cli-2.4.1/fr_cli/main.py +122 -0
  89. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/memory/context.py +2 -1
  90. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/memory/history.py +6 -5
  91. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/memory/session.py +12 -5
  92. fr_cli-2.4.1/fr_cli/repl/actions.py +103 -0
  93. fr_cli-2.4.1/fr_cli/repl/bootstrap.py +205 -0
  94. fr_cli-2.4.1/fr_cli/repl/commands/__init__.py +44 -0
  95. fr_cli-2.4.1/fr_cli/repl/commands/_common.py +260 -0
  96. fr_cli-2.4.1/fr_cli/repl/commands/agent.py +305 -0
  97. fr_cli-2.4.1/fr_cli/repl/commands/base.py +304 -0
  98. fr_cli-2.4.1/fr_cli/repl/commands/config.py +507 -0
  99. fr_cli-2.4.1/fr_cli/repl/commands/cron.py +114 -0
  100. fr_cli-2.4.1/fr_cli/repl/commands/dataframe.py +60 -0
  101. fr_cli-2.4.1/fr_cli/repl/commands/dev.py +82 -0
  102. fr_cli-2.4.1/fr_cli/repl/commands/fs.py +66 -0
  103. fr_cli-2.4.1/fr_cli/repl/commands/mcp.py +142 -0
  104. fr_cli-2.4.1/fr_cli/repl/commands/rag.py +141 -0
  105. fr_cli-2.4.1/fr_cli/repl/commands/remote_agent.py +174 -0
  106. fr_cli-2.4.1/fr_cli/repl/commands/session.py +148 -0
  107. fr_cli-2.4.1/fr_cli/repl/commands/system.py +175 -0
  108. fr_cli-2.4.1/fr_cli/repl/commands.py +43 -0
  109. fr_cli-2.4.1/fr_cli/repl/queue.py +128 -0
  110. fr_cli-2.4.1/fr_cli/repl/quick_actions.py +227 -0
  111. fr_cli-2.4.1/fr_cli/repl/router.py +363 -0
  112. fr_cli-2.4.1/fr_cli/repl/scenarios.py +347 -0
  113. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/security/security.py +6 -2
  114. fr_cli-2.4.1/fr_cli/ui/banner.py +136 -0
  115. fr_cli-2.4.1/fr_cli/ui/buddha.py +166 -0
  116. fr_cli-2.4.1/fr_cli/ui/markdown.py +114 -0
  117. fr_cli-2.4.1/fr_cli/ui/prompt.py +840 -0
  118. fr_cli-2.4.1/fr_cli/ui/splash.py +340 -0
  119. fr_cli-2.4.1/fr_cli/ui/ui.py +64 -0
  120. fr_cli-2.4.1/fr_cli/ui/web_config.py +238 -0
  121. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/cron.py +43 -13
  122. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/dataframe.py +2 -2
  123. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/disk.py +2 -2
  124. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/fs.py +1 -1
  125. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/launcher.py +1 -1
  126. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/loader.py +5 -5
  127. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/mail.py +1 -1
  128. fr_cli-2.4.1/fr_cli/weapon/mcp.py +383 -0
  129. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/vision.py +1 -1
  130. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/weapon/web.py +1 -1
  131. {fr_cli-2.3.3 → fr_cli-2.4.1/fr_cli.egg-info}/PKG-INFO +138 -49
  132. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli.egg-info/SOURCES.txt +67 -0
  133. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli.egg-info/requires.txt +2 -0
  134. {fr_cli-2.3.3 → fr_cli-2.4.1}/pyproject.toml +5 -3
  135. {fr_cli-2.3.3 → fr_cli-2.4.1}/tests/test_a2a_and_providers.py +26 -0
  136. {fr_cli-2.3.3 → fr_cli-2.4.1}/tests/test_integration_real.py +2 -2
  137. fr_cli-2.4.1/tests/test_model_config.py +1209 -0
  138. {fr_cli-2.3.3 → fr_cli-2.4.1}/tests/test_new_providers.py +113 -9
  139. fr_cli-2.3.3/MANIFEST.in +0 -2
  140. fr_cli-2.3.3/fr_cli/agent/builtins/spider.py +0 -247
  141. fr_cli-2.3.3/fr_cli/agent/workflow_system.py +0 -1058
  142. fr_cli-2.3.3/fr_cli/command/registry.py +0 -1034
  143. fr_cli-2.3.3/fr_cli/conf/config.py +0 -149
  144. fr_cli-2.3.3/fr_cli/core/model_factory.py +0 -173
  145. fr_cli-2.3.3/fr_cli/core/stream.py +0 -83
  146. fr_cli-2.3.3/fr_cli/lang/i18n.py +0 -843
  147. fr_cli-2.3.3/fr_cli/main.py +0 -336
  148. fr_cli-2.3.3/fr_cli/repl/commands.py +0 -1488
  149. fr_cli-2.3.3/fr_cli/ui/ui.py +0 -117
  150. fr_cli-2.3.3/fr_cli/weapon/mcp.py +0 -188
  151. fr_cli-2.3.3/tests/test_model_config.py +0 -391
  152. {fr_cli-2.3.3 → fr_cli-2.4.1}/LICENSE +0 -0
  153. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/README.md +0 -0
  154. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/builtins/_utils.py +0 -0
  155. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/client.py +0 -0
  156. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/executor.py +0 -0
  157. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/image_and_parallel.py +0 -0
  158. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/master_prompt.py +0 -0
  159. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/server.py +0 -0
  160. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/agent/shell_mode.py +0 -0
  161. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/breakthrough/update.py +0 -0
  162. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/command/__init__.py +0 -0
  163. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/command/security.py +0 -0
  164. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/conf/wizard.py +0 -0
  165. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/core/sysmon.py +0 -0
  166. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli/repl/__init__.py +0 -0
  167. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli.egg-info/dependency_links.txt +0 -0
  168. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli.egg-info/entry_points.txt +0 -0
  169. {fr_cli-2.3.3 → fr_cli-2.4.1}/fr_cli.egg-info/top_level.txt +0 -0
  170. {fr_cli-2.3.3 → fr_cli-2.4.1}/setup.cfg +0 -0
  171. {fr_cli-2.3.3 → fr_cli-2.4.1}/tests/test_master_prompt_fix.py +0 -0
  172. {fr_cli-2.3.3 → fr_cli-2.4.1}/tests/test_new_features.py +0 -0
@@ -0,0 +1,5 @@
1
+ include fr_cli/WEAPON.MD
2
+ include fr_cli/README.md
3
+ include fr_cli/assets/*.jpeg
4
+ include fr_cli/assets/*.png
5
+ include fr_cli/assets/*.jpg
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fr-cli
3
- Version: 2.3.3
3
+ Version: 2.4.1
4
4
  Summary: 凡人打字机 - 支持多模型(Zhipu/DeepSeek/Kimi/Qwen/StepFun/MiniMax/Spark/Doubao/MiMo)的终极全能终端工具
5
5
  Author: FANREN CLI Author
6
6
  License-Expression: MIT
7
- Project-URL: Homepage, https://github.com/yourname/fr-cli
8
- Project-URL: Issues, https://github.com/yourname/fr-cli/issues
7
+ Project-URL: Homepage, https://github.com/leungyukit/fr-cli
8
+ Project-URL: Issues, https://github.com/leungyukit/fr-cli/issues
9
9
  Keywords: zhipuai,deepseek,kimi,qwen,cli,ai,terminal,chatbot
10
10
  Classifier: Development Status :: 4 - Beta
11
11
  Classifier: Environment :: Console
@@ -28,6 +28,8 @@ Requires-Dist: openai>=1.0.0
28
28
  Requires-Dist: requests>=2.28.0
29
29
  Requires-Dist: mcp>=1.6.0
30
30
  Requires-Dist: pyyaml>=6.0.0
31
+ Requires-Dist: prompt_toolkit>=3.0.0
32
+ Requires-Dist: Pillow>=10.0.0
31
33
  Provides-Extra: data
32
34
  Requires-Dist: pandas>=1.5.0; extra == "data"
33
35
  Requires-Dist: openpyxl>=3.0.0; extra == "data"
@@ -82,10 +84,11 @@ Dynamic: license-file
82
84
  支持以下 AI 模型提供商:
83
85
  - **智谱 AI**: GLM-4-Flash 等
84
86
  - **智谱 Coding Plan**: GLM-4.7 等 (https://docs.bigmodel.cn/cn/coding-plan/quick-start)
87
+ - **OpenAI**: GPT-4o / GPT-4o-mini / o1-mini / o3-mini 等(标准 OpenAI 接口)
85
88
  - **DeepSeek**: DeepSeek-Chat 等
86
89
  - **Kimi (Moonshot)**: moonshot-v1-8k 等
87
90
  - **Kimi K2**: 代码优化版 kimi-k2-0905-preview
88
- - **Kimi Code**: 代码平台 kimi-cache-test (Kimi 会员)
91
+ - **Kimi Code**: 代码平台 kimi-for-coding (Kimi 会员)
89
92
  - **通义千问 (Qwen)**: qwen-turbo 等
90
93
  - **阶跃星辰 (StepFun)**: step-1-8k, step-2-16k, step-3-auto 等
91
94
  - **Step-Audio**: 实时语音交互
@@ -120,6 +123,7 @@ Dynamic: license-file
120
123
  - **MCP 外部神通**:支持 Model Context Protocol
121
124
  - **多源信息融合**:大模型 + 工具结果统一汇总
122
125
  - **中英文切换**:完整国际化支持
126
+ - **NO_COLOR 支持**:`NO_COLOR=1` 禁用所有 ANSI 颜色,适合 CI/管道环境
123
127
 
124
128
  ## 🚀 快速开始
125
129
 
@@ -133,10 +137,10 @@ fr-cli
133
137
  # 或从源码运行
134
138
  cd fr-cli
135
139
  pip install -e .
136
- python3 main.py
140
+ fr-cli
137
141
  ```
138
142
 
139
- 首次运行会引导输入当前道统的 API Key
143
+ 首次运行会引导输入当前道统的 API Key。直接回车可进入 Mock 模式试用。
140
144
 
141
145
  ## 📝 使用方法
142
146
 
@@ -153,11 +157,16 @@ python3 main.py
153
157
  /load 加载历史会话
154
158
  /export 导出会话为 Markdown
155
159
 
156
- /model <模型名> 切换AI模型
160
+ /model <模型名> 切换AI模型(仅当前会话生效)
157
161
  /model <道统>:<模型名> 同时切换道统和模型
162
+ /model config 🆕 交互式模型配置向导
163
+ /model list 列出所有可用模型
164
+ /model current 显示当前模型
165
+ /model default 恢复 factory 默认模型
158
166
  /key <key> 修改当前道统 API Key
159
167
  /key <道统> <key> 为指定道统设置 Key
160
168
  /providers 查看所有道统配置
169
+ /providers setup 交互式配置向导
161
170
  /providers add <p> <k> [m] 添加/更新道统配置
162
171
  /providers use <p> 切换到指定道统
163
172
 
@@ -171,23 +180,24 @@ python3 main.py
171
180
  /exit 退出
172
181
  ```
173
182
 
174
- ### 🤖 AI 模型切换示例
183
+ ### 🤖 AI 模型配置
175
184
 
176
- ```
177
- # 使用 Kimi K2(代码优化版)
178
- /model kimi-k2
185
+ ```bash
186
+ # 交互式配置向导(推荐)
187
+ >>> /model config
179
188
 
180
- # 使用 MiniMax M2.7(Token Plan)
181
- /model minimax-m27
189
+ # 直接切换(仅当前会话生效,重启后恢复 factory 默认)
190
+ >>> /model deepseek-chat
191
+ >>> /model deepseek:deepseek-reasoner
182
192
 
183
- # 使用 Step-3(阶跃星辰)
184
- /model step-3
193
+ # 查看当前模型
194
+ >>> /model current
185
195
 
186
- # 使用 Kimi Code
187
- /model kimi-code
196
+ # 恢复 factory 默认模型
197
+ >>> /model default
188
198
 
189
199
  # 配置新的 API Key
190
- /providers add step-3 <your-api-key>
200
+ >>> /providers add step-3 <your-api-key>
191
201
  ```
192
202
 
193
203
  ### 🔧 Agent 管理
@@ -237,7 +247,7 @@ python3 main.py
237
247
  /security 查看安全设置
238
248
  ```
239
249
 
240
- ## Hermes 核心功能
250
+ ## 🧠 Hermes 核心功能
241
251
 
242
252
  ### 📋 任务管理
243
253
  ```
@@ -302,32 +312,35 @@ fr acp
302
312
  }
303
313
  ```
304
314
 
305
- ## �📦 支持的模型提供商(25+)
306
-
307
- | 道统 | 默认模型 | API 地址 |
308
- |------|---------|----------|
309
- | zhipu | glm-4-flash | - |
310
- | zhipu-coding | GLM-4.7 | open.bigmodel.cn/api/coding/paas/v4 |
311
- | zhipu-anthropic | glm-4.6 | open.bigmodel.cn/api/anthropic |
312
- | deepseek | deepseek-chat | api.deepseek.com |
313
- | kimi | moonshot-v1-8k | api.moonshot.cn |
314
- | kimi-k2 | kimi-k2-0905-preview | api.moonshot.cn |
315
- | kimi-code | kimi-cache-test | api.kimi.com/coding/v1 |
316
- | qwen | qwen-turbo | dashscope.aliyuncs.com |
317
- | stepfun | step-1-8k | api.stepfun.com |
318
- | step-1 | step-1-8k | api.stepfun.com |
319
- | step-2 | step-2-16k | api.stepfun.com |
320
- | step-3 | step-3-auto | api.stepfun.com |
321
- | step-audio | step-audio-2 | api.stepfun.com |
322
- | minimax | MiniMax-Text-01 | api.minimax.chat |
323
- | minimax-m27 | MiniMax-M2.7 | api.minimax.chat |
324
- | minimax-m27-fast | MiniMax-M2.7-HighSpeed | api.minimax.chat |
325
- | minimax-token-plan | MiniMax-M2.7 | api.minimax.chat |
326
- | spark | generalv3.5 | spark-api-open.xf-yun.com |
327
- | doubao | doubao-1-5-pro-32k-250115 | ark.cn-beijing.volces.com |
328
- | mimo | mimo-v2-flash | api.xiaomimimo.com |
329
- | longcat | LongCat-Flash-Chat | api.longcat.chat/openai |
330
- | longcat-anthropic | LongCat | api.longcat.chat/anthropic |
315
+ ## 🤖 支持的模型提供商(25+)
316
+
317
+ | 道统 | 默认模型 | API 地址 | 常用模型 |
318
+ |------|---------|----------|---------|
319
+ | zhipu | glm-4-flash | open.bigmodel.cn/api/paas/v4 | glm-4-flash, glm-4-plus, glm-4, glm-4v-plus, glm-4-air, glm-4-long |
320
+ | zhipu-coding | GLM-4.7 | open.bigmodel.cn/api/coding/paas/v4 (Coding Plan) | GLM-4.7, GLM-5.1, GLM-4.5-air |
321
+ | zhipu-anthropic | glm-4.6 | open.bigmodel.cn/api/anthropic | glm-4.6 |
322
+ | openai | gpt-4o-mini | api.openai.com/v1 | gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo, o1-mini, o3-mini |
323
+ | deepseek | deepseek-chat | api.deepseek.com | deepseek-chat, deepseek-reasoner, deepseek-coder |
324
+ | kimi | moonshot-v1-8k | api.moonshot.cn | moonshot-v1-8k, moonshot-v1-32k, moonshot-v1-128k |
325
+ | kimi-k2 | kimi-k2-0905-preview | api.moonshot.cn | kimi-k2-0905-preview |
326
+ | kimi-code | kimi-for-coding | api.kimi.com/coding/v1 | kimi-for-coding |
327
+ | qwen | qwen-turbo | dashscope.aliyuncs.com | qwen-turbo, qwen-plus, qwen-max, qwen-coder-plus |
328
+ | stepfun | step-1-8k | api.stepfun.com (api.stepfun.com/step_plan/v1 for Step Plan) | step-1-8k, step-1-32k, step-2-16k, step-3-auto |
329
+ | step-1 | step-1-8k | api.stepfun.com | step-1-8k |
330
+ | step-2 | step-2-16k | api.stepfun.com | step-2-16k |
331
+ | step-3 | step-3-auto | api.stepfun.com | step-3-auto |
332
+ | step-audio | step-audio-2 | api.stepfun.com | step-audio-2 |
333
+ | stepfun-step-plan | step-3-auto | api.stepfun.com/step_plan/v1 (Step Plan) | step-3-auto, step-2-16k, step-1-8k |
334
+ | minimax | MiniMax-Text-01 | api.minimax.io (api.minimax.chat for Token Plan) | MiniMax-Text-01, MiniMax-M2.1, abab6.5s-chat, abab6.5t-chat |
335
+ | minimax-m27 | MiniMax-M2.7 | api.minimax.chat (Token Plan) | MiniMax-M2.7 |
336
+ | minimax-m27-fast | MiniMax-M2.7-HighSpeed | api.minimax.chat (Token Plan) | MiniMax-M2.7-HighSpeed |
337
+ | minimax-token-plan | MiniMax-M2.7 | api.minimax.chat (Token Plan) | MiniMax-M2.7 |
338
+ | spark | generalv3.5 | spark-api-open.xf-yun.com | generalv3.5 |
339
+ | doubao | doubao-1-5-pro-32k-250115 | ark.cn-beijing.volces.com | doubao-1-5-pro-32k, doubao-1-5-lite-32k |
340
+ | mimo | mimo-v2-flash | api.xiaomimimo.com | mimo-v2-flash, mimo-v2-pro |
341
+ | mimo-token-plan | mimo-v2-flash | token-plan-sgp.xiaomimimo.com (Token Plan) | mimo-v2-flash, mimo-v2-pro |
342
+ | longcat | LongCat-Flash-Chat | api.longcat.chat/openai | LongCat-Flash-Chat |
343
+ | longcat-anthropic | LongCat | api.longcat.chat/anthropic | LongCat |
331
344
 
332
345
  ## 🔧 开发
333
346
 
@@ -343,9 +356,17 @@ pip install -e ".[all]"
343
356
  python3 -m pytest tests/ -v
344
357
 
345
358
  # 运行程序
346
- python3 main.py
359
+ fr-cli
347
360
  ```
348
361
 
362
+ ### 环境变量
363
+
364
+ | 变量 | 说明 |
365
+ |------|------|
366
+ | `NO_COLOR=1` | 禁用所有 ANSI 颜色输出,适合 CI/管道/日志重定向 |
367
+ | `FR_CLI_DEBUG=1` | 开启调试模式,显示详细 traceback |
368
+ | `FR_CLI_NON_INTERACTIVE=1` | 非交互模式,安全确认默认拒绝 |
369
+
349
370
  ## 📂 项目结构
350
371
 
351
372
  ```
@@ -356,7 +377,8 @@ fr_cli/
356
377
  │ ├── master.py # MasterAgent 主控
357
378
  │ └── ...
358
379
  ├── core/ # 核心模块
359
- └── llm.py # LLM 客户端(20+ 提供商)
380
+ ├── llm.py # LLM 客户端(20+ 提供商)
381
+ │ └── model_factory.py # 模型工厂配置
360
382
  ├── weapon/ # 武器库
361
383
  ├── memory/ # 记忆系统
362
384
  └── lang/ # 国际化
@@ -364,8 +386,75 @@ fr_cli/
364
386
 
365
387
  ## 📚 文档
366
388
 
367
- - [NEW_PROVIDERS_GUIDE.md](NEW_PROVIDERS_GUIDE.md) - 新增模型使用指南
368
- - [A2A_AND_PROVIDERS_GUIDE.md](A2A_AND_PROVIDERS_GUIDE.md) - A2A 协议文档
389
+ - [AGENTS.md](AGENTS.md) - 面向 AI 编码助手的项目架构与开发指南
390
+
391
+ ## 📂 配置目录
392
+
393
+ > 配置统一在 `~/.fr_cli/` 目录下,旧路径 `~/.zhipu_cli_config.json` 等会在首次启动时自动迁移。
394
+
395
+ | 路径 | 说明 |
396
+ |------|------|
397
+ | `~/.fr_cli/config.json` | 主配置文件(统一配置目录) |
398
+ | `~/.fr_cli/config.json.bak` | 配置自动备份 |
399
+ | `~/.fr_cli/history/` | 会话历史记录 |
400
+ | `~/.fr_cli/context.json` | 上下文记忆 |
401
+ | `~/.fr_cli/sessions/` | 按日期自动存档的会话 |
402
+ | `~/.fr_cli/plugins/` | 用户插件目录 |
403
+ | `~/.fr_cli/agents/` | Agent 分身目录 |
404
+ | `~/.fr_cli/master/` | MasterAgent 记忆与进化记录 |
405
+ | `~/.fr_cli/remotes.json` | 远程主机配置 |
406
+ | `~/.fr_cli/databases.json` | 数据库连接配置 |
407
+ | `~/.fr_cli/rag_db/` | RAG 向量库(ChromaDB)|
408
+
409
+ ## ❓ 常见问题
410
+
411
+ **Q: 如何切换思维模式?**
412
+ ```bash
413
+ /mode direct # 直接回复
414
+ /mode cot # 思维链
415
+ /mode tot # 思维树
416
+ /mode react # ReAct
417
+ ```
418
+
419
+ **Q: 模型切换后重启又变回去了?**
420
+ 这是预期行为。fr-cli 每次启动从 `model_factory.py` 的工厂配置读取默认模型,`/model` 切换仅当前会话生效。如需持久化切换默认模型,可修改 `fr_cli/core/model_factory.py` 中的默认模型,或使用 `/providers setup` 交互式配置向导。
421
+
422
+ **Q: 如何配置模型?**
423
+ ```bash
424
+ # 推荐:交互式向导
425
+ /model config
426
+
427
+ # 或
428
+ /providers setup
429
+ ```
430
+
431
+ **Q: 如何保存会话?**
432
+ ```bash
433
+ /save my-session
434
+ /load
435
+ /export
436
+ ```
437
+
438
+ **Q: 如何查看历史记录?**
439
+ ```bash
440
+ /history
441
+ /session_list
442
+ ```
443
+
444
+ **Q: 邮件发送失败?**
445
+ - QQ/163 邮箱需使用「授权码」而非登录密码
446
+ - 授权码在邮箱设置 → 账户 → 开启 IMAP/SMTP 服务后生成
447
+
448
+ **Q: 搜索功能无法使用?**
449
+ ```bash
450
+ pip install requests
451
+ ```
452
+
453
+ **Q: 云盘功能无法使用?**
454
+ ```bash
455
+ pip install aligo # 阿里云盘
456
+ ```
457
+ 首次使用需运行 `/disk_setup` 完成扫码登录。
369
458
 
370
459
  ## 📄 License
371
460
 
@@ -10,10 +10,11 @@
10
10
  支持以下 AI 模型提供商:
11
11
  - **智谱 AI**: GLM-4-Flash 等
12
12
  - **智谱 Coding Plan**: GLM-4.7 等 (https://docs.bigmodel.cn/cn/coding-plan/quick-start)
13
+ - **OpenAI**: GPT-4o / GPT-4o-mini / o1-mini / o3-mini 等(标准 OpenAI 接口)
13
14
  - **DeepSeek**: DeepSeek-Chat 等
14
15
  - **Kimi (Moonshot)**: moonshot-v1-8k 等
15
16
  - **Kimi K2**: 代码优化版 kimi-k2-0905-preview
16
- - **Kimi Code**: 代码平台 kimi-cache-test (Kimi 会员)
17
+ - **Kimi Code**: 代码平台 kimi-for-coding (Kimi 会员)
17
18
  - **通义千问 (Qwen)**: qwen-turbo 等
18
19
  - **阶跃星辰 (StepFun)**: step-1-8k, step-2-16k, step-3-auto 等
19
20
  - **Step-Audio**: 实时语音交互
@@ -48,6 +49,7 @@
48
49
  - **MCP 外部神通**:支持 Model Context Protocol
49
50
  - **多源信息融合**:大模型 + 工具结果统一汇总
50
51
  - **中英文切换**:完整国际化支持
52
+ - **NO_COLOR 支持**:`NO_COLOR=1` 禁用所有 ANSI 颜色,适合 CI/管道环境
51
53
 
52
54
  ## 🚀 快速开始
53
55
 
@@ -61,10 +63,10 @@ fr-cli
61
63
  # 或从源码运行
62
64
  cd fr-cli
63
65
  pip install -e .
64
- python3 main.py
66
+ fr-cli
65
67
  ```
66
68
 
67
- 首次运行会引导输入当前道统的 API Key
69
+ 首次运行会引导输入当前道统的 API Key。直接回车可进入 Mock 模式试用。
68
70
 
69
71
  ## 📝 使用方法
70
72
 
@@ -81,11 +83,16 @@ python3 main.py
81
83
  /load 加载历史会话
82
84
  /export 导出会话为 Markdown
83
85
 
84
- /model <模型名> 切换AI模型
86
+ /model <模型名> 切换AI模型(仅当前会话生效)
85
87
  /model <道统>:<模型名> 同时切换道统和模型
88
+ /model config 🆕 交互式模型配置向导
89
+ /model list 列出所有可用模型
90
+ /model current 显示当前模型
91
+ /model default 恢复 factory 默认模型
86
92
  /key <key> 修改当前道统 API Key
87
93
  /key <道统> <key> 为指定道统设置 Key
88
94
  /providers 查看所有道统配置
95
+ /providers setup 交互式配置向导
89
96
  /providers add <p> <k> [m] 添加/更新道统配置
90
97
  /providers use <p> 切换到指定道统
91
98
 
@@ -99,23 +106,24 @@ python3 main.py
99
106
  /exit 退出
100
107
  ```
101
108
 
102
- ### 🤖 AI 模型切换示例
109
+ ### 🤖 AI 模型配置
103
110
 
104
- ```
105
- # 使用 Kimi K2(代码优化版)
106
- /model kimi-k2
111
+ ```bash
112
+ # 交互式配置向导(推荐)
113
+ >>> /model config
107
114
 
108
- # 使用 MiniMax M2.7(Token Plan)
109
- /model minimax-m27
115
+ # 直接切换(仅当前会话生效,重启后恢复 factory 默认)
116
+ >>> /model deepseek-chat
117
+ >>> /model deepseek:deepseek-reasoner
110
118
 
111
- # 使用 Step-3(阶跃星辰)
112
- /model step-3
119
+ # 查看当前模型
120
+ >>> /model current
113
121
 
114
- # 使用 Kimi Code
115
- /model kimi-code
122
+ # 恢复 factory 默认模型
123
+ >>> /model default
116
124
 
117
125
  # 配置新的 API Key
118
- /providers add step-3 <your-api-key>
126
+ >>> /providers add step-3 <your-api-key>
119
127
  ```
120
128
 
121
129
  ### 🔧 Agent 管理
@@ -165,7 +173,7 @@ python3 main.py
165
173
  /security 查看安全设置
166
174
  ```
167
175
 
168
- ## Hermes 核心功能
176
+ ## 🧠 Hermes 核心功能
169
177
 
170
178
  ### 📋 任务管理
171
179
  ```
@@ -230,32 +238,35 @@ fr acp
230
238
  }
231
239
  ```
232
240
 
233
- ## �📦 支持的模型提供商(25+)
234
-
235
- | 道统 | 默认模型 | API 地址 |
236
- |------|---------|----------|
237
- | zhipu | glm-4-flash | - |
238
- | zhipu-coding | GLM-4.7 | open.bigmodel.cn/api/coding/paas/v4 |
239
- | zhipu-anthropic | glm-4.6 | open.bigmodel.cn/api/anthropic |
240
- | deepseek | deepseek-chat | api.deepseek.com |
241
- | kimi | moonshot-v1-8k | api.moonshot.cn |
242
- | kimi-k2 | kimi-k2-0905-preview | api.moonshot.cn |
243
- | kimi-code | kimi-cache-test | api.kimi.com/coding/v1 |
244
- | qwen | qwen-turbo | dashscope.aliyuncs.com |
245
- | stepfun | step-1-8k | api.stepfun.com |
246
- | step-1 | step-1-8k | api.stepfun.com |
247
- | step-2 | step-2-16k | api.stepfun.com |
248
- | step-3 | step-3-auto | api.stepfun.com |
249
- | step-audio | step-audio-2 | api.stepfun.com |
250
- | minimax | MiniMax-Text-01 | api.minimax.chat |
251
- | minimax-m27 | MiniMax-M2.7 | api.minimax.chat |
252
- | minimax-m27-fast | MiniMax-M2.7-HighSpeed | api.minimax.chat |
253
- | minimax-token-plan | MiniMax-M2.7 | api.minimax.chat |
254
- | spark | generalv3.5 | spark-api-open.xf-yun.com |
255
- | doubao | doubao-1-5-pro-32k-250115 | ark.cn-beijing.volces.com |
256
- | mimo | mimo-v2-flash | api.xiaomimimo.com |
257
- | longcat | LongCat-Flash-Chat | api.longcat.chat/openai |
258
- | longcat-anthropic | LongCat | api.longcat.chat/anthropic |
241
+ ## 🤖 支持的模型提供商(25+)
242
+
243
+ | 道统 | 默认模型 | API 地址 | 常用模型 |
244
+ |------|---------|----------|---------|
245
+ | zhipu | glm-4-flash | open.bigmodel.cn/api/paas/v4 | glm-4-flash, glm-4-plus, glm-4, glm-4v-plus, glm-4-air, glm-4-long |
246
+ | zhipu-coding | GLM-4.7 | open.bigmodel.cn/api/coding/paas/v4 (Coding Plan) | GLM-4.7, GLM-5.1, GLM-4.5-air |
247
+ | zhipu-anthropic | glm-4.6 | open.bigmodel.cn/api/anthropic | glm-4.6 |
248
+ | openai | gpt-4o-mini | api.openai.com/v1 | gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo, o1-mini, o3-mini |
249
+ | deepseek | deepseek-chat | api.deepseek.com | deepseek-chat, deepseek-reasoner, deepseek-coder |
250
+ | kimi | moonshot-v1-8k | api.moonshot.cn | moonshot-v1-8k, moonshot-v1-32k, moonshot-v1-128k |
251
+ | kimi-k2 | kimi-k2-0905-preview | api.moonshot.cn | kimi-k2-0905-preview |
252
+ | kimi-code | kimi-for-coding | api.kimi.com/coding/v1 | kimi-for-coding |
253
+ | qwen | qwen-turbo | dashscope.aliyuncs.com | qwen-turbo, qwen-plus, qwen-max, qwen-coder-plus |
254
+ | stepfun | step-1-8k | api.stepfun.com (api.stepfun.com/step_plan/v1 for Step Plan) | step-1-8k, step-1-32k, step-2-16k, step-3-auto |
255
+ | step-1 | step-1-8k | api.stepfun.com | step-1-8k |
256
+ | step-2 | step-2-16k | api.stepfun.com | step-2-16k |
257
+ | step-3 | step-3-auto | api.stepfun.com | step-3-auto |
258
+ | step-audio | step-audio-2 | api.stepfun.com | step-audio-2 |
259
+ | stepfun-step-plan | step-3-auto | api.stepfun.com/step_plan/v1 (Step Plan) | step-3-auto, step-2-16k, step-1-8k |
260
+ | minimax | MiniMax-Text-01 | api.minimax.io (api.minimax.chat for Token Plan) | MiniMax-Text-01, MiniMax-M2.1, abab6.5s-chat, abab6.5t-chat |
261
+ | minimax-m27 | MiniMax-M2.7 | api.minimax.chat (Token Plan) | MiniMax-M2.7 |
262
+ | minimax-m27-fast | MiniMax-M2.7-HighSpeed | api.minimax.chat (Token Plan) | MiniMax-M2.7-HighSpeed |
263
+ | minimax-token-plan | MiniMax-M2.7 | api.minimax.chat (Token Plan) | MiniMax-M2.7 |
264
+ | spark | generalv3.5 | spark-api-open.xf-yun.com | generalv3.5 |
265
+ | doubao | doubao-1-5-pro-32k-250115 | ark.cn-beijing.volces.com | doubao-1-5-pro-32k, doubao-1-5-lite-32k |
266
+ | mimo | mimo-v2-flash | api.xiaomimimo.com | mimo-v2-flash, mimo-v2-pro |
267
+ | mimo-token-plan | mimo-v2-flash | token-plan-sgp.xiaomimimo.com (Token Plan) | mimo-v2-flash, mimo-v2-pro |
268
+ | longcat | LongCat-Flash-Chat | api.longcat.chat/openai | LongCat-Flash-Chat |
269
+ | longcat-anthropic | LongCat | api.longcat.chat/anthropic | LongCat |
259
270
 
260
271
  ## 🔧 开发
261
272
 
@@ -271,9 +282,17 @@ pip install -e ".[all]"
271
282
  python3 -m pytest tests/ -v
272
283
 
273
284
  # 运行程序
274
- python3 main.py
285
+ fr-cli
275
286
  ```
276
287
 
288
+ ### 环境变量
289
+
290
+ | 变量 | 说明 |
291
+ |------|------|
292
+ | `NO_COLOR=1` | 禁用所有 ANSI 颜色输出,适合 CI/管道/日志重定向 |
293
+ | `FR_CLI_DEBUG=1` | 开启调试模式,显示详细 traceback |
294
+ | `FR_CLI_NON_INTERACTIVE=1` | 非交互模式,安全确认默认拒绝 |
295
+
277
296
  ## 📂 项目结构
278
297
 
279
298
  ```
@@ -284,7 +303,8 @@ fr_cli/
284
303
  │ ├── master.py # MasterAgent 主控
285
304
  │ └── ...
286
305
  ├── core/ # 核心模块
287
- └── llm.py # LLM 客户端(20+ 提供商)
306
+ ├── llm.py # LLM 客户端(20+ 提供商)
307
+ │ └── model_factory.py # 模型工厂配置
288
308
  ├── weapon/ # 武器库
289
309
  ├── memory/ # 记忆系统
290
310
  └── lang/ # 国际化
@@ -292,9 +312,76 @@ fr_cli/
292
312
 
293
313
  ## 📚 文档
294
314
 
295
- - [NEW_PROVIDERS_GUIDE.md](NEW_PROVIDERS_GUIDE.md) - 新增模型使用指南
296
- - [A2A_AND_PROVIDERS_GUIDE.md](A2A_AND_PROVIDERS_GUIDE.md) - A2A 协议文档
315
+ - [AGENTS.md](AGENTS.md) - 面向 AI 编码助手的项目架构与开发指南
316
+
317
+ ## 📂 配置目录
318
+
319
+ > 配置统一在 `~/.fr_cli/` 目录下,旧路径 `~/.zhipu_cli_config.json` 等会在首次启动时自动迁移。
320
+
321
+ | 路径 | 说明 |
322
+ |------|------|
323
+ | `~/.fr_cli/config.json` | 主配置文件(统一配置目录) |
324
+ | `~/.fr_cli/config.json.bak` | 配置自动备份 |
325
+ | `~/.fr_cli/history/` | 会话历史记录 |
326
+ | `~/.fr_cli/context.json` | 上下文记忆 |
327
+ | `~/.fr_cli/sessions/` | 按日期自动存档的会话 |
328
+ | `~/.fr_cli/plugins/` | 用户插件目录 |
329
+ | `~/.fr_cli/agents/` | Agent 分身目录 |
330
+ | `~/.fr_cli/master/` | MasterAgent 记忆与进化记录 |
331
+ | `~/.fr_cli/remotes.json` | 远程主机配置 |
332
+ | `~/.fr_cli/databases.json` | 数据库连接配置 |
333
+ | `~/.fr_cli/rag_db/` | RAG 向量库(ChromaDB)|
334
+
335
+ ## ❓ 常见问题
336
+
337
+ **Q: 如何切换思维模式?**
338
+ ```bash
339
+ /mode direct # 直接回复
340
+ /mode cot # 思维链
341
+ /mode tot # 思维树
342
+ /mode react # ReAct
343
+ ```
344
+
345
+ **Q: 模型切换后重启又变回去了?**
346
+ 这是预期行为。fr-cli 每次启动从 `model_factory.py` 的工厂配置读取默认模型,`/model` 切换仅当前会话生效。如需持久化切换默认模型,可修改 `fr_cli/core/model_factory.py` 中的默认模型,或使用 `/providers setup` 交互式配置向导。
347
+
348
+ **Q: 如何配置模型?**
349
+ ```bash
350
+ # 推荐:交互式向导
351
+ /model config
352
+
353
+ # 或
354
+ /providers setup
355
+ ```
356
+
357
+ **Q: 如何保存会话?**
358
+ ```bash
359
+ /save my-session
360
+ /load
361
+ /export
362
+ ```
363
+
364
+ **Q: 如何查看历史记录?**
365
+ ```bash
366
+ /history
367
+ /session_list
368
+ ```
369
+
370
+ **Q: 邮件发送失败?**
371
+ - QQ/163 邮箱需使用「授权码」而非登录密码
372
+ - 授权码在邮箱设置 → 账户 → 开启 IMAP/SMTP 服务后生成
373
+
374
+ **Q: 搜索功能无法使用?**
375
+ ```bash
376
+ pip install requests
377
+ ```
378
+
379
+ **Q: 云盘功能无法使用?**
380
+ ```bash
381
+ pip install aligo # 阿里云盘
382
+ ```
383
+ 首次使用需运行 `/disk_setup` 完成扫码登录。
297
384
 
298
385
  ## 📄 License
299
386
 
300
- MIT
387
+ MIT
@@ -243,7 +243,7 @@ Agent 能力类型:
243
243
  - DeepSeek: deepseek (deepseek-chat)
244
244
  - Kimi: kimi (moonshot-v1-8k)
245
245
  - Kimi K2: kimi-k2 (kimi-k2-0905-preview) - 代码优化版
246
- - Kimi Code: kimi-code (kimi-cache-test) - 代码平台
246
+ - Kimi Code: kimi-code (kimi-for-coding) - 代码平台
247
247
  - 通义千问: qwen (qwen-turbo)
248
248
  - 阶跃星辰: stepfun (step-1-8k), step-1, step-2, step-3, step-audio
249
249
  - MiniMax: minimax (MiniMax-Text-01)
@@ -1,4 +1,4 @@
1
1
  """
2
2
  凡人打字机 - 基于智谱AI的终极全能终端工具
3
3
  """
4
- __version__ = "2.2.7"
4
+ __version__ = "2.4.1"
@@ -3,11 +3,12 @@
3
3
  负责本地技能的扫描、动态落盘与沙盒执行
4
4
  """
5
5
  import re, subprocess, sys
6
+ from fr_cli.conf.paths import PLUGIN_DIR
6
7
  from pathlib import Path
7
8
  from fr_cli.lang.i18n import T
8
9
  from fr_cli.ui.ui import RED, DIM, RESET
9
10
 
10
- PLUGIN_DIR = Path.home() / ".zhipu_cli_plugins"
11
+ PLUGIN_DIR = PLUGIN_DIR # from fr_cli.conf.paths
11
12
 
12
13
  def init_plugins():
13
14
  """扫描并初始化本地插件字典 {名字: 绝对路径}"""
@@ -2,8 +2,6 @@
2
2
  Agent 分身系统
3
3
  支持创建、管理、执行由 AI 自动生成的独立 Agent
4
4
  """
5
- from pathlib import Path
6
-
7
- AGENTS_DIR = Path.home() / ".fr_cli_agents"
5
+ from fr_cli.conf.paths import AGENTS_DIR
8
6
 
9
7
  __all__ = ["AGENTS_DIR"]
@@ -1,3 +1,4 @@
1
+ from fr_cli.conf.paths import REGISTRY_FILE
1
2
  """
2
3
  Agent2Agent Protocol (A2A) - Agent 互操作协议
3
4
 
@@ -116,7 +117,7 @@ class AgentRegistry:
116
117
  return
117
118
  self._agents: Dict[str, AgentInfo] = {}
118
119
  self._tasks: Dict[str, TaskResult] = {}
119
- self._registry_file = Path.home() / ".fr_cli_agent_registry.json"
120
+ self._registry_file = REGISTRY_FILE
120
121
  self._load_registry()
121
122
  self._initialized = True
122
123