jarvis-ai-assistant 1.0.2__tar.gz → 1.0.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. {jarvis_ai_assistant-1.0.2/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-1.0.9}/PKG-INFO +273 -129
  2. jarvis_ai_assistant-1.0.9/README.md +573 -0
  3. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/pyproject.toml +4 -1
  4. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/setup.py +4 -2
  5. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/__init__.py +1 -1
  6. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/__init__.py +42 -44
  7. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/agent_manager.py +1 -0
  8. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/builtin_input_handler.py +31 -30
  9. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/event_bus.py +3 -5
  10. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/file_context_handler.py +12 -7
  11. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/file_methodology_manager.py +20 -12
  12. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/jarvis.py +14 -60
  13. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/java_extractor.py +18 -9
  14. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/javascript_extractor.py +1 -1
  15. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/typescript_extractor.py +1 -1
  16. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_support_info.py +3 -5
  17. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/main.py +3 -2
  18. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/memory_manager.py +8 -6
  19. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/methodology_share_manager.py +1 -1
  20. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/prompt_manager.py +22 -3
  21. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/session_manager.py +2 -2
  22. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/share_manager.py +6 -9
  23. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/stdio_redirect.py +5 -4
  24. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/task_analyzer.py +10 -8
  25. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/task_list.py +18 -16
  26. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/task_manager.py +4 -4
  27. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/tool_share_manager.py +1 -1
  28. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/utils.py +2 -2
  29. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/web_bridge.py +5 -6
  30. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/web_output_sink.py +2 -2
  31. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/web_server.py +11 -12
  32. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/cli.py +21 -3
  33. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/collector.py +3 -2
  34. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer.py +2 -0
  35. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer_llm.py +28 -21
  36. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_executor.py +28 -11
  37. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/loaders.py +1 -1
  38. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer.py +7 -12
  39. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_clippy.py +3 -46
  40. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_options.py +1 -1
  41. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_progress.py +7 -5
  42. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/scanner.py +10 -10
  43. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler.py +173 -34
  44. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_agents.py +14 -11
  45. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_build.py +272 -32
  46. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_codegen.py +70 -5
  47. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_executor.py +29 -26
  48. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_generation.py +32 -16
  49. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_mod_utils.py +3 -2
  50. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_modules.py +120 -2
  51. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_planning.py +25 -8
  52. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_review.py +0 -21
  53. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_symbols.py +4 -3
  54. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/builtin_rules.py +6 -3
  55. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent.py +98 -22
  56. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_diff.py +3 -1
  57. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_rules.py +8 -6
  58. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py +1 -1
  59. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py +1 -1
  60. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/context_manager.py +2 -2
  61. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py +3 -3
  62. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/language_registry.py +1 -1
  63. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py +2 -2
  64. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py +1 -1
  65. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/java_language.py +1 -1
  66. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/javascript_language.py +1 -1
  67. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py +1 -1
  68. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py +1 -1
  69. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/typescript_language.py +1 -1
  70. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py +6 -9
  71. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py +6 -6
  72. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py +2 -3
  73. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/diff_visualizer.py +5 -5
  74. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/rule_share_manager.py +1 -1
  75. jarvis_ai_assistant-1.0.9/src/jarvis/jarvis_config/__init__.py +12 -0
  76. jarvis_ai_assistant-1.0.9/src/jarvis/jarvis_config/cli.py +140 -0
  77. jarvis_ai_assistant-1.0.9/src/jarvis/jarvis_config/schema_parser.py +618 -0
  78. jarvis_ai_assistant-1.0.9/src/jarvis/jarvis_config/web_app.py +1413 -0
  79. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_data/config_schema.json +19 -57
  80. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_git_utils/git_commiter.py +8 -1
  81. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/base.py +2 -2
  82. jarvis_ai_assistant-1.0.9/src/jarvis/jarvis_platform/claude.py +322 -0
  83. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/openai.py +31 -6
  84. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/registry.py +51 -6
  85. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform_manager/main.py +28 -4
  86. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/__init__.py +8 -7
  87. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/agents.py +5 -6
  88. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/analysis.py +102 -90
  89. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/checkers/c_checker.py +118 -2
  90. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/clustering.py +187 -162
  91. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/file_manager.py +8 -8
  92. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/parsers.py +5 -1
  93. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/report.py +13 -13
  94. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/review.py +31 -31
  95. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/status.py +9 -9
  96. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/utils.py +24 -22
  97. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/verification.py +39 -35
  98. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/workflow.py +4 -9
  99. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_stats/cli.py +11 -11
  100. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_stats/stats.py +9 -9
  101. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_stats/storage.py +7 -7
  102. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/base.py +7 -8
  103. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/clear_memory.py +1 -1
  104. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/cli/main.py +5 -5
  105. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/edit_file.py +6 -1
  106. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/execute_script.py +32 -5
  107. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/meta_agent.py +4 -3
  108. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/methodology.py +2 -2
  109. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/read_code.py +16 -10
  110. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/read_symbols.py +1 -1
  111. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/registry.py +17 -5
  112. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/retrieve_memory.py +2 -2
  113. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/save_memory.py +1 -1
  114. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/search_web.py +7 -2
  115. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/sub_agent.py +2 -3
  116. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/sub_code_agent.py +11 -4
  117. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/task_list_manager.py +500 -130
  118. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/virtual_tty.py +1 -1
  119. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/collections.py +7 -9
  120. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/config.py +99 -68
  121. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/dialogue_recorder.py +1 -1
  122. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/git_utils.py +3 -5
  123. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/globals.py +3 -1
  124. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/http.py +5 -5
  125. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/input.py +28 -29
  126. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/jsonnet_compat.py +15 -12
  127. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/methodology.py +16 -4
  128. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/output.py +64 -3
  129. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/utils.py +118 -267
  130. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9/src/jarvis_ai_assistant.egg-info}/PKG-INFO +273 -129
  131. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +5 -18
  132. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis_ai_assistant.egg-info/entry_points.txt +2 -0
  133. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis_ai_assistant.egg-info/requires.txt +1 -0
  134. jarvis_ai_assistant-1.0.2/README.md +0 -430
  135. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/code_agent_llm.py +0 -159
  136. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/clean_code.md +0 -144
  137. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/code_review.md +0 -115
  138. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/documentation.md +0 -165
  139. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/generate_rules.md +0 -52
  140. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/performance.md +0 -158
  141. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/refactoring.md +0 -139
  142. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/security.md +0 -160
  143. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/rules/tdd.md +0 -78
  144. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/cpp_test.md +0 -118
  145. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/go_test.md +0 -98
  146. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/java_test.md +0 -99
  147. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/javascript_test.md +0 -113
  148. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/php_test.md +0 -117
  149. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/python_test.md +0 -91
  150. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/ruby_test.md +0 -102
  151. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_code_agent/test_rules/rust_test.md +0 -86
  152. jarvis_ai_assistant-1.0.2/src/jarvis/jarvis_tools/file_analyzer.py +0 -116
  153. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/LICENSE +0 -0
  154. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/MANIFEST.in +0 -0
  155. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/setup.cfg +0 -0
  156. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/config_editor.py +0 -0
  157. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/events.py +0 -0
  158. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/__init__.py +0 -0
  159. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/c_extractor.py +0 -0
  160. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/cpp_extractor.py +0 -0
  161. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/go_extractor.py +0 -0
  162. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/python_extractor.py +0 -0
  163. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/language_extractors/rust_extractor.py +0 -0
  164. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  165. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
  166. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/prompts.py +0 -0
  167. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/protocols.py +0 -0
  168. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/run_loop.py +0 -0
  169. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  170. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
  171. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_agent/user_interaction.py +0 -0
  172. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/__init__.py +0 -0
  173. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/constants.py +0 -0
  174. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer_checkpoint.py +0 -0
  175. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer_loader.py +0 -0
  176. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer_output.py +0 -0
  177. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer_prompts.py +0 -0
  178. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/library_replacer_utils.py +0 -0
  179. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent.py +0 -0
  180. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_apply.py +0 -0
  181. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_loader.py +0 -0
  182. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_prompts.py +0 -0
  183. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_types.py +0 -0
  184. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_utils.py +0 -0
  185. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/llm_module_agent_validator.py +0 -0
  186. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/models.py +0 -0
  187. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_build_fix.py +0 -0
  188. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_config.py +0 -0
  189. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_docs.py +0 -0
  190. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_report.py +0 -0
  191. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_unsafe.py +0 -0
  192. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_utils.py +0 -0
  193. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/optimizer_visibility.py +0 -0
  194. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_compile.py +0 -0
  195. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_config.py +0 -0
  196. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_context.py +0 -0
  197. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/transpiler_git.py +0 -0
  198. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_c2rust/utils.py +0 -0
  199. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  200. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/after_change.py +0 -0
  201. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/build_validation_config.py +0 -0
  202. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_build.py +0 -0
  203. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_git.py +0 -0
  204. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_impact.py +0 -0
  205. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_lint.py +0 -0
  206. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_postprocess.py +0 -0
  207. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_agent_prompts.py +0 -0
  208. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/__init__.py +0 -0
  209. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/base_language.py +0 -0
  210. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py +0 -0
  211. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py +0 -0
  212. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py +0 -0
  213. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py +0 -0
  214. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py +0 -0
  215. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py +0 -0
  216. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py +0 -0
  217. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py +0 -0
  218. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py +0 -0
  219. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py +0 -0
  220. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py +0 -0
  221. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/build_validator.py +0 -0
  222. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/context_recommender.py +0 -0
  223. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/file_ignore.py +0 -0
  224. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py +0 -0
  225. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/language_support.py +0 -0
  226. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py +0 -0
  227. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  228. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_agent/utils.py +0 -0
  229. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  230. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  231. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  232. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  233. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  234. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  235. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  236. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  237. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  238. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  239. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  240. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  241. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  242. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  243. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  244. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  245. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  246. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  247. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  248. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  249. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  250. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  251. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  252. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_git_squash/main.py +0 -0
  253. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  254. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  255. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  256. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  257. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
  258. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
  259. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_methodology/main.py +0 -0
  260. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  261. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  262. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/__init__.py +0 -0
  263. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/human.py +0 -0
  264. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/kimi.py +0 -0
  265. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  266. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
  267. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  268. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  269. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/README_CONFIG.md +0 -0
  270. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/README_DYNAMIC_LOADING.md +0 -0
  271. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/README_ONLINE_MODELS.md +0 -0
  272. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/__init__.py +0 -0
  273. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/cache.py +0 -0
  274. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/cli.py +0 -0
  275. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embedding_interface.py +0 -0
  276. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
  277. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/__init__.py +0 -0
  278. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/base.py +0 -0
  279. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/cohere.py +0 -0
  280. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/edgefn.py +0 -0
  281. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/local.py +0 -0
  282. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/openai.py +0 -0
  283. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/embeddings/registry.py +0 -0
  284. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
  285. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
  286. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
  287. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/reranker.py +0 -0
  288. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/reranker_interface.py +0 -0
  289. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/__init__.py +0 -0
  290. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/base.py +0 -0
  291. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/cohere.py +0 -0
  292. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/edgefn.py +0 -0
  293. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/jina.py +0 -0
  294. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/local.py +0 -0
  295. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/rerankers/registry.py +0 -0
  296. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_rag/retriever.py +0 -0
  297. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/checkers/__init__.py +0 -0
  298. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/checkers/rust_checker.py +0 -0
  299. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/cli.py +0 -0
  300. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/prompts.py +0 -0
  301. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_sec/types.py +0 -0
  302. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  303. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  304. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_stats/__init__.py +0 -0
  305. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_stats/visualizer.py +0 -0
  306. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/__init__.py +0 -0
  307. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  308. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  309. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/__init__.py +0 -0
  310. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  311. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/clipboard.py +0 -0
  312. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/embedding.py +0 -0
  313. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  314. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/fzf.py +0 -0
  315. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis/jarvis_utils/tag.py +0 -0
  316. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  317. {jarvis_ai_assistant-1.0.2 → jarvis_ai_assistant-1.0.9}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 1.0.2
3
+ Version: 1.0.9
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
@@ -52,6 +52,7 @@ Requires-Dist: python-Levenshtein==0.25.1
52
52
  Requires-Dist: tiktoken==0.7.0
53
53
  Requires-Dist: pillow==10.2.0
54
54
  Requires-Dist: openai==1.78.1
55
+ Requires-Dist: anthropic>=0.40.0
55
56
  Requires-Dist: tabulate==0.9.0
56
57
  Requires-Dist: pyte==0.8.2
57
58
  Requires-Dist: pyyaml>=5.3.1
@@ -193,61 +194,88 @@ Dynamic: requires-python
193
194
 
194
195
  [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
195
196
 
196
- *您的智能开发和系统交互助手*
197
+ _您的智能开发和系统交互助手_
197
198
 
198
199
  [快速开始](#quick-start) • [核心功能](#core-features) • [配置说明](#configuration) • [Jarvis Book](#jarvis-book) • [Wiki文档](docs/jarvis_book/1.项目介绍.md) • [贡献指南](#contributing) • [许可证](#license)
200
+
199
201
  </div>
200
202
 
201
203
  ---
202
204
 
203
205
  ## 🎯 定位与优势
204
206
 
205
- Jarvis 的定位是**个人开发者的高效助理**,旨在将研发流程中一次性、碎片化的工作变得更加流畅和高效。这与 `workflow` 形式的 `Agent` 平台(如 Dify)有着本质区别,专注于提升个人生产力。
207
+ Jarvis 的定位是**AI应用开发SDK**,提供强大而灵活的基础组件,帮助开发者快速构建专业的AI应用。与传统的`workflow`形式Agent平台(如Dify)不同,Jarvis以Python SDK的形式提供,强调可编程性和可扩展性,让开发者能够自由定制AI应用的行为和逻辑。
206
208
 
207
209
  ### Jarvis 的核心优势
208
210
 
209
- 1. **访问本地资源**: Jarvis 能够直接与您的本地环境交互,执行诸如**软件开发、代码修复、环境搭建**等需要本地文件系统和工具链的复杂任务。
210
- 2. **纯粹的命令行体验**: 作为一款纯命令行工具,Jarvis 可以无缝集成到您喜爱的任何IDE、终端或SSH会话中,不干扰您现有的工作流程。
211
- 3. **Python包形式提供**: Jarvis 以标准的Python包形式分发,可以轻松地作为依赖项集成到您自己构建的AI应用或自动化脚本中。
211
+ 1. **强大而灵活的基础组件**: 提供 `Agent` 和 `CodeAgent` 等精心设计的基础组件,开发者可以快速基于这些组件构建专业的AI应用,无需从零开始。
212
+ 2. **高度可编程的SDK**: 以纯Python SDK形式提供,开发者可以自由组合各种能力,编写符合自己业务逻辑的AI应用,而非受限于固定的工作流。
213
+ 3. **开箱即用的工具生态**: 内置丰富的工具集(代码分析、文件操作、命令执行等),开发者可以直接使用,也可以轻松扩展自定义工具。
212
214
 
213
215
  ### 💡 Jarvis 的价值:工作流对比
214
216
 
215
- #### 示例一:开发新功能
217
+ #### 示例一:开发代码分析Agent
218
+
219
+ **传统开发方式 (没有 Jarvis SDK):**
220
+
221
+ 1. **设计Agent架构**: 从零开始设计Agent的决策流程、工具调用机制、上下文管理等核心模块。
222
+ 2. **实现工具系统**: 手动实现工具注册、参数解析、结果处理等基础设施。
223
+ 3. **集成LLM**: 编写代码调用各种大模型API,处理流式输出、错误重试等复杂逻辑。
224
+ 4. **开发特定能力**: 针对代码分析需求,实现代码解析、符号查找、编辑操作等专门功能。
225
+ 5. **测试与调试**: 反复测试Agent行为,修复各种边界情况和错误场景。
226
+
227
+ > 这个过程需要大量时间和精力投入在基础设施开发上,而非核心业务逻辑。
228
+
229
+ **使用 Jarvis SDK 开发:**
230
+
231
+ ```python
232
+ from jarvis import CodeAgent
233
+
234
+ # 创建CodeAgent实例,内置代码分析、编辑、执行等能力
235
+ agent = CodeAgent()
216
236
 
217
- **传统工作流 (没有 Jarvis):**
237
+ # 让Agent自主完成任务,自动使用内置工具
238
+ result = agent.run('为 user/service.py 添加用户profile接口')
218
239
 
219
- 1. **理解需求**: 阅读需求文档,在代码库中全局搜索,定位可能需要修改的文件和函数。
220
- 2. **切换上下文**: 在IDE、浏览器(查资料)、终端(执行命令)之间反复切换。
221
- 3. **编写代码**: 手动编写新功能、单元测试和相关文档。
222
- 4. **调试**: 反复运行、打印日志、设置断点来定位和修复bug。
223
- 5. **代码提交**: 手动检查代码变更,撰写符合团队规范的 Git Commit Message。
240
+ # CodeAgent会自动:
241
+ # 1. 分析代码结构,定位相关文件
242
+ # 2. 使用read_code读取文件内容
243
+ # 3. 使用edit_file精确修改代码
244
+ # 4. 使用execute_script运行测试
245
+ # 5. 验证修改是否成功
246
+ ```
247
+
248
+ > 通过 Jarvis SDK,开发者只需几行代码就能构建功能完善的AI应用,将精力集中在**业务逻辑和用户体验**等高价值活动上,而非重复造轮子。
224
249
 
225
- > 这个过程不仅耗时,而且频繁的上下文切换极易打断心流,消耗大量精力。
250
+ #### 示例二:开发文档生成Agent
226
251
 
227
- **Jarvis 增强工作流:**
252
+ 基于Jarvis SDK,您可以轻松构建文档生成Agent,自动维护项目文档。
228
253
 
229
- 1. **任务启动**: 在项目根目录,用自然语言向 `jca` (代码助理) 描述需求:`jca "为 'user' 模块增加 'profile' 接口,需要包含用户信息查询和更新功能"`。
230
- 2. **AI 分析与编码**:
231
- * Jarvis 使用代码分析工具自动分析代码结构,通过符号名称快速定位相关文件 (`user/service.py`, `user/controller.py`, `tests/test_user.py`)。
232
- * 使用代码编辑工具精确修改代码,自动生成新接口的代码、必要的单元测试,并提出修改方案。
233
- * 自动检查依赖关系,确保修改不会破坏现有功能。
234
- 3. **人机协作与迭代**:
235
- * 你审查 AI 生成的代码,并提出修改意见:`"字段名需要用驼峰式"` 或 `"增加一个输入校验"`。
236
- * Jarvis 根据反馈快速迭代,更新代码。
237
- 4. **自动化提交**:
238
- * 完成开发后,执行 `jgc` (Git 提交助理)。
239
- * Jarvis 自动分析代码变更,生成一条规范的 Git Commit Message (例如: `feat(user): add user profile api with query and update`)。
254
+ ```python
255
+ from jarvis import Agent
240
256
 
241
- > 通过 Jarvis,整个流程从"手动执行"变为了"监督和指导",开发者可以将精力集中在**架构设计和代码审查**等高价值活动上,而不是繁琐的编码和调试细节。
257
+ # 创建文档生成Agent,通过system_prompt定制行为
258
+ agent = Agent(
259
+ system_prompt="""你是一个专业的文档维护助手。
260
+ 能够分析现有文档,并根据指令改进文档内容。
261
+ """,
262
+ name="DocGenerator"
263
+ )
242
264
 
243
- #### 示例二:用 Jarvis 完善本文档
265
+ # 让Agent自主完成文档维护任务
266
+ agent.run('分析README.md,补充用户群体和应用场景信息')
244
267
 
245
- 您正在阅读的这部分文档,其诞生过程本身就是 Jarvis 价值的体现。
268
+ # 继续迭代文档
269
+ agent.run('在README中增加一个工作流对比示例')
270
+
271
+ # Agent会自动:
272
+ # 1. 使用read_code读取文档内容
273
+ # 2. 分析现有结构和风格
274
+ # 3. 使用edit_file精确修改文档
275
+ # 4. 确保格式和风格一致
276
+ ```
246
277
 
247
- 1. **初始指令**: `“在README.md中补充jarvis的用户群体和应用场景等信息”`
248
- 2. **探索与学习**: Jarvis 使用 `fd` 和 `read_code` 工具,分析了 `docs/` 目录下的说明文档,快速学习了项目的核心定位和功能。
249
- 3. **迭代完善**: 根据 “补充用户群体”、“增加工作流对比”、“再增加一个例子” 等一系列追加指令,Jarvis 通过多次 `PATCH` 操作,逐步、精确地将新内容添加到本文档的指定位置。
250
- 4. **人机协作**: 在整个过程中,人类提供高层次的目标和方向,Jarvis 负责具体的探索、总结和代码(文档)修改任务,将一个模糊的想法快速落地为结构清晰的文档。
278
+ > 通过简单的SDK调用,就能构建出功能完善的文档生成Agent,将文档维护从手动操作转为自动化流程。
251
279
 
252
280
  ### Vibe Working: 一种更直觉的工作流
253
281
 
@@ -255,13 +283,13 @@ Jarvis 的核心理念与一种新兴的人机协作模式 **"Vibe Working"** (
255
283
 
256
284
  这不再是传统的“指令-执行”模式,而是一种**对话式、迭代式**的共同创造过程。
257
285
 
258
- * **从一个“感觉”开始**: 传统的自动化需要精确的输入和规则。而使用 Jarvis,你可以从一个模糊的目标开始,比如 `jca "给我写个脚本,监控这个网站的变化"` 或者 `jca "重构 'user' 模块,让它看起来更清爽"`。你提供的是方向和“感觉”,而不是详细的规格书。
286
+ - **从一个“感觉”开始**: 传统的自动化需要精确的输入和规则。而使用 Jarvis,你可以从一个模糊的目标开始,比如 `jca "给我写个脚本,监控这个网站的变化"` 或者 `jca "重构 'user' 模块,让它看起来更清爽"`。你提供的是方向和“感觉”,而不是详细的规格书。
259
287
 
260
- * **迭代中逼近完美**: Jarvis (或其背后的LLM) 会提供一个初步的实现。这个版本可能不完美,但它是一个坚实的起点。接下来,你通过反馈来指导它,比如 `“这个地方的逻辑不对,应该先检查A再处理B”` 或者 `“变量名能再语义化一点吗?”`。通过这种快速的反馈循环,AI的产出将逐步逼近你的真实意图。
288
+ - **迭代中逼近完美**: Jarvis (或其背后的LLM) 会提供一个初步的实现。这个版本可能不完美,但它是一个坚实的起点。接下来,你通过反馈来指导它,比如 `“这个地方的逻辑不对,应该先检查A再处理B”` 或者 `“变量名能再语义化一点吗?”`。通过这种快速的反馈循环,AI的产出将逐步逼近你的真实意图。
261
289
 
262
- * **人与AI的角色转变**:
263
- * **你 (人类)**: 扮演**创意总监、品味判断者和方向引领者**。你负责提供愿景、经验和高层次的判断力,确保最终结果的质量和方向。
264
- * **Jarvis (AI)**: 扮演**强大的执行伙伴和灵感催化剂**。它负责处理所有繁重、重复和技术性的细节,并能提供意想不到的解决方案,激发你的新想法。
290
+ - **人与AI的角色转变**:
291
+ - **你 (人类)**: 扮演**创意总监、品味判断者和方向引领者**。你负责提供愿景、经验和高层次的判断力,确保最终结果的质量和方向。
292
+ - **Jarvis (AI)**: 扮演**强大的执行伙伴和灵感催化剂**。它负责处理所有繁重、重复和技术性的细节,并能提供意想不到的解决方案,激发你的新想法。
265
293
 
266
294
  Jarvis 正是为这种工作流而设计的工具。它通过无缝的命令行集成和强大的本地交互能力,将 "Vibe Working" 从一个抽象概念,变为了开发者触手可及的日常生产力工具,让你能更专注于**高价值的创造性思考**,而非琐碎的实现细节。
267
295
 
@@ -269,14 +297,14 @@ Jarvis 正是为这种工作流而设计的工具。它通过无缝的命令行
269
297
 
270
298
  **谁适合使用 Jarvis?**
271
299
 
272
- * **个人开发者和极客**: 希望通过AI提升个人开发、学习和探索效率的用户。
273
- * **需要处理碎片化任务的工程师**: 面对各种一次性、非标准化的技术任务,例如快速编写脚本、调试代码、搭建新环境等。
274
- * **AI应用探索者**: 希望有一个灵活的本地框架来实验和集成不同的大语言模型和工具。
300
+ - **个人开发者和极客**: 希望通过AI提升个人开发、学习和探索效率的用户。
301
+ - **需要处理碎片化任务的工程师**: 面对各种一次性、非标准化的技术任务,例如快速编写脚本、调试代码、搭建新环境等。
302
+ - **AI应用探索者**: 希望有一个灵活的本地框架来实验和集成不同的大语言模型和工具。
275
303
 
276
304
  **谁可能不适合?**
277
305
 
278
- * **寻求固定工作流自动化的人**: 如果您的需求是高度固定和重复的,例如“每天定时抓取数据并生成报告”,那么编写一个专门的、功能单一的脚本可能是更直接、更高效的解决方案。Jarvis 更擅长处理多变和探索性的任务。
279
- * **企业级团队协作者**: Jarvis 被设计为个人工具,不包含团队管理、权限控制等面向企业级协作的功能。
306
+ - **寻求固定工作流自动化的人**: 如果您的需求是高度固定和重复的,例如“每天定时抓取数据并生成报告”,那么编写一个专门的、功能单一的脚本可能是更直接、更高效的解决方案。Jarvis 更擅长处理多变和探索性的任务。
307
+ - **企业级团队协作者**: Jarvis 被设计为个人工具,不包含团队管理、权限控制等面向企业级协作的功能。
280
308
 
281
309
  总之,Jarvis 是为每一位开发者量身打造的个人助手,而非用于团队协作的集中式平台。
282
310
 
@@ -286,10 +314,10 @@ Jarvis 正是为这种工作流而设计的工具。它通过无缝的命令行
286
314
 
287
315
  ### 系统要求
288
316
 
289
- * **Linux**: 完全支持。
290
-
291
- * **Windows**: 完全支持(需要 PowerShell)。
292
- * **Docker**: 支持通过 Docker 镜像使用,无需本地安装 Python/Rust 环境。
317
+ - **操作系统**: Jarvis 的许多核心工具依赖于Linux环境,因此目前主要支持在 **Linux** 系统下使用。
318
+ - **Windows用户**: 虽然未经原生测试,但 Windows 10/11 用户可以通过 **WSL (Windows Subsystem for Linux)** 来完整地体验 Jarvis 的所有功能。
319
+ - **Python版本**: 需要 Python 3.9 或更高版本(支持 3.9-3.12)。
320
+ - **Docker**(可选): 支持通过 Docker 镜像使用,无需本地安装 Python/Rust 环境。
293
321
 
294
322
  ### 安装
295
323
 
@@ -356,8 +384,8 @@ uv pip install .
356
384
 
357
385
  > **提示**: 安装完成后,建议将虚拟环境激活命令添加到您的 shell 配置文件中:
358
386
  >
359
- > * Bash/Zsh: 在 ~/.bashrc 或 ~/.zshrc 中添加 `source /path/to/Jarvis/.venv/bin/activate`
360
- > * Fish: 在 ~/.config/fish/config.fish 中添加 `source /path/to/Jarvis/.venv/bin/activate.fish`
387
+ > - Bash/Zsh: 在 ~/.bashrc 或 ~/.zshrc 中添加 `source /path/to/Jarvis/.venv/bin/activate`
388
+ > - Fish: 在 ~/.config/fish/config.fish 中添加 `source /path/to/Jarvis/.venv/bin/activate.fish`
361
389
 
362
390
  #### Docker 镜像安装 (推荐用于隔离环境)
363
391
 
@@ -375,9 +403,9 @@ docker pull ghcr.io/skyfireitdiy/jarvis:v1.0.0
375
403
 
376
404
  > **提示**:
377
405
  >
378
- > * 镜像默认公开,无需登录即可拉取
379
- > * 每次发布新版本时,会自动生成多个标签:`latest`、`v1.0.0`、`1.0`、`1` 等
380
- > * 建议使用 `latest` 标签获取最新版本
406
+ > - 镜像默认公开,无需登录即可拉取
407
+ > - 每次发布新版本时,会自动生成多个标签:`latest`、`v1.0.0`、`1.0`、`1` 等
408
+ > - 建议使用 `latest` 标签获取最新版本
381
409
 
382
410
  **使用 Docker Compose(推荐):**
383
411
 
@@ -390,9 +418,9 @@ docker-compose run --rm jarvis
390
418
 
391
419
  > **说明**:
392
420
  >
393
- > * 容器使用 jarvis 用户(UID 1000)运行,GID 可通过环境变量 `GID` 设置(默认 1000),建议设置为当前用户的组 ID 以避免文件权限问题
394
- > * 容器内创建的文件将属于 jarvis 用户,如果 GID 匹配宿主机组,外部可以直接访问,无需调整权限
395
- > * 配置文件(`.jarvis` 和 `.gitconfig`)会自动挂载到容器内用户的主目录
421
+ > - 容器使用 jarvis 用户(UID 1000)运行,GID 可通过环境变量 `GID` 设置(默认 1000),建议设置为当前用户的组 ID 以避免文件权限问题
422
+ > - 容器内创建的文件将属于 jarvis 用户,如果 GID 匹配宿主机组,外部可以直接访问,无需调整权限
423
+ > - 配置文件(`.jarvis` 和 `.gitconfig`)会自动挂载到容器内用户的主目录
396
424
 
397
425
  **直接使用 Docker 命令:**
398
426
 
@@ -401,13 +429,11 @@ docker-compose run --rm jarvis
401
429
  ```bash
402
430
  # 使用当前用户运行(推荐)
403
431
  docker run -it --rm \
404
- -u $(id -u):$(id -g) \
432
+ --user "$(id -u):$(id -g)" \
405
433
  -v $(pwd):/workspace \
406
- -v $HOME/.jarvis:/home/$(whoami)/.jarvis \
407
- -v $HOME/.gitconfig:/home/$(whoami)/.gitconfig:ro \
434
+ -v $HOME/.jarvis:/home/jarvis/.jarvis \
435
+ -v $HOME/.gitconfig:/home/jarvis/.gitconfig:ro \
408
436
  -w /workspace \
409
- -e USER=$(whoami) \
410
- -e HOME=/home/$(whoami) \
411
437
  ghcr.io/skyfireitdiy/jarvis:latest
412
438
  ```
413
439
 
@@ -440,13 +466,11 @@ docker build -t jarvis:latest .
440
466
 
441
467
  # 运行容器(非 root 用户,推荐)
442
468
  docker run -it --rm \
443
- -u $(id -u):$(id -g) \
469
+ --user "$(id -u):$(id -g)" \
444
470
  -v $(pwd):/workspace \
445
- -v $HOME/.jarvis:/home/$(whoami)/.jarvis \
446
- -v $HOME/.gitconfig:/home/$(whoami)/.gitconfig:ro \
471
+ -v $HOME/.jarvis:/home/jarvis/.jarvis \
472
+ -v $HOME/.gitconfig:/home/jarvis/.gitconfig:ro \
447
473
  -w /workspace \
448
- -e USER=$(whoami) \
449
- -e HOME=/home/$(whoami) \
450
474
  jarvis:latest
451
475
 
452
476
  # 或使用 root 用户
@@ -460,52 +484,123 @@ docker run -it --rm \
460
484
 
461
485
  > **提示**:
462
486
  >
463
- > * Docker 镜像已预装所有工具(Python 3.12、Rust、Clang、Fish shell 等),开箱即用
464
- > * 容器启动后会自动进入 fish shell,虚拟环境已激活
465
- > * 使用 `-v` 挂载目录可以方便地在容器内处理本地代码
466
- > * **推荐使用非 root 用户**,避免文件权限问题,容器内创建的文件可直接在宿主机访问
467
- > * 挂载 `.gitconfig` 可以保留 Git 用户信息,方便在容器内使用 Git
468
- > * 使用 Docker Compose 是最简单的方式,自动处理用户权限配置和文件挂载
469
- > * 推荐直接使用 GHCR 上的预构建镜像,无需本地构建
487
+ > - `$(pwd)` 可以替换为其他工程目录
488
+ > - `.gitconfig` 文件可以保留 Git 用户信息,方便在容器内使用 Git
489
+ > - `.jarvis` 文件可以保留主机 Jarvis 配置信息,方便在容器内使用 Jarvis
490
+ > - Docker 镜像已预装所有工具(Python 3.12、Rust、Clang、Fish shell 等),开箱即用
491
+ > - 容器启动后会自动进入 fish shell,虚拟环境已激活
492
+ > - 使用 `-v` 挂载目录可以方便地在容器内处理本地代码
493
+ > - **推荐使用非 root 用户**,避免文件权限问题,容器内创建的文件可直接在宿主机访问
494
+ > - 使用 Docker Compose 是最简单的方式,自动处理用户权限配置和文件挂载
495
+ > - 推荐直接使用 GHCR 上的预构建镜像,无需本地构建
470
496
 
471
497
  ### 基本使用
472
498
 
473
499
  Jarvis 包含一系列专注于不同任务的工具。以下是主要命令及其快捷方式:
474
500
 
475
- | 命令 | 快捷方式 | 功能描述 |
476
- |------|----------|----------|
477
- | `jarvis` | `jvs` | 通用AI代理,适用于多种任务 |
478
- | `jarvis-agent` | `ja` | AI代理基础功能,处理会话和任务 |
479
- | `jarvis-code-agent` | `jca` | 专注于代码分析、修改和生成的代码代理,支持智能符号分析 |
480
- | `jarvis-code-review` | `jcr` | 智能代码审查工具 |
481
- | `jarvis-git-commit` | `jgc` | 自动化分析代码变更并生成规范的Git提交信息 |
482
- | `jarvis-git-squash` | `jgs` | Git提交历史整理工具 |
483
- | `jarvis-platform-manager` | `jpm` | 管理和测试不同的大语言模型平台 |
484
- | `jarvis-multi-agent` | `jma` | 多智能体协作系统 |
485
- | `jarvis-tool` | `jt` | 工具管理与调用系统 |
486
- | `jarvis-methodology` | `jm` | 方法论知识库管理 |
487
- | `jarvis-rag` | `jrg` | 构建和查询本地化的RAG知识库 |
488
- | `jarvis-smart-shell` | `jss` | 实验性的智能Shell功能 |
489
- | `jarvis-stats` | `jst` | 通用统计模块,支持记录和可视化任意指标数据 |
490
- | `jarvis-memory-organizer` | `jmo` | 记忆管理工具,支持整理、合并、导入导出记忆 |
491
- | `jarvis-sec` | `jsec` | 安全分析套件,结合启发式扫描和 AI 深度验证,支持 C/C++ 和 Rust 语言 |
492
- | `jarvis-c2rust` | `jc2r` | C→Rust 迁移套件,支持渐进式迁移、断点续跑和智能库替代 |
501
+ | 命令 | 快捷方式 | 功能描述 |
502
+ | ------------------------- | -------- | ------------------------------------------------------------------------ |
503
+ | `jarvis` | `jvs` | 通用AI代理,适用于多种任务 |
504
+ | `jarvis-agent` | `ja` | AI代理基础功能,处理会话和任务 |
505
+ | `jarvis-code-agent` | `jca` | 专注于代码分析、修改和生成的代码代理,支持智能符号分析 |
506
+ | `jarvis-code-review` | `jcr` | 智能代码审查工具 |
507
+ | `jarvis-git-commit` | `jgc` | 自动化分析代码变更并生成规范的Git提交信息 |
508
+ | `jarvis-git-squash` | `jgs` | Git提交历史整理工具 |
509
+ | `jarvis-platform-manager` | `jpm` | 管理和测试不同的大语言模型平台 |
510
+ | `jarvis-multi-agent` | `jma` | 多智能体协作系统 |
511
+ | `jarvis-tool` | `jt` | 工具管理与调用系统 |
512
+ | `jarvis-methodology` | `jm` | 方法论知识库管理 |
513
+ | `jarvis-rag` | `jrg` | 构建和查询本地化的RAG知识库 |
514
+ | `jarvis-smart-shell` | `jss` | 实验性的智能Shell功能 |
515
+ | `jarvis-stats` | `jst` | 通用统计模块,支持记录和可视化任意指标数据 |
516
+ | `jarvis-memory-organizer` | `jmo` | 记忆管理工具,支持整理、合并、导入导出记忆 |
517
+ | `jarvis-sec` | `jsec` | 安全分析套件,结合启发式扫描和 AI 深度验证,支持 C/C++ 和 Rust 语言 |
518
+ | `jarvis-c2rust` | `jc2r` | C→Rust 迁移套件,支持渐进式迁移、断点续跑和智能库替代 |
519
+ | `jarvis-config` | `jcfg` | 配置管理工具,基于 JSON Schema 动态生成配置 Web 页面,提供可视化配置界面 |
493
520
 
494
521
  更多详细用法和参数,请查阅我们的 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
495
522
 
523
+ ### SDK 快速开始
524
+
525
+ Jarvis SDK 可以轻松集成到您的 Python 项目中。以下是一些快速上手的示例:
526
+
527
+ #### 使用 CodeAgent 处理代码任务
528
+
529
+ ```python
530
+ from jarvis import CodeAgent
531
+
532
+ # 创建 CodeAgent
533
+ agent = CodeAgent()
534
+
535
+ # 执行代码修改任务
536
+ agent.run('修复 user/service.py 中的登录验证 bug')
537
+ ```
538
+
539
+ #### 使用 Agent 构建专用应用
540
+
541
+ ```python
542
+ from jarvis import Agent
543
+
544
+ # 创建定制化的 Agent
545
+ agent = Agent(
546
+ system_prompt="你是一个数据分析师,专注于数据清洗和可视化。",
547
+ name="DataAnalyst"
548
+ )
549
+
550
+ # 执行数据分析任务
551
+ agent.run('分析 sales.csv 数据,生成月度销售趋势图')
552
+ ```
553
+
554
+ #### 在 Python 脚本中使用
555
+
556
+ ```python
557
+ from jarvis import CodeAgent
558
+ import os
559
+
560
+ # 设置工作目录
561
+ os.chdir('/path/to/your/project')
562
+
563
+ # 创建并运行 Agent
564
+ agent = CodeAgent()
565
+ result = agent.run('优化代码性能,减少数据库查询次数')
566
+
567
+ print(f"任务完成: {result}")
568
+ ```
569
+
570
+ > 💡 更多 SDK 使用示例和高级用法,请参阅 [开发者文档](docs/jarvis_book/)
571
+
496
572
  ---
497
573
 
498
574
  ## 🌟 核心功能 <a id="core-features"></a>
499
575
 
500
- * **🆓 零成本接入**: 无缝集成腾讯元宝、Kimi等优质模型,无需支付API费用。
501
- * **🛠️ 工具驱动**: 内置丰富工具集,涵盖脚本执行、代码开发、网页搜索、终端操作等。
502
- * **🤖 人机协作**: 支持实时交互,用户可随时介入指导,确保AI行为符合预期。
503
- * **🔌 高度可扩展**: 支持自定义工具、模型平台和MCP,轻松打造个性化工作流。
504
- * **🧠 RAG 增强**: 内置RAG功能,可将本地文档作为知识库,实现精准问答。
505
- * **💾 记忆系统**: 三层记忆架构(短期、项目长期、全局长期),支持知识持久化和智能检索。
506
- * **📚 方法论系统**: 将成功经验沉淀为可复用的方法论,支持本地和中心化共享。
507
- * **🛡️ 安全分析**: 内置安全扫描套件(jsec),支持启发式扫描和 AI 深度验证。
508
- * **🦀 代码迁移**: C→Rust 迁移套件(jc2r),支持渐进式迁移和断点续跑。
576
+ Jarvis SDK 提供强大的基础组件和可扩展能力,帮助开发者快速构建专业的AI应用。
577
+
578
+ ### 基础组件
579
+
580
+ - **Agent (通用AI代理)**: 提供完整的任务执行能力,支持工具调用、记忆管理、任务规划等核心功能。开发者只需通过 system_prompt 定义行为,即可快速定制专用Agent。
581
+ - **CodeAgent (代码专用代理)**: 继承自 Agent,专为代码任务优化。内置代码分析、符号查找、精确编辑、构建验证等专业能力,大幅简化代码类AI应用的开发。
582
+
583
+ ### 工具系统
584
+
585
+ - **丰富内置工具**: SDK内置 `read_code`、`edit_file`、`execute_script` 等30+工具,覆盖文件操作、代码分析、命令执行等常见场景。
586
+ - **轻松扩展自定义工具**: 通过简单接口即可添加自定义工具,无缝集成到Agent的工具链中,实现个性化能力扩展。
587
+
588
+ ### 能力模块
589
+
590
+ - **记忆系统**: 三层记忆架构(短期、项目长期、全局长期),支持知识持久化和智能检索,让Agent能够记住并复用关键信息。
591
+ - **RAG增强**: 内置RAG功能,可将本地文档作为知识库,实现精准的上下文增强和问答。
592
+ - **方法论系统**: 将成功经验沉淀为可复用的方法论,支持本地和中心化共享,提升任务执行效率。
593
+
594
+ ### 可扩展性
595
+
596
+ - **多模型支持**: 支持腾讯元宝、Kimi、OpenAI等多种模型平台,可根据需求灵活切换。
597
+ - **自定义模型平台**: 提供统一的平台接口,开发者可轻松集成新的LLM提供商。
598
+
599
+ ### 专业套件
600
+
601
+ - **安全分析**: 内置安全扫描套件(jsec),支持启发式扫描和AI深度验证,适用于C/C++和Rust语言。
602
+ - **代码迁移**: C→Rust迁移套件(jc2r),支持渐进式迁移和断点续跑。
603
+ - **代码审查**: 智能代码审查工具,自动化检查代码质量和潜在问题。
509
604
 
510
605
  ---
511
606
 
@@ -513,38 +608,75 @@ Jarvis 包含一系列专注于不同任务的工具。以下是主要命令及
513
608
 
514
609
  Jarvis 的主要配置文件位于 `~/.jarvis/config.yaml`。您可以在此文件中配置模型、平台和其他行为。
515
610
 
516
- **基本配置示例 (腾讯元宝):**
611
+ **首次运行配置:**
517
612
 
518
- ```yaml
519
- # ~/.jarvis/config.yaml
520
-
521
- # 使用的模型平台
522
- platform: yuanbao
523
- model: deep_seek_v3
613
+ 首次运行任何 Jarvis 命令时,系统会检测是否缺少配置文件。如果未找到配置,Jarvis 将自动启动交互式配置向导,引导您完成所有必要设置。
524
614
 
525
- # 用于“思考”步骤的模型,通常选择能力更强的模型
615
+ **基本配置示例(推荐使用新的配置方式):**
526
616
 
527
-
528
- # 平台所需的环境变量
617
+ ```yaml
618
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/skyfireitdiy/Jarvis/main/docs/schema/config.schema.json
619
+
620
+ # ====== 基础配置 ======
621
+ # 设置默认使用的模型组
622
+ llm_group: default
623
+
624
+ # ====== 模型组配置 ======
625
+ # 可以定义多个模型组,通过llm_group切换
626
+ llm_groups:
627
+ default: # 默认模型组
628
+ normal_llm: gpt-5 # 引用下面llms中定义的模型
629
+ # 可选配置廉价模型和智能模型
630
+ # cheap_llm: gpt-3.5-turbo
631
+ # smart_llm: gpt-5
632
+
633
+ # ====== 模型定义 ======
634
+ llms:
635
+ gpt-5:
636
+ platform: openai # 平台类型
637
+ model: gpt-5 # 模型名称
638
+ max_input_token_count: 128000 # 模型最大输入token数
639
+
640
+ # 模型特定配置 (llm_config)
641
+ llm_config:
642
+ openai_api_key: "your-api-key-here" # 替换为你的API密钥
643
+ openai_api_base: "https://api.openai.com/v1" # API基础地址,可用于代理
644
+ openai_extra_headers: '{"X-Source": "jarvis"}' # 额外的HTTP头(可选)
645
+
646
+ # ====== 环境变量配置 ======
647
+ # 旧版配置方式(仍支持,但推荐使用上面的 llm_config)
529
648
  ENV:
649
+ # 腾讯元宝
530
650
  YUANBAO_COOKIES: "在此处粘贴您的元宝Cookies"
651
+
652
+ # Kimi
653
+ KIMI_API_KEY: ""
654
+
655
+ # 通义千问
656
+ TONGYI_COOKIES: ""
657
+
658
+ # OpenAI
659
+ OPENAI_API_KEY: ""
660
+ OPENAI_API_BASE: ""
531
661
  ```
532
662
 
663
+ > **注意**: 新版本推荐使用 `llm_groups` 和 `llms` 配置方式,它提供了更灵活的模型管理能力。`ENV` 配置方式仍然支持,但建议迁移到新的配置方式。
664
+
533
665
  提示:错误回溯输出控制
534
666
 
535
- * 默认情况下,当 PrettyOutput 打印错误信息(OutputType.ERROR)时,不会自动打印回溯调用链。
536
- * 如需全局启用错误回溯,请在配置中设置:
667
+ - 默认情况下,当 PrettyOutput 打印错误信息(OutputType.ERROR)时,不会自动打印回溯调用链。
668
+ - 如需全局启用错误回溯,请在配置中设置:
537
669
 
538
670
  ```yaml
539
671
  print_error_traceback: true
540
672
  ```
541
673
 
542
- * 也可以在单次调用时通过传入 `traceback=True` 临时开启回溯打印。
674
+ - 也可以在单次调用时通过传入 `traceback=True` 临时开启回溯打印。
543
675
 
544
676
  提示:AI 工具筛选阈值
545
677
 
546
- * 当可用工具数量过多时,可能会干扰模型的决策。Jarvis 支持在可用工具数量超过阈值时,先让 AI 自动筛选相关工具再启动,以专注于本次任务。
547
- * 默认阈值为 30,可在配置中调整:
678
+ - 当可用工具数量过多时,可能会干扰模型的决策。Jarvis 支持在可用工具数量超过阈值时,先让 AI 自动筛选相关工具再启动,以专注于本次任务。
679
+ - 默认阈值为 30,可在配置中调整:
548
680
 
549
681
  ```yaml
550
682
  # ~/.jarvis/config.yaml
@@ -559,11 +691,22 @@ Jarvis 支持多种平台,包括 **Kimi**, **通义千问**, **OpenAI** 等。
559
691
 
560
692
  ## 🛠️ 扩展开发 <a id="extensions"></a>
561
693
 
562
- Jarvis 被设计为高度可扩展的框架。您可以轻松地:
694
+ Jarvis SDK 提供强大的可扩展能力,让您能够快速开发专业的AI应用。
695
+
696
+ ### 快速开发专业Agent
697
+
698
+ 基于 `Agent` 和 `CodeAgent` 基础组件,您可以快速构建各种专业Agent:
563
699
 
564
- * **添加新工具**: `~/.jarvis/tools/` 目录下创建新的工具实现。
565
- * **集成新LLM平台**: `~/.jarvis/platforms/` 目录下添加新的平台适配器。
566
- * **定义MCP**: 通过配置文件集成外部或自定义的命令协议。
700
+ - **文档助手**: 基于 Agent 定制 system_prompt,实现文档生成、维护和优化
701
+ - **代码分析器**: 基于 CodeAgent,利用内置代码分析能力,快速构建代码审查、重构工具
702
+ - **自动化测试**: 集成测试工具,自动化执行测试用例并分析结果
703
+ - **数据处理**: 扩展数据处理工具,实现自动化数据清洗、转换和分析
704
+
705
+ ### 扩展能力
706
+
707
+ - **自定义工具**: 在 `~/.jarvis/tools/` 目录下创建新的工具实现,无缝集成到Agent
708
+ - **集成新LLM平台**: 在 `~/.jarvis/platforms/` 目录下添加新的平台适配器
709
+ - **定义MCP**: 通过配置文件集成外部或自定义的命令协议
567
710
 
568
711
  有关扩展开发的详细指南和[**技术细节**](docs/technical_documentation.md),请访问我们的 [**开发者文档**](docs/jarvis_book/5.功能扩展.md)。
569
712
 
@@ -573,15 +716,15 @@ Jarvis 被设计为高度可扩展的框架。您可以轻松地:
573
716
 
574
717
  欢迎阅读 Jarvis 的官方文档,这本开源书籍旨在为您提供从入门到精通的全方位指南。
575
718
 
576
- * **[第一章:项目介绍](docs/jarvis_book/1.项目介绍.md)**
577
- * **[第二章:快速开始](docs/jarvis_book/2.快速开始.md)**
578
- * **[第三章:核心概念与架构](docs/jarvis_book/3.核心概念与架构.md)**
579
- * **[第四章:使用指南](docs/jarvis_book/4.使用指南.md)**
580
- * **[第五章:功能扩展](docs/jarvis_book/5.功能扩展.md)**
581
- * **[第六章:高级主题](docs/jarvis_book/6.高级主题.md)**
582
- * **[第七章:参与贡献](docs/jarvis_book/7.参与贡献.md)**
583
- * **[第八章:常见问题](docs/jarvis_book/8.常见问题.md)**
584
- * **[第九章:附录](docs/jarvis_book/9.附录.md)**
719
+ - **[第一章:项目介绍](docs/jarvis_book/1.项目介绍.md)**
720
+ - **[第二章:快速开始](docs/jarvis_book/2.快速开始.md)**
721
+ - **[第三章:核心概念与架构](docs/jarvis_book/3.核心概念与架构.md)**
722
+ - **[第四章:使用指南](docs/jarvis_book/4.使用指南.md)**
723
+ - **[第五章:功能扩展](docs/jarvis_book/5.功能扩展.md)**
724
+ - **[第六章:高级主题](docs/jarvis_book/6.高级主题.md)**
725
+ - **[第七章:参与贡献](docs/jarvis_book/7.参与贡献.md)**
726
+ - **[第八章:常见问题](docs/jarvis_book/8.常见问题.md)**
727
+ - **[第九章:附录](docs/jarvis_book/9.附录.md)**
585
728
 
586
729
  ---
587
730
 
@@ -599,8 +742,8 @@ Jarvis 被设计为高度可扩展的框架。您可以轻松地:
599
742
 
600
743
  ## ⚠️ 免责声明 <a id="disclaimer"></a>
601
744
 
602
- * **模型使用风险**: 频繁使用通过非官方API(如腾讯元宝、Kimi、通义千问等)接入的模型可能会导致您的账户被平台封禁。请合理使用,并自行承担相应风险。
603
- * **命令执行风险**: Jarvis具备执行系统命令的能力。请确保您了解将要执行的命令,并避免输入可能导致系统风险的指令。为了增强安全性,您可以在配置文件中启用工具执行确认(`JARVIS_EXECUTE_TOOL_CONFIRM: true`),以便在执行每个工具前进行手动确认。
745
+ - **模型使用风险**: 频繁使用通过非官方API(如腾讯元宝、Kimi、通义千问等)接入的模型可能会导致您的账户被平台封禁。请合理使用,并自行承担相应风险。
746
+ - **命令执行风险**: Jarvis具备执行系统命令的能力。请确保您了解将要执行的命令,并避免输入可能导致系统风险的指令。为了增强安全性,您可以在配置文件中启用工具执行确认(`execute_tool_confirm: true`),以便在执行每个工具前进行手动确认。
604
747
 
605
748
  ---
606
749
 
@@ -609,6 +752,7 @@ Jarvis 被设计为高度可扩展的框架。您可以轻松地:
609
752
  本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。
610
753
 
611
754
  ---
755
+
612
756
  <div align="center">
613
757
  由 Jarvis 团队用 ❤️ 制作
614
758
  </div>