jarvis-ai-assistant 0.5.1__tar.gz → 0.6.0__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 (166) hide show
  1. {jarvis_ai_assistant-0.5.1/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.6.0}/PKG-INFO +13 -1
  2. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/pyproject.toml +12 -2
  3. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/setup.py +9 -1
  4. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/__init__.py +1 -1
  5. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/__init__.py +15 -4
  6. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/agent_manager.py +3 -0
  7. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/jarvis.py +44 -14
  8. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/run_loop.py +6 -1
  9. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_planner.py +1 -0
  10. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/__init__.py +13 -0
  11. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/cli.py +405 -0
  12. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/collector.py +209 -0
  13. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/library_replacer.py +933 -0
  14. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/llm_module_agent.py +1265 -0
  15. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/scanner.py +1671 -0
  16. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/transpiler.py +1236 -0
  17. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_agent/code_agent.py +144 -18
  18. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_data/config_schema.json +8 -3
  19. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/cli/main.py +1 -0
  20. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/execute_script.py +1 -1
  21. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/read_code.py +11 -1
  22. jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_tools/read_symbols.py +129 -0
  23. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/registry.py +9 -1
  24. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/config.py +14 -4
  25. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/git_utils.py +39 -0
  26. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/utils.py +13 -5
  27. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0/src/jarvis_ai_assistant.egg-info}/PKG-INFO +13 -1
  28. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +8 -0
  29. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/entry_points.txt +2 -0
  30. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/requires.txt +18 -0
  31. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/LICENSE +0 -0
  32. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/MANIFEST.in +0 -0
  33. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/README.md +0 -0
  34. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/setup.cfg +0 -0
  35. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  36. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/config_editor.py +0 -0
  37. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
  38. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/event_bus.py +0 -0
  39. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/events.py +0 -0
  40. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/file_context_handler.py +0 -0
  41. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
  42. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/main.py +0 -0
  43. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
  44. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
  45. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  46. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
  47. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/prompt_manager.py +0 -0
  48. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/prompts.py +0 -0
  49. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/protocols.py +0 -0
  50. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/rewrite_file_handler.py +0 -0
  51. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/session_manager.py +0 -0
  52. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/share_manager.py +0 -0
  53. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  54. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/stdio_redirect.py +0 -0
  55. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
  56. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_manager.py +0 -0
  57. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
  58. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
  59. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/user_interaction.py +0 -0
  60. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/utils.py +0 -0
  61. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/web_bridge.py +0 -0
  62. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/web_output_sink.py +0 -0
  63. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/web_server.py +0 -0
  64. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  65. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  66. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  67. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  68. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  69. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  70. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  71. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  72. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  73. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  74. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  75. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  76. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  77. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  78. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  79. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  80. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  81. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  82. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  83. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  84. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  85. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  86. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  87. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  88. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  89. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_git_squash/main.py +0 -0
  90. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  91. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  92. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  93. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  94. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  95. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
  96. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
  97. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_methodology/main.py +0 -0
  98. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  99. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  100. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/__init__.py +0 -0
  101. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/ai8.py +0 -0
  102. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/base.py +0 -0
  103. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/human.py +0 -0
  104. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/kimi.py +0 -0
  105. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/openai.py +0 -0
  106. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/registry.py +0 -0
  107. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  108. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
  109. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  110. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  111. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  112. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/__init__.py +0 -0
  113. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/cache.py +0 -0
  114. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/cli.py +0 -0
  115. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
  116. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
  117. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
  118. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
  119. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/reranker.py +0 -0
  120. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/retriever.py +0 -0
  121. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/README.md +0 -0
  122. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/__init__.py +0 -0
  123. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/checkers/__init__.py +0 -0
  124. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/checkers/c_checker.py +0 -0
  125. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/checkers/rust_checker.py +0 -0
  126. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/cli.py +0 -0
  127. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/prompts.py +0 -0
  128. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/report.py +0 -0
  129. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/types.py +0 -0
  130. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/workflow.py +0 -0
  131. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  132. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  133. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/__init__.py +0 -0
  134. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/cli.py +0 -0
  135. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/stats.py +0 -0
  136. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/storage.py +0 -0
  137. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/visualizer.py +0 -0
  138. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/__init__.py +0 -0
  139. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  140. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/base.py +0 -0
  141. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
  142. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  143. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  144. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  145. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/methodology.py +0 -0
  146. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  147. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
  148. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/save_memory.py +0 -0
  149. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/search_web.py +0 -0
  150. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/sub_agent.py +0 -0
  151. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/sub_code_agent.py +0 -0
  152. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  153. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/__init__.py +0 -0
  154. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  155. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/clipboard.py +0 -0
  156. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/embedding.py +0 -0
  157. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  158. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/fzf.py +0 -0
  159. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/globals.py +0 -0
  160. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/http.py +0 -0
  161. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/input.py +0 -0
  162. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/methodology.py +0 -0
  163. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/output.py +0 -0
  164. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/tag.py +0 -0
  165. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  166. {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/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: 0.5.1
3
+ Version: 0.6.0
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire
@@ -78,6 +78,18 @@ Requires-Dist: sentence-transformers==2.7.0; extra == "rag"
78
78
  Requires-Dist: torch>=2.6; extra == "rag"
79
79
  Requires-Dist: unstructured[md]; extra == "rag"
80
80
  Requires-Dist: rank-bm25; extra == "rag"
81
+ Provides-Extra: clang16
82
+ Requires-Dist: clang==16.*; extra == "clang16"
83
+ Provides-Extra: clang17
84
+ Requires-Dist: clang==17.*; extra == "clang17"
85
+ Provides-Extra: clang18
86
+ Requires-Dist: clang==18.*; extra == "clang18"
87
+ Provides-Extra: clang19
88
+ Requires-Dist: clang==19.*; extra == "clang19"
89
+ Provides-Extra: clang20
90
+ Requires-Dist: clang==20.*; extra == "clang20"
91
+ Provides-Extra: clang21
92
+ Requires-Dist: clang==21.*; extra == "clang21"
81
93
  Dynamic: author
82
94
  Dynamic: home-page
83
95
  Dynamic: license-file
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jarvis-ai-assistant"
7
- version = "0.5.1"
7
+ version = "0.6.0"
8
8
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
@@ -43,7 +43,7 @@ dependencies = [
43
43
  "typer",
44
44
  "pathspec",
45
45
  "plotext==5.2.8",
46
- "packaging>=24.2",
46
+ "packaging>=24.2"
47
47
  ]
48
48
  requires-python = ">=3.9,<3.13"
49
49
 
@@ -60,6 +60,12 @@ rag = [
60
60
  "unstructured[md]",
61
61
  "rank-bm25",
62
62
  ]
63
+ clang16 = ["clang==16.*"]
64
+ clang17 = ["clang==17.*"]
65
+ clang18 = ["clang==18.*"]
66
+ clang19 = ["clang==19.*"]
67
+ clang20 = ["clang==20.*"]
68
+ clang21 = ["clang==21.*"]
63
69
 
64
70
  [project.urls]
65
71
  Homepage = "https://github.com/skyfireitdiy/Jarvis"
@@ -98,6 +104,10 @@ jarvis-stats = "jarvis.jarvis_stats.cli:main"
98
104
  jst = "jarvis.jarvis_stats.cli:main"
99
105
  jarvis-sec = "jarvis.jarvis_sec.cli:main"
100
106
  jsec = "jarvis.jarvis_sec.cli:main"
107
+ jarvis-c2rust = "jarvis.jarvis_c2rust.cli:main"
108
+ jc2r = "jarvis.jarvis_c2rust.cli:main"
109
+
110
+
101
111
 
102
112
 
103
113
 
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages # type: ignore
3
3
 
4
4
  setup(
5
5
  name="jarvis-ai-assistant",
6
- version="0.5.1",
6
+ version="0.6.0",
7
7
  author="skyfire",
8
8
  author_email="skyfireitdiy@hotmail.com",
9
9
  description="An AI assistant that uses various tools to interact with the system",
@@ -53,6 +53,12 @@ setup(
53
53
  "rank-bm25",
54
54
  "pathspec",
55
55
  ],
56
+ "clang16": ["clang==16.*"],
57
+ "clang17": ["clang==17.*"],
58
+ "clang18": ["clang==18.*"],
59
+ "clang19": ["clang==19.*"],
60
+ "clang20": ["clang==20.*"],
61
+ "clang21": ["clang==21.*"],
56
62
  },
57
63
  entry_points={
58
64
  "console_scripts": [
@@ -86,6 +92,8 @@ setup(
86
92
  "jst=jarvis.jarvis_stats.cli:main",
87
93
  "jarvis-sec=jarvis.jarvis_sec.cli:main",
88
94
  "jsec=jarvis.jarvis_sec.cli:main",
95
+ "jarvis-c2rust=jarvis.jarvis_c2rust.cli:main",
96
+ "jc2r=jarvis.jarvis_c2rust.cli:main",
89
97
  ],
90
98
  },
91
99
  python_requires=">=3.9,<3.13",
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.5.1"
4
+ __version__ = "0.6.0"
@@ -77,6 +77,7 @@ from jarvis.jarvis_utils.config import (
77
77
  get_tool_filter_threshold,
78
78
  get_after_tool_call_cb_dirs,
79
79
  get_plan_max_depth,
80
+ is_plan_enabled,
80
81
  )
81
82
  from jarvis.jarvis_utils.embedding import get_context_token_count
82
83
  from jarvis.jarvis_utils.globals import (
@@ -317,11 +318,12 @@ class Agent:
317
318
  use_methodology: Optional[bool] = None,
318
319
  use_analysis: Optional[bool] = None,
319
320
  force_save_memory: Optional[bool] = None,
321
+ disable_file_edit: bool = False,
320
322
  files: Optional[List[str]] = None,
321
323
  confirm_callback: Optional[Callable[[str, bool], bool]] = None,
322
324
  non_interactive: Optional[bool] = None,
323
325
  in_multi_agent: Optional[bool] = None,
324
- plan: bool = False,
326
+ plan: Optional[bool] = None,
325
327
  plan_max_depth: Optional[int] = None,
326
328
  plan_depth: int = 0,
327
329
  agent_type: str = "normal",
@@ -344,7 +346,7 @@ class Agent:
344
346
  force_save_memory: 是否强制保存记忆
345
347
  confirm_callback: 用户确认回调函数,签名为 (tip: str, default: bool) -> bool;默认使用CLI的user_confirm
346
348
  non_interactive: 是否以非交互模式运行(优先级最高,覆盖环境变量与配置)
347
- plan: 是否启用任务规划与子任务拆分(默认 False;启用后在进入主循环前评估是否需要将任务拆分为 <SUB_TASK> 列表,逐一由子Agent执行并汇总结果)
349
+ plan: 是否启用任务规划与子任务拆分(默认从配置加载;启用后在进入主循环前评估是否需要将任务拆分为 <SUB_TASK> 列表,逐一由子Agent执行并汇总结果)
348
350
  plan_max_depth: 任务规划的最大层数(默认3,可通过配置 JARVIS_PLAN_MAX_DEPTH 或入参覆盖)
349
351
  plan_depth: 当前规划层数(内部用于递归控制,子Agent会在父基础上+1)
350
352
  """
@@ -363,6 +365,7 @@ class Agent:
363
365
  self.execute_tool_confirm = execute_tool_confirm
364
366
  self.summary_prompt = summary_prompt
365
367
  self.force_save_memory = force_save_memory
368
+ self.disable_file_edit = bool(disable_file_edit)
366
369
  # 资源与环境
367
370
  self.model_group = model_group
368
371
  self.files = files or []
@@ -370,7 +373,8 @@ class Agent:
370
373
  self.non_interactive = non_interactive
371
374
  # 多智能体运行标志:用于控制非交互模式下的自动完成行为
372
375
  self.in_multi_agent = bool(in_multi_agent)
373
- self.plan = bool(plan)
376
+ # 任务规划:优先使用入参,否则回退到配置
377
+ self.plan = bool(plan) if plan is not None else is_plan_enabled()
374
378
  # 规划深度与上限
375
379
  try:
376
380
  self.plan_max_depth = (
@@ -511,7 +515,13 @@ class Agent:
511
515
  use_tools: List[str],
512
516
  ):
513
517
  """初始化各种处理器"""
514
- self.output_handler = output_handler or [ToolRegistry(), EditFileHandler(), RewriteFileHandler()]
518
+ default_handlers = [ToolRegistry()]
519
+ if not getattr(self, "disable_file_edit", False):
520
+ default_handlers.extend([EditFileHandler(), RewriteFileHandler()])
521
+ handlers = output_handler or default_handlers
522
+ if getattr(self, "disable_file_edit", False):
523
+ handlers = [h for h in handlers if not isinstance(h, (EditFileHandler, RewriteFileHandler))]
524
+ self.output_handler = handlers
515
525
  self.set_use_tools(use_tools)
516
526
  self.input_handler = [
517
527
  builtin_input_handler,
@@ -1238,6 +1248,7 @@ class Agent:
1238
1248
  "use_methodology": self.use_methodology,
1239
1249
  "use_analysis": self.use_analysis,
1240
1250
  "force_save_memory": self.force_save_memory,
1251
+ "disable_file_edit": self.disable_file_edit,
1241
1252
  "files": self.files,
1242
1253
  "confirm_callback": self.confirm_callback,
1243
1254
  "non_interactive": True,
@@ -32,6 +32,7 @@ class AgentManager:
32
32
  multiline_inputer: Optional[Callable[[str], str]] = None,
33
33
  confirm_callback: Optional[Callable[[str, bool], bool]] = None,
34
34
  non_interactive: Optional[bool] = None,
35
+ plan: Optional[bool] = None,
35
36
  ):
36
37
  self.model_group = model_group
37
38
  self.tool_group = tool_group
@@ -43,6 +44,7 @@ class AgentManager:
43
44
  self.multiline_inputer = multiline_inputer
44
45
  self.confirm_callback = confirm_callback
45
46
  self.non_interactive = non_interactive
47
+ self.plan = plan
46
48
 
47
49
  def initialize(self) -> Agent:
48
50
  """初始化Agent"""
@@ -61,6 +63,7 @@ class AgentManager:
61
63
  multiline_inputer=self.multiline_inputer,
62
64
  confirm_callback=self.confirm_callback,
63
65
  non_interactive=self.non_interactive,
66
+ plan=self.plan,
64
67
  )
65
68
 
66
69
  # 尝试恢复会话
@@ -370,10 +370,30 @@ def handle_builtin_config_selector(
370
370
  """在进入默认通用代理前,列出内置配置供选择(agent/multi_agent/roles)。"""
371
371
  if is_enable_builtin_config_selector():
372
372
  try:
373
- # 优先使用项目内置目录,若不存在则回退到指定的绝对路径
374
- builtin_root = Path(__file__).resolve().parents[3] / "builtin"
375
- if not builtin_root.exists():
376
- builtin_root = Path("/home/skyfire/code/Jarvis/builtin")
373
+ # 查找可用的 builtin 目录(支持多候选)
374
+ builtin_dirs: List[Path] = []
375
+ try:
376
+ ancestors = list(Path(__file__).resolve().parents)
377
+ for anc in ancestors[:8]:
378
+ p = anc / "builtin"
379
+ if p.exists():
380
+ builtin_dirs.append(p)
381
+ except Exception:
382
+ pass
383
+ # 去重,保留顺序
384
+ _seen = set()
385
+ _unique: List[Path] = []
386
+ for d in builtin_dirs:
387
+ try:
388
+ key = str(d.resolve())
389
+ except Exception:
390
+ key = str(d)
391
+ if key not in _seen:
392
+ _seen.add(key)
393
+ _unique.append(d)
394
+ builtin_dirs = _unique
395
+ # 向后兼容:保留第一个候选作为 builtin_root
396
+ builtin_root = builtin_dirs[0] if builtin_dirs else None # type: ignore[assignment]
377
397
 
378
398
  categories = [
379
399
  ("agent", "jarvis-agent", "*.yaml"),
@@ -414,8 +434,14 @@ def handle_builtin_config_selector(
414
434
  # 忽略配置读取异常
415
435
  pass
416
436
 
417
- # 追加内置目录
418
- search_dirs.append(builtin_root / cat)
437
+ # 追加内置目录(支持多个候选)
438
+ try:
439
+ candidates = builtin_dirs if isinstance(builtin_dirs, list) and builtin_dirs else ([builtin_root] if builtin_root else [])
440
+ except Exception:
441
+ candidates = ([builtin_root] if builtin_root else [])
442
+ for _bd in candidates:
443
+ if _bd:
444
+ search_dirs.append(Path(_bd) / cat)
419
445
 
420
446
  # 去重并保留顺序
421
447
  unique_dirs = []
@@ -429,11 +455,14 @@ def handle_builtin_config_selector(
429
455
  seen.add(key)
430
456
  unique_dirs.append(Path(d))
431
457
 
432
- # 每日自动更新配置目录(如目录为Git仓库则执行git pull,每日仅一次)
458
+ # 可选调试输出:查看每类的搜索目录
433
459
  try:
434
- jutils.daily_check_git_updates([str(p) for p in unique_dirs], cat)
460
+ if os.environ.get("JARVIS_DEBUG_BUILTIN_SELECTOR") == "1":
461
+ PrettyOutput.print(
462
+ f"DEBUG: category={cat} search_dirs=" + ", ".join(str(p) for p in unique_dirs),
463
+ OutputType.INFO,
464
+ )
435
465
  except Exception:
436
- # 忽略更新过程中的所有异常,避免影响主流程
437
466
  pass
438
467
 
439
468
  for dir_path in unique_dirs:
@@ -681,7 +710,7 @@ def run_cli(
681
710
  non_interactive: bool = typer.Option(
682
711
  False, "-n", "--non-interactive", help="启用非交互模式:用户无法与命令交互,脚本执行超时限制为5分钟"
683
712
  ),
684
- plan: bool = typer.Option(False, "--plan/--no-plan", help="启用或禁用任务规划(拆分子任务并汇总执行结果)"),
713
+ plan: Optional[bool] = typer.Option(None, "--plan/--no-plan", help="启用或禁用任务规划(不指定则从配置加载)"),
685
714
  web: bool = typer.Option(False, "--web", help="以 Web 模式启动,通过浏览器 WebSocket 交互"),
686
715
  web_host: str = typer.Option("127.0.0.1", "--web-host", help="Web 服务主机"),
687
716
  web_port: int = typer.Option(8765, "--web-port", help="Web 服务端口"),
@@ -1024,10 +1053,11 @@ def run_cli(
1024
1053
  )
1025
1054
  agent = agent_manager.initialize()
1026
1055
  # CLI 开关:启用/禁用规划(不依赖 AgentManager 支持,直接设置 Agent 属性)
1027
- try:
1028
- agent.plan = bool(plan)
1029
- except Exception:
1030
- pass
1056
+ if plan is not None:
1057
+ try:
1058
+ agent.plan = bool(plan)
1059
+ except Exception:
1060
+ pass
1031
1061
 
1032
1062
  if web:
1033
1063
  try:
@@ -125,7 +125,12 @@ class AgentRunLoop:
125
125
 
126
126
  # 检查自动完成
127
127
  if ag.auto_complete and is_auto_complete(current_response):
128
- return ag._complete_task(auto_completed=True)
128
+ # 先运行_complete_task,触发记忆整理/事件等副作用,再决定返回值
129
+ result = ag._complete_task(auto_completed=True)
130
+ # 若不需要summary,则将最后一条LLM输出作为返回值
131
+ if not getattr(ag, "need_summary", True):
132
+ return current_response
133
+ return result
129
134
 
130
135
  # 获取下一步用户输入
131
136
  next_action = ag._get_next_user_action()
@@ -75,6 +75,7 @@ class TaskPlanner:
75
75
  "<PLAN>\n- 子任务1\n- 子任务2\n</PLAN>\n"
76
76
  "示例:\n"
77
77
  "<PLAN>\n- 分析当前任务,提取需要修改的文件列表\n- 修改配置默认值并更新相关 schema\n- 更新文档中对该默认值的描述\n</PLAN>\n"
78
+ "注意:不要将步骤拆分太细,一般不要超过4个步骤。\n"
78
79
  "要求:<PLAN> 内必须是有效 YAML 列表,仅包含字符串项;禁止输出任何额外解释。\n"
79
80
  "当不需要拆分时,仅输出:\n<DONT_NEED/>\n"
80
81
  "禁止输出任何额外解释。"
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Jarvis C2Rust 工具集。
4
+
5
+ 模块:
6
+ - scanner: C/C++ 函数扫描器和调用图提取器,将结果存储在
7
+ <scan_root>/.jarvis/c2rust/functions.jsonl 和 types.jsonl 的 JSONL 文件中。
8
+
9
+ 用法:
10
+ python -m jarvis.jarvis_c2rust.scanner --root /path/to/src
11
+ """
12
+
13
+ __all__ = ["scanner"]