jarvis-ai-assistant 0.1.179__tar.gz → 0.1.180__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.

Potentially problematic release.


This version of jarvis-ai-assistant might be problematic. Click here for more details.

Files changed (106) hide show
  1. {jarvis_ai_assistant-0.1.179/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.180}/PKG-INFO +44 -49
  2. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/README.md +43 -48
  3. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/pyproject.toml +1 -1
  4. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/setup.py +5 -2
  5. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/__init__.py +1 -1
  6. jarvis_ai_assistant-0.1.180/src/jarvis/jarvis_data/config_schema.json +260 -0
  7. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_git_utils/git_commiter.py +1 -1
  8. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/kimi.py +0 -22
  9. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/openai.py +0 -15
  10. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/yuanbao.py +0 -23
  11. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_smart_shell/main.py +6 -3
  12. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/edit_file.py +1 -1
  13. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/registry.py +41 -35
  14. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/config.py +61 -20
  15. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/git_utils.py +28 -15
  16. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/utils.py +101 -61
  17. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180/src/jarvis_ai_assistant.egg-info}/PKG-INFO +44 -49
  18. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +1 -0
  19. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/LICENSE +0 -0
  20. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/MANIFEST.in +0 -0
  21. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/setup.cfg +0 -0
  22. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_agent/__init__.py +0 -0
  23. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  24. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_agent/jarvis.py +0 -0
  25. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_agent/main.py +0 -0
  26. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  27. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  28. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  29. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
  30. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  31. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  32. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  33. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  34. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  35. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  36. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  37. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  38. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  39. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  40. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  41. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  42. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  43. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  44. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  45. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  46. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  47. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  48. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  49. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  50. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  51. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  52. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
  53. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_dev/main.py +0 -0
  54. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_event/__init__.py +0 -0
  55. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_git_details/__init__.py +0 -0
  56. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_git_details/main.py +0 -0
  57. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  58. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_git_squash/main.py +0 -0
  59. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  60. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  61. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  62. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  63. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_methodology/main.py +0 -0
  64. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  65. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  66. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/__init__.py +0 -0
  67. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/base.py +0 -0
  68. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/human.py +0 -0
  69. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform/registry.py +0 -0
  70. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  71. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  72. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  73. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/__init__.py +0 -0
  74. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/ask_codebase.py +0 -0
  75. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  76. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/base.py +0 -0
  77. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/chdir.py +0 -0
  78. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  79. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  80. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/code_plan.py +0 -0
  81. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
  82. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
  83. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  84. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  85. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/file_operation.py +0 -0
  86. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/find_methodology.py +0 -0
  87. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  88. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/methodology.py +0 -0
  89. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/read_code.py +0 -0
  90. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  91. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  92. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/search_web.py +0 -0
  93. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  94. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/__init__.py +0 -0
  95. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  96. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/embedding.py +0 -0
  97. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  98. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/globals.py +0 -0
  99. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/input.py +0 -0
  100. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/methodology.py +0 -0
  101. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/output.py +0 -0
  102. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis/jarvis_utils/tag.py +0 -0
  103. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  104. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  105. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  106. {jarvis_ai_assistant-0.1.179 → jarvis_ai_assistant-0.1.180}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.179
3
+ Version: 0.1.180
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire
@@ -114,7 +114,7 @@ pip3 install jarvis-ai-assistant
114
114
 
115
115
  ### 最小化配置
116
116
 
117
- 将以下配置写入到`~/.jarvis/env`文件中。
117
+ 将以下配置写入到`~/.jarvis/config.yaml`文件中。
118
118
 
119
119
  #### 腾讯元宝
120
120
  ```yaml
@@ -122,9 +122,9 @@ JARVIS_PLATFORM: yuanbao
122
122
  JARVIS_MODEL: deep_seek_v3
123
123
  JARVIS_THINKING_PLATFORM: yuanbao
124
124
  JARVIS_THINKING_MODEL: deep_seek
125
-
126
- YUANBAO_COOKIES: <元宝cookies>
127
- YUANBAO_AGENT_ID: <元宝AgentID>
125
+ ENV:
126
+ YUANBAO_COOKIES: <元宝cookies>
127
+ YUANBAO_AGENT_ID: <元宝AgentID>
128
128
  ```
129
129
 
130
130
  元宝cookies以及AgentID获取方式:
@@ -141,7 +141,8 @@ JARVIS_MODEL: kimi
141
141
  JARVIS_THINKING_PLATFORM: kimi
142
142
  JARVIS_THINKING_MODEL: k1
143
143
 
144
- KIMI_API_KEY: <Kimi API KEY>
144
+ ENV:
145
+ KIMI_API_KEY: <Kimi API KEY>
145
146
  ```
146
147
 
147
148
  Kimi API Key获取方式:
@@ -166,7 +167,7 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
166
167
  1. `OPENAI_API_KEY`: 必填。
167
168
  2. `OPENAI_API_BASE`: 可选,用于自定义API端点
168
169
 
169
- 以上配置编写到`~/.jarvis/env`文件中。
170
+ 以上配置编写到`~/.jarvis/config.yaml`文件中。
170
171
 
171
172
  支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
172
173
 
@@ -191,27 +192,10 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
191
192
  ---
192
193
 
193
194
  ## ⚙️ 配置说明 <a id="configuration"></a>
194
- ### 配置文件格式
195
- 配置文件支持两种格式:
196
- 1. **YAML格式(推荐)**:
197
- ```yaml
198
- JARVIS_PLATFORM: yuanbao
199
- JARVIS_MODEL: deep_seek_v3
200
- YUANBAO_COOKIES: "your_cookies_here"
201
- ```
202
-
203
- 2. **传统键值对格式**:
204
- ```
205
- JARVIS_PLATFORM=yuanbao
206
- JARVIS_MODEL=deep_seek_v3
207
- YUANBAO_COOKIES=your_cookies_here
208
- ```
209
-
210
- 系统会自动检测格式并处理。当检测到传统格式时,会自动转换为YAML格式并备份原文件。
211
-
212
- ### 环境变量配置
195
+ ### 配置项
213
196
  | 变量名称 | 默认值 | 说明 |
214
197
  |----------|--------|------|
198
+ | `ENV` | {} | 环境变量配置,用于设置系统环境变量 |
215
199
  | `JARVIS_MAX_TOKEN_COUNT` | 960000 | 上下文窗口的最大token数量 |
216
200
  | `JARVIS_MAX_INPUT_TOKEN_COUNT` | 32000 | 输入的最大token数量 |
217
201
  | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动完成功能(任务判定完成的时候会自动终止) |
@@ -228,9 +212,20 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
228
212
  | `JARVIS_PRETTY_OUTPUT` | false | 是否启用PrettyOutput |
229
213
  | `JARVIS_GIT_COMMIT_PROMPT` | "" | 自定义git提交信息生成提示模板 |
230
214
  | `JARVIS_PRINT_PROMPT` | false | 是否打印提示 |
215
+ | `JARVIS_USE_METHODOLOGY` | false | 是否启用方法论功能 |
216
+ | `JARVIS_USE_ANALYSIS` | false | 是否启用任务分析功能 |
217
+ | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
231
218
 
232
- 所有配置编写到`~/.jarvis/env`文件中即可生效。
219
+ 所有配置编写到`~/.jarvis/config.yaml`文件中即可生效。
233
220
 
221
+ ### 配置文件格式
222
+ 配置文件仅支持YAML格式:
223
+ ```yaml
224
+ JARVIS_PLATFORM: yuanbao
225
+ JARVIS_MODEL: deep_seek_v3
226
+ ENV:
227
+ YUANBAO_COOKIES: "your_cookies_here"
228
+ ```
234
229
 
235
230
  ---
236
231
  ## 🛠️ 工具说明 <a id="tools"></a>
@@ -274,15 +269,20 @@ Jarvis支持使用特殊标记`'<tag>'`来触发命令替换功能,其中`tag`
274
269
  | `'Fix'` | 修复问题 |
275
270
 
276
271
  #### 自定义替换
277
- 可以通过在`~/.jarvis/replace_map.yaml`文件中添加自定义替换规则:
272
+ 可以通过以下方式配置自定义替换规则:
273
+
274
+ **配置文件**:
275
+ 在`~/.jarvis/config.yaml`中添加`JARVIS_REPLACE_MAP`配置项:
278
276
  ```yaml
279
- tag_name:
280
- template: "替换后的内容"
281
- description: "标记描述"
282
- append: false # 可选,true表示追加到输入末尾,false表示直接替换
277
+ JARVIS_REPLACE_MAP:
278
+ tag_name:
279
+ template: "替换后的内容"
280
+ description: "标记描述"
281
+ append: false # 可选,true表示追加到输入末尾,false表示直接替换
283
282
  ```
284
283
 
285
284
 
285
+
286
286
  #### 文件路径补全
287
287
  在交互式输入中,输入`@`可以触发文件路径补全功能,支持模糊匹配。
288
288
 
@@ -342,27 +342,22 @@ class CustomTool:
342
342
 
343
343
 
344
344
  ### 添加MCP
345
- MCP(模型上下文协议)。在`~/.jarvis/tools/mcp/`中创建YAML配置文件:
345
+ MCP(模型上下文协议)支持以下配置方式:
346
346
 
347
- #### 本地MCP配置(`stdio`模式)
347
+ #### 配置文件
348
+ 在`~/.jarvis/config.yaml`中添加`JARVIS_MCP`配置项:
348
349
  ```yaml
349
- type: stdio
350
- name: MCP名称
351
- command: 可执行命令
352
- args: [参数列表] # 可选
353
- env: # 可选环境变量
354
- KEY: VALUE
350
+ JARVIS_MCP:
351
+ - type: stdio # 或 sse/streamable
352
+ name: MCP名称
353
+ command: 可执行命令 # stdio模式必填
354
+ base_url: http://example.com/api # sse/streamable模式必填
355
+ args: [参数列表] # 可选
356
+ env: # 可选环境变量
357
+ KEY: VALUE
358
+ enable: true # 可选,默认为true
355
359
  ```
356
360
 
357
- #### 远程MCP配置(`sse`模式)
358
- ```yaml
359
- type: sse
360
- name: MCP名称
361
- base_url: http://example.com/api
362
- auth_token: 认证令牌 # 可选
363
- headers: # 可选HTTP头
364
- X-Custom-Header: value
365
- ```
366
361
 
367
362
 
368
363
  ### 添加新大模型平台
@@ -45,7 +45,7 @@ pip3 install jarvis-ai-assistant
45
45
 
46
46
  ### 最小化配置
47
47
 
48
- 将以下配置写入到`~/.jarvis/env`文件中。
48
+ 将以下配置写入到`~/.jarvis/config.yaml`文件中。
49
49
 
50
50
  #### 腾讯元宝
51
51
  ```yaml
@@ -53,9 +53,9 @@ JARVIS_PLATFORM: yuanbao
53
53
  JARVIS_MODEL: deep_seek_v3
54
54
  JARVIS_THINKING_PLATFORM: yuanbao
55
55
  JARVIS_THINKING_MODEL: deep_seek
56
-
57
- YUANBAO_COOKIES: <元宝cookies>
58
- YUANBAO_AGENT_ID: <元宝AgentID>
56
+ ENV:
57
+ YUANBAO_COOKIES: <元宝cookies>
58
+ YUANBAO_AGENT_ID: <元宝AgentID>
59
59
  ```
60
60
 
61
61
  元宝cookies以及AgentID获取方式:
@@ -72,7 +72,8 @@ JARVIS_MODEL: kimi
72
72
  JARVIS_THINKING_PLATFORM: kimi
73
73
  JARVIS_THINKING_MODEL: k1
74
74
 
75
- KIMI_API_KEY: <Kimi API KEY>
75
+ ENV:
76
+ KIMI_API_KEY: <Kimi API KEY>
76
77
  ```
77
78
 
78
79
  Kimi API Key获取方式:
@@ -97,7 +98,7 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
97
98
  1. `OPENAI_API_KEY`: 必填。
98
99
  2. `OPENAI_API_BASE`: 可选,用于自定义API端点
99
100
 
100
- 以上配置编写到`~/.jarvis/env`文件中。
101
+ 以上配置编写到`~/.jarvis/config.yaml`文件中。
101
102
 
102
103
  支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
103
104
 
@@ -122,27 +123,10 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
122
123
  ---
123
124
 
124
125
  ## ⚙️ 配置说明 <a id="configuration"></a>
125
- ### 配置文件格式
126
- 配置文件支持两种格式:
127
- 1. **YAML格式(推荐)**:
128
- ```yaml
129
- JARVIS_PLATFORM: yuanbao
130
- JARVIS_MODEL: deep_seek_v3
131
- YUANBAO_COOKIES: "your_cookies_here"
132
- ```
133
-
134
- 2. **传统键值对格式**:
135
- ```
136
- JARVIS_PLATFORM=yuanbao
137
- JARVIS_MODEL=deep_seek_v3
138
- YUANBAO_COOKIES=your_cookies_here
139
- ```
140
-
141
- 系统会自动检测格式并处理。当检测到传统格式时,会自动转换为YAML格式并备份原文件。
142
-
143
- ### 环境变量配置
126
+ ### 配置项
144
127
  | 变量名称 | 默认值 | 说明 |
145
128
  |----------|--------|------|
129
+ | `ENV` | {} | 环境变量配置,用于设置系统环境变量 |
146
130
  | `JARVIS_MAX_TOKEN_COUNT` | 960000 | 上下文窗口的最大token数量 |
147
131
  | `JARVIS_MAX_INPUT_TOKEN_COUNT` | 32000 | 输入的最大token数量 |
148
132
  | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动完成功能(任务判定完成的时候会自动终止) |
@@ -159,9 +143,20 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
159
143
  | `JARVIS_PRETTY_OUTPUT` | false | 是否启用PrettyOutput |
160
144
  | `JARVIS_GIT_COMMIT_PROMPT` | "" | 自定义git提交信息生成提示模板 |
161
145
  | `JARVIS_PRINT_PROMPT` | false | 是否打印提示 |
146
+ | `JARVIS_USE_METHODOLOGY` | false | 是否启用方法论功能 |
147
+ | `JARVIS_USE_ANALYSIS` | false | 是否启用任务分析功能 |
148
+ | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
162
149
 
163
- 所有配置编写到`~/.jarvis/env`文件中即可生效。
150
+ 所有配置编写到`~/.jarvis/config.yaml`文件中即可生效。
164
151
 
152
+ ### 配置文件格式
153
+ 配置文件仅支持YAML格式:
154
+ ```yaml
155
+ JARVIS_PLATFORM: yuanbao
156
+ JARVIS_MODEL: deep_seek_v3
157
+ ENV:
158
+ YUANBAO_COOKIES: "your_cookies_here"
159
+ ```
165
160
 
166
161
  ---
167
162
  ## 🛠️ 工具说明 <a id="tools"></a>
@@ -205,15 +200,20 @@ Jarvis支持使用特殊标记`'<tag>'`来触发命令替换功能,其中`tag`
205
200
  | `'Fix'` | 修复问题 |
206
201
 
207
202
  #### 自定义替换
208
- 可以通过在`~/.jarvis/replace_map.yaml`文件中添加自定义替换规则:
203
+ 可以通过以下方式配置自定义替换规则:
204
+
205
+ **配置文件**:
206
+ 在`~/.jarvis/config.yaml`中添加`JARVIS_REPLACE_MAP`配置项:
209
207
  ```yaml
210
- tag_name:
211
- template: "替换后的内容"
212
- description: "标记描述"
213
- append: false # 可选,true表示追加到输入末尾,false表示直接替换
208
+ JARVIS_REPLACE_MAP:
209
+ tag_name:
210
+ template: "替换后的内容"
211
+ description: "标记描述"
212
+ append: false # 可选,true表示追加到输入末尾,false表示直接替换
214
213
  ```
215
214
 
216
215
 
216
+
217
217
  #### 文件路径补全
218
218
  在交互式输入中,输入`@`可以触发文件路径补全功能,支持模糊匹配。
219
219
 
@@ -273,27 +273,22 @@ class CustomTool:
273
273
 
274
274
 
275
275
  ### 添加MCP
276
- MCP(模型上下文协议)。在`~/.jarvis/tools/mcp/`中创建YAML配置文件:
276
+ MCP(模型上下文协议)支持以下配置方式:
277
277
 
278
- #### 本地MCP配置(`stdio`模式)
278
+ #### 配置文件
279
+ 在`~/.jarvis/config.yaml`中添加`JARVIS_MCP`配置项:
279
280
  ```yaml
280
- type: stdio
281
- name: MCP名称
282
- command: 可执行命令
283
- args: [参数列表] # 可选
284
- env: # 可选环境变量
285
- KEY: VALUE
281
+ JARVIS_MCP:
282
+ - type: stdio # 或 sse/streamable
283
+ name: MCP名称
284
+ command: 可执行命令 # stdio模式必填
285
+ base_url: http://example.com/api # sse/streamable模式必填
286
+ args: [参数列表] # 可选
287
+ env: # 可选环境变量
288
+ KEY: VALUE
289
+ enable: true # 可选,默认为true
286
290
  ```
287
291
 
288
- #### 远程MCP配置(`sse`模式)
289
- ```yaml
290
- type: sse
291
- name: MCP名称
292
- base_url: http://example.com/api
293
- auth_token: 认证令牌 # 可选
294
- headers: # 可选HTTP头
295
- X-Custom-Header: value
296
- ```
297
292
 
298
293
 
299
294
  ### 添加新大模型平台
@@ -8,7 +8,7 @@ default = true
8
8
 
9
9
  [project]
10
10
  name = "jarvis-ai-assistant"
11
- version = "0.1.179"
11
+ version = "0.1.180"
12
12
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
13
13
  readme = "README.md"
14
14
  authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
3
3
 
4
4
  setup(
5
5
  name="jarvis-ai-assistant",
6
- version="0.1.179",
6
+ version="0.1.180",
7
7
  author="skyfire",
8
8
  author_email="skyfireitdiy@hotmail.com",
9
9
  description="An AI assistant that uses various tools to interact with the system",
@@ -14,7 +14,10 @@ setup(
14
14
  package_dir={"": "src"},
15
15
  include_package_data=True,
16
16
  package_data={
17
- "jarvis": ["jarvis_data/huggingface.tar.gz"],
17
+ "jarvis": [
18
+ "jarvis_data/huggingface.tar.gz",
19
+ "jarvis_data/config_schema.json"
20
+ ],
18
21
  },
19
22
  install_requires=[
20
23
  "requests==2.32.3",
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.1.179"
4
+ __version__ = "0.1.180"
@@ -0,0 +1,260 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Jarvis环境变量配置模式",
4
+ "description": "Jarvis系统配置模式",
5
+ "type": "object",
6
+ "properties": {
7
+ "JARVIS_MCP": {
8
+ "type": "array",
9
+ "description": "MCP工具配置列表",
10
+ "items": {
11
+ "type": "object",
12
+ "oneOf": [
13
+ {
14
+ "type": "object",
15
+ "required": [
16
+ "type",
17
+ "base_url"
18
+ ],
19
+ "properties": {
20
+ "type": {
21
+ "type": "string",
22
+ "enum": [
23
+ "sse",
24
+ "streamable"
25
+ ],
26
+ "description": "MCP客户端类型"
27
+ },
28
+ "base_url": {
29
+ "type": "string",
30
+ "format": "uri",
31
+ "description": "MCP服务器基础URL"
32
+ },
33
+ "auth_token": {
34
+ "type": "string",
35
+ "description": "认证令牌(可选)"
36
+ },
37
+ "headers": {
38
+ "type": "object",
39
+ "additionalProperties": {
40
+ "type": "string"
41
+ },
42
+ "description": "额外的HTTP头(可选)"
43
+ },
44
+ "name": {
45
+ "type": "string",
46
+ "description": "工具名称(可选)"
47
+ },
48
+ "enable": {
49
+ "type": "boolean",
50
+ "default": true,
51
+ "description": "是否启用该工具(可选)"
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "type": "object",
57
+ "required": [
58
+ "type",
59
+ "command"
60
+ ],
61
+ "properties": {
62
+ "type": {
63
+ "type": "string",
64
+ "enum": [
65
+ "stdio"
66
+ ],
67
+ "description": "MCP客户端类型"
68
+ },
69
+ "command": {
70
+ "type": "string",
71
+ "description": "要执行的命令"
72
+ },
73
+ "args": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string"
77
+ },
78
+ "description": "命令参数列表(可选)"
79
+ },
80
+ "env": {
81
+ "type": "object",
82
+ "additionalProperties": {
83
+ "type": "string"
84
+ },
85
+ "description": "环境变量(可选)"
86
+ },
87
+ "name": {
88
+ "type": "string",
89
+ "description": "工具名称(可选)"
90
+ },
91
+ "enable": {
92
+ "type": "boolean",
93
+ "default": true,
94
+ "description": "是否启用该工具(可选)"
95
+ }
96
+ }
97
+ }
98
+ ]
99
+ }
100
+ },
101
+ "ENV": {
102
+ "type": "object",
103
+ "description": "需要设置的额外环境变量",
104
+ "additionalProperties": {
105
+ "type": "string"
106
+ },
107
+ "default": {}
108
+ },
109
+ "JARVIS_GIT_COMMIT_PROMPT": {
110
+ "type": "string",
111
+ "description": "Git提交信息生成提示模板",
112
+ "default": ""
113
+ },
114
+ "JARVIS_MAX_TOKEN_COUNT": {
115
+ "type": "string",
116
+ "description": "模型能处理的最大token数量",
117
+ "default": "960000"
118
+ },
119
+ "JARVIS_MAX_INPUT_TOKEN_COUNT": {
120
+ "type": "string",
121
+ "description": "模型能处理的最大输入token数量",
122
+ "default": "32000"
123
+ },
124
+ "JARVIS_AUTO_COMPLETE": {
125
+ "type": "string",
126
+ "description": "是否启用自动补全功能",
127
+ "default": "false",
128
+ "enum": [
129
+ "true",
130
+ "false"
131
+ ]
132
+ },
133
+ "SHELL": {
134
+ "type": "string",
135
+ "description": "系统shell名称(如: bash, zsh)",
136
+ "default": "/bin/bash"
137
+ },
138
+ "JARVIS_PLATFORM": {
139
+ "type": "string",
140
+ "description": "常规操作平台名称",
141
+ "default": "yuanbao"
142
+ },
143
+ "JARVIS_MODEL": {
144
+ "type": "string",
145
+ "description": "常规操作模型名称",
146
+ "default": "deep_seek_v3"
147
+ },
148
+ "JARVIS_THINKING_PLATFORM": {
149
+ "type": "string",
150
+ "description": "思考操作平台名称",
151
+ "default": "yuanbao"
152
+ },
153
+ "JARVIS_THINKING_MODEL": {
154
+ "type": "string",
155
+ "description": "思考操作模型名称",
156
+ "default": "deep_seek"
157
+ },
158
+ "JARVIS_EXECUTE_TOOL_CONFIRM": {
159
+ "type": "string",
160
+ "description": "执行工具前是否需要确认",
161
+ "default": "false",
162
+ "enum": [
163
+ "true",
164
+ "false"
165
+ ]
166
+ },
167
+ "JARVIS_CONFIRM_BEFORE_APPLY_PATCH": {
168
+ "type": "string",
169
+ "description": "应用补丁前是否需要确认",
170
+ "default": "true",
171
+ "enum": [
172
+ "true",
173
+ "false"
174
+ ]
175
+ },
176
+ "JARVIS_MAX_TOOL_CALL_COUNT": {
177
+ "type": "string",
178
+ "description": "最大连续工具调用次数",
179
+ "default": "20"
180
+ },
181
+ "JARVIS_DATA_PATH": {
182
+ "type": "string",
183
+ "description": "Jarvis数据存储目录路径",
184
+ "default": "~/.jarvis"
185
+ },
186
+ "JARVIS_AUTO_UPDATE": {
187
+ "type": "string",
188
+ "description": "是否自动更新git仓库",
189
+ "default": "true",
190
+ "enum": [
191
+ "true",
192
+ "false"
193
+ ]
194
+ },
195
+ "JARVIS_MAX_BIG_CONTENT_SIZE": {
196
+ "type": "string",
197
+ "description": "最大大内容尺寸",
198
+ "default": "1024000"
199
+ },
200
+ "JARVIS_PRETTY_OUTPUT": {
201
+ "type": "string",
202
+ "description": "是否启用美化输出",
203
+ "default": "false",
204
+ "enum": [
205
+ "true",
206
+ "false"
207
+ ]
208
+ },
209
+ "JARVIS_USE_METHODOLOGY": {
210
+ "type": "string",
211
+ "description": "是否启用方法论",
212
+ "default": "false",
213
+ "enum": [
214
+ "true",
215
+ "false"
216
+ ]
217
+ },
218
+ "JARVIS_USE_ANALYSIS": {
219
+ "type": "string",
220
+ "description": "是否启用任务分析",
221
+ "default": "false",
222
+ "enum": [
223
+ "true",
224
+ "false"
225
+ ]
226
+ },
227
+ "JARVIS_PRINT_PROMPT": {
228
+ "type": "string",
229
+ "description": "是否打印提示",
230
+ "default": "false",
231
+ "enum": [
232
+ "true",
233
+ "false"
234
+ ]
235
+ },
236
+ "JARVIS_REPLACE_MAP": {
237
+ "type": "object",
238
+ "description": "自定义替换映射表配置",
239
+ "additionalProperties": {
240
+ "type": "object",
241
+ "properties": {
242
+ "append": {
243
+ "type": "boolean",
244
+ "description": "Whether to append to existing template"
245
+ },
246
+ "template": {
247
+ "type": "string",
248
+ "description": "Replacement template content"
249
+ },
250
+ "description": {
251
+ "type": "string",
252
+ "description": "Description of the replacement"
253
+ }
254
+ },
255
+ "required": ["template"]
256
+ }
257
+ }
258
+ },
259
+ "additionalProperties": false
260
+ }
@@ -252,7 +252,7 @@ class GitCommitTool:
252
252
  "stdout": yaml.safe_dump({
253
253
  "commit_hash": commit_hash,
254
254
  "commit_message": commit_message
255
- }),
255
+ }, allow_unicode=True),
256
256
  "stderr": ""
257
257
  }
258
258
  finally:
@@ -6,10 +6,6 @@ import time
6
6
  from typing import Dict, Generator, List, Tuple
7
7
 
8
8
  import requests # type: ignore
9
- from rich import box
10
- from rich.live import Live
11
- from rich.panel import Panel
12
- from rich.text import Text
13
9
 
14
10
  from jarvis.jarvis_platform.base import BasePlatform
15
11
  from jarvis.jarvis_utils.config import get_data_dir
@@ -37,24 +33,6 @@ class KimiModel(BasePlatform):
37
33
  self.chat_id = ""
38
34
  self.api_key = os.getenv("KIMI_API_KEY")
39
35
  if not self.api_key:
40
- message = (
41
- "需要设置 KIMI_API_KEY 才能使用 Jarvis。请按照以下步骤操作:\n"
42
- "1. 获取 Kimi API Key:\n"
43
- " • 访问 Kimi AI 平台: https://kimi.moonshot.cn\n"
44
- " • 登录您的账户\n"
45
- " • 打开浏览器开发者工具 (F12 或右键 -> 检查)\n"
46
- " • 切换到网络标签\n"
47
- " • 发送任意消息\n"
48
- " • 在请求中找到 Authorization 头\n"
49
- " • 复制 token 值(去掉 'Bearer ' 前缀)\n"
50
- "2. 设置环境变量:\n"
51
- " • 方法 1: 创建或编辑配置文件:\n"
52
- f" echo 'KIMI_API_KEY=your_key_here' > {get_data_dir()}/env\n"
53
- " • 方法 2: 直接设置环境变量:\n"
54
- " export KIMI_API_KEY=your_key_here\n"
55
- "设置后,重新运行 Jarvis。"
56
- )
57
- PrettyOutput.print(message, OutputType.INFO)
58
36
  PrettyOutput.print("KIMI_API_KEY 未设置", OutputType.WARNING)
59
37
  self.auth_header = f"Bearer {self.api_key}"
60
38
  self.uploaded_files = [] # 存储已上传文件的信息
@@ -19,21 +19,6 @@ class OpenAIModel(BasePlatform):
19
19
  self.system_message = ""
20
20
  self.api_key = os.getenv("OPENAI_API_KEY")
21
21
  if not self.api_key:
22
- message = (
23
- "需要设置以下环境变量才能使用 OpenAI 模型:\n"
24
- " • OPENAI_API_KEY: API 密钥\n"
25
- " • OPENAI_API_BASE: (可选) API 基础地址, 默认使用 https://api.openai.com/v1\n"
26
- "您可以通过以下方式设置它们:\n"
27
- "1. 创建或编辑 ~/.jarvis/env 文件:\n"
28
- " OPENAI_API_KEY=your_api_key\n"
29
- " OPENAI_API_BASE=your_api_base\n"
30
- " OPENAI_MODEL_NAME=your_model_name\n"
31
- "2. 直接设置环境变量:\n"
32
- " export OPENAI_API_KEY=your_api_key\n"
33
- " export OPENAI_API_BASE=your_api_base\n"
34
- " export OPENAI_MODEL_NAME=your_model_name"
35
- )
36
- PrettyOutput.print(message, OutputType.INFO)
37
22
  PrettyOutput.print("OPENAI_API_KEY 未设置", OutputType.WARNING)
38
23
 
39
24
  self.base_url = os.getenv("OPENAI_API_BASE", "https://api.openai.com/v1")