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.

Files changed (44) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +140 -279
  3. jarvis/jarvis_agent/jarvis.py +143 -0
  4. jarvis/jarvis_agent/main.py +0 -2
  5. jarvis/jarvis_agent/patch.py +16 -12
  6. jarvis/jarvis_code_agent/code_agent.py +155 -104
  7. jarvis/jarvis_dev/main.py +0 -8
  8. jarvis/jarvis_lsp/base.py +0 -42
  9. jarvis/jarvis_lsp/cpp.py +0 -15
  10. jarvis/jarvis_lsp/go.py +0 -15
  11. jarvis/jarvis_lsp/python.py +0 -19
  12. jarvis/jarvis_lsp/registry.py +0 -62
  13. jarvis/jarvis_lsp/rust.py +0 -15
  14. jarvis/jarvis_multi_agent/__init__.py +0 -41
  15. jarvis/jarvis_multi_agent/main.py +43 -0
  16. jarvis/jarvis_platform/registry.py +2 -16
  17. jarvis/jarvis_platform/yuanbao.py +1 -1
  18. jarvis/jarvis_rag/main.py +1 -1
  19. jarvis/jarvis_tools/ask_codebase.py +61 -54
  20. jarvis/jarvis_tools/code_review.py +21 -2
  21. jarvis/jarvis_tools/create_sub_agent.py +0 -1
  22. jarvis/jarvis_tools/file_analyzer.py +84 -73
  23. jarvis/jarvis_tools/find_caller.py +83 -18
  24. jarvis/jarvis_tools/find_symbol.py +102 -18
  25. jarvis/jarvis_tools/function_analyzer.py +115 -32
  26. jarvis/jarvis_tools/git_commiter.py +1 -1
  27. jarvis/jarvis_tools/methodology.py +0 -6
  28. jarvis/jarvis_tools/project_analyzer.py +116 -28
  29. jarvis/jarvis_tools/rag.py +0 -5
  30. jarvis/jarvis_tools/read_code.py +1 -1
  31. jarvis/jarvis_tools/search_web.py +23 -353
  32. jarvis/jarvis_tools/tool_generator.py +2 -2
  33. jarvis/jarvis_utils/config.py +13 -73
  34. jarvis/jarvis_utils/methodology.py +8 -11
  35. jarvis/jarvis_utils/output.py +2 -2
  36. jarvis/jarvis_utils/utils.py +1 -1
  37. {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/METADATA +6 -15
  38. {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/RECORD +42 -42
  39. {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/entry_points.txt +2 -3
  40. jarvis/jarvis_tools/lsp_find_definition.py +0 -150
  41. jarvis/jarvis_tools/lsp_find_references.py +0 -127
  42. {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/LICENSE +0 -0
  43. {jarvis_ai_assistant-0.1.132.dist-info → jarvis_ai_assistant-0.1.134.dist-info}/WHEEL +0 -0
  44. {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.132
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
- | 模型配置 | `JARVIS_DONT_USE_LOCAL_MODEL` | false | 是否禁用本地模型 |
151
- | 模型配置 | `JARVIS_PLATFORM` | kimi | 默认AI平台 |
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=NtXjXGcYn1r0fLYWiv83Lb0PMyuMKzHTPg_iMmYgSNU,51
2
- jarvis/jarvis_agent/__init__.py,sha256=1YnIUr-qWDdO9DWhb97bHSCpLYFUtOkf5P6EQSmBqi0,24461
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/main.py,sha256=TRGDYi53BaDkaMgLZ4HFaM0WdGP5nX4Jcfaqfwy3lqg,2532
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=LAk4VCgb1qvhnPFKlODFqtXnYPEqesyRr9Ujq2RqTG4,18897
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=MNcqzhk60KtXvkEMAdjgilQvIIEAZfaNzawV74sgIdM,10049
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=YcABEOh7EuCwqt6JU0OJlQKUGMYyD41rbhcVN3O-qKE,29722
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=b5aIy_FoPHPb9DjHKCFGI5KNp6jDQYuClsUDuLq5PRI,3412
16
- jarvis/jarvis_lsp/cpp.py,sha256=7J6F2k1b7nWpuq_9dmfkojDrK3xyixrSEcJY1uTf4Yk,4011
17
- jarvis/jarvis_lsp/go.py,sha256=sS6XVQSr7ac1mkYxWswwvdW1BHJRxgsh4vxgiBfU_BA,4328
18
- jarvis/jarvis_lsp/python.py,sha256=-901gYdLQDGModUZ0s-QWPShI4zTnY05d4JhQbEiDKs,2693
19
- jarvis/jarvis_lsp/registry.py,sha256=f7_RmilgqfaBDNaEejK8K099fbo0mO-vTiBzLmgEeg8,9680
20
- jarvis/jarvis_lsp/rust.py,sha256=6Ge-_M5G29dw9a3kaG5uO020Nnas5R2Pg2tlqU4JYVQ,4564
21
- jarvis/jarvis_multi_agent/__init__.py,sha256=MxJU9vRMNIn12fbR3j-dVTb6Ix64A_c3XdG1YFbE-nw,5870
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=JlFXnPK_lmKWscQJItD-eEVgFe4WspsKfaFja2XLhOU,8540
30
- jarvis/jarvis_platform/yuanbao.py,sha256=CA7xGCKECe-kF8GUe3tAZblyrc1UDJYaFRz9NdU36V8,10796
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=FsQUo8FCYI1dvak6k_FIsjRJI8JK8OtFH7CkzCIKGTc,75506
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=2BO-M2j98C_pOURj03bIbeaGnQPONql7_DcmEEizPus,9792
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=EUp8vqw_ZXlbNJoLZIOomlIpSH828NfKXSw5x17QT84,12768
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=JheHbVJCOpruXWpqmzf7UHFmwdsJB7BRUP_2ysjYzMM,3039
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=97L3idmZYjuLixptA_l1uUALfIoPncFQb3c9e2QJPec,8814
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=O_kshdn4vARvoxWZZmtVZVLjdUotk81cT5WNtMcrnWM,7755
53
- jarvis/jarvis_tools/find_symbol.py,sha256=eWE48C0a3c8XgWzoGmnj0YI_8dCqilrl42aOREp4E7U,7619
54
- jarvis/jarvis_tools/function_analyzer.py,sha256=r_aLB1p1TE9rp0panp52VBuDf3zFGgFAP3MN_Goxp98,9274
55
- jarvis/jarvis_tools/git_commiter.py,sha256=9uHTjDf6XMXUQnWSflToD0mn17jd5Z6JRJomYyuTjJ4,6603
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=KA_BSqvXivv9ubj8Qkclw0WfBR8X17rY9Pwf1e7MjVY,7252
60
- jarvis/jarvis_tools/project_analyzer.py,sha256=CAeOrjYfP7ZUFX22zU4xCVP8hEGICVQD0WiKE4w_nqw,7845
61
- jarvis/jarvis_tools/rag.py,sha256=WuTlyGV5rgZTRxts9eJPC3QABrsoNYKratdO8UzUFDw,5132
62
- jarvis/jarvis_tools/read_code.py,sha256=NDEVztKdpkXwXH5JhDB4H5yBltg_D1ctbCZPJPrfx8s,6272
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=rj0CtwZjrXSbYwejxzfzyEVPztXop6T_vStvuzs5l6o,14890
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=CIQvYBE0Jsef8JHInGTKJ2LwjOxUAYPJZld_RXHAZ0A,7750
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=CNo6EU4SvhUvWY9338svhfgLhEm4OcuRW-05HuCZkMw,6449
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=3V2J6zydpsOFRfdWgJbQwtN5BZGpGH6FXFb5msC2hWk,20267
75
- jarvis/jarvis_utils/output.py,sha256=aarWPrxkW67HlP6J2vaIAyUWm5osoCOnG-0m77uJqu0,8481
76
- jarvis/jarvis_utils/utils.py,sha256=4j3HRJf0xcn1vEG76HtvkQj2feTLX5VenVG1q7_BkbU,6520
77
- jarvis_ai_assistant-0.1.132.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
78
- jarvis_ai_assistant-0.1.132.dist-info/METADATA,sha256=Fqd-WBHiXSnU8CeVSJtIjxdt-eQWaYlRatsKl7XImyY,10434
79
- jarvis_ai_assistant-0.1.132.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
80
- jarvis_ai_assistant-0.1.132.dist-info/entry_points.txt,sha256=jFljIDMHmLNh1_BpasW3pNvbNb77LXMpdTpAbdBd6J4,879
81
- jarvis_ai_assistant-0.1.132.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
82
- jarvis_ai_assistant-0.1.132.dist-info/RECORD,,
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,,
@@ -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)