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.
- {jarvis_ai_assistant-0.5.1/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.6.0}/PKG-INFO +13 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/pyproject.toml +12 -2
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/setup.py +9 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/__init__.py +15 -4
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/agent_manager.py +3 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/jarvis.py +44 -14
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/run_loop.py +6 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_planner.py +1 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/__init__.py +13 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/cli.py +405 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/collector.py +209 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/library_replacer.py +933 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/llm_module_agent.py +1265 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/scanner.py +1671 -0
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_c2rust/transpiler.py +1236 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_agent/code_agent.py +144 -18
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_data/config_schema.json +8 -3
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/cli/main.py +1 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/execute_script.py +1 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/read_code.py +11 -1
- jarvis_ai_assistant-0.6.0/src/jarvis/jarvis_tools/read_symbols.py +129 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/registry.py +9 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/config.py +14 -4
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/git_utils.py +39 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/utils.py +13 -5
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0/src/jarvis_ai_assistant.egg-info}/PKG-INFO +13 -1
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +8 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/entry_points.txt +2 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/requires.txt +18 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/LICENSE +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/README.md +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/config_editor.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/event_bus.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/events.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/file_context_handler.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/prompt_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/rewrite_file_handler.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/share_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/stdio_redirect.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/user_interaction.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/utils.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/web_bridge.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/web_output_sink.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/web_server.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/base.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/openai.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/registry.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/tongyi.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_platform_manager/service.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/cli.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_rag/retriever.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/README.md +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/checkers/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/checkers/c_checker.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/checkers/rust_checker.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/cli.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/prompts.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/report.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/types.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_sec/workflow.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/cli.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/stats.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_stats/visualizer.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/save_memory.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/sub_agent.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/sub_code_agent.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/fzf.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/globals.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/http.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/input.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
{jarvis_ai_assistant-0.5.1/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.6.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jarvis-ai-assistant
|
|
3
|
-
Version: 0.
|
|
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.
|
|
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.
|
|
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",
|
|
@@ -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 =
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
{jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
|
@@ -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
|
-
|
|
375
|
-
|
|
376
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
458
|
+
# 可选调试输出:查看每类的搜索目录
|
|
433
459
|
try:
|
|
434
|
-
|
|
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(
|
|
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
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
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
|
-
|
|
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()
|
{jarvis_ai_assistant-0.5.1 → jarvis_ai_assistant-0.6.0}/src/jarvis/jarvis_agent/task_planner.py
RENAMED
|
@@ -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"]
|