jarvis-ai-assistant 0.3.30__py3-none-any.whl → 0.7.0__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.
Files changed (115) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +289 -87
  3. jarvis/jarvis_agent/agent_manager.py +17 -8
  4. jarvis/jarvis_agent/edit_file_handler.py +374 -86
  5. jarvis/jarvis_agent/event_bus.py +1 -1
  6. jarvis/jarvis_agent/file_context_handler.py +79 -0
  7. jarvis/jarvis_agent/jarvis.py +601 -43
  8. jarvis/jarvis_agent/main.py +32 -2
  9. jarvis/jarvis_agent/rewrite_file_handler.py +141 -0
  10. jarvis/jarvis_agent/run_loop.py +38 -5
  11. jarvis/jarvis_agent/share_manager.py +8 -1
  12. jarvis/jarvis_agent/stdio_redirect.py +295 -0
  13. jarvis/jarvis_agent/task_analyzer.py +5 -2
  14. jarvis/jarvis_agent/task_planner.py +496 -0
  15. jarvis/jarvis_agent/utils.py +5 -1
  16. jarvis/jarvis_agent/web_bridge.py +189 -0
  17. jarvis/jarvis_agent/web_output_sink.py +53 -0
  18. jarvis/jarvis_agent/web_server.py +751 -0
  19. jarvis/jarvis_c2rust/__init__.py +26 -0
  20. jarvis/jarvis_c2rust/cli.py +613 -0
  21. jarvis/jarvis_c2rust/collector.py +258 -0
  22. jarvis/jarvis_c2rust/library_replacer.py +1122 -0
  23. jarvis/jarvis_c2rust/llm_module_agent.py +1300 -0
  24. jarvis/jarvis_c2rust/optimizer.py +960 -0
  25. jarvis/jarvis_c2rust/scanner.py +1681 -0
  26. jarvis/jarvis_c2rust/transpiler.py +2325 -0
  27. jarvis/jarvis_code_agent/build_validation_config.py +133 -0
  28. jarvis/jarvis_code_agent/code_agent.py +1171 -94
  29. jarvis/jarvis_code_agent/code_analyzer/__init__.py +62 -0
  30. jarvis/jarvis_code_agent/code_analyzer/base_language.py +74 -0
  31. jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py +44 -0
  32. jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py +102 -0
  33. jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py +59 -0
  34. jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py +125 -0
  35. jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py +69 -0
  36. jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py +38 -0
  37. jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py +44 -0
  38. jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py +38 -0
  39. jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py +50 -0
  40. jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py +93 -0
  41. jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py +129 -0
  42. jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py +54 -0
  43. jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py +154 -0
  44. jarvis/jarvis_code_agent/code_analyzer/build_validator.py +43 -0
  45. jarvis/jarvis_code_agent/code_analyzer/context_manager.py +363 -0
  46. jarvis/jarvis_code_agent/code_analyzer/context_recommender.py +18 -0
  47. jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py +132 -0
  48. jarvis/jarvis_code_agent/code_analyzer/file_ignore.py +330 -0
  49. jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py +781 -0
  50. jarvis/jarvis_code_agent/code_analyzer/language_registry.py +185 -0
  51. jarvis/jarvis_code_agent/code_analyzer/language_support.py +89 -0
  52. jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py +31 -0
  53. jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py +231 -0
  54. jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py +183 -0
  55. jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py +219 -0
  56. jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py +209 -0
  57. jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py +451 -0
  58. jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py +77 -0
  59. jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py +48 -0
  60. jarvis/jarvis_code_agent/lint.py +270 -8
  61. jarvis/jarvis_code_agent/utils.py +142 -0
  62. jarvis/jarvis_code_analysis/code_review.py +483 -569
  63. jarvis/jarvis_data/config_schema.json +97 -8
  64. jarvis/jarvis_git_utils/git_commiter.py +38 -26
  65. jarvis/jarvis_mcp/sse_mcp_client.py +2 -2
  66. jarvis/jarvis_mcp/stdio_mcp_client.py +1 -1
  67. jarvis/jarvis_memory_organizer/memory_organizer.py +1 -1
  68. jarvis/jarvis_multi_agent/__init__.py +239 -25
  69. jarvis/jarvis_multi_agent/main.py +37 -1
  70. jarvis/jarvis_platform/base.py +103 -51
  71. jarvis/jarvis_platform/openai.py +26 -1
  72. jarvis/jarvis_platform/yuanbao.py +1 -1
  73. jarvis/jarvis_platform_manager/service.py +2 -2
  74. jarvis/jarvis_rag/cli.py +4 -4
  75. jarvis/jarvis_sec/__init__.py +3605 -0
  76. jarvis/jarvis_sec/checkers/__init__.py +32 -0
  77. jarvis/jarvis_sec/checkers/c_checker.py +2680 -0
  78. jarvis/jarvis_sec/checkers/rust_checker.py +1108 -0
  79. jarvis/jarvis_sec/cli.py +116 -0
  80. jarvis/jarvis_sec/report.py +257 -0
  81. jarvis/jarvis_sec/status.py +264 -0
  82. jarvis/jarvis_sec/types.py +20 -0
  83. jarvis/jarvis_sec/workflow.py +219 -0
  84. jarvis/jarvis_stats/cli.py +1 -1
  85. jarvis/jarvis_stats/stats.py +1 -1
  86. jarvis/jarvis_stats/visualizer.py +1 -1
  87. jarvis/jarvis_tools/cli/main.py +1 -0
  88. jarvis/jarvis_tools/execute_script.py +46 -9
  89. jarvis/jarvis_tools/generate_new_tool.py +3 -1
  90. jarvis/jarvis_tools/read_code.py +275 -12
  91. jarvis/jarvis_tools/read_symbols.py +141 -0
  92. jarvis/jarvis_tools/read_webpage.py +5 -3
  93. jarvis/jarvis_tools/registry.py +73 -35
  94. jarvis/jarvis_tools/search_web.py +15 -11
  95. jarvis/jarvis_tools/sub_agent.py +24 -42
  96. jarvis/jarvis_tools/sub_code_agent.py +14 -13
  97. jarvis/jarvis_tools/virtual_tty.py +1 -1
  98. jarvis/jarvis_utils/config.py +187 -35
  99. jarvis/jarvis_utils/embedding.py +3 -0
  100. jarvis/jarvis_utils/git_utils.py +181 -6
  101. jarvis/jarvis_utils/globals.py +3 -3
  102. jarvis/jarvis_utils/http.py +1 -1
  103. jarvis/jarvis_utils/input.py +78 -2
  104. jarvis/jarvis_utils/methodology.py +25 -19
  105. jarvis/jarvis_utils/utils.py +644 -359
  106. {jarvis_ai_assistant-0.3.30.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/METADATA +85 -1
  107. jarvis_ai_assistant-0.7.0.dist-info/RECORD +192 -0
  108. {jarvis_ai_assistant-0.3.30.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/entry_points.txt +4 -0
  109. jarvis/jarvis_agent/config.py +0 -92
  110. jarvis/jarvis_tools/edit_file.py +0 -179
  111. jarvis/jarvis_tools/rewrite_file.py +0 -191
  112. jarvis_ai_assistant-0.3.30.dist-info/RECORD +0 -137
  113. {jarvis_ai_assistant-0.3.30.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/WHEEL +0 -0
  114. {jarvis_ai_assistant-0.3.30.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/licenses/LICENSE +0 -0
  115. {jarvis_ai_assistant-0.3.30.dist-info → jarvis_ai_assistant-0.7.0.dist-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.3.30
3
+ Version: 0.7.0
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
@@ -78,6 +78,88 @@ Requires-Dist: sentence-transformers==2.7.0; extra == "rag"
78
78
  Requires-Dist: torch>=2.6; extra == "rag"
79
79
  Requires-Dist: unstructured[md]; extra == "rag"
80
80
  Requires-Dist: rank-bm25; extra == "rag"
81
+ Provides-Extra: clang16
82
+ Requires-Dist: clang==16.*; extra == "clang16"
83
+ Provides-Extra: clang17
84
+ Requires-Dist: clang==17.*; extra == "clang17"
85
+ Provides-Extra: clang18
86
+ Requires-Dist: clang==18.*; extra == "clang18"
87
+ Provides-Extra: clang19
88
+ Requires-Dist: clang==19.*; extra == "clang19"
89
+ Provides-Extra: clang20
90
+ Requires-Dist: clang==20.*; extra == "clang20"
91
+ Provides-Extra: clang21
92
+ Requires-Dist: clang==21.*; extra == "clang21"
93
+ Provides-Extra: tree-sitter-python
94
+ Requires-Dist: tree-sitter; extra == "tree-sitter-python"
95
+ Requires-Dist: tree-sitter-python; extra == "tree-sitter-python"
96
+ Provides-Extra: tree-sitter-javascript
97
+ Requires-Dist: tree-sitter; extra == "tree-sitter-javascript"
98
+ Requires-Dist: tree-sitter-javascript; extra == "tree-sitter-javascript"
99
+ Provides-Extra: tree-sitter-typescript
100
+ Requires-Dist: tree-sitter; extra == "tree-sitter-typescript"
101
+ Requires-Dist: tree-sitter-typescript; extra == "tree-sitter-typescript"
102
+ Provides-Extra: tree-sitter-rust
103
+ Requires-Dist: tree-sitter; extra == "tree-sitter-rust"
104
+ Requires-Dist: tree-sitter-rust; extra == "tree-sitter-rust"
105
+ Provides-Extra: tree-sitter-go
106
+ Requires-Dist: tree-sitter; extra == "tree-sitter-go"
107
+ Requires-Dist: tree-sitter-go; extra == "tree-sitter-go"
108
+ Provides-Extra: tree-sitter-java
109
+ Requires-Dist: tree-sitter; extra == "tree-sitter-java"
110
+ Requires-Dist: tree-sitter-java; extra == "tree-sitter-java"
111
+ Provides-Extra: tree-sitter-cpp
112
+ Requires-Dist: tree-sitter; extra == "tree-sitter-cpp"
113
+ Requires-Dist: tree-sitter-cpp; extra == "tree-sitter-cpp"
114
+ Provides-Extra: tree-sitter-c
115
+ Requires-Dist: tree-sitter; extra == "tree-sitter-c"
116
+ Requires-Dist: tree-sitter-c; extra == "tree-sitter-c"
117
+ Provides-Extra: tree-sitter-json
118
+ Requires-Dist: tree-sitter; extra == "tree-sitter-json"
119
+ Requires-Dist: tree-sitter-json; extra == "tree-sitter-json"
120
+ Provides-Extra: tree-sitter-yaml
121
+ Requires-Dist: tree-sitter; extra == "tree-sitter-yaml"
122
+ Requires-Dist: tree-sitter-yaml; extra == "tree-sitter-yaml"
123
+ Provides-Extra: tree-sitter-markdown
124
+ Requires-Dist: tree-sitter; extra == "tree-sitter-markdown"
125
+ Requires-Dist: tree-sitter-markdown; extra == "tree-sitter-markdown"
126
+ Provides-Extra: tree-sitter-html
127
+ Requires-Dist: tree-sitter; extra == "tree-sitter-html"
128
+ Requires-Dist: tree-sitter-html; extra == "tree-sitter-html"
129
+ Provides-Extra: tree-sitter-css
130
+ Requires-Dist: tree-sitter; extra == "tree-sitter-css"
131
+ Requires-Dist: tree-sitter-css; extra == "tree-sitter-css"
132
+ Provides-Extra: tree-sitter-bash
133
+ Requires-Dist: tree-sitter; extra == "tree-sitter-bash"
134
+ Requires-Dist: tree-sitter-bash; extra == "tree-sitter-bash"
135
+ Provides-Extra: tree-sitter-ruby
136
+ Requires-Dist: tree-sitter; extra == "tree-sitter-ruby"
137
+ Requires-Dist: tree-sitter-ruby; extra == "tree-sitter-ruby"
138
+ Provides-Extra: tree-sitter-php
139
+ Requires-Dist: tree-sitter; extra == "tree-sitter-php"
140
+ Requires-Dist: tree-sitter-php; extra == "tree-sitter-php"
141
+ Provides-Extra: tree-sitter-sql
142
+ Requires-Dist: tree-sitter; extra == "tree-sitter-sql"
143
+ Requires-Dist: tree-sitter-sql; extra == "tree-sitter-sql"
144
+ Provides-Extra: tree-sitter-all
145
+ Requires-Dist: tree-sitter; extra == "tree-sitter-all"
146
+ Requires-Dist: tree-sitter-python; extra == "tree-sitter-all"
147
+ Requires-Dist: tree-sitter-javascript; extra == "tree-sitter-all"
148
+ Requires-Dist: tree-sitter-typescript; extra == "tree-sitter-all"
149
+ Requires-Dist: tree-sitter-rust; extra == "tree-sitter-all"
150
+ Requires-Dist: tree-sitter-go; extra == "tree-sitter-all"
151
+ Requires-Dist: tree-sitter-java; extra == "tree-sitter-all"
152
+ Requires-Dist: tree-sitter-cpp; extra == "tree-sitter-all"
153
+ Requires-Dist: tree-sitter-c; extra == "tree-sitter-all"
154
+ Requires-Dist: tree-sitter-json; extra == "tree-sitter-all"
155
+ Requires-Dist: tree-sitter-yaml; extra == "tree-sitter-all"
156
+ Requires-Dist: tree-sitter-markdown; extra == "tree-sitter-all"
157
+ Requires-Dist: tree-sitter-html; extra == "tree-sitter-all"
158
+ Requires-Dist: tree-sitter-css; extra == "tree-sitter-all"
159
+ Requires-Dist: tree-sitter-bash; extra == "tree-sitter-all"
160
+ Requires-Dist: tree-sitter-ruby; extra == "tree-sitter-all"
161
+ Requires-Dist: tree-sitter-php; extra == "tree-sitter-all"
162
+ Requires-Dist: tree-sitter-sql; extra == "tree-sitter-all"
81
163
  Dynamic: author
82
164
  Dynamic: home-page
83
165
  Dynamic: license-file
@@ -262,6 +344,8 @@ Jarvis 包含一系列专注于不同任务的工具。以下是主要命令及
262
344
  | `jarvis-smart-shell` | `jss` | 实验性的智能Shell功能 |
263
345
  | `jarvis-stats` | `jst` | 通用统计模块,支持记录和可视化任意指标数据 |
264
346
  | `jarvis-memory-organizer` | `jmo` | 记忆管理工具,支持整理、合并、导入导出记忆 |
347
+ | `jarvis-sec` | `jsec` | 安全分析套件,对代码工程进行安全扫描和分析 |
348
+ | `jarvis-c2rust` | `jc2r` | C→Rust 迁移套件,将 C/C++ 代码迁移到 Rust |
265
349
 
266
350
  更多详细用法和参数,请查阅我们的 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
267
351
 
@@ -0,0 +1,192 @@
1
+ jarvis/__init__.py,sha256=i25VhgQauKHFtFyLmGHzXf9gg5c6vABnwim5a7JBA0I,73
2
+ jarvis/jarvis_agent/__init__.py,sha256=MBMYL32CqwxLIf0mbp1qNKK_yvocxZ9cCrT8gBBMnNs,58947
3
+ jarvis/jarvis_agent/agent_manager.py,sha256=Tke5eFugTCBCdMSUXMCikiQcGXCl-AjdmYIzap-vSfI,3621
4
+ jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
5
+ jarvis/jarvis_agent/config_editor.py,sha256=hlb9EYxKWcR_qdW2O89CgNDdciR9Isi743JU_1gD8j4,1927
6
+ jarvis/jarvis_agent/edit_file_handler.py,sha256=C-g-BCU3CR5zxv7wpdMDGNPWgVDirWuLgDroACHgHb4,26460
7
+ jarvis/jarvis_agent/event_bus.py,sha256=wNMX8oseyVd2q40-M-VBrQo2Gbfw9yVmqJw8haLSCho,1513
8
+ jarvis/jarvis_agent/events.py,sha256=rmFQ37PasImCh7OCdCzNBvubk-kHwcUiYLgzmL0t0_4,3689
9
+ jarvis/jarvis_agent/file_context_handler.py,sha256=98PmZuHi-EBJx17vjtN8azqsd7WrvCfqlfydXoQAz5I,2599
10
+ jarvis/jarvis_agent/file_methodology_manager.py,sha256=LnhgTx5xQXCBK8esjCkFbgFm9iEyFX7TryUlC40Kzpw,4428
11
+ jarvis/jarvis_agent/jarvis.py,sha256=XUOuXEY2jM5LRAfstO1LiwFtrx0tDC3cEQNroZs6j5M,50179
12
+ jarvis/jarvis_agent/main.py,sha256=IgS7d3rng2vFlu983OUeCkOAosKjFAn1sFCk3gT9J9Q,4563
13
+ jarvis/jarvis_agent/memory_manager.py,sha256=WSyUffx9xTmkcj4QrSLEfsjI3sTMUwZmkkC9_N_gTjo,8042
14
+ jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
15
+ jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
16
+ jarvis/jarvis_agent/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh2lC__p40,1705
17
+ jarvis/jarvis_agent/prompt_manager.py,sha256=_1qLBSA3yn4nT_N3X2npTpW40Cp-pMeyvnzu-pnG0iU,2720
18
+ jarvis/jarvis_agent/prompts.py,sha256=CvbPYx_klEz6OQrxVReZAnC2uQNo53rWkkucmh30uKg,9531
19
+ jarvis/jarvis_agent/protocols.py,sha256=YFJaC9MHi7JfLzmvlyotJDjiCO4Z07XJXy1gKhVdUy4,956
20
+ jarvis/jarvis_agent/rewrite_file_handler.py,sha256=z8go1BM40r7gc8DxmbtvEUxvRj_blBFlb-TatzQnsbo,5199
21
+ jarvis/jarvis_agent/run_loop.py,sha256=-GqU2gAS3nbAr6GxJfEbupz-Cv0JsE0bEJdHH1L4EVs,6507
22
+ jarvis/jarvis_agent/session_manager.py,sha256=5wVcaZGwJ9cEKTQglSbqyxUDJ2fI5KxYN8C8L16UWLw,3024
23
+ jarvis/jarvis_agent/share_manager.py,sha256=Nl7zvy5PbcYAPXUgfnvatoUB0V4sIQOt61LyYkp5-2w,9127
24
+ jarvis/jarvis_agent/shell_input_handler.py,sha256=wiAPjB-9uTkcLszbO5dlOUwIfaeR39RgRcZhahIGqoA,2018
25
+ jarvis/jarvis_agent/stdio_redirect.py,sha256=cG3z54rShhE9ATFlcVFgKXNk8ShqwSVfDCtaIVilTes,9923
26
+ jarvis/jarvis_agent/task_analyzer.py,sha256=OZJSdEGaXwheo5bPCYLxMuaV7K92ZrqRFymJvCusDoM,8046
27
+ jarvis/jarvis_agent/task_manager.py,sha256=lme_aN8vaF_a4Tvv2kaSEnWATy8RPSjogTxeLnEYZdg,6504
28
+ jarvis/jarvis_agent/task_planner.py,sha256=zXFTc96cQRiy3EWQb93dO6gONHssvCQLyKh4X_5oF3w,24417
29
+ jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
30
+ jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
31
+ jarvis/jarvis_agent/user_interaction.py,sha256=tifFN49GkO_Q80sqOTVmhxwbNWTazF3K0cr8AnnvzdU,1453
32
+ jarvis/jarvis_agent/utils.py,sha256=WJmKys_ceDALL73GdMCOgmjGHBzeRSPj7rmc8Pkrvzc,1784
33
+ jarvis/jarvis_agent/web_bridge.py,sha256=h15PXuPWWfZynWt8bPW4BDeCpIVoIOlRXfO0je6HDx4,6673
34
+ jarvis/jarvis_agent/web_output_sink.py,sha256=sZ6WbLZnuCdT5dS9d8msHY_g-pnj-dvML-I6uJ7-sbc,1733
35
+ jarvis/jarvis_agent/web_server.py,sha256=rOMP2ejCYJAqGw9aFYBlMsQmQp5JR-SVyfANKDWyJ0c,28227
36
+ jarvis/jarvis_c2rust/__init__.py,sha256=gtZlPXHo22Kns3InsgXmvQIBLWf2cOTLnbybGrRFjdc,1337
37
+ jarvis/jarvis_c2rust/cli.py,sha256=8V5x3NkZgKDQ5UpEF62_FAMludp9pz2jcRs2gv7khEY,26320
38
+ jarvis/jarvis_c2rust/collector.py,sha256=3W3QJhvcsRuRfsnhjp8n7XEs3tWwKyuE4_Hvv9MWlGM,8416
39
+ jarvis/jarvis_c2rust/library_replacer.py,sha256=COZ9CK42WRZZxv6Po_m7fSWtDgCNI6PMevRJmL0Hk7Y,46261
40
+ jarvis/jarvis_c2rust/llm_module_agent.py,sha256=TCpfhx0CtHOpeUOBf-coyI0DSzjjOYhuIjwr1Pa2Pmg,59386
41
+ jarvis/jarvis_c2rust/optimizer.py,sha256=IpdkE57zczGVaYvzT54MTZb3jQg5uRLQVZoUEi9OL4U,42348
42
+ jarvis/jarvis_c2rust/scanner.py,sha256=4kuRCCZYZXH1WBhS30CzSojFaj5kzX7a1m_C5J05e5U,62871
43
+ jarvis/jarvis_c2rust/transpiler.py,sha256=y50bgJ0zGNeD_OA6BuDnOziY0crqoXiYCrDrNcGCpx8,123633
44
+ jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ jarvis/jarvis_code_agent/build_validation_config.py,sha256=LEwCTDZYLo7XkJdmcYdCci__CJaiEm6O2EIDdjkiz04,4488
46
+ jarvis/jarvis_code_agent/code_agent.py,sha256=MfJVtzO2XoBsdy2hnjjOm500pF0O98-iuegCPhmx7d0,80609
47
+ jarvis/jarvis_code_agent/lint.py,sha256=1BtXWmpLlFy-yiF9w1ZTM3XAr6nxcGU9u0LU4pLvnb4,13739
48
+ jarvis/jarvis_code_agent/utils.py,sha256=BKL27OVxeYmSmslsxFG2yQ0BKVG8urdjj8Ojcl6mOqk,4828
49
+ jarvis/jarvis_code_agent/code_analyzer/__init__.py,sha256=qm7PxFCN7qZNyxrxb8AYetlYubP9QVl8fV8VkwhQYi0,1625
50
+ jarvis/jarvis_code_agent/code_analyzer/base_language.py,sha256=4TH9Mlgnj4X3n9uOJgJTTWHSMrJYHpojcLGzXlBen_E,2132
51
+ jarvis/jarvis_code_agent/code_analyzer/build_validator.py,sha256=XVBwHJgaBnwYaQ-bSXw3mts5aLW2SjgzsXu4s77GV4A,1032
52
+ jarvis/jarvis_code_agent/code_analyzer/context_manager.py,sha256=UjxrVkrhBfZc0k3lXYNrLWcJ6o4CaP0jOKCNSsKgroQ,14350
53
+ jarvis/jarvis_code_agent/code_analyzer/context_recommender.py,sha256=xAYMHI2Gb7uSDaNdBuaJMLPGwwXeW34bByj_JT06wWM,433
54
+ jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py,sha256=K_9-govIzeobGeoPvmgW-r4pTJAHxxnonklvl5rSpOg,5078
55
+ jarvis/jarvis_code_agent/code_analyzer/file_ignore.py,sha256=HU5769KTNv-gYoIi2drrMgzn6l8kfgzvs3RwEFHDOp8,9818
56
+ jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py,sha256=JqfneA1Z0ermmlZfYDQmTfxCbqibWbnMpwHBlHzpLTQ,29643
57
+ jarvis/jarvis_code_agent/code_analyzer/language_registry.py,sha256=k6Tg7l3UMEUIoUONyGQ-vMm62EBl4o200_clsXl6NEA,5597
58
+ jarvis/jarvis_code_agent/code_analyzer/language_support.py,sha256=Ruc_00KH8Akr9U9ho1IXCP7D0QOlaIdXFpD-mFKeo18,2627
59
+ jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py,sha256=rpf9hQhkeRMOouXDHcpv98cuchokmvIELY0NFNqzg4g,17357
60
+ jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py,sha256=--8D7m-5R-k25co0Zg_itq30lLieUOCORT4C4P35Vto,2939
61
+ jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py,sha256=IUxAVxAYHU4ALeBBBraXBF2WMPFaeThh95XwyImL-Z0,1779
62
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py,sha256=FJda17qW9n4ICGmrhH_CAwN68iZ4kVdo0yF9dj5__oo,1202
63
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py,sha256=BxuqQ0dIIgaj6ApfJ84CHP2R4VDEVKyatMNOP_idwUM,2766
64
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py,sha256=hF7TzRyQi1dW1_CLVmBe_ATzinIVmdvTX7pgtJvRl_o,1961
65
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py,sha256=rLFWUhieg9-RbKTTrlnA-N2Nr2xSOyHoO5yFa-QaJA4,4247
66
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py,sha256=um4UWELR8qogK2we1BxTAZ0Yg7NiJn1B25IBu260Z9c,2386
67
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py,sha256=njcyyP0MxRQxr2ln_A0PRV8KO0ieRKMsqV4ymNAirjI,961
68
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py,sha256=E1fjlcd8JACRR6J7qYgdyIRZDyA60HBpFmIWfPeG5Qw,1263
69
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py,sha256=AR48BH4j9XDL1KKZpLKncNUvydV0V_TYTD6sWZHE11E,1025
70
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py,sha256=FtJG9PeUi-VCLhKPRrnO1BDykddJMAFBCEeHmw0jDB0,1463
71
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py,sha256=kKTSTHLaMboH_kl5hv9ysE6ixPIQpkaXUMpjIMMYLuQ,3645
72
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py,sha256=rpZ-lmMph3za4MQUVEJi69FmDhPzn2xduC_rXiuF0B8,5147
73
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py,sha256=an-I-U8hXMe62UkPp9Ztiq-IfHIw1-Lpqr-_g_LgfOg,1621
74
+ jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py,sha256=Q2Gb6ZCfYOLAzEw4r9AF_eO7ksMBGy-629KZ_7IMLE8,6788
75
+ jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py,sha256=vHEqg2sSG2P2eRttTKo3kiRFR3F7hV0f7wyQamWqgCs,809
76
+ jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py,sha256=k_f79x6PUYpsiIIz4DjZuB37ZUrYiCD-4eQQCtwLESw,7215
77
+ jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py,sha256=4D-rlqsw2j4xp0NGb-k40BlgHDX4oZq79XU0m7Q6ubg,6160
78
+ jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py,sha256=5JSI-b0-YE7eEf3gJrNBOk5PGjiPdkOOl7olkYDxCtg,8775
79
+ jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py,sha256=6ZrIjx2e1fazb4trDLUQfM6M6kXWJWg90eC9LttsDws,7113
80
+ jarvis/jarvis_code_analysis/code_review.py,sha256=48r0UE4pmOUaRgBJIJrpPW307sKGo1rnTNkWdsqkOrY,29889
81
+ jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
82
+ jarvis/jarvis_code_analysis/checklists/c_cpp.py,sha256=9t62bMqs6qTkFSio4SKkj88qyb5ZubWrw3MxJBQ4X1A,1317
83
+ jarvis/jarvis_code_analysis/checklists/csharp.py,sha256=ShPXrl2_UPAnGaCHAG2wLl90COG3HK2XCSr1UK2dxN4,2420
84
+ jarvis/jarvis_code_analysis/checklists/data_format.py,sha256=urCb9qiJBDGev6C-PXv30NKFoQeGdbtlOl1VSPbjCSA,3005
85
+ jarvis/jarvis_code_analysis/checklists/devops.py,sha256=tlKD75mbFx6HHk8H8eHL_I_WTusHvWA8Zfb5P6c_1w4,3542
86
+ jarvis/jarvis_code_analysis/checklists/docs.py,sha256=gxhxuw-w0puen2Hgwe9MsgO_kijtCJC6THXSoz3YgiA,3341
87
+ jarvis/jarvis_code_analysis/checklists/go.py,sha256=NDBFA0qPrjr1HOZYy5DYU0iIcKWCaevJRLw4fbHZwwQ,1388
88
+ jarvis/jarvis_code_analysis/checklists/infrastructure.py,sha256=7z5MZnOUT3FpMrTQw2QcxkkTHKdMblc_Rf2NjxSI39A,3765
89
+ jarvis/jarvis_code_analysis/checklists/java.py,sha256=gWRVhXfsNhRFdthjIiQTkviqLwisuKCrr6gjxP0S9Z4,2085
90
+ jarvis/jarvis_code_analysis/checklists/javascript.py,sha256=SQkw2I09DaaLxD_WTZjuHn4leUKil68IEPB03BoSYuo,2340
91
+ jarvis/jarvis_code_analysis/checklists/kotlin.py,sha256=dNSHM1u3R7lxe8BU8ADtDyKJxmj3NUh9ZQuC7HHWHGY,4436
92
+ jarvis/jarvis_code_analysis/checklists/loader.py,sha256=bjE4On6WMLt41bfkCZsHnBpfXF61VPthFPsgNcbH90c,1903
93
+ jarvis/jarvis_code_analysis/checklists/php.py,sha256=qW34sF9AqLuSVuOVP5yJUHnB9V3-YRQjNPuB3lFI5UY,2481
94
+ jarvis/jarvis_code_analysis/checklists/python.py,sha256=gjyJ0QPY1CAwqhbDnIyLYruvFduZU5hiKyehAXMHu-I,1452
95
+ jarvis/jarvis_code_analysis/checklists/ruby.py,sha256=kzwd7Wl6gKrkAANq7_MvA5X5du5r1MeE-EY2Xb43n7U,4274
96
+ jarvis/jarvis_code_analysis/checklists/rust.py,sha256=kzt6ARBzUaC2UCviIt5ybfhJjyCkK_V9Kd4e97Dbtd4,1646
97
+ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUAHPtZeciTg4aDcwvRZE,2619
98
+ jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
99
+ jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
100
+ jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
101
+ jarvis/jarvis_data/config_schema.json,sha256=EKeHC8sJje-bGyOq4-sHovE0pJlx7js9csdTFmyha64,16786
102
+ jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
103
+ jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
+ jarvis/jarvis_git_squash/main.py,sha256=BRbsEQVXwseVFKliVqV8_JPh1om6QT6dLTHw0jQ7OE0,2474
105
+ jarvis/jarvis_git_utils/git_commiter.py,sha256=aFVo50MwoBD7i5OtwGfPwrtpnVF2F5OPPslNP4gEg7E,17327
106
+ jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
107
+ jarvis/jarvis_mcp/sse_mcp_client.py,sha256=rBj1cIH6z6ilISOyD4zvojK6sSZ35A4z3HJlYNeVLaE,22873
108
+ jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=uhduVXAmEGS5reZYirx7IozoF8vuvf_yP1a1pwsa93k,11287
109
+ jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=BenOeZGNHdUOJT5Z3cc5MhS6aOeKQgqXm1ED-BqsLCY,15511
110
+ jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
+ jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=0nJniocg27t257xGXiwo-b1L5Da-ZK1-MAOmYRxAFPE,26327
112
+ jarvis/jarvis_methodology/main.py,sha256=uiNzk5b5O6xdvRhsOuD7ubxdd2tPcDsFFnvmes8uH8I,11370
113
+ jarvis/jarvis_multi_agent/__init__.py,sha256=frH5ufVMasKFz_jbVsBk2wH5nq4D0sfDcmfBWQ-DLoA,16726
114
+ jarvis/jarvis_multi_agent/main.py,sha256=vqLzHesgQkpScVvbgOSyi6X7XoEDQYq3dJ9gZfGiPZw,3351
115
+ jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
116
+ jarvis/jarvis_platform/ai8.py,sha256=g8JkqPGs9SEbqstNMCc5rCHO0QcPHX9LNvb7HMWwB-Q,11471
117
+ jarvis/jarvis_platform/base.py,sha256=bgi95DBbX4vQPaBTws2kTst3jbJM2osIjeIjCjSbdIY,15828
118
+ jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
119
+ jarvis/jarvis_platform/kimi.py,sha256=KLsf9udAsPRMbQ2JkBeiAlXkupCBwdtMaJ-hpH4Jdkc,15711
120
+ jarvis/jarvis_platform/openai.py,sha256=4YapmkmJmPGfrjktORcIejlB98b83Wsi_48zjBymHAc,9500
121
+ jarvis/jarvis_platform/registry.py,sha256=YqaFM2LXcHvqMQrTEQ_cVo8V-wQ8HhOeSdC8DdjvC00,8045
122
+ jarvis/jarvis_platform/tongyi.py,sha256=QQHDn-kNcb_UH-B49lVIQTlHzYd_O8CFWN7SZqy38S4,23456
123
+ jarvis/jarvis_platform/yuanbao.py,sha256=H-mZL1RN0qn3M46qZcV-PsJuXTHm7gTK2U9OvnT2MSE,23926
124
+ jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ jarvis/jarvis_platform_manager/main.py,sha256=yv7m8cNRBe4nk0Kui1w2PKTUr9Sb3wrQirvmyAUbr5U,20400
126
+ jarvis/jarvis_platform_manager/service.py,sha256=TcyTSWdmKRVbKiYupixnC0tOWZgsrkiskDR_CqfZXlY,14882
127
+ jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
128
+ jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
129
+ jarvis/jarvis_rag/cli.py,sha256=67T_I2Wzosy5qMRXETVl2DT9zfmYEMO6f03hTlMbU6Y,17573
130
+ jarvis/jarvis_rag/embedding_manager.py,sha256=r-S12eW5nz3GJQgbk-7eQ9JVxxZ57-wLAQx_1zSl0po,10330
131
+ jarvis/jarvis_rag/llm_interface.py,sha256=ntZzJtq-74d8ljqm-_flHaFys_RHjMMZRCKcMdwZt-Y,4505
132
+ jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMWOn-nDE,4072
133
+ jarvis/jarvis_rag/rag_pipeline.py,sha256=aaTuxiArtVaPemWeySApw64q204JeLNXpOEtq7Adn1I,13797
134
+ jarvis/jarvis_rag/reranker.py,sha256=7Azc3y5fngwfPKtzZ8tx6iGKNeqC8uDy8yo8VCyLyL4,2670
135
+ jarvis/jarvis_rag/retriever.py,sha256=J4jO0492yHEwxJz_Cp2WP3vGHRHKj56rDyWZQ2W0XdA,18374
136
+ jarvis/jarvis_sec/__init__.py,sha256=ObFm4wr2uKX3DzsiFMd0G9Zw3JxDJk2uCKr8Vp1ZtxA,150324
137
+ jarvis/jarvis_sec/cli.py,sha256=PNvt-Rslfy09YljxFEuM9dcR-6PjT2cABK4SXkKQrxw,3704
138
+ jarvis/jarvis_sec/report.py,sha256=FKVVSUJ-PcTJDBoYNgzxPRj5cHjmRmot3Kqj31M-77E,8109
139
+ jarvis/jarvis_sec/status.py,sha256=BtshMe7fkLMjyMmrG7Saezfd_xX1nmt0AL0axrmW1-k,8534
140
+ jarvis/jarvis_sec/types.py,sha256=_C3IHwnni3kApryP3c_UTYdvFdmlJSVXQLLefX94zl0,365
141
+ jarvis/jarvis_sec/workflow.py,sha256=cul_sh7W6PTWOyg_RiuFHGBBXnGwANooo1_l3j6C9eg,9602
142
+ jarvis/jarvis_sec/checkers/__init__.py,sha256=bkyIFSImBNFsH7RvwXwN6nETefRjtbS62gZRpQFH01I,706
143
+ jarvis/jarvis_sec/checkers/c_checker.py,sha256=-w_ij6BNGl6520mVL6nk9LtsLDQzwXSrskyc-CU_K9c,115465
144
+ jarvis/jarvis_sec/checkers/rust_checker.py,sha256=12sqoI5Phh_KpSjW-OwzRVfPx4MofTGUrmgPkpBdwes,40479
145
+ jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
+ jarvis/jarvis_smart_shell/main.py,sha256=lUJPwLR9RlaaVv0lx3ojjjv5dELHOaindlsLDDkpssQ,14960
147
+ jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
148
+ jarvis/jarvis_stats/cli.py,sha256=OZdVqry0_7ZpITGe68TVL4c7KEaJ3Dci6ZXFRRt991Q,11487
149
+ jarvis/jarvis_stats/stats.py,sha256=U2wLXXTWvBYcj5WxmNypOHRHjN7PM3Dkhz7EmrbFBNY,25385
150
+ jarvis/jarvis_stats/storage.py,sha256=ztahlCf5ZaHizcJ3Kijmx6irTbzU_I9UEOgEwHZF84s,22084
151
+ jarvis/jarvis_stats/visualizer.py,sha256=0Gc1O1cANq73GKrVVXr0rgP4tUBLQ9ZT2Q6oiLUJwS0,8539
152
+ jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
+ jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
154
+ jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
155
+ jarvis/jarvis_tools/clear_memory.py,sha256=8DOq6dHLemfKTJqu227PWBIp8Iu5K7EXwINzL8DYk8M,8205
156
+ jarvis/jarvis_tools/execute_script.py,sha256=AQ9Krh6GuhzHzLPZ7HFpCe7UMtVtkI-ua3bTiQ2QShQ,8257
157
+ jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
158
+ jarvis/jarvis_tools/generate_new_tool.py,sha256=AK21yfefMxN9me0W2y7Y5e7JsVGIud1_8bD3ISjvuLA,8620
159
+ jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
160
+ jarvis/jarvis_tools/read_code.py,sha256=nhHdWpLgTONFZQwKKOiVgpAUlCs1n0NHi83kmHob-pw,18952
161
+ jarvis/jarvis_tools/read_symbols.py,sha256=bCNe_c442GZaIDogWWFbG90T4qtFno4kXwhCN2oyGJE,5765
162
+ jarvis/jarvis_tools/read_webpage.py,sha256=FAz0oIRYWPWUBUsJ7K-yk4sDliFk0izUGp9sV_SQ6q0,5465
163
+ jarvis/jarvis_tools/registry.py,sha256=FJ211s47Y4GHAPE_8NYZMczTB-W9SCaMjq1NswPQbRU,35644
164
+ jarvis/jarvis_tools/retrieve_memory.py,sha256=hhhGSr7jebPHICY9oEKICyI8mfqsRtKjh58qZNZApKc,8624
165
+ jarvis/jarvis_tools/save_memory.py,sha256=RQtNxcpU53FFv_EBjH0i0oyQ7jWubm-trD1BHuqaGjI,6985
166
+ jarvis/jarvis_tools/search_web.py,sha256=woxMBhkSNi8omJWJiBHQqpiFo7Xk4X5XRx-SrS1gJ-k,6402
167
+ jarvis/jarvis_tools/sub_agent.py,sha256=OqDY32MNPaupKcOb-KcH6uk3anlsP2OSaTT5M-3iCGU,8474
168
+ jarvis/jarvis_tools/sub_code_agent.py,sha256=7n2uEPqJS0D4sNhD6glRDJj8VAiWbWRel0IF1H3zD00,9490
169
+ jarvis/jarvis_tools/virtual_tty.py,sha256=WG3Mu46R3nvBiW-ck_PSppgVIIiy5Ft5_3YTb3AsK3U,25285
170
+ jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
+ jarvis/jarvis_tools/cli/main.py,sha256=0JTAj2vPc410Noj_bcJBF4AijovYQTIFBp7cO8LlRfA,9324
172
+ jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
173
+ jarvis/jarvis_utils/builtin_replace_map.py,sha256=z8iAqsbZUiGFaozxG1xSu128op8udqHOeEw-GxNt4bU,1708
174
+ jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
175
+ jarvis/jarvis_utils/config.py,sha256=oXa-vBW8WRaPNdb2A7EK3CiRGNJXrfgUZHcAx_KGSmo,24915
176
+ jarvis/jarvis_utils/embedding.py,sha256=x6mrkL7Bc3qgfuBDsjc4fg4nKG8ofGxVLVVydbsb8PY,2838
177
+ jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
178
+ jarvis/jarvis_utils/fzf.py,sha256=vCs0Uh5dUqGbWzXn2JCtLLCOYE2B39ZNdNveR9PK4DA,1681
179
+ jarvis/jarvis_utils/git_utils.py,sha256=uRJT-RHij-9HepT4g2jDv94XQyeXS3DxhQZcavl-F1A,30605
180
+ jarvis/jarvis_utils/globals.py,sha256=a7j4X1IBcJ8XJmxVhSOsOfXnniVf4p6JIRzRQvZ8fFk,8907
181
+ jarvis/jarvis_utils/http.py,sha256=KLTBqti8m9B2TPKOLAsNuxSd8mFPN0whQhuXYnRDNW0,4424
182
+ jarvis/jarvis_utils/input.py,sha256=OUu_-Ytbyzk3sl9_7P5039fO3K9tC29tEvHJsdJpaow,39959
183
+ jarvis/jarvis_utils/methodology.py,sha256=YuuKBjr58cu8QWcniU7QVlEM9Cem6wo4IYcq1iwSDMw,13158
184
+ jarvis/jarvis_utils/output.py,sha256=y2fVcao_2ZowFl0IxUrJZCi8T6ZM0z-iPzpk8T8eLxc,13623
185
+ jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
186
+ jarvis/jarvis_utils/utils.py,sha256=ZGnVG2CIMgP4yxY75syEsrTMzG-SAqEG3Gy-wacLDgU,82855
187
+ jarvis_ai_assistant-0.7.0.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
188
+ jarvis_ai_assistant-0.7.0.dist-info/METADATA,sha256=EVLNsGrQPooCBb8r-_TMK0Vdo3riwfucT9yK1S2PkNI,23057
189
+ jarvis_ai_assistant-0.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
190
+ jarvis_ai_assistant-0.7.0.dist-info/entry_points.txt,sha256=Uxk2_VeucH_m7EwH2mw0SlEYHIUmbzXkjTb15z_lcko,1552
191
+ jarvis_ai_assistant-0.7.0.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
192
+ jarvis_ai_assistant-0.7.0.dist-info/RECORD,,
@@ -2,6 +2,7 @@
2
2
  ja = jarvis.jarvis_agent.main:main
3
3
  jarvis = jarvis.jarvis_agent.jarvis:main
4
4
  jarvis-agent = jarvis.jarvis_agent.main:main
5
+ jarvis-c2rust = jarvis.jarvis_c2rust.cli:main
5
6
  jarvis-code-agent = jarvis.jarvis_code_agent.code_agent:main
6
7
  jarvis-code-review = jarvis.jarvis_code_analysis.code_review:main
7
8
  jarvis-git-commit = jarvis.jarvis_git_utils.git_commiter:main
@@ -11,9 +12,11 @@ jarvis-methodology = jarvis.jarvis_methodology.main:main
11
12
  jarvis-multi-agent = jarvis.jarvis_multi_agent.main:main
12
13
  jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
13
14
  jarvis-rag = jarvis.jarvis_rag.cli:main
15
+ jarvis-sec = jarvis.jarvis_sec.cli:main
14
16
  jarvis-smart-shell = jarvis.jarvis_smart_shell.main:main
15
17
  jarvis-stats = jarvis.jarvis_stats.cli:main
16
18
  jarvis-tool = jarvis.jarvis_tools.cli.main:main
19
+ jc2r = jarvis.jarvis_c2rust.cli:main
17
20
  jca = jarvis.jarvis_code_agent.code_agent:main
18
21
  jcr = jarvis.jarvis_code_analysis.code_review:main
19
22
  jgc = jarvis.jarvis_git_utils.git_commiter:main
@@ -23,6 +26,7 @@ jma = jarvis.jarvis_multi_agent.main:main
23
26
  jmo = jarvis.jarvis_memory_organizer.memory_organizer:main
24
27
  jpm = jarvis.jarvis_platform_manager.main:main
25
28
  jrg = jarvis.jarvis_rag.cli:main
29
+ jsec = jarvis.jarvis_sec.cli:main
26
30
  jss = jarvis.jarvis_smart_shell.main:main
27
31
  jst = jarvis.jarvis_stats.cli:main
28
32
  jt = jarvis.jarvis_tools.cli.main:main
@@ -1,92 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """
3
- AgentConfig: 聚合 Agent 的初始化配置并提供默认值解析。
4
-
5
- 目标(阶段一,最小变更):
6
- - 提供独立的配置承载类,封装 __init__ 中的配置项
7
- - 支持从全局配置与上下文推导默认值
8
- - 暂不强制替换 Agent 的现有参数与流程,后续逐步接入
9
- """
10
- from dataclasses import dataclass, field
11
- from typing import List, Optional
12
-
13
- from jarvis.jarvis_agent.prompts import DEFAULT_SUMMARY_PROMPT
14
- from jarvis.jarvis_utils.config import (
15
- get_max_token_count,
16
- is_execute_tool_confirm,
17
- is_force_save_memory,
18
- is_use_analysis,
19
- is_use_methodology,
20
- )
21
-
22
-
23
- @dataclass
24
- class AgentConfig:
25
- # 核心身份与系统参数
26
- system_prompt: str
27
- name: str = "Jarvis"
28
- description: str = ""
29
- model_group: Optional[str] = None
30
-
31
- # 运行行为
32
- auto_complete: bool = False
33
- need_summary: bool = True
34
-
35
- # 可选配置(None 表示使用默认策略解析)
36
- summary_prompt: Optional[str] = None
37
- execute_tool_confirm: Optional[bool] = None
38
- use_methodology: Optional[bool] = None
39
- use_analysis: Optional[bool] = None
40
- force_save_memory: Optional[bool] = None
41
- files: Optional[List[str]] = field(default_factory=list)
42
- max_token_count: Optional[int] = None
43
-
44
- def resolve_defaults(self) -> "AgentConfig":
45
- """
46
- 解析并填充默认值,返回新的 AgentConfig 实例,不修改原对象。
47
- 策略与 Agent._init_config 中的逻辑保持一致,确保兼容。
48
- """
49
- # 复制当前实例的浅拷贝数据
50
- cfg = AgentConfig(
51
- system_prompt=self.system_prompt,
52
- name=self.name,
53
- description=self.description,
54
- model_group=self.model_group,
55
- auto_complete=self.auto_complete,
56
- need_summary=self.need_summary,
57
- summary_prompt=self.summary_prompt,
58
- execute_tool_confirm=self.execute_tool_confirm,
59
- use_methodology=self.use_methodology,
60
- use_analysis=self.use_analysis,
61
- force_save_memory=self.force_save_memory,
62
- files=list(self.files or []),
63
- max_token_count=self.max_token_count,
64
- )
65
-
66
- # use_methodology: 若存在上传文件则禁用;否则按照外部传入或全局默认
67
- if cfg.files:
68
- cfg.use_methodology = False
69
- elif cfg.use_methodology is None:
70
- cfg.use_methodology = is_use_methodology()
71
-
72
- # use_analysis
73
- if cfg.use_analysis is None:
74
- cfg.use_analysis = is_use_analysis()
75
-
76
- # execute_tool_confirm
77
- if cfg.execute_tool_confirm is None:
78
- cfg.execute_tool_confirm = is_execute_tool_confirm()
79
-
80
- # summary_prompt
81
- if cfg.summary_prompt is None:
82
- cfg.summary_prompt = DEFAULT_SUMMARY_PROMPT
83
-
84
- # max_token_count
85
- if cfg.max_token_count is None:
86
- cfg.max_token_count = get_max_token_count(cfg.model_group)
87
-
88
- # force_save_memory
89
- if cfg.force_save_memory is None:
90
- cfg.force_save_memory = is_force_save_memory()
91
-
92
- return cfg
@@ -1,179 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """
3
- 文件编辑工具类
4
-
5
- 功能概述:
6
- 1. 提供精确的文件内容搜索和替换功能,支持多组修改
7
- 2. 支持单个文件的编辑操作,包括创建新文件
8
- 3. 实现原子操作:所有修改要么全部成功,要么全部回滚
9
- 4. 严格匹配控制:每个搜索文本必须且只能匹配一次
10
-
11
- 核心特性:
12
- - 支持不存在的文件和空文件处理
13
- - 自动创建所需目录结构
14
- - 完善的错误处理和回滚机制
15
- - 严格的格式保持要求
16
- """
17
- from typing import Any, Dict, List
18
-
19
- from jarvis.jarvis_agent.edit_file_handler import EditFileHandler
20
-
21
-
22
- class FileSearchReplaceTool:
23
- name = "edit_file"
24
- description = """代码编辑工具,用于精确修改一个或多个文件
25
-
26
- # 文件编辑工具使用指南
27
-
28
- ## 基本使用
29
- 1. 指定需要修改的文件路径(单个或多个)
30
- 2. 提供一组或多组修改,每个修改包含:
31
- - reason: 修改原因描述
32
- - SEARCH: 需要查找的原始代码(必须包含足够上下文)
33
- - REPLACE: 替换后的新代码
34
-
35
- ## 核心原则
36
- 1. **精准修改**: 只修改必要的代码部分,保持其他部分不变
37
- 2. **最小补丁原则**: 生成最小范围的补丁,包含必要的上下文
38
- 3. **唯一匹配**: 确保搜索文本在文件中唯一匹配
39
- 4. **格式保持**: 严格保持原始代码的格式风格
40
- 5. **部分成功**: 支持多个文件编辑,允许部分文件编辑成功
41
-
42
- """
43
- parameters = {
44
- "type": "object",
45
- "properties": {
46
- "files": {
47
- "type": "array",
48
- "description": "需要修改的文件路径列表",
49
- "items": {
50
- "type": "object",
51
- "properties": {
52
- "path": {"type": "string", "description": "文件路径"},
53
- "changes": {
54
- "type": "array",
55
- "description": "一组或多组修改,每个修改必须包含1-2行上下文用于精确定位",
56
- "items": {
57
- "type": "object",
58
- "properties": {
59
- "reason": {
60
- "type": "string",
61
- "description": "修改的原因",
62
- },
63
- "SEARCH": {
64
- "type": "string",
65
- "description": "需要查找的原始代码",
66
- },
67
- "REPLACE": {
68
- "type": "string",
69
- "description": "替换后的新代码",
70
- },
71
- },
72
- },
73
- },
74
- },
75
- "required": ["path", "changes"],
76
- },
77
- },
78
- },
79
- "required": ["files"],
80
- }
81
-
82
- def execute(self, args: Dict) -> Dict[str, Any]:
83
- """执行文件编辑操作,支持快速编辑和AI辅助编辑两种模式。
84
-
85
- 主要功能:
86
- 1. 处理多个文件的创建或修改,支持不存在的文件
87
- 2. 每个文件独立处理,允许部分文件编辑成功
88
- 3. 自动选择编辑模式(fast_edit或slow_edit)
89
- 4. 保存修改前后的文件状态以便回滚
90
- 5. 提供详细的执行状态输出
91
-
92
- 参数:
93
- args: 包含以下键的字典:
94
- - files: 文件列表,每个文件包含(必填):
95
- - path: 要修改的文件路径
96
- - changes: 修改列表,每个修改包含:
97
- - reason: 修改原因描述
98
- - SEARCH: 需要查找的原始代码(必须包含足够上下文)
99
- - REPLACE: 替换后的新代码
100
-
101
- 返回:
102
- Dict[str, Any] 包含:
103
- - success: 是否至少有一个文件编辑成功(True/False)
104
- - stdout: 成功时的输出消息
105
- - stderr: 失败时的错误消息
106
- - results: 每个文件的处理结果列表
107
-
108
- 异常处理:
109
- 1. 捕获并记录文件操作异常
110
- 2. 失败的修改尝试回滚到原始状态
111
- 3. 新创建的文件在失败时会被删除
112
- 4. 提供3次重试机制确保操作可靠性
113
- 5. 支持大文件处理(自动上传到模型平台)
114
-
115
- 实现细节:
116
- 1. 优先尝试fast_edit模式
117
- 2. 如果fast_edit失败,则尝试slow_edit模式
118
- 3. 严格检查搜索文本的唯一匹配性
119
- 4. 保持原始代码的格式风格
120
- """
121
- import os
122
-
123
- from jarvis.jarvis_utils.output import OutputType, PrettyOutput
124
-
125
- stdout_messages: List[str] = []
126
- overall_success = False
127
- file_results = []
128
-
129
- for file_info in args["files"]:
130
- file_path = os.path.abspath(file_info["path"])
131
- changes = file_info["changes"]
132
-
133
- try:
134
- success, result = EditFileHandler._fast_edit(file_path, changes)
135
- if success:
136
- stdout_message = f"文件 {file_path} 修改完成"
137
- stdout_messages.append(stdout_message)
138
- overall_success = True
139
- file_results.append(
140
- {
141
- "file": file_path,
142
- "success": True,
143
- "stdout": stdout_message,
144
- "stderr": "",
145
- }
146
- )
147
- else:
148
- PrettyOutput.print(f"文件 {file_path} 处理失败", OutputType.ERROR)
149
- file_results.append(
150
- {
151
- "file": file_path,
152
- "success": False,
153
- "stdout": "",
154
- "stderr": result,
155
- }
156
- )
157
- except Exception as e:
158
- error_msg = f"文件搜索替换操作失败: {str(e)}"
159
- PrettyOutput.print(error_msg, OutputType.WARNING)
160
- file_results.append(
161
- {
162
- "file": file_path,
163
- "success": False,
164
- "stdout": "",
165
- "stderr": error_msg,
166
- }
167
- )
168
-
169
- # 整合所有错误信息到stderr
170
- all_stderr: List[str] = []
171
- for file_result in file_results:
172
- if not file_result["success"]:
173
- all_stderr.append(f"文件 {file_result['file']} 处理失败: {file_result['stderr']}")
174
-
175
- return {
176
- "success": overall_success,
177
- "stdout": "\n".join(stdout_messages) if overall_success else "",
178
- "stderr": "\n".join(all_stderr) if not overall_success else "",
179
- }