jarvis-ai-assistant 0.1.222__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 (162) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +1143 -245
  3. jarvis/jarvis_agent/agent_manager.py +97 -0
  4. jarvis/jarvis_agent/builtin_input_handler.py +12 -10
  5. jarvis/jarvis_agent/config_editor.py +57 -0
  6. jarvis/jarvis_agent/edit_file_handler.py +392 -99
  7. jarvis/jarvis_agent/event_bus.py +48 -0
  8. jarvis/jarvis_agent/events.py +157 -0
  9. jarvis/jarvis_agent/file_context_handler.py +79 -0
  10. jarvis/jarvis_agent/file_methodology_manager.py +117 -0
  11. jarvis/jarvis_agent/jarvis.py +1117 -147
  12. jarvis/jarvis_agent/main.py +78 -34
  13. jarvis/jarvis_agent/memory_manager.py +195 -0
  14. jarvis/jarvis_agent/methodology_share_manager.py +174 -0
  15. jarvis/jarvis_agent/prompt_manager.py +82 -0
  16. jarvis/jarvis_agent/prompts.py +46 -9
  17. jarvis/jarvis_agent/protocols.py +4 -1
  18. jarvis/jarvis_agent/rewrite_file_handler.py +141 -0
  19. jarvis/jarvis_agent/run_loop.py +146 -0
  20. jarvis/jarvis_agent/session_manager.py +9 -9
  21. jarvis/jarvis_agent/share_manager.py +228 -0
  22. jarvis/jarvis_agent/shell_input_handler.py +23 -3
  23. jarvis/jarvis_agent/stdio_redirect.py +295 -0
  24. jarvis/jarvis_agent/task_analyzer.py +212 -0
  25. jarvis/jarvis_agent/task_manager.py +154 -0
  26. jarvis/jarvis_agent/task_planner.py +496 -0
  27. jarvis/jarvis_agent/tool_executor.py +8 -4
  28. jarvis/jarvis_agent/tool_share_manager.py +139 -0
  29. jarvis/jarvis_agent/user_interaction.py +42 -0
  30. jarvis/jarvis_agent/utils.py +54 -0
  31. jarvis/jarvis_agent/web_bridge.py +189 -0
  32. jarvis/jarvis_agent/web_output_sink.py +53 -0
  33. jarvis/jarvis_agent/web_server.py +751 -0
  34. jarvis/jarvis_c2rust/__init__.py +26 -0
  35. jarvis/jarvis_c2rust/cli.py +613 -0
  36. jarvis/jarvis_c2rust/collector.py +258 -0
  37. jarvis/jarvis_c2rust/library_replacer.py +1122 -0
  38. jarvis/jarvis_c2rust/llm_module_agent.py +1300 -0
  39. jarvis/jarvis_c2rust/optimizer.py +960 -0
  40. jarvis/jarvis_c2rust/scanner.py +1681 -0
  41. jarvis/jarvis_c2rust/transpiler.py +2325 -0
  42. jarvis/jarvis_code_agent/build_validation_config.py +133 -0
  43. jarvis/jarvis_code_agent/code_agent.py +1605 -178
  44. jarvis/jarvis_code_agent/code_analyzer/__init__.py +62 -0
  45. jarvis/jarvis_code_agent/code_analyzer/base_language.py +74 -0
  46. jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py +44 -0
  47. jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py +102 -0
  48. jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py +59 -0
  49. jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py +125 -0
  50. jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py +69 -0
  51. jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py +38 -0
  52. jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py +44 -0
  53. jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py +38 -0
  54. jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py +50 -0
  55. jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py +93 -0
  56. jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py +129 -0
  57. jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py +54 -0
  58. jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py +154 -0
  59. jarvis/jarvis_code_agent/code_analyzer/build_validator.py +43 -0
  60. jarvis/jarvis_code_agent/code_analyzer/context_manager.py +363 -0
  61. jarvis/jarvis_code_agent/code_analyzer/context_recommender.py +18 -0
  62. jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py +132 -0
  63. jarvis/jarvis_code_agent/code_analyzer/file_ignore.py +330 -0
  64. jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py +781 -0
  65. jarvis/jarvis_code_agent/code_analyzer/language_registry.py +185 -0
  66. jarvis/jarvis_code_agent/code_analyzer/language_support.py +89 -0
  67. jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py +31 -0
  68. jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py +231 -0
  69. jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py +183 -0
  70. jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py +219 -0
  71. jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py +209 -0
  72. jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py +451 -0
  73. jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py +77 -0
  74. jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py +48 -0
  75. jarvis/jarvis_code_agent/lint.py +275 -13
  76. jarvis/jarvis_code_agent/utils.py +142 -0
  77. jarvis/jarvis_code_analysis/checklists/loader.py +20 -6
  78. jarvis/jarvis_code_analysis/code_review.py +583 -548
  79. jarvis/jarvis_data/config_schema.json +339 -28
  80. jarvis/jarvis_git_squash/main.py +22 -13
  81. jarvis/jarvis_git_utils/git_commiter.py +171 -55
  82. jarvis/jarvis_mcp/sse_mcp_client.py +22 -15
  83. jarvis/jarvis_mcp/stdio_mcp_client.py +4 -4
  84. jarvis/jarvis_mcp/streamable_mcp_client.py +36 -16
  85. jarvis/jarvis_memory_organizer/memory_organizer.py +753 -0
  86. jarvis/jarvis_methodology/main.py +48 -63
  87. jarvis/jarvis_multi_agent/__init__.py +302 -43
  88. jarvis/jarvis_multi_agent/main.py +70 -24
  89. jarvis/jarvis_platform/ai8.py +40 -23
  90. jarvis/jarvis_platform/base.py +210 -49
  91. jarvis/jarvis_platform/human.py +11 -1
  92. jarvis/jarvis_platform/kimi.py +82 -76
  93. jarvis/jarvis_platform/openai.py +73 -1
  94. jarvis/jarvis_platform/registry.py +8 -15
  95. jarvis/jarvis_platform/tongyi.py +115 -101
  96. jarvis/jarvis_platform/yuanbao.py +89 -63
  97. jarvis/jarvis_platform_manager/main.py +194 -132
  98. jarvis/jarvis_platform_manager/service.py +122 -86
  99. jarvis/jarvis_rag/cli.py +156 -53
  100. jarvis/jarvis_rag/embedding_manager.py +155 -12
  101. jarvis/jarvis_rag/llm_interface.py +10 -13
  102. jarvis/jarvis_rag/query_rewriter.py +63 -12
  103. jarvis/jarvis_rag/rag_pipeline.py +222 -40
  104. jarvis/jarvis_rag/reranker.py +26 -3
  105. jarvis/jarvis_rag/retriever.py +270 -14
  106. jarvis/jarvis_sec/__init__.py +3605 -0
  107. jarvis/jarvis_sec/checkers/__init__.py +32 -0
  108. jarvis/jarvis_sec/checkers/c_checker.py +2680 -0
  109. jarvis/jarvis_sec/checkers/rust_checker.py +1108 -0
  110. jarvis/jarvis_sec/cli.py +116 -0
  111. jarvis/jarvis_sec/report.py +257 -0
  112. jarvis/jarvis_sec/status.py +264 -0
  113. jarvis/jarvis_sec/types.py +20 -0
  114. jarvis/jarvis_sec/workflow.py +219 -0
  115. jarvis/jarvis_smart_shell/main.py +405 -137
  116. jarvis/jarvis_stats/__init__.py +13 -0
  117. jarvis/jarvis_stats/cli.py +387 -0
  118. jarvis/jarvis_stats/stats.py +711 -0
  119. jarvis/jarvis_stats/storage.py +612 -0
  120. jarvis/jarvis_stats/visualizer.py +282 -0
  121. jarvis/jarvis_tools/ask_user.py +1 -0
  122. jarvis/jarvis_tools/base.py +18 -2
  123. jarvis/jarvis_tools/clear_memory.py +239 -0
  124. jarvis/jarvis_tools/cli/main.py +220 -144
  125. jarvis/jarvis_tools/execute_script.py +52 -12
  126. jarvis/jarvis_tools/file_analyzer.py +17 -12
  127. jarvis/jarvis_tools/generate_new_tool.py +46 -24
  128. jarvis/jarvis_tools/read_code.py +277 -18
  129. jarvis/jarvis_tools/read_symbols.py +141 -0
  130. jarvis/jarvis_tools/read_webpage.py +86 -13
  131. jarvis/jarvis_tools/registry.py +294 -90
  132. jarvis/jarvis_tools/retrieve_memory.py +227 -0
  133. jarvis/jarvis_tools/save_memory.py +194 -0
  134. jarvis/jarvis_tools/search_web.py +62 -28
  135. jarvis/jarvis_tools/sub_agent.py +205 -0
  136. jarvis/jarvis_tools/sub_code_agent.py +217 -0
  137. jarvis/jarvis_tools/virtual_tty.py +330 -62
  138. jarvis/jarvis_utils/builtin_replace_map.py +4 -5
  139. jarvis/jarvis_utils/clipboard.py +90 -0
  140. jarvis/jarvis_utils/config.py +607 -50
  141. jarvis/jarvis_utils/embedding.py +3 -0
  142. jarvis/jarvis_utils/fzf.py +57 -0
  143. jarvis/jarvis_utils/git_utils.py +251 -29
  144. jarvis/jarvis_utils/globals.py +174 -17
  145. jarvis/jarvis_utils/http.py +58 -79
  146. jarvis/jarvis_utils/input.py +899 -153
  147. jarvis/jarvis_utils/methodology.py +210 -83
  148. jarvis/jarvis_utils/output.py +220 -137
  149. jarvis/jarvis_utils/utils.py +1906 -135
  150. jarvis_ai_assistant-0.7.0.dist-info/METADATA +465 -0
  151. jarvis_ai_assistant-0.7.0.dist-info/RECORD +192 -0
  152. {jarvis_ai_assistant-0.1.222.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/entry_points.txt +8 -2
  153. jarvis/jarvis_git_details/main.py +0 -265
  154. jarvis/jarvis_platform/oyi.py +0 -357
  155. jarvis/jarvis_tools/edit_file.py +0 -255
  156. jarvis/jarvis_tools/rewrite_file.py +0 -195
  157. jarvis_ai_assistant-0.1.222.dist-info/METADATA +0 -767
  158. jarvis_ai_assistant-0.1.222.dist-info/RECORD +0 -110
  159. /jarvis/{jarvis_git_details → jarvis_memory_organizer}/__init__.py +0 -0
  160. {jarvis_ai_assistant-0.1.222.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/WHEEL +0 -0
  161. {jarvis_ai_assistant-0.1.222.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/licenses/LICENSE +0 -0
  162. {jarvis_ai_assistant-0.1.222.dist-info → jarvis_ai_assistant-0.7.0.dist-info}/top_level.txt +0 -0
@@ -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,26 +2,32 @@
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
8
- jarvis-git-details = jarvis.jarvis_git_details.main:main
9
9
  jarvis-git-squash = jarvis.jarvis_git_squash.main:main
10
+ jarvis-memory-organizer = jarvis.jarvis_memory_organizer.memory_organizer:main
10
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
17
+ jarvis-stats = jarvis.jarvis_stats.cli:main
15
18
  jarvis-tool = jarvis.jarvis_tools.cli.main:main
19
+ jc2r = jarvis.jarvis_c2rust.cli:main
16
20
  jca = jarvis.jarvis_code_agent.code_agent:main
17
21
  jcr = jarvis.jarvis_code_analysis.code_review:main
18
22
  jgc = jarvis.jarvis_git_utils.git_commiter:main
19
- jgd = jarvis.jarvis_git_details.main:main
20
23
  jgs = jarvis.jarvis_git_squash.main:main
21
24
  jm = jarvis.jarvis_methodology.main:main
22
25
  jma = jarvis.jarvis_multi_agent.main:main
26
+ jmo = jarvis.jarvis_memory_organizer.memory_organizer:main
23
27
  jpm = jarvis.jarvis_platform_manager.main:main
24
28
  jrg = jarvis.jarvis_rag.cli:main
29
+ jsec = jarvis.jarvis_sec.cli:main
25
30
  jss = jarvis.jarvis_smart_shell.main:main
31
+ jst = jarvis.jarvis_stats.cli:main
26
32
  jt = jarvis.jarvis_tools.cli.main:main
27
33
  jvs = jarvis.jarvis_agent.jarvis:main
@@ -1,265 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """Git Commit分析工具模块
3
-
4
- 该模块提供了一个GitCommitAnalyzer类,用于获取和分析指定Git commit的详细信息,
5
- 包括提交信息、修改内容以及详细的功能、原因和逻辑分析。
6
- """
7
-
8
- import os
9
- import re
10
- import subprocess
11
- from typing import Any, Dict
12
-
13
- from jarvis.jarvis_agent import Agent
14
- from jarvis.jarvis_platform.registry import PlatformRegistry
15
- from jarvis.jarvis_tools.registry import ToolRegistry
16
- from jarvis.jarvis_utils.output import OutputType, PrettyOutput
17
- from jarvis.jarvis_utils.tag import ct, ot
18
- from jarvis.jarvis_utils.utils import init_env
19
-
20
-
21
- class GitCommitAnalyzer:
22
- """Git Commit分析器
23
-
24
- 该类用于获取和分析指定Git commit的详细信息,包括:
25
- - 完整的提交信息
26
- - 修改的文件列表和状态
27
- - 修改的功能、原因和逻辑分析
28
- """
29
-
30
- def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
31
- """执行commit分析
32
-
33
- Args:
34
- args: 包含commit_sha/commit_range和root_dir的参数字典
35
- commit_sha: 单个commit的SHA
36
- commit_range: 两个commit的SHA范围,格式为"commit1..commit2"
37
- root_dir: 代码库根目录
38
-
39
- Returns:
40
- 包含分析结果的字典
41
- """
42
- try:
43
- commit_sha = args.get("commit_sha")
44
- commit_range = args.get("commit_range")
45
- root_dir = args.get("root_dir", ".")
46
-
47
- if commit_range:
48
- return self.analyze_commit_range(commit_range, root_dir)
49
- elif commit_sha:
50
- return self.analyze_single_commit(commit_sha, root_dir)
51
- else:
52
- raise ValueError("Either commit_sha or commit_range must be provided")
53
- except Exception as e:
54
- return {
55
- "success": False,
56
- "stdout": {},
57
- "stderr": f"Failed to analyze commit: {str(e)}",
58
- }
59
-
60
- def analyze_single_commit(self, commit_sha: str, root_dir: str) -> Dict[str, Any]:
61
- """分析单个commit
62
-
63
- Args:
64
- commit_sha: commit的SHA
65
- root_dir: 代码库根目录
66
-
67
- Returns:
68
- 包含分析结果的字典
69
- """
70
- original_dir = os.getcwd()
71
- try:
72
- os.chdir(root_dir)
73
-
74
- # 获取commit详细信息
75
- commit_info = subprocess.check_output(
76
- f"git show {commit_sha} --pretty=fuller", shell=True, text=True
77
- )
78
-
79
- # 获取commit修改内容
80
- diff_content = subprocess.check_output(
81
- f"git show {commit_sha} --patch", shell=True, text=True
82
- )
83
-
84
- # 分析commit的功能、原因和逻辑
85
- analysis_result = self._analyze_diff_content(diff_content)
86
-
87
- return {
88
- "success": True,
89
- "stdout": {
90
- "commit_info": commit_info,
91
- "diff_content": diff_content,
92
- "analysis_result": analysis_result,
93
- },
94
- "stderr": "",
95
- }
96
- except subprocess.CalledProcessError as error:
97
- return {
98
- "success": False,
99
- "stdout": {},
100
- "stderr": f"Failed to analyze commit: {str(error)}",
101
- }
102
- finally:
103
- os.chdir(original_dir)
104
-
105
- def analyze_commit_range(self, commit_range: str, root_dir: str) -> Dict[str, Any]:
106
- """分析两个commit之间的代码变更
107
-
108
- Args:
109
- commit_range: 两个commit的SHA范围,格式为"commit1..commit2"
110
- root_dir: 代码库根目录
111
-
112
- Returns:
113
- 包含分析结果的字典
114
- """
115
- original_dir = os.getcwd()
116
- try:
117
- os.chdir(root_dir)
118
-
119
- # 获取commit范围差异
120
- diff_content = subprocess.check_output(
121
- f"git diff {commit_range} --patch", shell=True, text=True
122
- )
123
-
124
- # 获取commit范围信息
125
- commit_info = subprocess.check_output(
126
- f"git log {commit_range} --pretty=fuller", shell=True, text=True
127
- )
128
-
129
- # 使用相同的分析方法处理差异内容
130
- analysis_result = self._analyze_diff_content(diff_content)
131
-
132
- return {
133
- "success": True,
134
- "stdout": {
135
- "commit_info": commit_info,
136
- "diff_content": diff_content,
137
- "analysis_result": analysis_result,
138
- },
139
- "stderr": "",
140
- }
141
- except subprocess.CalledProcessError as error:
142
- return {
143
- "success": False,
144
- "stdout": {},
145
- "stderr": f"Failed to analyze commit range: {str(error)}",
146
- }
147
- finally:
148
- os.chdir(original_dir)
149
-
150
- def _analyze_diff_content(self, diff_content: str) -> str:
151
- """分析diff内容并生成报告
152
-
153
- Args:
154
- diff_content: git diff或git show的输出内容
155
-
156
- Returns:
157
- 分析结果字符串
158
- """
159
- system_prompt = """你是一位资深代码分析专家,拥有多年代码审查和重构经验。你需要对Git commit进行深入分析,包括:
160
- 1. 修改的功能:明确说明本次commit实现或修改了哪些功能
161
- 2. 修改的原因:分析为什么要进行这些修改(如修复bug、优化性能、添加新功能等)
162
- 3. 修改的逻辑:详细说明代码修改的具体实现逻辑和思路
163
- 4. 影响范围:评估本次修改可能影响的其他模块或功能
164
- 5. 代码质量:分析代码风格、可读性和可维护性
165
- 6. 测试覆盖:评估是否需要添加或修改测试用例
166
- 7. 最佳实践:检查代码是否符合行业最佳实践和项目规范
167
-
168
- 请确保分析内容:
169
- - 准确反映commit的实际修改
170
- - 提供足够的技术细节
171
- - 保持结构清晰,便于理解
172
- - 重点关注关键修改和潜在风险"""
173
-
174
- tool_registry = ToolRegistry()
175
- agent = Agent(
176
- system_prompt=system_prompt,
177
- name="Commit Analysis Agent",
178
- summary_prompt=f"""请生成一份详细的commit分析报告,包含以下内容:
179
- {ot("REPORT")}
180
- # 功能分析
181
- [说明本次commit实现或修改了哪些功能]
182
-
183
- # 修改原因
184
- [分析进行这些修改的原因,如修复bug、优化性能、添加新功能等]
185
-
186
- # 实现逻辑
187
- [详细说明代码修改的具体实现逻辑和思路]
188
-
189
- # 影响范围
190
- [评估本次修改可能影响的其他模块或功能]
191
-
192
- # 代码质量
193
- [分析代码风格、可读性和可维护性]
194
-
195
- # 测试覆盖
196
- [评估是否需要添加或修改测试用例]
197
-
198
- # 最佳实践
199
- [检查代码是否符合行业最佳实践和项目规范]
200
- {ct("REPORT")}""",
201
- output_handler=[tool_registry],
202
- llm_type="normal",
203
- auto_complete=True,
204
- )
205
-
206
- return agent.run(diff_content)
207
-
208
-
209
- def extract_analysis_report(result: str) -> str:
210
- """从分析结果中提取报告内容
211
-
212
- Args:
213
- result: 包含REPORT标签的完整分析结果字符串
214
-
215
- Returns:
216
- 提取的报告内容,如果未找到REPORT标签则返回空字符串
217
- """
218
- search_match = re.search(
219
- ot("REPORT") + r"\n(.*?)\n" + ct("REPORT"), result, re.DOTALL
220
- )
221
- if search_match:
222
- return search_match.group(1)
223
- return result
224
-
225
-
226
- def main():
227
- """主函数,用于命令行接口"""
228
- import argparse
229
-
230
- init_env("欢迎使用 Jarvis-GitCommitAnalyzer,您的Git Commit分析助手已准备就绪!")
231
-
232
- parser = argparse.ArgumentParser(description="Git Commit Analyzer")
233
- group = parser.add_mutually_exclusive_group(required=True)
234
- group.add_argument("commit", nargs="?", help="Commit SHA to analyze")
235
- group.add_argument(
236
- "--range", type=str, help="Commit range to analyze (commit1..commit2)"
237
- )
238
- parser.add_argument(
239
- "--root-dir", type=str, help="Root directory of the codebase", default="."
240
- )
241
-
242
- args = parser.parse_args()
243
-
244
- analyzer = GitCommitAnalyzer()
245
- if args.range:
246
- result = analyzer.execute(
247
- {"commit_range": args.range, "root_dir": args.root_dir}
248
- )
249
- else:
250
- result = analyzer.execute(
251
- {"commit_sha": args.commit, "root_dir": args.root_dir}
252
- )
253
-
254
- if result["success"]:
255
- PrettyOutput.section("Commit Information:", OutputType.SUCCESS)
256
- PrettyOutput.print(result["stdout"]["commit_info"], OutputType.CODE)
257
- PrettyOutput.section("Analysis Report:", OutputType.SUCCESS)
258
- report = extract_analysis_report(result["stdout"]["analysis_result"])
259
- PrettyOutput.print(report, OutputType.SUCCESS, lang="markdown")
260
- else:
261
- PrettyOutput.print(result["stderr"], OutputType.WARNING)
262
-
263
-
264
- if __name__ == "__main__":
265
- main()