jarvis-ai-assistant 0.1.164__tar.gz → 0.1.166__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 (110) hide show
  1. {jarvis_ai_assistant-0.1.164/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.166}/PKG-INFO +42 -44
  2. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/README.md +40 -43
  3. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/pyproject.toml +2 -1
  4. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/setup.py +6 -1
  5. jarvis_ai_assistant-0.1.166/src/jarvis/__init__.py +4 -0
  6. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/__init__.py +13 -1
  7. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/builtin_input_handler.py +1 -0
  8. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/file_input_handler.py +1 -0
  9. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/jarvis.py +1 -0
  10. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/main.py +1 -0
  11. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/output_handler.py +1 -0
  12. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_agent/shell_input_handler.py +1 -0
  13. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_agent/code_agent.py +5 -26
  14. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +1 -0
  15. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +1 -0
  16. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +1 -0
  17. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +1 -0
  18. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/devops.py +1 -0
  19. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/docs.py +1 -0
  20. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/go.py +1 -0
  21. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +1 -0
  22. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/java.py +1 -0
  23. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +1 -0
  24. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +1 -0
  25. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/loader.py +1 -0
  26. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/php.py +1 -0
  27. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/python.py +1 -0
  28. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +1 -0
  29. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/rust.py +1 -0
  30. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/shell.py +1 -0
  31. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/sql.py +1 -0
  32. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/swift.py +1 -0
  33. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/checklists/web.py +1 -0
  34. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_analysis/code_review.py +1 -0
  35. jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
  36. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_dev/main.py +1 -0
  37. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_details/main.py +1 -0
  38. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_squash/main.py +1 -0
  39. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_utils/git_commiter.py +55 -30
  40. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/base.py +1 -0
  41. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/cpp.py +1 -0
  42. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/go.py +1 -0
  43. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/python.py +1 -0
  44. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/registry.py +1 -0
  45. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_lsp/rust.py +1 -0
  46. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_mcp/__init__.py +1 -0
  47. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_mcp/sse_mcp_client.py +1 -0
  48. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +1 -0
  49. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_methodology/main.py +1 -0
  50. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_multi_agent/__init__.py +1 -0
  51. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_multi_agent/main.py +1 -0
  52. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/__init__.py +1 -0
  53. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/base.py +1 -0
  54. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/human.py +1 -0
  55. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/kimi.py +1 -0
  56. jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_platform/openai.py +117 -0
  57. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/registry.py +1 -0
  58. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform/yuanbao.py +3 -1
  59. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform_manager/main.py +1 -0
  60. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_smart_shell/main.py +1 -0
  61. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/ask_codebase.py +1 -0
  62. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/ask_user.py +1 -0
  63. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/base.py +1 -0
  64. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/chdir.py +1 -0
  65. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/code_plan.py +1 -0
  66. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/create_code_agent.py +1 -0
  67. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/create_sub_agent.py +1 -0
  68. jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_tools/edit_file.py +351 -0
  69. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/execute_script.py +1 -0
  70. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/file_analyzer.py +1 -0
  71. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/file_operation.py +1 -0
  72. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/find_methodology.py +6 -1
  73. jarvis_ai_assistant-0.1.166/src/jarvis/jarvis_tools/generate_new_tool.py +288 -0
  74. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/lsp_get_diagnostics.py +1 -0
  75. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/methodology.py +1 -0
  76. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/read_code.py +1 -0
  77. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/read_webpage.py +1 -0
  78. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/registry.py +1 -0
  79. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/rewrite_file.py +1 -0
  80. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/search_web.py +1 -0
  81. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/virtual_tty.py +1 -0
  82. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/__init__.py +1 -0
  83. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/builtin_replace_map.py +1 -0
  84. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/config.py +1 -0
  85. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/embedding.py +1 -0
  86. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/file_processors.py +1 -0
  87. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/git_utils.py +1 -0
  88. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/globals.py +1 -0
  89. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/input.py +1 -0
  90. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/methodology.py +12 -5
  91. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/output.py +1 -0
  92. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/tag.py +1 -0
  93. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_utils/utils.py +19 -1
  94. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166/src/jarvis_ai_assistant.egg-info}/PKG-INFO +42 -44
  95. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +3 -0
  96. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/requires.txt +1 -0
  97. jarvis_ai_assistant-0.1.164/src/jarvis/__init__.py +0 -3
  98. jarvis_ai_assistant-0.1.164/src/jarvis/jarvis_tools/edit_file.py +0 -279
  99. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/LICENSE +0 -0
  100. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/MANIFEST.in +0 -0
  101. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/setup.cfg +0 -0
  102. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  103. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_details/__init__.py +0 -0
  104. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  105. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  106. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  107. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis/jarvis_tools/__init__.py +0 -0
  108. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  109. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  110. {jarvis_ai_assistant-0.1.164 → jarvis_ai_assistant-0.1.166}/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.164
3
+ Version: 0.1.166
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
@@ -55,6 +55,7 @@ Requires-Dist: torch==2.4.1
55
55
  Requires-Dist: python-Levenshtein==0.25.1
56
56
  Requires-Dist: sseclient==0.0.27
57
57
  Requires-Dist: pillow==10.2.0
58
+ Requires-Dist: openai==1.78.1
58
59
  Provides-Extra: dev
59
60
  Requires-Dist: pytest; extra == "dev"
60
61
  Requires-Dist: black; extra == "dev"
@@ -105,11 +106,19 @@ Dynamic: requires-python
105
106
 
106
107
 
107
108
  ## 🚀 快速开始 <a id="quick-start"></a>
109
+ ### 系统要求
110
+ - 目前只能在Linux系统下使用(很多工具依赖Linux系统)
111
+ - Windows没有测试过,但Windows 10以上的用户可以在WSL上使用此工具
112
+
108
113
  ### 安装
109
114
  ```bash
115
+ # 从源码安装(推荐)
110
116
  git clone https://github.com/skyfireitdiy/Jarvis
111
117
  cd Jarvis
112
118
  pip3 install -e .
119
+
120
+ # 或者从PyPI安装(可能更新不及时)
121
+ pip3 install jarvis-ai-assistant
113
122
  ```
114
123
 
115
124
  ### 最小化配置
@@ -148,55 +157,44 @@ Kimi API Key获取方式:
148
157
 
149
158
  删除Bearer前缀,剩下的内容就是Kimi API Key。
150
159
 
151
- 以上配置编写到`~/.jarvis/env`文件中。
152
160
 
153
- ### 基本使用
161
+ #### OpenAI
154
162
  ```bash
155
- # 使用通用代理
156
- jarvis
157
-
158
- # 使用代码代理
159
- jarvis-code-agent
160
- # 或者 jca
161
-
162
- # 使用智能shell的功能
163
- jarvis-smart-shell --help
164
- # 或者 jss
165
-
166
- # 使用平台管理的功能
167
- jarvis-platform-manager --help
168
-
169
- # 使用代码审查的功能
170
- jarvis-code-review --help
171
-
172
- # 使用自动化git commit的功能
173
- jarvis-git-commit --help
174
- # 或者 jgc
175
-
176
- # 使用dev功能(开发中)
177
- jarvis-dev --help
178
-
179
- # 使用git squash的功能
180
- jarvis-git-squash --help
181
-
182
- # 使用多代理的功能
183
- jarvis-multi-agent --help
184
-
185
- # 使用agent的功能
186
- jarvis-agent --help
163
+ JARVIS_PLATFORM=openai
164
+ JARVIS_MODEL=gpt-4o # 默认模型,可选gpt-4-turbo, gpt-3.5-turbo等
165
+ JARVIS_THINKING_PLATFORM=openai
166
+ JARVIS_THINKING_MODEL=gpt-4o
167
+
168
+ OPENAI_API_KEY=<OpenAI API Key>
169
+ OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
170
+ OPENAI_MODEL_NAME=gpt-4o # 可选,覆盖JARVIS_MODEL设置
171
+ ```
187
172
 
188
- # 使用工具的功能
189
- jarvis-tool --help
173
+ 配置说明:
174
+ 1. `OPENAI_API_KEY`: 必填。
175
+ 2. `OPENAI_API_BASE`: 可选,用于自定义API端点
190
176
 
191
- # 使用代码库查询功能
192
- jarvis-ask-codebase --help
177
+ 以上配置编写到`~/.jarvis/env`文件中。
193
178
 
194
- # 使用git details的功能
195
- jarvis-git-details --help
179
+ 支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
196
180
 
197
- # 使用方法论的功能
198
- jarvis-methodology --help
199
- ```
181
+ ### 基本使用
182
+ | 命令 | 快捷方式 | 功能描述 |
183
+ |------|----------|----------|
184
+ | `jarvis` | - | 使用通用代理 |
185
+ | `jarvis-code-agent` | `jca` | 使用代码代理 |
186
+ | `jarvis-smart-shell` | `jss` | 使用智能shell功能 |
187
+ | `jarvis-platform-manager` | - | 使用平台管理功能 |
188
+ | `jarvis-code-review` | - | 使用代码审查功能 |
189
+ | `jarvis-git-commit` | `jgc` | 使用自动化git commit功能 |
190
+ | `jarvis-dev` | - | 使用dev功能(开发中) |
191
+ | `jarvis-git-squash` | - | 使用git squash功能 |
192
+ | `jarvis-multi-agent` | - | 使用多代理功能 |
193
+ | `jarvis-agent` | - | 使用agent功能 |
194
+ | `jarvis-tool` | - | 使用工具功能 |
195
+ | `jarvis-ask-codebase` | `jac` | 使用代码库查询功能 |
196
+ | `jarvis-git-details` | - | 使用git details功能 |
197
+ | `jarvis-methodology` | - | 使用方法论功能 |
200
198
 
201
199
  ---
202
200
 
@@ -36,11 +36,19 @@
36
36
 
37
37
 
38
38
  ## 🚀 快速开始 <a id="quick-start"></a>
39
+ ### 系统要求
40
+ - 目前只能在Linux系统下使用(很多工具依赖Linux系统)
41
+ - Windows没有测试过,但Windows 10以上的用户可以在WSL上使用此工具
42
+
39
43
  ### 安装
40
44
  ```bash
45
+ # 从源码安装(推荐)
41
46
  git clone https://github.com/skyfireitdiy/Jarvis
42
47
  cd Jarvis
43
48
  pip3 install -e .
49
+
50
+ # 或者从PyPI安装(可能更新不及时)
51
+ pip3 install jarvis-ai-assistant
44
52
  ```
45
53
 
46
54
  ### 最小化配置
@@ -79,55 +87,44 @@ Kimi API Key获取方式:
79
87
 
80
88
  删除Bearer前缀,剩下的内容就是Kimi API Key。
81
89
 
82
- 以上配置编写到`~/.jarvis/env`文件中。
83
90
 
84
- ### 基本使用
91
+ #### OpenAI
85
92
  ```bash
86
- # 使用通用代理
87
- jarvis
88
-
89
- # 使用代码代理
90
- jarvis-code-agent
91
- # 或者 jca
92
-
93
- # 使用智能shell的功能
94
- jarvis-smart-shell --help
95
- # 或者 jss
96
-
97
- # 使用平台管理的功能
98
- jarvis-platform-manager --help
99
-
100
- # 使用代码审查的功能
101
- jarvis-code-review --help
102
-
103
- # 使用自动化git commit的功能
104
- jarvis-git-commit --help
105
- # 或者 jgc
106
-
107
- # 使用dev功能(开发中)
108
- jarvis-dev --help
109
-
110
- # 使用git squash的功能
111
- jarvis-git-squash --help
112
-
113
- # 使用多代理的功能
114
- jarvis-multi-agent --help
115
-
116
- # 使用agent的功能
117
- jarvis-agent --help
93
+ JARVIS_PLATFORM=openai
94
+ JARVIS_MODEL=gpt-4o # 默认模型,可选gpt-4-turbo, gpt-3.5-turbo等
95
+ JARVIS_THINKING_PLATFORM=openai
96
+ JARVIS_THINKING_MODEL=gpt-4o
97
+
98
+ OPENAI_API_KEY=<OpenAI API Key>
99
+ OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
100
+ OPENAI_MODEL_NAME=gpt-4o # 可选,覆盖JARVIS_MODEL设置
101
+ ```
118
102
 
119
- # 使用工具的功能
120
- jarvis-tool --help
103
+ 配置说明:
104
+ 1. `OPENAI_API_KEY`: 必填。
105
+ 2. `OPENAI_API_BASE`: 可选,用于自定义API端点
121
106
 
122
- # 使用代码库查询功能
123
- jarvis-ask-codebase --help
107
+ 以上配置编写到`~/.jarvis/env`文件中。
124
108
 
125
- # 使用git details的功能
126
- jarvis-git-details --help
109
+ 支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
127
110
 
128
- # 使用方法论的功能
129
- jarvis-methodology --help
130
- ```
111
+ ### 基本使用
112
+ | 命令 | 快捷方式 | 功能描述 |
113
+ |------|----------|----------|
114
+ | `jarvis` | - | 使用通用代理 |
115
+ | `jarvis-code-agent` | `jca` | 使用代码代理 |
116
+ | `jarvis-smart-shell` | `jss` | 使用智能shell功能 |
117
+ | `jarvis-platform-manager` | - | 使用平台管理功能 |
118
+ | `jarvis-code-review` | - | 使用代码审查功能 |
119
+ | `jarvis-git-commit` | `jgc` | 使用自动化git commit功能 |
120
+ | `jarvis-dev` | - | 使用dev功能(开发中) |
121
+ | `jarvis-git-squash` | - | 使用git squash功能 |
122
+ | `jarvis-multi-agent` | - | 使用多代理功能 |
123
+ | `jarvis-agent` | - | 使用agent功能 |
124
+ | `jarvis-tool` | - | 使用工具功能 |
125
+ | `jarvis-ask-codebase` | `jac` | 使用代码库查询功能 |
126
+ | `jarvis-git-details` | - | 使用git details功能 |
127
+ | `jarvis-methodology` | - | 使用方法论功能 |
131
128
 
132
129
  ---
133
130
 
@@ -8,7 +8,7 @@ default = true
8
8
 
9
9
  [project]
10
10
  name = "jarvis-ai-assistant"
11
- version = "0.1.164"
11
+ version = "0.1.166"
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" }]
@@ -41,6 +41,7 @@ dependencies = [
41
41
  "python-Levenshtein==0.25.1",
42
42
  "sseclient==0.0.27",
43
43
  "pillow==10.2.0",
44
+ "openai==1.78.1",
44
45
  ]
45
46
  requires-python = ">=3.8"
46
47
 
@@ -1,8 +1,9 @@
1
+ # -*- coding: utf-8 -*-
1
2
  from setuptools import setup, find_packages
2
3
 
3
4
  setup(
4
5
  name="jarvis-ai-assistant",
5
- version="0.1.164",
6
+ version="0.1.166",
6
7
  author="skyfire",
7
8
  author_email="skyfireitdiy@hotmail.com",
8
9
  description="An AI assistant that uses various tools to interact with the system",
@@ -12,6 +13,9 @@ setup(
12
13
  packages=find_packages(where="src"),
13
14
  package_dir={"": "src"},
14
15
  include_package_data=True,
16
+ package_data={
17
+ "jarvis": ["jarvis_data/huggingface.tar.gz"],
18
+ },
15
19
  install_requires=[
16
20
  "requests==2.32.3",
17
21
  "colorama==0.4.6",
@@ -28,6 +32,7 @@ setup(
28
32
  "python-Levenshtein==0.25.1",
29
33
  "sseclient==0.0.27",
30
34
  "pillow==10.2.0",
35
+ "openai==1.78.1",
31
36
  ],
32
37
  extras_require={
33
38
  "dev": ["pytest", "black", "isort", "mypy", "build", "twine"]
@@ -0,0 +1,4 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Jarvis AI Assistant"""
3
+
4
+ __version__ = "0.1.166"
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  import datetime
2
3
  import platform
3
4
  from typing import Any, Callable, List, Optional, Tuple, Union
@@ -309,6 +310,17 @@ class Agent:
309
310
  """
310
311
  self.after_tool_call_cb = cb
311
312
 
313
+ def get_tool_registry(self) -> Optional[ToolRegistry]:
314
+ """获取工具注册器。
315
+
316
+ 返回:
317
+ ToolRegistry: 工具注册器实例
318
+ """
319
+ for handler in self.output_handler:
320
+ if isinstance(handler, ToolRegistry):
321
+ return handler
322
+ return None
323
+
312
324
  def make_default_addon_prompt(self, need_complete: bool) -> str:
313
325
  """生成附加提示。
314
326
 
@@ -657,7 +669,7 @@ arguments:
657
669
  msg = user_input
658
670
  for handler in self.input_handler:
659
671
  msg, _ = handler(msg, self)
660
- self.prompt = f"{user_input}\n\n以下是历史类似问题的执行经验,可参考:\n{load_methodology(msg)}"
672
+ self.prompt = f"{user_input}\n\n以下是历史类似问题的执行经验,可参考:\n{load_methodology(msg, self.get_tool_registry())}"
661
673
  self.first = False
662
674
 
663
675
  while True:
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  import re
2
3
  from typing import Any, Tuple
3
4
  from jarvis.jarvis_utils.config import get_replace_map
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  import argparse
2
3
  import os
3
4
  import sys
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  import argparse
2
3
  import yaml
3
4
  import os
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  from abc import ABC, abstractmethod
2
3
  from typing import Any, Tuple
3
4
 
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  from typing import Any, Tuple
2
3
 
3
4
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """Jarvis代码代理模块。
2
3
 
3
4
  该模块提供CodeAgent类,用于处理代码修改任务。
@@ -86,32 +87,10 @@ class CodeAgent:
86
87
  - 代码阅读:优先使用read_code工具
87
88
  - 仅在命令行工具不足时使用专用工具
88
89
 
89
- ## 代码编辑规范
90
- ### 代码修改工具选择
91
- - 对于所有代码修改任务,优先使用edit_file工具,对于特别简单的修改,可以通过execute_script工具使用shell命令修改
92
- - edit_file通过搜索和替换实现精确的代码编辑,是首选的代码修改方式
93
- - 每个搜索文本在文件中必须唯一匹配,确保修改的准确性
94
- - 为新文件创建时,使用空字符串作为搜索文本,替换文本作为完整内容
95
- - 保持与原代码完全一致的格式和缩进风格
96
-
97
- ### 文件重写工具使用
98
- - rewrite_file工具用于完全重写文件内容或创建新文件
99
- - 当需要替换整个文件内容时,优先使用rewrite_file工具
100
- - 创建新文件时,使用rewrite_file工具提供完整的文件内容
101
- - 保持与原代码相同的格式、缩进和编码风格
102
- - 确保提供格式良好的完整文件内容
103
-
104
- ### 最小补丁原则
105
- - 对于任何代码修改,只提供需要修改的代码部分,不提供完整文件内容
106
- - 严格保持原始代码的缩进、空行和格式风格
107
- - 提供最小必要的上下文,确保修改位置精确
108
- - 每个修改必须包含清晰的修改理由
109
-
110
- ### 格式兼容要求
111
- - 保持与原代码相同的缩进方式(空格或制表符)
112
- - 保持原代码的空行数量和位置
113
- - 不改变原代码的换行风格
114
- - 对新文件可提供完整内容,对现有文件只提供差异部分
90
+ ## 文件编辑工具使用规范
91
+ - 对于部分文件内容修改,使用edit_file工具
92
+ - 对于需要重写整个文件内容,使用rewrite_file工具
93
+ - 对于简单的修改,可以使用execute_script工具执行shell命令完成
115
94
  </code_engineer_guide>
116
95
  """
117
96
  # Dynamically add ask_codebase based on task complexity if really needed
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Language-specific checklists for code review.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  C/C++ language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  C# language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Data format (XML, JSON, YAML) specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  DevOps (Makefile, CI/CD) specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Documentation (Markdown, reStructuredText) specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Go language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Infrastructure as Code (Docker, Terraform) specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Java language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  JavaScript/TypeScript language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Kotlin-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Utility module for loading language-specific code review checklists.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  PHP language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Python language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Ruby-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Rust language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Shell/Bash language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  SQL language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  Swift language-specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """
2
3
  HTML/CSS specific code review checklist.
3
4
  """
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  from typing import Dict, Any, List
2
3
  import subprocess
3
4
  import os
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  from jarvis.jarvis_platform.registry import PlatformRegistry
2
3
  from jarvis.jarvis_multi_agent import MultiAgent
3
4
  from jarvis.jarvis_tools.registry import ToolRegistry
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  """Git Commit分析工具模块
2
3
 
3
4
  该模块提供了一个GitCommitAnalyzer类,用于获取和分析指定Git commit的详细信息,
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  import sys
2
3
  import argparse
3
4
  from typing import Dict