jarvis-ai-assistant 0.5.0__tar.gz → 0.7.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.0/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.7.0}/PKG-INFO +85 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/README.md +2 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/pyproject.toml +52 -2
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/setup.py +48 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/__init__.py +153 -11
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/agent_manager.py +3 -4
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/edit_file_handler.py +28 -5
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/event_bus.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/file_context_handler.py +17 -7
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/jarvis.py +48 -10
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/rewrite_file_handler.py +1 -3
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/run_loop.py +6 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/stdio_redirect.py +1 -2
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/task_analyzer.py +5 -2
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_agent/task_planner.py +496 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/web_server.py +23 -17
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/__init__.py +26 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/cli.py +613 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/collector.py +258 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/library_replacer.py +1122 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/llm_module_agent.py +1300 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/optimizer.py +960 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/scanner.py +1681 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_c2rust/transpiler.py +2325 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/build_validation_config.py +133 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_agent.py +1883 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/__init__.py +62 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/base_language.py +74 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py +44 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py +102 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py +59 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py +125 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py +69 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py +38 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py +44 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py +38 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py +50 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py +93 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py +129 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py +54 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py +154 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/build_validator.py +43 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/context_manager.py +363 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/context_recommender.py +18 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py +132 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/file_ignore.py +330 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py +781 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/language_registry.py +185 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/language_support.py +89 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py +31 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py +231 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py +183 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py +219 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py +209 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py +451 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py +77 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py +48 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/lint.py +413 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_code_agent/utils.py +142 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_data/config_schema.json +38 -3
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_git_utils/git_commiter.py +38 -26
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_mcp/sse_mcp_client.py +2 -2
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/base.py +33 -48
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/yuanbao.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform_manager/service.py +2 -2
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/cli.py +4 -4
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/__init__.py +3605 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/checkers/__init__.py +32 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/checkers/c_checker.py +2680 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/checkers/rust_checker.py +1108 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/cli.py +116 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/report.py +257 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/status.py +264 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/types.py +20 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_sec/workflow.py +219 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_stats/cli.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_stats/stats.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_stats/visualizer.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/cli/main.py +1 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/execute_script.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/generate_new_tool.py +3 -1
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_tools/read_code.py +441 -0
- jarvis_ai_assistant-0.7.0/src/jarvis/jarvis_tools/read_symbols.py +141 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/read_webpage.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/registry.py +31 -6
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/search_web.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/sub_agent.py +5 -5
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/sub_code_agent.py +11 -12
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/virtual_tty.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/config.py +104 -27
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/git_utils.py +169 -6
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/globals.py +3 -3
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/http.py +1 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/input.py +0 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/utils.py +610 -435
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0/src/jarvis_ai_assistant.egg-info}/PKG-INFO +85 -1
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +52 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis_ai_assistant.egg-info/entry_points.txt +4 -0
- jarvis_ai_assistant-0.7.0/src/jarvis_ai_assistant.egg-info/requires.txt +146 -0
- jarvis_ai_assistant-0.5.0/src/jarvis/jarvis_code_agent/code_agent.py +0 -1011
- jarvis_ai_assistant-0.5.0/src/jarvis/jarvis_code_agent/lint.py +0 -151
- jarvis_ai_assistant-0.5.0/src/jarvis/jarvis_tools/read_code.py +0 -179
- jarvis_ai_assistant-0.5.0/src/jarvis_ai_assistant.egg-info/requires.txt +0 -40
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/LICENSE +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/config_editor.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/events.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/prompt_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/share_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/user_interaction.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/utils.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/web_bridge.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/web_output_sink.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/openai.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/registry.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform/tongyi.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_rag/retriever.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_tools/save_memory.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/fzf.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
{jarvis_ai_assistant-0.5.0/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.7.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.7.0
|
|
4
4
|
Summary: Jarvis: An AI assistant that uses tools to interact with the system
|
|
5
5
|
Home-page: https://github.com/skyfireitdiy/Jarvis
|
|
6
6
|
Author: skyfire
|
|
@@ -78,6 +78,88 @@ Requires-Dist: sentence-transformers==2.7.0; extra == "rag"
|
|
|
78
78
|
Requires-Dist: torch>=2.6; extra == "rag"
|
|
79
79
|
Requires-Dist: unstructured[md]; extra == "rag"
|
|
80
80
|
Requires-Dist: rank-bm25; extra == "rag"
|
|
81
|
+
Provides-Extra: clang16
|
|
82
|
+
Requires-Dist: clang==16.*; extra == "clang16"
|
|
83
|
+
Provides-Extra: clang17
|
|
84
|
+
Requires-Dist: clang==17.*; extra == "clang17"
|
|
85
|
+
Provides-Extra: clang18
|
|
86
|
+
Requires-Dist: clang==18.*; extra == "clang18"
|
|
87
|
+
Provides-Extra: clang19
|
|
88
|
+
Requires-Dist: clang==19.*; extra == "clang19"
|
|
89
|
+
Provides-Extra: clang20
|
|
90
|
+
Requires-Dist: clang==20.*; extra == "clang20"
|
|
91
|
+
Provides-Extra: clang21
|
|
92
|
+
Requires-Dist: clang==21.*; extra == "clang21"
|
|
93
|
+
Provides-Extra: tree-sitter-python
|
|
94
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-python"
|
|
95
|
+
Requires-Dist: tree-sitter-python; extra == "tree-sitter-python"
|
|
96
|
+
Provides-Extra: tree-sitter-javascript
|
|
97
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-javascript"
|
|
98
|
+
Requires-Dist: tree-sitter-javascript; extra == "tree-sitter-javascript"
|
|
99
|
+
Provides-Extra: tree-sitter-typescript
|
|
100
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-typescript"
|
|
101
|
+
Requires-Dist: tree-sitter-typescript; extra == "tree-sitter-typescript"
|
|
102
|
+
Provides-Extra: tree-sitter-rust
|
|
103
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-rust"
|
|
104
|
+
Requires-Dist: tree-sitter-rust; extra == "tree-sitter-rust"
|
|
105
|
+
Provides-Extra: tree-sitter-go
|
|
106
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-go"
|
|
107
|
+
Requires-Dist: tree-sitter-go; extra == "tree-sitter-go"
|
|
108
|
+
Provides-Extra: tree-sitter-java
|
|
109
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-java"
|
|
110
|
+
Requires-Dist: tree-sitter-java; extra == "tree-sitter-java"
|
|
111
|
+
Provides-Extra: tree-sitter-cpp
|
|
112
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-cpp"
|
|
113
|
+
Requires-Dist: tree-sitter-cpp; extra == "tree-sitter-cpp"
|
|
114
|
+
Provides-Extra: tree-sitter-c
|
|
115
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-c"
|
|
116
|
+
Requires-Dist: tree-sitter-c; extra == "tree-sitter-c"
|
|
117
|
+
Provides-Extra: tree-sitter-json
|
|
118
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-json"
|
|
119
|
+
Requires-Dist: tree-sitter-json; extra == "tree-sitter-json"
|
|
120
|
+
Provides-Extra: tree-sitter-yaml
|
|
121
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-yaml"
|
|
122
|
+
Requires-Dist: tree-sitter-yaml; extra == "tree-sitter-yaml"
|
|
123
|
+
Provides-Extra: tree-sitter-markdown
|
|
124
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-markdown"
|
|
125
|
+
Requires-Dist: tree-sitter-markdown; extra == "tree-sitter-markdown"
|
|
126
|
+
Provides-Extra: tree-sitter-html
|
|
127
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-html"
|
|
128
|
+
Requires-Dist: tree-sitter-html; extra == "tree-sitter-html"
|
|
129
|
+
Provides-Extra: tree-sitter-css
|
|
130
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-css"
|
|
131
|
+
Requires-Dist: tree-sitter-css; extra == "tree-sitter-css"
|
|
132
|
+
Provides-Extra: tree-sitter-bash
|
|
133
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-bash"
|
|
134
|
+
Requires-Dist: tree-sitter-bash; extra == "tree-sitter-bash"
|
|
135
|
+
Provides-Extra: tree-sitter-ruby
|
|
136
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-ruby"
|
|
137
|
+
Requires-Dist: tree-sitter-ruby; extra == "tree-sitter-ruby"
|
|
138
|
+
Provides-Extra: tree-sitter-php
|
|
139
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-php"
|
|
140
|
+
Requires-Dist: tree-sitter-php; extra == "tree-sitter-php"
|
|
141
|
+
Provides-Extra: tree-sitter-sql
|
|
142
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-sql"
|
|
143
|
+
Requires-Dist: tree-sitter-sql; extra == "tree-sitter-sql"
|
|
144
|
+
Provides-Extra: tree-sitter-all
|
|
145
|
+
Requires-Dist: tree-sitter; extra == "tree-sitter-all"
|
|
146
|
+
Requires-Dist: tree-sitter-python; extra == "tree-sitter-all"
|
|
147
|
+
Requires-Dist: tree-sitter-javascript; extra == "tree-sitter-all"
|
|
148
|
+
Requires-Dist: tree-sitter-typescript; extra == "tree-sitter-all"
|
|
149
|
+
Requires-Dist: tree-sitter-rust; extra == "tree-sitter-all"
|
|
150
|
+
Requires-Dist: tree-sitter-go; extra == "tree-sitter-all"
|
|
151
|
+
Requires-Dist: tree-sitter-java; extra == "tree-sitter-all"
|
|
152
|
+
Requires-Dist: tree-sitter-cpp; extra == "tree-sitter-all"
|
|
153
|
+
Requires-Dist: tree-sitter-c; extra == "tree-sitter-all"
|
|
154
|
+
Requires-Dist: tree-sitter-json; extra == "tree-sitter-all"
|
|
155
|
+
Requires-Dist: tree-sitter-yaml; extra == "tree-sitter-all"
|
|
156
|
+
Requires-Dist: tree-sitter-markdown; extra == "tree-sitter-all"
|
|
157
|
+
Requires-Dist: tree-sitter-html; extra == "tree-sitter-all"
|
|
158
|
+
Requires-Dist: tree-sitter-css; extra == "tree-sitter-all"
|
|
159
|
+
Requires-Dist: tree-sitter-bash; extra == "tree-sitter-all"
|
|
160
|
+
Requires-Dist: tree-sitter-ruby; extra == "tree-sitter-all"
|
|
161
|
+
Requires-Dist: tree-sitter-php; extra == "tree-sitter-all"
|
|
162
|
+
Requires-Dist: tree-sitter-sql; extra == "tree-sitter-all"
|
|
81
163
|
Dynamic: author
|
|
82
164
|
Dynamic: home-page
|
|
83
165
|
Dynamic: license-file
|
|
@@ -262,6 +344,8 @@ Jarvis 包含一系列专注于不同任务的工具。以下是主要命令及
|
|
|
262
344
|
| `jarvis-smart-shell` | `jss` | 实验性的智能Shell功能 |
|
|
263
345
|
| `jarvis-stats` | `jst` | 通用统计模块,支持记录和可视化任意指标数据 |
|
|
264
346
|
| `jarvis-memory-organizer` | `jmo` | 记忆管理工具,支持整理、合并、导入导出记忆 |
|
|
347
|
+
| `jarvis-sec` | `jsec` | 安全分析套件,对代码工程进行安全扫描和分析 |
|
|
348
|
+
| `jarvis-c2rust` | `jc2r` | C→Rust 迁移套件,将 C/C++ 代码迁移到 Rust |
|
|
265
349
|
|
|
266
350
|
更多详细用法和参数,请查阅我们的 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
|
|
267
351
|
|
|
@@ -177,6 +177,8 @@ Jarvis 包含一系列专注于不同任务的工具。以下是主要命令及
|
|
|
177
177
|
| `jarvis-smart-shell` | `jss` | 实验性的智能Shell功能 |
|
|
178
178
|
| `jarvis-stats` | `jst` | 通用统计模块,支持记录和可视化任意指标数据 |
|
|
179
179
|
| `jarvis-memory-organizer` | `jmo` | 记忆管理工具,支持整理、合并、导入导出记忆 |
|
|
180
|
+
| `jarvis-sec` | `jsec` | 安全分析套件,对代码工程进行安全扫描和分析 |
|
|
181
|
+
| `jarvis-c2rust` | `jc2r` | C→Rust 迁移套件,将 C/C++ 代码迁移到 Rust |
|
|
180
182
|
|
|
181
183
|
更多详细用法和参数,请查阅我们的 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
|
|
182
184
|
|
|
@@ -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.7.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,49 @@ 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.*"]
|
|
69
|
+
tree-sitter-python = ["tree-sitter", "tree-sitter-python"]
|
|
70
|
+
tree-sitter-javascript = ["tree-sitter", "tree-sitter-javascript"]
|
|
71
|
+
tree-sitter-typescript = ["tree-sitter", "tree-sitter-typescript"]
|
|
72
|
+
tree-sitter-rust = ["tree-sitter", "tree-sitter-rust"]
|
|
73
|
+
tree-sitter-go = ["tree-sitter", "tree-sitter-go"]
|
|
74
|
+
tree-sitter-java = ["tree-sitter", "tree-sitter-java"]
|
|
75
|
+
tree-sitter-cpp = ["tree-sitter", "tree-sitter-cpp"]
|
|
76
|
+
tree-sitter-c = ["tree-sitter", "tree-sitter-c"]
|
|
77
|
+
tree-sitter-json = ["tree-sitter", "tree-sitter-json"]
|
|
78
|
+
tree-sitter-yaml = ["tree-sitter", "tree-sitter-yaml"]
|
|
79
|
+
tree-sitter-markdown = ["tree-sitter", "tree-sitter-markdown"]
|
|
80
|
+
tree-sitter-html = ["tree-sitter", "tree-sitter-html"]
|
|
81
|
+
tree-sitter-css = ["tree-sitter", "tree-sitter-css"]
|
|
82
|
+
tree-sitter-bash = ["tree-sitter", "tree-sitter-bash"]
|
|
83
|
+
tree-sitter-ruby = ["tree-sitter", "tree-sitter-ruby"]
|
|
84
|
+
tree-sitter-php = ["tree-sitter", "tree-sitter-php"]
|
|
85
|
+
tree-sitter-sql = ["tree-sitter", "tree-sitter-sql"]
|
|
86
|
+
tree-sitter-all = [
|
|
87
|
+
"tree-sitter",
|
|
88
|
+
"tree-sitter-python",
|
|
89
|
+
"tree-sitter-javascript",
|
|
90
|
+
"tree-sitter-typescript",
|
|
91
|
+
"tree-sitter-rust",
|
|
92
|
+
"tree-sitter-go",
|
|
93
|
+
"tree-sitter-java",
|
|
94
|
+
"tree-sitter-cpp",
|
|
95
|
+
"tree-sitter-c",
|
|
96
|
+
"tree-sitter-json",
|
|
97
|
+
"tree-sitter-yaml",
|
|
98
|
+
"tree-sitter-markdown",
|
|
99
|
+
"tree-sitter-html",
|
|
100
|
+
"tree-sitter-css",
|
|
101
|
+
"tree-sitter-bash",
|
|
102
|
+
"tree-sitter-ruby",
|
|
103
|
+
"tree-sitter-php",
|
|
104
|
+
"tree-sitter-sql",
|
|
105
|
+
]
|
|
63
106
|
|
|
64
107
|
[project.urls]
|
|
65
108
|
Homepage = "https://github.com/skyfireitdiy/Jarvis"
|
|
@@ -96,6 +139,13 @@ jarvis-rag = "jarvis.jarvis_rag.cli:main"
|
|
|
96
139
|
jrg = "jarvis.jarvis_rag.cli:main"
|
|
97
140
|
jarvis-stats = "jarvis.jarvis_stats.cli:main"
|
|
98
141
|
jst = "jarvis.jarvis_stats.cli:main"
|
|
142
|
+
jarvis-sec = "jarvis.jarvis_sec.cli:main"
|
|
143
|
+
jsec = "jarvis.jarvis_sec.cli:main"
|
|
144
|
+
jarvis-c2rust = "jarvis.jarvis_c2rust.cli:main"
|
|
145
|
+
jc2r = "jarvis.jarvis_c2rust.cli:main"
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
99
149
|
|
|
100
150
|
|
|
101
151
|
|
|
@@ -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.7.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,49 @@ 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.*"],
|
|
62
|
+
"tree-sitter-python": ["tree-sitter", "tree-sitter-python"],
|
|
63
|
+
"tree-sitter-javascript": ["tree-sitter", "tree-sitter-javascript"],
|
|
64
|
+
"tree-sitter-typescript": ["tree-sitter", "tree-sitter-typescript"],
|
|
65
|
+
"tree-sitter-rust": ["tree-sitter", "tree-sitter-rust"],
|
|
66
|
+
"tree-sitter-go": ["tree-sitter", "tree-sitter-go"],
|
|
67
|
+
"tree-sitter-java": ["tree-sitter", "tree-sitter-java"],
|
|
68
|
+
"tree-sitter-cpp": ["tree-sitter", "tree-sitter-cpp"],
|
|
69
|
+
"tree-sitter-c": ["tree-sitter", "tree-sitter-c"],
|
|
70
|
+
"tree-sitter-json": ["tree-sitter", "tree-sitter-json"],
|
|
71
|
+
"tree-sitter-yaml": ["tree-sitter", "tree-sitter-yaml"],
|
|
72
|
+
"tree-sitter-markdown": ["tree-sitter", "tree-sitter-markdown"],
|
|
73
|
+
"tree-sitter-html": ["tree-sitter", "tree-sitter-html"],
|
|
74
|
+
"tree-sitter-css": ["tree-sitter", "tree-sitter-css"],
|
|
75
|
+
"tree-sitter-bash": ["tree-sitter", "tree-sitter-bash"],
|
|
76
|
+
"tree-sitter-ruby": ["tree-sitter", "tree-sitter-ruby"],
|
|
77
|
+
"tree-sitter-php": ["tree-sitter", "tree-sitter-php"],
|
|
78
|
+
"tree-sitter-sql": ["tree-sitter", "tree-sitter-sql"],
|
|
79
|
+
"tree-sitter-all": [
|
|
80
|
+
"tree-sitter",
|
|
81
|
+
"tree-sitter-python",
|
|
82
|
+
"tree-sitter-javascript",
|
|
83
|
+
"tree-sitter-typescript",
|
|
84
|
+
"tree-sitter-rust",
|
|
85
|
+
"tree-sitter-go",
|
|
86
|
+
"tree-sitter-java",
|
|
87
|
+
"tree-sitter-cpp",
|
|
88
|
+
"tree-sitter-c",
|
|
89
|
+
"tree-sitter-json",
|
|
90
|
+
"tree-sitter-yaml",
|
|
91
|
+
"tree-sitter-markdown",
|
|
92
|
+
"tree-sitter-html",
|
|
93
|
+
"tree-sitter-css",
|
|
94
|
+
"tree-sitter-bash",
|
|
95
|
+
"tree-sitter-ruby",
|
|
96
|
+
"tree-sitter-php",
|
|
97
|
+
"tree-sitter-sql",
|
|
98
|
+
],
|
|
56
99
|
},
|
|
57
100
|
entry_points={
|
|
58
101
|
"console_scripts": [
|
|
@@ -84,6 +127,10 @@ setup(
|
|
|
84
127
|
"jrg=jarvis.jarvis_rag.cli:main",
|
|
85
128
|
"jarvis-stats=jarvis.jarvis_stats.cli:main",
|
|
86
129
|
"jst=jarvis.jarvis_stats.cli:main",
|
|
130
|
+
"jarvis-sec=jarvis.jarvis_sec.cli:main",
|
|
131
|
+
"jsec=jarvis.jarvis_sec.cli:main",
|
|
132
|
+
"jarvis-c2rust=jarvis.jarvis_c2rust.cli:main",
|
|
133
|
+
"jc2r=jarvis.jarvis_c2rust.cli:main",
|
|
87
134
|
],
|
|
88
135
|
},
|
|
89
136
|
python_requires=">=3.9,<3.13",
|
|
@@ -7,7 +7,7 @@ import re
|
|
|
7
7
|
import sys
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from enum import Enum
|
|
10
|
-
from typing import Any, Callable, Dict, List, Optional,
|
|
10
|
+
from typing import Any, Callable, Dict, List, Optional, Tuple, Union
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
# 第三方库导入
|
|
@@ -25,11 +25,12 @@ from jarvis.jarvis_agent.tool_executor import execute_tool_call
|
|
|
25
25
|
from jarvis.jarvis_agent.memory_manager import MemoryManager
|
|
26
26
|
from jarvis.jarvis_memory_organizer.memory_organizer import MemoryOrganizer
|
|
27
27
|
from jarvis.jarvis_agent.task_analyzer import TaskAnalyzer
|
|
28
|
+
from jarvis.jarvis_agent.task_planner import TaskPlanner
|
|
28
29
|
from jarvis.jarvis_agent.file_methodology_manager import FileMethodologyManager
|
|
29
30
|
from jarvis.jarvis_agent.prompts import (
|
|
30
31
|
DEFAULT_SUMMARY_PROMPT,
|
|
31
32
|
SUMMARY_REQUEST_PROMPT,
|
|
32
|
-
TASK_ANALYSIS_PROMPT,
|
|
33
|
+
TASK_ANALYSIS_PROMPT as TASK_ANALYSIS_PROMPT,
|
|
33
34
|
)
|
|
34
35
|
from jarvis.jarvis_tools.registry import ToolRegistry
|
|
35
36
|
from jarvis.jarvis_agent.edit_file_handler import EditFileHandler
|
|
@@ -75,8 +76,9 @@ from jarvis.jarvis_utils.config import (
|
|
|
75
76
|
is_use_methodology,
|
|
76
77
|
get_tool_filter_threshold,
|
|
77
78
|
get_after_tool_call_cb_dirs,
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
get_plan_max_depth,
|
|
80
|
+
is_plan_enabled,
|
|
81
|
+
get_addon_prompt_threshold,
|
|
80
82
|
)
|
|
81
83
|
from jarvis.jarvis_utils.embedding import get_context_token_count
|
|
82
84
|
from jarvis.jarvis_utils.globals import (
|
|
@@ -259,6 +261,8 @@ class Agent:
|
|
|
259
261
|
|
|
260
262
|
# 清理会话历史并重置模型状态
|
|
261
263
|
self.session.clear_history()
|
|
264
|
+
# 重置 addon_prompt 跳过轮数计数器
|
|
265
|
+
self._addon_prompt_skip_rounds = 0
|
|
262
266
|
|
|
263
267
|
# 重置后重新设置系统提示词,确保系统约束仍然生效
|
|
264
268
|
try:
|
|
@@ -285,6 +289,21 @@ class Agent:
|
|
|
285
289
|
"""获取工具使用提示"""
|
|
286
290
|
return build_action_prompt(self.output_handler) # type: ignore
|
|
287
291
|
|
|
292
|
+
def __new__(cls, *args, **kwargs):
|
|
293
|
+
if kwargs.get("agent_type") == "code":
|
|
294
|
+
try:
|
|
295
|
+
from jarvis.jarvis_code_agent.code_agent import CodeAgent
|
|
296
|
+
except ImportError as e:
|
|
297
|
+
raise RuntimeError(
|
|
298
|
+
"CodeAgent could not be imported. Please ensure jarvis_code_agent is installed correctly."
|
|
299
|
+
) from e
|
|
300
|
+
|
|
301
|
+
# 移除 agent_type 避免无限循环,并传递所有其他参数
|
|
302
|
+
kwargs.pop("agent_type", None)
|
|
303
|
+
return CodeAgent(**kwargs)
|
|
304
|
+
else:
|
|
305
|
+
return super().__new__(cls)
|
|
306
|
+
|
|
288
307
|
def __init__(
|
|
289
308
|
self,
|
|
290
309
|
system_prompt: str,
|
|
@@ -302,10 +321,15 @@ class Agent:
|
|
|
302
321
|
use_methodology: Optional[bool] = None,
|
|
303
322
|
use_analysis: Optional[bool] = None,
|
|
304
323
|
force_save_memory: Optional[bool] = None,
|
|
324
|
+
disable_file_edit: bool = False,
|
|
305
325
|
files: Optional[List[str]] = None,
|
|
306
326
|
confirm_callback: Optional[Callable[[str, bool], bool]] = None,
|
|
307
327
|
non_interactive: Optional[bool] = None,
|
|
308
328
|
in_multi_agent: Optional[bool] = None,
|
|
329
|
+
plan: Optional[bool] = None,
|
|
330
|
+
plan_max_depth: Optional[int] = None,
|
|
331
|
+
plan_depth: int = 0,
|
|
332
|
+
agent_type: str = "normal",
|
|
309
333
|
**kwargs,
|
|
310
334
|
):
|
|
311
335
|
"""初始化Jarvis Agent实例
|
|
@@ -325,6 +349,9 @@ class Agent:
|
|
|
325
349
|
force_save_memory: 是否强制保存记忆
|
|
326
350
|
confirm_callback: 用户确认回调函数,签名为 (tip: str, default: bool) -> bool;默认使用CLI的user_confirm
|
|
327
351
|
non_interactive: 是否以非交互模式运行(优先级最高,覆盖环境变量与配置)
|
|
352
|
+
plan: 是否启用任务规划与子任务拆分(默认从配置加载;启用后在进入主循环前评估是否需要将任务拆分为 <SUB_TASK> 列表,逐一由子Agent执行并汇总结果)
|
|
353
|
+
plan_max_depth: 任务规划的最大层数(默认3,可通过配置 JARVIS_PLAN_MAX_DEPTH 或入参覆盖)
|
|
354
|
+
plan_depth: 当前规划层数(内部用于递归控制,子Agent会在父基础上+1)
|
|
328
355
|
"""
|
|
329
356
|
# 基础属性初始化(仅根据入参设置原始值;实际生效的默认回退在 _init_config 中统一解析)
|
|
330
357
|
# 标识与描述
|
|
@@ -341,6 +368,7 @@ class Agent:
|
|
|
341
368
|
self.execute_tool_confirm = execute_tool_confirm
|
|
342
369
|
self.summary_prompt = summary_prompt
|
|
343
370
|
self.force_save_memory = force_save_memory
|
|
371
|
+
self.disable_file_edit = bool(disable_file_edit)
|
|
344
372
|
# 资源与环境
|
|
345
373
|
self.model_group = model_group
|
|
346
374
|
self.files = files or []
|
|
@@ -348,10 +376,25 @@ class Agent:
|
|
|
348
376
|
self.non_interactive = non_interactive
|
|
349
377
|
# 多智能体运行标志:用于控制非交互模式下的自动完成行为
|
|
350
378
|
self.in_multi_agent = bool(in_multi_agent)
|
|
379
|
+
# 任务规划:优先使用入参,否则回退到配置
|
|
380
|
+
self.plan = bool(plan) if plan is not None else is_plan_enabled()
|
|
381
|
+
# 规划深度与上限
|
|
382
|
+
try:
|
|
383
|
+
self.plan_max_depth = (
|
|
384
|
+
int(plan_max_depth) if plan_max_depth is not None else int(get_plan_max_depth())
|
|
385
|
+
)
|
|
386
|
+
except Exception:
|
|
387
|
+
self.plan_max_depth = 2
|
|
388
|
+
try:
|
|
389
|
+
self.plan_depth = int(plan_depth)
|
|
390
|
+
except Exception:
|
|
391
|
+
self.plan_depth = 0
|
|
351
392
|
# 运行时状态
|
|
352
393
|
self.first = True
|
|
353
394
|
self.run_input_handlers_next_turn = False
|
|
354
395
|
self.user_data: Dict[str, Any] = {}
|
|
396
|
+
# 记录连续未添加 addon_prompt 的轮数
|
|
397
|
+
self._addon_prompt_skip_rounds: int = 0
|
|
355
398
|
|
|
356
399
|
|
|
357
400
|
# 用户确认回调:默认使用 CLI 的 user_confirm,可由外部注入以支持 TUI/GUI
|
|
@@ -429,6 +472,8 @@ class Agent:
|
|
|
429
472
|
self.task_analyzer = TaskAnalyzer(self)
|
|
430
473
|
self.file_methodology_manager = FileMethodologyManager(self)
|
|
431
474
|
self.prompt_manager = PromptManager(self)
|
|
475
|
+
# 任务规划器:封装规划与子任务调度逻辑
|
|
476
|
+
self.task_planner = TaskPlanner(self, plan_depth=self.plan_depth, plan_max_depth=self.plan_max_depth)
|
|
432
477
|
|
|
433
478
|
# 设置系统提示词
|
|
434
479
|
self._setup_system_prompt()
|
|
@@ -475,7 +520,13 @@ class Agent:
|
|
|
475
520
|
use_tools: List[str],
|
|
476
521
|
):
|
|
477
522
|
"""初始化各种处理器"""
|
|
478
|
-
|
|
523
|
+
default_handlers: List[Any] = [ToolRegistry()]
|
|
524
|
+
if not getattr(self, "disable_file_edit", False):
|
|
525
|
+
default_handlers.extend([EditFileHandler(), RewriteFileHandler()])
|
|
526
|
+
handlers = output_handler or default_handlers
|
|
527
|
+
if getattr(self, "disable_file_edit", False):
|
|
528
|
+
handlers = [h for h in handlers if not isinstance(h, (EditFileHandler, RewriteFileHandler))]
|
|
529
|
+
self.output_handler = handlers
|
|
479
530
|
self.set_use_tools(use_tools)
|
|
480
531
|
self.input_handler = [
|
|
481
532
|
builtin_input_handler,
|
|
@@ -707,7 +758,13 @@ class Agent:
|
|
|
707
758
|
return message
|
|
708
759
|
|
|
709
760
|
def _add_addon_prompt(self, message: str, need_complete: bool) -> str:
|
|
710
|
-
"""添加附加提示到消息
|
|
761
|
+
"""添加附加提示到消息
|
|
762
|
+
|
|
763
|
+
规则:
|
|
764
|
+
1. 如果 session.addon_prompt 存在,优先使用它
|
|
765
|
+
2. 如果消息长度超过阈值,添加默认 addon_prompt
|
|
766
|
+
3. 如果连续10轮都没有添加过 addon_prompt,强制添加一次
|
|
767
|
+
"""
|
|
711
768
|
# 广播添加附加提示前事件(不影响主流程)
|
|
712
769
|
try:
|
|
713
770
|
self.event_bus.emit(
|
|
@@ -721,13 +778,32 @@ class Agent:
|
|
|
721
778
|
pass
|
|
722
779
|
|
|
723
780
|
addon_text = ""
|
|
781
|
+
should_add = False
|
|
782
|
+
|
|
724
783
|
if self.session.addon_prompt:
|
|
784
|
+
# 优先使用 session 中设置的 addon_prompt
|
|
725
785
|
addon_text = self.session.addon_prompt
|
|
726
786
|
message = join_prompts([message, addon_text])
|
|
727
787
|
self.session.addon_prompt = ""
|
|
788
|
+
should_add = True
|
|
728
789
|
else:
|
|
729
|
-
|
|
730
|
-
|
|
790
|
+
threshold = get_addon_prompt_threshold()
|
|
791
|
+
# 条件1:消息长度超过阈值
|
|
792
|
+
if len(message) > threshold:
|
|
793
|
+
addon_text = self.make_default_addon_prompt(need_complete)
|
|
794
|
+
message = join_prompts([message, addon_text])
|
|
795
|
+
should_add = True
|
|
796
|
+
# 条件2:连续10轮都没有添加过 addon_prompt,强制添加一次
|
|
797
|
+
elif self._addon_prompt_skip_rounds >= 10:
|
|
798
|
+
addon_text = self.make_default_addon_prompt(need_complete)
|
|
799
|
+
message = join_prompts([message, addon_text])
|
|
800
|
+
should_add = True
|
|
801
|
+
|
|
802
|
+
# 更新计数器:如果添加了 addon_prompt,重置计数器;否则递增
|
|
803
|
+
if should_add:
|
|
804
|
+
self._addon_prompt_skip_rounds = 0
|
|
805
|
+
else:
|
|
806
|
+
self._addon_prompt_skip_rounds += 1
|
|
731
807
|
|
|
732
808
|
# 广播添加附加提示后事件(不影响主流程)
|
|
733
809
|
try:
|
|
@@ -801,9 +877,14 @@ class Agent:
|
|
|
801
877
|
try:
|
|
802
878
|
if not self.model:
|
|
803
879
|
raise RuntimeError("Model not initialized")
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
)
|
|
880
|
+
# 优先使用外部传入的 summary_prompt;如为空则回退到默认的会话摘要请求
|
|
881
|
+
safe_summary_prompt = self.summary_prompt or ""
|
|
882
|
+
if isinstance(safe_summary_prompt, str) and safe_summary_prompt.strip() != "":
|
|
883
|
+
prompt_to_use = safe_summary_prompt
|
|
884
|
+
else:
|
|
885
|
+
prompt_to_use = self.session.prompt + "\n" + SUMMARY_REQUEST_PROMPT
|
|
886
|
+
|
|
887
|
+
summary = self.model.chat_until_success(prompt_to_use) # type: ignore
|
|
807
888
|
# 防御: 可能返回空响应(None或空字符串),统一为空字符串并告警
|
|
808
889
|
if not summary:
|
|
809
890
|
try:
|
|
@@ -869,6 +950,8 @@ class Agent:
|
|
|
869
950
|
self._setup_system_prompt()
|
|
870
951
|
# 重置会话
|
|
871
952
|
self.session.clear_history()
|
|
953
|
+
# 重置 addon_prompt 跳过轮数计数器
|
|
954
|
+
self._addon_prompt_skip_rounds = 0
|
|
872
955
|
# 广播清理历史后的事件
|
|
873
956
|
try:
|
|
874
957
|
self.event_bus.emit(AFTER_HISTORY_CLEAR, agent=self)
|
|
@@ -885,6 +968,8 @@ class Agent:
|
|
|
885
968
|
except Exception:
|
|
886
969
|
pass
|
|
887
970
|
result = self.file_methodology_manager.handle_history_with_file_upload()
|
|
971
|
+
# 重置 addon_prompt 跳过轮数计数器
|
|
972
|
+
self._addon_prompt_skip_rounds = 0
|
|
888
973
|
# 广播清理历史后的事件
|
|
889
974
|
try:
|
|
890
975
|
self.event_bus.emit(AFTER_HISTORY_CLEAR, agent=self)
|
|
@@ -1057,6 +1142,13 @@ class Agent:
|
|
|
1057
1142
|
)
|
|
1058
1143
|
except Exception:
|
|
1059
1144
|
pass
|
|
1145
|
+
# 如启用规划模式,先判断是否需要拆分并调度子任务
|
|
1146
|
+
if self.plan:
|
|
1147
|
+
try:
|
|
1148
|
+
self._maybe_plan_and_dispatch(self.session.prompt)
|
|
1149
|
+
except Exception:
|
|
1150
|
+
# 防御式处理,规划失败不影响主流程
|
|
1151
|
+
pass
|
|
1060
1152
|
return self._main_loop()
|
|
1061
1153
|
except Exception as e:
|
|
1062
1154
|
PrettyOutput.print(f"任务失败: {str(e)}", OutputType.ERROR)
|
|
@@ -1164,6 +1256,56 @@ class Agent:
|
|
|
1164
1256
|
temp_model.set_system_prompt(system_prompt)
|
|
1165
1257
|
return temp_model
|
|
1166
1258
|
|
|
1259
|
+
def _build_child_agent_params(self, name: str, description: str) -> Dict[str, Any]:
|
|
1260
|
+
"""构建子Agent参数,尽量继承父Agent配置,并确保子Agent非交互自动完成。"""
|
|
1261
|
+
use_tools_param: Optional[List[str]] = None
|
|
1262
|
+
try:
|
|
1263
|
+
tr = self.get_tool_registry()
|
|
1264
|
+
if isinstance(tr, ToolRegistry):
|
|
1265
|
+
selected_tools = tr.get_all_tools()
|
|
1266
|
+
use_tools_param = [t["name"] for t in selected_tools]
|
|
1267
|
+
except Exception:
|
|
1268
|
+
use_tools_param = None
|
|
1269
|
+
|
|
1270
|
+
return {
|
|
1271
|
+
"system_prompt": origin_agent_system_prompt,
|
|
1272
|
+
"name": name,
|
|
1273
|
+
"description": description,
|
|
1274
|
+
"model_group": self.model_group,
|
|
1275
|
+
"summary_prompt": self.summary_prompt,
|
|
1276
|
+
"auto_complete": True,
|
|
1277
|
+
"use_tools": use_tools_param,
|
|
1278
|
+
"execute_tool_confirm": self.execute_tool_confirm,
|
|
1279
|
+
"need_summary": self.need_summary,
|
|
1280
|
+
"auto_summary_rounds": self.auto_summary_rounds,
|
|
1281
|
+
"multiline_inputer": self.multiline_inputer,
|
|
1282
|
+
"use_methodology": self.use_methodology,
|
|
1283
|
+
"use_analysis": self.use_analysis,
|
|
1284
|
+
"force_save_memory": self.force_save_memory,
|
|
1285
|
+
"disable_file_edit": self.disable_file_edit,
|
|
1286
|
+
"files": self.files,
|
|
1287
|
+
"confirm_callback": self.confirm_callback,
|
|
1288
|
+
"non_interactive": True,
|
|
1289
|
+
"in_multi_agent": True,
|
|
1290
|
+
"plan": self.plan, # 继承父Agent的规划开关
|
|
1291
|
+
"plan_depth": self.plan_depth + 1, # 子Agent层数+1
|
|
1292
|
+
"plan_max_depth": self.plan_max_depth, # 继承上限
|
|
1293
|
+
}
|
|
1294
|
+
|
|
1295
|
+
def _maybe_plan_and_dispatch(self, task_text: str) -> None:
|
|
1296
|
+
"""委托给 TaskPlanner 执行任务规划与子任务调度,保持向后兼容。"""
|
|
1297
|
+
try:
|
|
1298
|
+
if hasattr(self, "task_planner") and self.task_planner:
|
|
1299
|
+
# 优先使用初始化时注入的规划器
|
|
1300
|
+
self.task_planner.maybe_plan_and_dispatch(task_text) # type: ignore[attr-defined]
|
|
1301
|
+
else:
|
|
1302
|
+
# 防御式回退:临时创建规划器以避免因未初始化导致的崩溃
|
|
1303
|
+
from jarvis.jarvis_agent.task_planner import TaskPlanner
|
|
1304
|
+
TaskPlanner(self, plan_depth=self.plan_depth, plan_max_depth=self.plan_max_depth).maybe_plan_and_dispatch(task_text)
|
|
1305
|
+
except Exception:
|
|
1306
|
+
# 规划失败不影响主流程
|
|
1307
|
+
pass
|
|
1308
|
+
|
|
1167
1309
|
def _filter_tools_if_needed(self, task: str):
|
|
1168
1310
|
"""如果工具数量超过阈值,使用大模型筛选相关工具"""
|
|
1169
1311
|
tool_registry = self.get_tool_registry()
|
{jarvis_ai_assistant-0.5.0 → jarvis_ai_assistant-0.7.0}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
|
@@ -11,11 +11,7 @@ from jarvis.jarvis_agent import (
|
|
|
11
11
|
get_multiline_input,
|
|
12
12
|
origin_agent_system_prompt,
|
|
13
13
|
)
|
|
14
|
-
from jarvis.jarvis_agent.builtin_input_handler import builtin_input_handler
|
|
15
|
-
from jarvis.jarvis_agent.file_context_handler import file_context_handler
|
|
16
|
-
from jarvis.jarvis_agent.shell_input_handler import shell_input_handler
|
|
17
14
|
from jarvis.jarvis_agent.task_manager import TaskManager
|
|
18
|
-
from jarvis.jarvis_tools.registry import ToolRegistry
|
|
19
15
|
from jarvis.jarvis_utils.config import is_non_interactive, is_skip_predefined_tasks
|
|
20
16
|
|
|
21
17
|
|
|
@@ -32,6 +28,7 @@ class AgentManager:
|
|
|
32
28
|
multiline_inputer: Optional[Callable[[str], str]] = None,
|
|
33
29
|
confirm_callback: Optional[Callable[[str, bool], bool]] = None,
|
|
34
30
|
non_interactive: Optional[bool] = None,
|
|
31
|
+
plan: Optional[bool] = None,
|
|
35
32
|
):
|
|
36
33
|
self.model_group = model_group
|
|
37
34
|
self.tool_group = tool_group
|
|
@@ -43,6 +40,7 @@ class AgentManager:
|
|
|
43
40
|
self.multiline_inputer = multiline_inputer
|
|
44
41
|
self.confirm_callback = confirm_callback
|
|
45
42
|
self.non_interactive = non_interactive
|
|
43
|
+
self.plan = plan
|
|
46
44
|
|
|
47
45
|
def initialize(self) -> Agent:
|
|
48
46
|
"""初始化Agent"""
|
|
@@ -61,6 +59,7 @@ class AgentManager:
|
|
|
61
59
|
multiline_inputer=self.multiline_inputer,
|
|
62
60
|
confirm_callback=self.confirm_callback,
|
|
63
61
|
non_interactive=self.non_interactive,
|
|
62
|
+
plan=self.plan,
|
|
64
63
|
)
|
|
65
64
|
|
|
66
65
|
# 尝试恢复会话
|