jarvis-ai-assistant 0.1.132__py3-none-any.whl → 0.1.134__py3-none-any.whl
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.
- jarvis/__init__.py +1 -1
- jarvis/jarvis_agent/__init__.py +140 -279
- jarvis/jarvis_agent/jarvis.py +143 -0
- jarvis/jarvis_agent/main.py +0 -2
- jarvis/jarvis_agent/patch.py +16 -12
- jarvis/jarvis_code_agent/code_agent.py +155 -104
- jarvis/jarvis_dev/main.py +0 -8
- jarvis/jarvis_lsp/base.py +0 -42
- jarvis/jarvis_lsp/cpp.py +0 -15
- jarvis/jarvis_lsp/go.py +0 -15
- jarvis/jarvis_lsp/python.py +0 -19
- jarvis/jarvis_lsp/registry.py +0 -62
- jarvis/jarvis_lsp/rust.py +0 -15
- jarvis/jarvis_multi_agent/__init__.py +0 -41
- jarvis/jarvis_multi_agent/main.py +43 -0
- jarvis/jarvis_platform/registry.py +2 -16
- jarvis/jarvis_platform/yuanbao.py +1 -1
- jarvis/jarvis_rag/main.py +1 -1
- jarvis/jarvis_tools/ask_codebase.py +61 -54
- jarvis/jarvis_tools/code_review.py +21 -2
- jarvis/jarvis_tools/create_sub_agent.py +0 -1
- jarvis/jarvis_tools/file_analyzer.py +84 -73
- jarvis/jarvis_tools/find_caller.py +83 -18
- jarvis/jarvis_tools/find_symbol.py +102 -18
- jarvis/jarvis_tools/function_analyzer.py +115 -32
- jarvis/jarvis_tools/git_commiter.py +1 -1
- jarvis/jarvis_tools/methodology.py +0 -6
- jarvis/jarvis_tools/project_analyzer.py +116 -28
- jarvis/jarvis_tools/rag.py +0 -5
- jarvis/jarvis_tools/read_code.py +1 -1
- jarvis/jarvis_tools/search_web.py +23 -353
- jarvis/jarvis_tools/tool_generator.py +2 -2
- jarvis/jarvis_utils/config.py +13 -73
- jarvis/jarvis_utils/methodology.py +8 -11
- jarvis/jarvis_utils/output.py +2 -2
- jarvis/jarvis_utils/utils.py +1 -1
- {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/METADATA +6 -15
- {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/RECORD +42 -42
- {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/entry_points.txt +2 -3
- jarvis/jarvis_tools/lsp_find_definition.py +0 -150
- jarvis/jarvis_tools/lsp_find_references.py +0 -127
- {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: jarvis-ai-assistant
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.134
|
|
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
|
|
@@ -134,6 +134,8 @@ jarvis-code-review --help
|
|
|
134
134
|
jarvis-dev --help
|
|
135
135
|
# 使用git squash的功能
|
|
136
136
|
jarvis-git-squash --help
|
|
137
|
+
# 使用代码库查询功能
|
|
138
|
+
jarvis-ask-codebase --help
|
|
137
139
|
```
|
|
138
140
|
|
|
139
141
|
---
|
|
@@ -147,15 +149,10 @@ jarvis-git-squash --help
|
|
|
147
149
|
| 核心配置 | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动补全功能 |
|
|
148
150
|
| 核心配置 | `JARVIS_EXECUTE_TOOL_CONFIRM` | false | 执行工具前是否需要确认 |
|
|
149
151
|
| 核心配置 | `JARVIS_CONFIRM_BEFORE_APPLY_PATCH` | true | 应用补丁前是否需要确认 |
|
|
150
|
-
| 模型配置 | `
|
|
151
|
-
| 模型配置 | `
|
|
152
|
-
| 模型配置 | `JARVIS_MODEL` | kimi | 默认模型 |
|
|
153
|
-
| 模型配置 | `JARVIS_CODEGEN_PLATFORM` | JARVIS_PLATFORM | 代码生成任务使用的平台 |
|
|
154
|
-
| 模型配置 | `JARVIS_CODEGEN_MODEL` | JARVIS_MODEL | 代码生成任务使用的模型 |
|
|
152
|
+
| 模型配置 | `JARVIS_PLATFORM` | yuanbao | 默认AI平台 |
|
|
153
|
+
| 模型配置 | `JARVIS_MODEL` | deep_seek_v3 | 默认模型 |
|
|
155
154
|
| 模型配置 | `JARVIS_THINKING_PLATFORM` | JARVIS_PLATFORM | 思考任务使用的平台 |
|
|
156
155
|
| 模型配置 | `JARVIS_THINKING_MODEL` | JARVIS_MODEL | 思考任务使用的模型 |
|
|
157
|
-
| 模型配置 | `JARVIS_CHEAP_PLATFORM` | JARVIS_PLATFORM | 低成本任务使用的平台 |
|
|
158
|
-
| 模型配置 | `JARVIS_CHEAP_MODEL` | JARVIS_MODEL | 低成本任务使用的模型 |
|
|
159
156
|
| 方法论配置 | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论系统 |
|
|
160
157
|
| 方法论配置 | `JARVIS_RECORD_METHODOLOGY` | true | 是否记录方法论 |
|
|
161
158
|
| 方法论配置 | `JARVIS_NEED_SUMMARY` | true | 是否自动生成摘要 |
|
|
@@ -169,7 +166,7 @@ jarvis-git-squash --help
|
|
|
169
166
|
| read_code | 支持行号和范围的代码文件读取 |
|
|
170
167
|
| execute_shell | 执行系统命令并捕获输出 |
|
|
171
168
|
| execute_shell_script | 执行shell脚本文件 |
|
|
172
|
-
| ask_codebase |
|
|
169
|
+
| ask_codebase | 智能代码库查询和分析,用于定位功能所在文件和理解单点实现,适合查询特定功能位置和实现原理 |
|
|
173
170
|
| ask_user | 交互式用户输入收集 |
|
|
174
171
|
| file_operation | 基础文件操作(读取/写入/存在性检查) |
|
|
175
172
|
| git_commiter | 自动化git提交处理 |
|
|
@@ -179,8 +176,6 @@ jarvis-git-squash --help
|
|
|
179
176
|
| chdir | 更改工作目录 |
|
|
180
177
|
| create_code_agent | 创建新的代码代理 |
|
|
181
178
|
| create_sub_agent | 创建子代理 |
|
|
182
|
-
| lsp_find_definition | 查找符号定义 |
|
|
183
|
-
| lsp_find_references | 查找符号引用 |
|
|
184
179
|
| lsp_validate_edit | 验证代码编辑 |
|
|
185
180
|
| rag | 文档检索和问答 |
|
|
186
181
|
| select_code_files | 选择代码文件 |
|
|
@@ -255,10 +250,6 @@ class CustomPlatform(BasePlatform):
|
|
|
255
250
|
# 执行对话
|
|
256
251
|
pass
|
|
257
252
|
|
|
258
|
-
def upload_files(self, file_list: List[str]) -> List[Dict]:
|
|
259
|
-
# 上传文件
|
|
260
|
-
pass
|
|
261
|
-
|
|
262
253
|
def reset(self):
|
|
263
254
|
# 重置平台
|
|
264
255
|
pass
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
jarvis/__init__.py,sha256=
|
|
2
|
-
jarvis/jarvis_agent/__init__.py,sha256=
|
|
1
|
+
jarvis/__init__.py,sha256=AZPaKHAAiIVhrj8Ywkmm6nEZg9UuKzoRnAPzd9Pt-aI,51
|
|
2
|
+
jarvis/jarvis_agent/__init__.py,sha256=tDwxCItZd3oTZ6E8ORKZQUMbC15OMFo8Y1A59MH338o,18214
|
|
3
3
|
jarvis/jarvis_agent/builtin_input_handler.py,sha256=Bm4aVRrjrkjgpudest58X707wvhz_Z_ufTEPw0s4DEw,2414
|
|
4
4
|
jarvis/jarvis_agent/file_input_handler.py,sha256=55HwQGq3HWKmDSeJqJ0eOktoq-5Mbc5UpFqmSUrhxBY,3355
|
|
5
|
-
jarvis/jarvis_agent/
|
|
5
|
+
jarvis/jarvis_agent/jarvis.py,sha256=BopDK7WZFI-67M94Vq5tNni5d151R6KS9cMOPP9a_TE,5476
|
|
6
|
+
jarvis/jarvis_agent/main.py,sha256=TU-g-nA6wwOfo3Rh8LkFBBAZ-FMXjcfnQyETMyb9odI,2438
|
|
6
7
|
jarvis/jarvis_agent/output_handler.py,sha256=kJeFTjjSu0K_2p0wyhq2veSZuhRXoaFC_8wVaoBKX0w,401
|
|
7
|
-
jarvis/jarvis_agent/patch.py,sha256=
|
|
8
|
+
jarvis/jarvis_agent/patch.py,sha256=iDlhEq8zV9tFYSVYoGyApRjbPvitY0voz9eOQlOHVH0,19333
|
|
8
9
|
jarvis/jarvis_agent/shell_input_handler.py,sha256=7NHmyEIPAk_UP5596hu1l3d1JwDUOO_FHC3JiRxY5PM,1018
|
|
9
10
|
jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
jarvis/jarvis_code_agent/code_agent.py,sha256=
|
|
11
|
+
jarvis/jarvis_code_agent/code_agent.py,sha256=WWzvfYLRNOElIt_AHyLRm6eD8jWwQkHm1Ry-VWqszFk,12374
|
|
11
12
|
jarvis/jarvis_code_agent/file_select.py,sha256=2nSy1FW-kK-wvtz0YbbgSbd4ZwXMlA7sBP0nC80FzLI,8160
|
|
12
|
-
jarvis/jarvis_dev/main.py,sha256=
|
|
13
|
+
jarvis/jarvis_dev/main.py,sha256=nJ7yEsy1tSnkJ1dWH4E1H4SkxqmEJAAf2TyjHT2mXqU,29384
|
|
13
14
|
jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
15
|
jarvis/jarvis_git_squash/main.py,sha256=BWjC8A0M0od0EY2_mRGggSEBb-mFH2_AXNYd7n6b0wc,2192
|
|
15
|
-
jarvis/jarvis_lsp/base.py,sha256=
|
|
16
|
-
jarvis/jarvis_lsp/cpp.py,sha256=
|
|
17
|
-
jarvis/jarvis_lsp/go.py,sha256=
|
|
18
|
-
jarvis/jarvis_lsp/python.py,sha256
|
|
19
|
-
jarvis/jarvis_lsp/registry.py,sha256=
|
|
20
|
-
jarvis/jarvis_lsp/rust.py,sha256=
|
|
21
|
-
jarvis/jarvis_multi_agent/__init__.py,sha256=
|
|
16
|
+
jarvis/jarvis_lsp/base.py,sha256=Se3Nmy4KRSVDqJv29K5pu4mY949s_x9VqFRa--jcc98,2115
|
|
17
|
+
jarvis/jarvis_lsp/cpp.py,sha256=DpRHA8z_kJwu7GyDq01LtGmPOuqnxgHeD_eqRWHfgGU,3248
|
|
18
|
+
jarvis/jarvis_lsp/go.py,sha256=IrVhEeoDRo-zLIfcGeswu9n_2BxqP33uKFgGZstMI_c,3561
|
|
19
|
+
jarvis/jarvis_lsp/python.py,sha256=yGV3kQ3jyRk4-mO43Xt1b--MU3DeMPcfNmB5v0QAXxE,1892
|
|
20
|
+
jarvis/jarvis_lsp/registry.py,sha256=aSBq3M4HHQiCsEHsryqdjAd8TJ-ZnT4Qd6umd6dFwQ8,6634
|
|
21
|
+
jarvis/jarvis_lsp/rust.py,sha256=GdMbkdpxnrz3HJLUWhLRJWKrBLj7Xqo8HjnHfwPQ1aI,3797
|
|
22
|
+
jarvis/jarvis_multi_agent/__init__.py,sha256=knb_EfPFjT45GdpiGEPrW_ufpgHtnFcCMZvC_FUCQDU,4439
|
|
23
|
+
jarvis/jarvis_multi_agent/main.py,sha256=0PpogeEYkA0HAjlNj5vvVCaCybTsNpJ2M2fif-COAHo,1595
|
|
22
24
|
jarvis/jarvis_platform/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
|
|
23
25
|
jarvis/jarvis_platform/ai8.py,sha256=vwssQx6Cw62uPykOrVkJbGYQKaj0fWeakPkUrryxtO4,10996
|
|
24
26
|
jarvis/jarvis_platform/base.py,sha256=7RM3gnV3XLOKyabj4ka0Q5c4_xDXo2rdPis2gQNEl-s,3113
|
|
@@ -26,57 +28,55 @@ jarvis/jarvis_platform/kimi.py,sha256=fEH0ThxFcB2gaA3IyOVzK7lH8NwbziRCsgP06zgFuQ
|
|
|
26
28
|
jarvis/jarvis_platform/ollama.py,sha256=j0wnpjd3iD6M7M-KUjhcRL58zlIdz4gTPj1QHvbGarY,4992
|
|
27
29
|
jarvis/jarvis_platform/openai.py,sha256=n4kaGbJYHWXKQxx7oL8BYKfZ9zX_r6tw0ny6CCr9wMs,4302
|
|
28
30
|
jarvis/jarvis_platform/oyi.py,sha256=n-m6XoxYN47m0z7Eha4pskzoLGZPAkNfKFKlsVneWyU,11680
|
|
29
|
-
jarvis/jarvis_platform/registry.py,sha256=
|
|
30
|
-
jarvis/jarvis_platform/yuanbao.py,sha256=
|
|
31
|
+
jarvis/jarvis_platform/registry.py,sha256=8KSlzjsfd4LhuOu22K63k2GJ0hKioeFJ-31M4GaytbQ,7835
|
|
32
|
+
jarvis/jarvis_platform/yuanbao.py,sha256=3VxwvXejWo8iEgfFKLrnnMWwQeQd6hhsrI03BC9oIbI,10799
|
|
31
33
|
jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
34
|
jarvis/jarvis_platform_manager/main.py,sha256=iNeaGVXYJJUHo-euQRo7sMesQ2Y5EyNDCyx0koKyeiI,20949
|
|
33
35
|
jarvis/jarvis_platform_manager/openai_test.py,sha256=bkcVG6o2nNazj4zjkENgA4yOEzdTI9Qbm5dco-2MGYM,5190
|
|
34
36
|
jarvis/jarvis_rag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
37
|
jarvis/jarvis_rag/file_processors.py,sha256=zxPuJ1n06uiAg44MJQZrzMuxcUwmVv5n5D97JEiyJTI,5013
|
|
36
|
-
jarvis/jarvis_rag/main.py,sha256=
|
|
38
|
+
jarvis/jarvis_rag/main.py,sha256=HH8IAWJ4mAVslqwzsdHvDSK-i8FpoFvMlCkAP8P2e_k,75523
|
|
37
39
|
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
40
|
jarvis/jarvis_smart_shell/main.py,sha256=5gyBKgxuaTrDToE7Xy4DhsJPDOEviPi7ktm1vOZoIno,4618
|
|
39
41
|
jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
jarvis/jarvis_tools/ask_codebase.py,sha256=
|
|
42
|
+
jarvis/jarvis_tools/ask_codebase.py,sha256=FsAFMidLPx5M1CbmP8I9sRW1yU4_HVzAVnshs63Sk0c,10455
|
|
41
43
|
jarvis/jarvis_tools/ask_user.py,sha256=kU6BOhFz_mKfqABd0l_00TL7Mqp_dhV3r0qkKLy8yRM,1745
|
|
42
44
|
jarvis/jarvis_tools/base.py,sha256=8gIgIx9LJAKOxdpPu7zMDItWqwXmXVTWAGfUkpQonzw,1196
|
|
43
45
|
jarvis/jarvis_tools/chdir.py,sha256=GLbH2fOKESUn3XYhNg0uOI5axTO2csC0B9HUL0bMZ5U,2790
|
|
44
|
-
jarvis/jarvis_tools/code_review.py,sha256=
|
|
46
|
+
jarvis/jarvis_tools/code_review.py,sha256=GCqgYjgWbEyz_f8bTGH-mOxoIqWupBoPX382WJWCnKE,13633
|
|
45
47
|
jarvis/jarvis_tools/create_code_agent.py,sha256=2BSxbb-5e5sQNpPLlIy49UXqhf92UEMMvxmOiagMSVY,4319
|
|
46
|
-
jarvis/jarvis_tools/create_sub_agent.py,sha256=
|
|
48
|
+
jarvis/jarvis_tools/create_sub_agent.py,sha256=wGiHukvi58wb1AKW5beP7R8VvApOn8TOeGmtXsmcETE,3001
|
|
47
49
|
jarvis/jarvis_tools/execute_python_script.py,sha256=eQFbYwma8o7LaiZEJ0DQQEylEaHujgfJwyKuDxLLwPs,2056
|
|
48
50
|
jarvis/jarvis_tools/execute_shell.py,sha256=-TMoSH6dok1ozBwW66IGO_kR9DPbbDxPhkNBzCuOvBE,3540
|
|
49
51
|
jarvis/jarvis_tools/execute_shell_script.py,sha256=1126d2x6TGaJV5ZtJWZCHRjOQeQwLmWfUlvCWHbZW1o,2053
|
|
50
|
-
jarvis/jarvis_tools/file_analyzer.py,sha256=
|
|
52
|
+
jarvis/jarvis_tools/file_analyzer.py,sha256=XLfEGh1f7Uffy1XXH9MVFFEEL0F7vAMT7_tvRK9n7qk,10164
|
|
51
53
|
jarvis/jarvis_tools/file_operation.py,sha256=AO6bBD-xkqOI71lPv3-KjCCR96TsOIYgGzgLWy6PhDg,7151
|
|
52
|
-
jarvis/jarvis_tools/find_caller.py,sha256=
|
|
53
|
-
jarvis/jarvis_tools/find_symbol.py,sha256=
|
|
54
|
-
jarvis/jarvis_tools/function_analyzer.py,sha256=
|
|
55
|
-
jarvis/jarvis_tools/git_commiter.py,sha256=
|
|
56
|
-
jarvis/jarvis_tools/lsp_find_definition.py,sha256=RG_2VFaR0vRRTdoBvOKwJvq3PlZmytQZmfRhI21caAc,5565
|
|
57
|
-
jarvis/jarvis_tools/lsp_find_references.py,sha256=mXTWLUoU6Tg5025hWkobtkwVAaQLaDvYI8KZQ9RCufc,4734
|
|
54
|
+
jarvis/jarvis_tools/find_caller.py,sha256=JXOiJiO48_SX6CzkuRMlbx9nTrs4DavJ-qSSh6Dueck,10386
|
|
55
|
+
jarvis/jarvis_tools/find_symbol.py,sha256=8SvW9fuf7ZUSnm0ewPVr1m0ievjrf55qoA2HTTD8HWw,10444
|
|
56
|
+
jarvis/jarvis_tools/function_analyzer.py,sha256=iSPVgNCfwz1GfukQ0kmsUjZ1AAYuL-XBuXN5or9vvLY,12489
|
|
57
|
+
jarvis/jarvis_tools/git_commiter.py,sha256=FQ_pSvy8hlTK2xos2y6rpLcRkoetWbLLpIBeaezfQtE,6602
|
|
58
58
|
jarvis/jarvis_tools/lsp_get_diagnostics.py,sha256=GVehn0V44m9eem3P87egqWOmDCu7W7k1Jewj-DkPZig,5551
|
|
59
|
-
jarvis/jarvis_tools/methodology.py,sha256=
|
|
60
|
-
jarvis/jarvis_tools/project_analyzer.py,sha256=
|
|
61
|
-
jarvis/jarvis_tools/rag.py,sha256=
|
|
62
|
-
jarvis/jarvis_tools/read_code.py,sha256=
|
|
59
|
+
jarvis/jarvis_tools/methodology.py,sha256=RhhLi71QrMqz2wY1AvbGWHHiE5gQavKpnX1t_Z_hSJ4,7065
|
|
60
|
+
jarvis/jarvis_tools/project_analyzer.py,sha256=KJUIbS2oDffeQjXn1Tq5BebAdu_3GhXsqhQO8dvw2FY,11497
|
|
61
|
+
jarvis/jarvis_tools/rag.py,sha256=KsXVoBMH3xaPG1C0Y1H7ZNL89hu7vXCPUW85cYlGwmM,4986
|
|
62
|
+
jarvis/jarvis_tools/read_code.py,sha256=dYSuBkXCW2kNFWOX-BOeEi5NzyOdCZ3DmML1LIkHYt4,6219
|
|
63
63
|
jarvis/jarvis_tools/read_webpage.py,sha256=9bRUzoTYwYk4PIc0GgW4T6QFfD7DYglekaotwDrP4ZA,9387
|
|
64
64
|
jarvis/jarvis_tools/registry.py,sha256=0SQOT8UZjNslW3qDNs5Nsr7p2BbC2-ilIsLjtri3nwk,18596
|
|
65
|
-
jarvis/jarvis_tools/search_web.py,sha256=
|
|
65
|
+
jarvis/jarvis_tools/search_web.py,sha256=BB_8_LO2ReV-0yY5_zhizdWAqkNIbKBQOkG85H5rKrE,957
|
|
66
66
|
jarvis/jarvis_tools/select_code_files.py,sha256=xCqHTjIGju9Pb1Yh2C1Y7l6uT_3pfVB6ARU0VQmeRNI,1879
|
|
67
|
-
jarvis/jarvis_tools/tool_generator.py,sha256=
|
|
67
|
+
jarvis/jarvis_tools/tool_generator.py,sha256=JjhdHtu58NeM4_qPvwKSuo6P1alsgck6C_DEv1a0xog,7748
|
|
68
68
|
jarvis/jarvis_utils/__init__.py,sha256=KMg-KY5rZIhGTeOD5e2Xo5CU7DX1DUz4ULWAaTQ-ZNw,825
|
|
69
|
-
jarvis/jarvis_utils/config.py,sha256=
|
|
69
|
+
jarvis/jarvis_utils/config.py,sha256=0kQyLAuyZ9dh7Yis9Bnb5coxzR_eVrI3WLBaBOJhSNw,4553
|
|
70
70
|
jarvis/jarvis_utils/embedding.py,sha256=4Y_kU3L5x5DGkDOigALvra-DSZLfJod-Aj8QdCyHFaI,19312
|
|
71
71
|
jarvis/jarvis_utils/git_utils.py,sha256=vKmnCcJ2VFM3aH3FqmLoAasSCM9-IgnGqX6i_gXTY3Q,5059
|
|
72
72
|
jarvis/jarvis_utils/globals.py,sha256=nvykWxBnqfAFqAIyJfxP5Y1yYIXIQXjippVE5i2Bubg,2269
|
|
73
73
|
jarvis/jarvis_utils/input.py,sha256=4ySHqNbk7diXqyrYn276GwYIrt6SOlV_RSqv5EW9QnI,6621
|
|
74
|
-
jarvis/jarvis_utils/methodology.py,sha256=
|
|
75
|
-
jarvis/jarvis_utils/output.py,sha256=
|
|
76
|
-
jarvis/jarvis_utils/utils.py,sha256=
|
|
77
|
-
jarvis_ai_assistant-0.1.
|
|
78
|
-
jarvis_ai_assistant-0.1.
|
|
79
|
-
jarvis_ai_assistant-0.1.
|
|
80
|
-
jarvis_ai_assistant-0.1.
|
|
81
|
-
jarvis_ai_assistant-0.1.
|
|
82
|
-
jarvis_ai_assistant-0.1.
|
|
74
|
+
jarvis/jarvis_utils/methodology.py,sha256=eqF0hIRw8WBX9weFbx4i5kgrJQabFYVUKyp4-NWWwKk,20076
|
|
75
|
+
jarvis/jarvis_utils/output.py,sha256=6aqLk95bBpOFtGMjQv0XF-sfZcpgvkyKCh17XZgvLBk,8535
|
|
76
|
+
jarvis/jarvis_utils/utils.py,sha256=xXa0glsq60NgGptHWYedm6YdkVshLXhQ4-q6fWDVdVg,6514
|
|
77
|
+
jarvis_ai_assistant-0.1.134.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
|
78
|
+
jarvis_ai_assistant-0.1.134.dist-info/METADATA,sha256=VuqA5gmt3YdfL_MB125hu4CEPGbz36kcwobzenh5TaM,9955
|
|
79
|
+
jarvis_ai_assistant-0.1.134.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
80
|
+
jarvis_ai_assistant-0.1.134.dist-info/entry_points.txt,sha256=wm_AVSmxKrjtf-OUBWPZm9W1ncGgFd0B1hgO2PpnMD4,840
|
|
81
|
+
jarvis_ai_assistant-0.1.134.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
|
82
|
+
jarvis_ai_assistant-0.1.134.dist-info/RECORD,,
|
{jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/entry_points.txt
RENAMED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
[console_scripts]
|
|
2
|
-
jarvis = jarvis.jarvis_agent:main
|
|
2
|
+
jarvis = jarvis.jarvis_agent.jarvis:main
|
|
3
3
|
jarvis-agent = jarvis.jarvis_agent.main:main
|
|
4
4
|
jarvis-ask-codebase = jarvis.jarvis_tools.ask_codebase:main
|
|
5
5
|
jarvis-code-agent = jarvis.jarvis_code_agent.code_agent:main
|
|
6
6
|
jarvis-code-review = jarvis.jarvis_tools.code_review:main
|
|
7
|
-
jarvis-codebase = jarvis.jarvis_codebase.main:main
|
|
8
7
|
jarvis-dev = jarvis.jarvis_dev.main:main
|
|
9
8
|
jarvis-git-commit = jarvis.jarvis_tools.git_commiter:main
|
|
10
9
|
jarvis-git-squash = jarvis.jarvis_git_squash.main:main
|
|
11
|
-
jarvis-multi-agent = jarvis.jarvis_multi_agent:main
|
|
10
|
+
jarvis-multi-agent = jarvis.jarvis_multi_agent.main:main
|
|
12
11
|
jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
|
|
13
12
|
jarvis-rag = jarvis.jarvis_rag.main:main
|
|
14
13
|
jarvis-smart-shell = jarvis.jarvis_smart_shell.main:main
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from typing import Dict, Any
|
|
3
|
-
from jarvis.jarvis_lsp.registry import LSPRegistry
|
|
4
|
-
|
|
5
|
-
class LSPFindDefinitionTool:
|
|
6
|
-
"""使用LSP在代码中查找符号定义的工具"""
|
|
7
|
-
|
|
8
|
-
name = "lsp_find_definition"
|
|
9
|
-
description = "在代码中查找符号的定义"
|
|
10
|
-
parameters = {
|
|
11
|
-
"file_path": "包含符号的文件路径",
|
|
12
|
-
"line": "符号所在的行号(从0开始)",
|
|
13
|
-
"character": "符号在行中的字符位置",
|
|
14
|
-
"language": f"文件的编程语言({', '.join(LSPRegistry.get_global_lsp_registry().get_supported_languages())})",
|
|
15
|
-
"root_dir": {
|
|
16
|
-
"type": "string",
|
|
17
|
-
"description": "LSP操作的根目录路径(可选)",
|
|
18
|
-
"default": "."
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
@staticmethod
|
|
23
|
-
def check() -> bool:
|
|
24
|
-
"""Check if any LSP server is available."""
|
|
25
|
-
registry = LSPRegistry.get_global_lsp_registry()
|
|
26
|
-
return len(registry.get_supported_languages()) > 0
|
|
27
|
-
|
|
28
|
-
def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
|
|
29
|
-
"""Execute the tool."""
|
|
30
|
-
file_path = args.get("file_path", "")
|
|
31
|
-
line = args.get("line", None)
|
|
32
|
-
character = args.get("character", None)
|
|
33
|
-
language = args.get("language", "")
|
|
34
|
-
root_dir = args.get("root_dir", ".")
|
|
35
|
-
|
|
36
|
-
# Validate inputs
|
|
37
|
-
if not all([file_path, line is not None, character is not None, language]):
|
|
38
|
-
return {
|
|
39
|
-
"success": False,
|
|
40
|
-
"stderr": "All parameters (file_path, line, character, language) must be provided",
|
|
41
|
-
"stdout": ""
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
try:
|
|
45
|
-
line = int(line)
|
|
46
|
-
character = int(character)
|
|
47
|
-
except ValueError:
|
|
48
|
-
return {
|
|
49
|
-
"success": False,
|
|
50
|
-
"stderr": "Line and character must be integers",
|
|
51
|
-
"stdout": ""
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if not os.path.exists(file_path):
|
|
55
|
-
return {
|
|
56
|
-
"success": False,
|
|
57
|
-
"stderr": f"File not found: {file_path}",
|
|
58
|
-
"stdout": ""
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
# Store current directory
|
|
62
|
-
original_dir = os.getcwd()
|
|
63
|
-
|
|
64
|
-
try:
|
|
65
|
-
# Change to root_dir
|
|
66
|
-
os.chdir(root_dir)
|
|
67
|
-
|
|
68
|
-
# Get LSP instance
|
|
69
|
-
registry = LSPRegistry.get_global_lsp_registry()
|
|
70
|
-
lsp = registry.create_lsp(language)
|
|
71
|
-
|
|
72
|
-
if not lsp:
|
|
73
|
-
return {
|
|
74
|
-
"success": False,
|
|
75
|
-
"stderr": f"No LSP support for language: {language}",
|
|
76
|
-
"stdout": ""
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
try:
|
|
80
|
-
# Initialize LSP
|
|
81
|
-
if not lsp.initialize(os.path.abspath(os.getcwd())):
|
|
82
|
-
return {
|
|
83
|
-
"success": False,
|
|
84
|
-
"stderr": "LSP initialization failed",
|
|
85
|
-
"stdout": ""
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
# Get symbol at position
|
|
89
|
-
symbol = LSPRegistry.get_text_at_position(file_path, line, character)
|
|
90
|
-
if not symbol:
|
|
91
|
-
return {
|
|
92
|
-
"success": False,
|
|
93
|
-
"stderr": f"No symbol found at position {line}:{character}",
|
|
94
|
-
"stdout": ""
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
# Find definition
|
|
98
|
-
defn = lsp.find_definition(file_path, (line, character))
|
|
99
|
-
|
|
100
|
-
if not defn:
|
|
101
|
-
return {
|
|
102
|
-
"success": True,
|
|
103
|
-
"stdout": f"No definition found for '{symbol}'",
|
|
104
|
-
"stderr": ""
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
# Format output
|
|
108
|
-
def_line = defn["range"]["start"]["line"]
|
|
109
|
-
def_char = defn["range"]["start"]["character"]
|
|
110
|
-
context = LSPRegistry.get_line_at_position(defn["uri"], def_line).strip()
|
|
111
|
-
|
|
112
|
-
output = [
|
|
113
|
-
f"Definition of '{symbol}':",
|
|
114
|
-
f"File: {defn['uri']}",
|
|
115
|
-
f"Line {def_line + 1}, Col {def_char + 1}: {context}"
|
|
116
|
-
]
|
|
117
|
-
|
|
118
|
-
# Get a few lines of context around the definition
|
|
119
|
-
try:
|
|
120
|
-
with open(defn["uri"], 'r', errors="ignore") as f:
|
|
121
|
-
lines = f.readlines()
|
|
122
|
-
start = max(0, def_line - 2)
|
|
123
|
-
end = min(len(lines), def_line + 3)
|
|
124
|
-
|
|
125
|
-
if start < def_line:
|
|
126
|
-
output.append("\nContext:")
|
|
127
|
-
for i in range(start, end):
|
|
128
|
-
prefix = ">" if i == def_line else " "
|
|
129
|
-
output.append(f"{prefix} {i+1:4d} | {lines[i].rstrip()}")
|
|
130
|
-
except Exception:
|
|
131
|
-
pass
|
|
132
|
-
|
|
133
|
-
return {
|
|
134
|
-
"success": True,
|
|
135
|
-
"stdout": "\n".join(output),
|
|
136
|
-
"stderr": ""
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
except Exception as e:
|
|
140
|
-
return {
|
|
141
|
-
"success": False,
|
|
142
|
-
"stderr": f"Error finding definition: {str(e)}",
|
|
143
|
-
"stdout": ""
|
|
144
|
-
}
|
|
145
|
-
finally:
|
|
146
|
-
if lsp:
|
|
147
|
-
lsp.shutdown()
|
|
148
|
-
finally:
|
|
149
|
-
# Always restore original directory
|
|
150
|
-
os.chdir(original_dir)
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from typing import Dict, Any
|
|
3
|
-
from jarvis.jarvis_lsp.registry import LSPRegistry
|
|
4
|
-
|
|
5
|
-
class LSPFindReferencesTool:
|
|
6
|
-
"""Tool for finding references to symbols in code using LSP."""
|
|
7
|
-
|
|
8
|
-
name = "lsp_find_references"
|
|
9
|
-
description = "Find all references to a symbol in code"
|
|
10
|
-
parameters = {
|
|
11
|
-
"file_path": "Path to the file containing the symbol",
|
|
12
|
-
"line": "Line number (0-based) of the symbol",
|
|
13
|
-
"character": "Character position in the line",
|
|
14
|
-
"language": f"Programming language of the file ({', '.join(LSPRegistry.get_global_lsp_registry().get_supported_languages())})",
|
|
15
|
-
"root_dir": {
|
|
16
|
-
"type": "string",
|
|
17
|
-
"description": "Root directory for LSP operations (optional)",
|
|
18
|
-
"default": "."
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
@staticmethod
|
|
23
|
-
def check() -> bool:
|
|
24
|
-
"""Check if any LSP server is available."""
|
|
25
|
-
registry = LSPRegistry.get_global_lsp_registry()
|
|
26
|
-
return len(registry.get_supported_languages()) > 0
|
|
27
|
-
|
|
28
|
-
def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
|
|
29
|
-
"""Execute the tool."""
|
|
30
|
-
file_path = args.get("file_path", "")
|
|
31
|
-
line = args.get("line", None)
|
|
32
|
-
character = args.get("character", None)
|
|
33
|
-
language = args.get("language", "")
|
|
34
|
-
root_dir = args.get("root_dir", ".")
|
|
35
|
-
|
|
36
|
-
# Validate inputs
|
|
37
|
-
if not all([file_path, line is not None, character is not None, language]):
|
|
38
|
-
return {
|
|
39
|
-
"success": False,
|
|
40
|
-
"stderr": "All parameters (file_path, line, character, language) must be provided",
|
|
41
|
-
"stdout": ""
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
try:
|
|
45
|
-
line = int(line)
|
|
46
|
-
character = int(character)
|
|
47
|
-
except ValueError:
|
|
48
|
-
return {
|
|
49
|
-
"success": False,
|
|
50
|
-
"stderr": "Line and character must be integers",
|
|
51
|
-
"stdout": ""
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if not os.path.exists(file_path):
|
|
55
|
-
return {
|
|
56
|
-
"success": False,
|
|
57
|
-
"stderr": f"File not found: {file_path}",
|
|
58
|
-
"stdout": ""
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
# Store current directory
|
|
62
|
-
original_dir = os.getcwd()
|
|
63
|
-
|
|
64
|
-
try:
|
|
65
|
-
# Change to root_dir
|
|
66
|
-
os.chdir(root_dir)
|
|
67
|
-
|
|
68
|
-
# Get LSP instance
|
|
69
|
-
registry = LSPRegistry.get_global_lsp_registry()
|
|
70
|
-
lsp = registry.create_lsp(language)
|
|
71
|
-
|
|
72
|
-
if not lsp:
|
|
73
|
-
return {
|
|
74
|
-
"success": False,
|
|
75
|
-
"stderr": f"No LSP support for language: {language}",
|
|
76
|
-
"stdout": ""
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
try:
|
|
80
|
-
# Initialize LSP
|
|
81
|
-
if not lsp.initialize(os.path.abspath(os.getcwd())):
|
|
82
|
-
return {
|
|
83
|
-
"success": False,
|
|
84
|
-
"stderr": "LSP initialization failed",
|
|
85
|
-
"stdout": ""
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
# Get symbol at position
|
|
89
|
-
symbol = LSPRegistry.get_text_at_position(file_path, line, character)
|
|
90
|
-
if not symbol:
|
|
91
|
-
return {
|
|
92
|
-
"success": False,
|
|
93
|
-
"stderr": f"No symbol found at position {line}:{character}",
|
|
94
|
-
"stdout": ""
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
# Find references
|
|
98
|
-
refs = lsp.find_references(file_path, (line, character))
|
|
99
|
-
|
|
100
|
-
# Format output
|
|
101
|
-
output = [f"References to '{symbol}':\n"]
|
|
102
|
-
for ref in refs:
|
|
103
|
-
ref_line = ref["range"]["start"]["line"]
|
|
104
|
-
ref_char = ref["range"]["start"]["character"]
|
|
105
|
-
context = LSPRegistry.get_line_at_position(ref["uri"], ref_line).strip()
|
|
106
|
-
output.append(f"File: {ref['uri']}")
|
|
107
|
-
output.append(f"Line {ref_line + 1}, Col {ref_char + 1}: {context}")
|
|
108
|
-
output.append("-" * 40)
|
|
109
|
-
|
|
110
|
-
return {
|
|
111
|
-
"success": True,
|
|
112
|
-
"stdout": "\n".join(output) if len(refs) > 0 else f"No references found for '{symbol}'",
|
|
113
|
-
"stderr": ""
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
except Exception as e:
|
|
117
|
-
return {
|
|
118
|
-
"success": False,
|
|
119
|
-
"stderr": f"Error finding references: {str(e)}",
|
|
120
|
-
"stdout": ""
|
|
121
|
-
}
|
|
122
|
-
finally:
|
|
123
|
-
if lsp:
|
|
124
|
-
lsp.shutdown()
|
|
125
|
-
finally:
|
|
126
|
-
# Always restore original directory
|
|
127
|
-
os.chdir(original_dir)
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/top_level.txt
RENAMED
|
File without changes
|