jarvis-ai-assistant 0.3.31__tar.gz → 0.3.32__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.3.31/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.32}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/pyproject.toml +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/setup.py +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/edit_file_handler.py +30 -12
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/jarvis.py +83 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/openai.py +26 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/edit_file.py +7 -7
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/git_utils.py +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/input.py +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/utils.py +2 -2
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/README.md +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/agent_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/config.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/config_editor.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/event_bus.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/events.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/prompt_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/run_loop.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/user_interaction.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/utils.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_data/config_schema.json +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/base.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/registry.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/tongyi.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform_manager/service.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/cli.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/retriever.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/cli.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/stats.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/visualizer.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/cli/main.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/registry.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/save_memory.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/sub_agent.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/sub_code_agent.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/config.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/fzf.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/globals.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/http.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "jarvis-ai-assistant"
|
7
|
-
version = "0.3.
|
7
|
+
version = "0.3.32"
|
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" }]
|
@@ -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.3.
|
6
|
+
version="0.3.32",
|
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",
|
@@ -166,7 +166,7 @@ class EditFileHandler(OutputHandler):
|
|
166
166
|
- {supported_formats}
|
167
167
|
- {ot("RANGE")}start-end{ct("RANGE")} 仅用于区间替换模式(SEARCH_START/SEARCH_END),表示只在指定行号范围内进行匹配与替换(1-based,闭区间);省略则在整个文件范围内处理
|
168
168
|
- 单点替换要求 SEARCH 在有效范围内唯一匹配(仅替换第一个匹配)
|
169
|
-
-
|
169
|
+
- 区间替换会从包含 {ot("SEARCH_START")} 的行首开始,到包含 {ot("SEARCH_END")} 的行尾结束,替换整个区域
|
170
170
|
否则编辑将失败。"""
|
171
171
|
|
172
172
|
def name(self) -> str:
|
@@ -468,24 +468,42 @@ class EditFileHandler(OutputHandler):
|
|
468
468
|
error_msg = "未找到SEARCH_START"
|
469
469
|
failed_patches.append({"patch": patch, "error": error_msg})
|
470
470
|
else:
|
471
|
-
|
471
|
+
# 从 search_start 之后开始查找 search_end
|
472
|
+
end_idx = base_content.find(search_end, start_idx + len(search_start))
|
472
473
|
if end_idx == -1:
|
473
474
|
error_msg = "在SEARCH_START之后未找到SEARCH_END"
|
474
475
|
failed_patches.append({"patch": patch, "error": error_msg})
|
475
476
|
else:
|
476
|
-
#
|
477
|
-
#
|
478
|
-
|
479
|
-
|
477
|
+
# 将替换范围扩展到整行
|
478
|
+
# 找到 start_idx 所在行的行首
|
479
|
+
line_start_idx = base_content.rfind("\n", 0, start_idx) + 1
|
480
|
+
|
481
|
+
# 找到 end_idx 所在行的行尾
|
482
|
+
match_end_pos = end_idx + len(search_end)
|
483
|
+
line_end_idx = base_content.find("\n", match_end_pos)
|
484
|
+
|
485
|
+
if line_end_idx == -1:
|
486
|
+
# 如果没有找到换行符,说明是最后一行
|
487
|
+
end_of_range = len(base_content)
|
488
|
+
else:
|
489
|
+
# 包含换行符
|
490
|
+
end_of_range = line_end_idx + 1
|
491
|
+
|
492
|
+
final_replace_text = replace_text
|
493
|
+
original_slice = base_content[line_start_idx:end_of_range]
|
494
|
+
|
495
|
+
# 如果原始片段以换行符结尾,且替换内容不为空且不以换行符结尾,
|
496
|
+
# 则为替换内容添加换行符以保持格式
|
480
497
|
if (
|
481
|
-
|
482
|
-
and
|
483
|
-
and
|
498
|
+
final_replace_text
|
499
|
+
and original_slice.endswith("\n")
|
500
|
+
and not final_replace_text.endswith("\n")
|
484
501
|
):
|
485
|
-
|
502
|
+
final_replace_text += "\n"
|
503
|
+
|
486
504
|
base_content = (
|
487
|
-
base_content[:
|
488
|
-
+
|
505
|
+
base_content[:line_start_idx]
|
506
|
+
+ final_replace_text
|
489
507
|
+ base_content[end_of_range:]
|
490
508
|
)
|
491
509
|
found = True
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
"""Jarvis AI 助手主入口模块"""
|
3
3
|
from typing import Optional, List
|
4
|
+
import shutil
|
5
|
+
from datetime import datetime
|
4
6
|
|
5
7
|
import typer
|
6
8
|
|
@@ -16,6 +18,7 @@ from jarvis.jarvis_utils.config import (
|
|
16
18
|
get_agent_definition_dirs,
|
17
19
|
get_multi_agent_dirs,
|
18
20
|
get_roles_dirs,
|
21
|
+
get_data_dir,
|
19
22
|
)
|
20
23
|
import jarvis.jarvis_utils.utils as jutils
|
21
24
|
from jarvis.jarvis_utils.input import user_confirm, get_single_line_input
|
@@ -184,6 +187,72 @@ def handle_interactive_config_option(
|
|
184
187
|
return True
|
185
188
|
|
186
189
|
|
190
|
+
def handle_backup_option(backup: bool) -> bool:
|
191
|
+
"""处理数据备份选项,返回是否已处理并需提前结束。"""
|
192
|
+
if not backup:
|
193
|
+
return False
|
194
|
+
|
195
|
+
init_env("", config_file=None)
|
196
|
+
data_dir = Path(get_data_dir())
|
197
|
+
if not data_dir.is_dir():
|
198
|
+
PrettyOutput.print(f"数据目录不存在: {data_dir}", OutputType.ERROR)
|
199
|
+
return True
|
200
|
+
|
201
|
+
backup_dir = Path(os.path.expanduser("~/jarvis_backups"))
|
202
|
+
backup_dir.mkdir(exist_ok=True)
|
203
|
+
|
204
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
205
|
+
backup_file_base = backup_dir / f"jarvis_data_{timestamp}"
|
206
|
+
|
207
|
+
try:
|
208
|
+
archive_path = shutil.make_archive(
|
209
|
+
str(backup_file_base), "zip", root_dir=str(data_dir)
|
210
|
+
)
|
211
|
+
PrettyOutput.print(f"数据已成功备份到: {archive_path}", OutputType.SUCCESS)
|
212
|
+
except Exception as e:
|
213
|
+
PrettyOutput.print(f"数据备份失败: {e}", OutputType.ERROR)
|
214
|
+
|
215
|
+
return True
|
216
|
+
|
217
|
+
|
218
|
+
def handle_restore_option(restore_path: Optional[str]) -> bool:
|
219
|
+
"""处理数据恢复选项,返回是否已处理并需提前结束。"""
|
220
|
+
if not restore_path:
|
221
|
+
return False
|
222
|
+
|
223
|
+
restore_file = Path(restore_path)
|
224
|
+
if not restore_file.is_file():
|
225
|
+
PrettyOutput.print(f"指定的恢复文件不存在: {restore_path}", OutputType.ERROR)
|
226
|
+
return True
|
227
|
+
|
228
|
+
init_env("", config_file=None)
|
229
|
+
data_dir = Path(get_data_dir())
|
230
|
+
|
231
|
+
if data_dir.exists():
|
232
|
+
if not user_confirm(
|
233
|
+
f"数据目录 '{data_dir}' 已存在,恢复操作将覆盖它。是否继续?", default=False
|
234
|
+
):
|
235
|
+
PrettyOutput.print("恢复操作已取消。", OutputType.INFO)
|
236
|
+
return True
|
237
|
+
try:
|
238
|
+
shutil.rmtree(data_dir)
|
239
|
+
except Exception as e:
|
240
|
+
PrettyOutput.print(f"无法移除现有数据目录: {e}", OutputType.ERROR)
|
241
|
+
return True
|
242
|
+
|
243
|
+
try:
|
244
|
+
data_dir.mkdir(parents=True)
|
245
|
+
shutil.unpack_archive(str(restore_file), str(data_dir), "zip")
|
246
|
+
PrettyOutput.print(
|
247
|
+
f"数据已从 '{restore_path}' 成功恢复到 '{data_dir}'", OutputType.SUCCESS
|
248
|
+
)
|
249
|
+
|
250
|
+
except Exception as e:
|
251
|
+
PrettyOutput.print(f"数据恢复失败: {e}", OutputType.ERROR)
|
252
|
+
|
253
|
+
return True
|
254
|
+
|
255
|
+
|
187
256
|
def preload_config_for_flags(config_file: Optional[str]) -> None:
|
188
257
|
"""预加载配置(仅用于读取功能开关),不会显示欢迎信息或影响后续 init_env。"""
|
189
258
|
try:
|
@@ -521,6 +590,12 @@ def run_cli(
|
|
521
590
|
"--disable-methodology-analysis",
|
522
591
|
help="禁用方法论和任务分析(覆盖配置文件设置)",
|
523
592
|
),
|
593
|
+
backup_data: bool = typer.Option(
|
594
|
+
False, "--backup-data", help="备份 Jarvis 数据目录 (~/.jarvis)"
|
595
|
+
),
|
596
|
+
restore_data: Optional[str] = typer.Option(
|
597
|
+
None, "--restore-data", help="从指定的压缩包恢复 Jarvis 数据"
|
598
|
+
),
|
524
599
|
) -> None:
|
525
600
|
"""Jarvis AI assistant command-line interface."""
|
526
601
|
if ctx.invoked_subcommand is not None:
|
@@ -529,6 +604,14 @@ def run_cli(
|
|
529
604
|
# 使用 rich 输出命令与快捷方式总览
|
530
605
|
print_commands_overview()
|
531
606
|
|
607
|
+
# 处理数据备份
|
608
|
+
if handle_backup_option(backup_data):
|
609
|
+
return
|
610
|
+
|
611
|
+
# 处理数据恢复
|
612
|
+
if handle_restore_option(restore_data):
|
613
|
+
return
|
614
|
+
|
532
615
|
# 处理配置文件编辑
|
533
616
|
if handle_edit_option(edit, config_file):
|
534
617
|
return
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/openai.py
RENAMED
@@ -24,7 +24,32 @@ class OpenAIModel(BasePlatform):
|
|
24
24
|
self.base_url = os.getenv("OPENAI_API_BASE", "https://api.openai.com/v1")
|
25
25
|
self.model_name = os.getenv("JARVIS_MODEL") or "gpt-4o"
|
26
26
|
|
27
|
-
|
27
|
+
# Optional: Inject extra HTTP headers via environment variable
|
28
|
+
# Expected format: OPENAI_EXTRA_HEADERS='{"Header-Name": "value", "X-Trace": "abc"}'
|
29
|
+
headers_str = os.getenv("OPENAI_EXTRA_HEADERS")
|
30
|
+
self.extra_headers: Dict[str, str] = {}
|
31
|
+
if headers_str:
|
32
|
+
try:
|
33
|
+
parsed = json.loads(headers_str)
|
34
|
+
if isinstance(parsed, dict):
|
35
|
+
# Ensure all header keys/values are strings
|
36
|
+
self.extra_headers = {str(k): str(v) for k, v in parsed.items()}
|
37
|
+
else:
|
38
|
+
PrettyOutput.print("OPENAI_EXTRA_HEADERS 应为 JSON 对象,如 {'X-Source':'jarvis'}", OutputType.WARNING)
|
39
|
+
except Exception as e:
|
40
|
+
PrettyOutput.print(f"解析 OPENAI_EXTRA_HEADERS 失败: {e}", OutputType.WARNING)
|
41
|
+
|
42
|
+
# Initialize OpenAI client, try to pass default headers if SDK supports it
|
43
|
+
try:
|
44
|
+
if self.extra_headers:
|
45
|
+
self.client = OpenAI(api_key=self.api_key, base_url=self.base_url, default_headers=self.extra_headers)
|
46
|
+
else:
|
47
|
+
self.client = OpenAI(api_key=self.api_key, base_url=self.base_url)
|
48
|
+
except TypeError:
|
49
|
+
# Fallback: SDK version may not support default_headers
|
50
|
+
self.client = OpenAI(api_key=self.api_key, base_url=self.base_url)
|
51
|
+
if self.extra_headers:
|
52
|
+
PrettyOutput.print("当前 OpenAI SDK 不支持 default_headers,未能注入额外 HTTP 头", OutputType.WARNING)
|
28
53
|
self.messages: List[Dict[str, str]] = []
|
29
54
|
self.system_message = ""
|
30
55
|
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/edit_file.py
RENAMED
@@ -34,17 +34,18 @@ class FileSearchReplaceTool:
|
|
34
34
|
- REPLACE: 替换后的新代码
|
35
35
|
- 区间替换:
|
36
36
|
- reason: 修改原因描述
|
37
|
-
- SEARCH_START:
|
38
|
-
- SEARCH_END:
|
37
|
+
- SEARCH_START: 起始标记
|
38
|
+
- SEARCH_END: 结束标记
|
39
39
|
- REPLACE: 替换后的新代码
|
40
40
|
- RANGE: 可选的行号范围 'start-end' (1-based, 闭区间), 用于限定匹配范围
|
41
|
+
- **说明**: 区间替换会从包含 SEARCH_START 的行首开始,到包含 SEARCH_END 的行尾结束,替换整个区域
|
41
42
|
|
42
43
|
## 核心原则
|
43
44
|
1. **精准修改**: 只修改必要的代码部分,保持其他部分不变
|
44
45
|
2. **最小补丁原则**: 生成最小范围的补丁,包含必要的上下文
|
45
46
|
3. **唯一匹配**:
|
46
47
|
- 单点替换:确保 SEARCH 在文件中唯一匹配
|
47
|
-
-
|
48
|
+
- 区间替换:确保在指定范围内,第一个 SEARCH_START 之后能找到 SEARCH_END
|
48
49
|
4. **格式保持**: 严格保持原始代码的格式风格
|
49
50
|
5. **部分成功**: 支持多个文件编辑,允许部分文件编辑成功
|
50
51
|
|
@@ -121,11 +122,10 @@ class FileSearchReplaceTool:
|
|
121
122
|
- REPLACE: 替换后的新代码
|
122
123
|
2) 区间替换:
|
123
124
|
- reason: 修改原因描述
|
124
|
-
- SEARCH_START:
|
125
|
-
- SEARCH_END:
|
125
|
+
- SEARCH_START: 起始标记
|
126
|
+
- SEARCH_END: 结束标记
|
126
127
|
- REPLACE: 替换后的新代码
|
127
|
-
|
128
|
-
- RANGE: 形如 'start-end'(1-based,闭区间),仅用于区间替换模式。当提供时仅在该行号范围内执行匹配与替换;省略则在整个文件范围内处理
|
128
|
+
- **说明**: 区间替换会从包含 SEARCH_START 的行首开始,到包含 SEARCH_END 的行尾结束,替换整个区域
|
129
129
|
|
130
130
|
返回:
|
131
131
|
Dict[str, Any] 包含:
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/git_utils.py
RENAMED
@@ -299,7 +299,7 @@ def get_modified_line_ranges() -> Dict[str, List[Tuple[int, int]]]:
|
|
299
299
|
# 获取所有文件的Git差异
|
300
300
|
# 仅用于解析修改行范围,减少上下文以降低输出体积和解析成本
|
301
301
|
result = subprocess.run(
|
302
|
-
["git", "show", "
|
302
|
+
["git", "show", "--no-color"],
|
303
303
|
capture_output=True,
|
304
304
|
text=True,
|
305
305
|
)
|
@@ -482,7 +482,7 @@ def _get_multiline_input_internal(
|
|
482
482
|
"""Handle Ctrl+O by exiting the prompt and returning the sentinel value."""
|
483
483
|
event.app.exit(result=CTRL_O_SENTINEL)
|
484
484
|
|
485
|
-
@bindings.add("c-t", filter=has_focus(DEFAULT_BUFFER))
|
485
|
+
@bindings.add("c-t", filter=has_focus(DEFAULT_BUFFER), eager=True)
|
486
486
|
def _(event):
|
487
487
|
"""Return a shell command like '!bash' for upper input_handler to execute."""
|
488
488
|
|
@@ -1719,11 +1719,11 @@ def while_success(func: Callable[[], Any], sleep_time: float = 0.1, max_retries:
|
|
1719
1719
|
try:
|
1720
1720
|
result = func()
|
1721
1721
|
break
|
1722
|
-
except Exception:
|
1722
|
+
except Exception as e:
|
1723
1723
|
retry_count += 1
|
1724
1724
|
if retry_count < max_retries:
|
1725
1725
|
PrettyOutput.print(
|
1726
|
-
f"
|
1726
|
+
f"发生异常:\n{e}\n重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...",
|
1727
1727
|
OutputType.WARNING,
|
1728
1728
|
)
|
1729
1729
|
time.sleep(sleep_time)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/config_editor.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/event_bus.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/memory_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/output_handler.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/prompt_builder.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/prompt_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/prompts.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/protocols.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/run_loop.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/session_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/share_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/task_analyzer.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/task_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_agent/tool_executor.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_agent/code_agent.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_code_agent/lint.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_data/config_schema.json
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_git_squash/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_git_squash/main.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_mcp/sse_mcp_client.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_mcp/stdio_mcp_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_methodology/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_multi_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_multi_agent/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/__init__.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/base.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/human.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/kimi.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/registry.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/tongyi.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform/yuanbao.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_platform_manager/main.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/embedding_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/llm_interface.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/query_rewriter.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/rag_pipeline.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_rag/retriever.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_smart_shell/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_smart_shell/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/storage.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_stats/visualizer.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/ask_user.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/clear_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/cli/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/cli/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/execute_script.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/file_analyzer.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/methodology.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/read_code.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/read_webpage.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/registry.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/retrieve_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/rewrite_file.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/save_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/search_web.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/sub_agent.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/sub_code_agent.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_tools/virtual_tty.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/__init__.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/clipboard.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/embedding.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/file_processors.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/globals.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.31 → jarvis_ai_assistant-0.3.32}/src/jarvis/jarvis_utils/methodology.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|