jarvis-ai-assistant 0.3.5__tar.gz → 0.3.7__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.5/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.7}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/pyproject.toml +1 -4
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/setup.py +1 -1
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +3 -1
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/git_utils.py +33 -3
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/utils.py +101 -7
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/README.md +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/agent_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/config_editor.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/jarvis.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_data/config_schema.json +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/base.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/openai.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/registry.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/tongyi.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform_manager/service.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/cli.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/retriever.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_stats/cli.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_stats/stats.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_stats/visualizer.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/cli/main.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/edit_file.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/registry.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/save_memory.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/config.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/globals.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/http.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/input.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/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.7"
|
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" }]
|
@@ -112,6 +112,3 @@ url = "https://mirrors.aliyun.com/pypi/simple/"
|
|
112
112
|
name = "ustc"
|
113
113
|
url = "https://pypi.mirrors.ustc.edu.cn/simple/"
|
114
114
|
|
115
|
-
[[tool.uv.index]]
|
116
|
-
name = "netease"
|
117
|
-
url = "https://mirrors.163.com/pypi/simple/"
|
@@ -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.7",
|
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",
|
@@ -163,11 +163,13 @@ class MemoryOrganizer:
|
|
163
163
|
)
|
164
164
|
all_tags.update(memory.get("tags", []))
|
165
165
|
|
166
|
+
memory_contents_str = (("="*50) + "\n").join(memory_contents)
|
167
|
+
|
166
168
|
prompt = f"""请将以下{len(memories)}个相关记忆合并成一个综合性的记忆。
|
167
169
|
|
168
170
|
原始记忆(按时间从新到旧排序):
|
169
171
|
{"="*50}
|
170
|
-
{
|
172
|
+
{memory_contents_str}
|
171
173
|
{"="*50}
|
172
174
|
|
173
175
|
原始标签集合:{', '.join(sorted(all_tags))}
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/git_utils.py
RENAMED
@@ -427,10 +427,40 @@ def check_and_update_git_repo(repo_path: str) -> bool:
|
|
427
427
|
is_uv_env = True
|
428
428
|
|
429
429
|
# 根据环境选择安装命令
|
430
|
-
|
431
|
-
|
430
|
+
# 检测是否安装了 RAG 特性
|
431
|
+
rag_installed = False
|
432
|
+
try:
|
433
|
+
import langchain # noqa
|
434
|
+
|
435
|
+
rag_installed = True
|
436
|
+
except ImportError:
|
437
|
+
pass
|
438
|
+
|
439
|
+
# 根据环境和 RAG 特性选择安装命令
|
440
|
+
if rag_installed:
|
441
|
+
if is_uv_env:
|
442
|
+
install_cmd = ["uv", "pip", "install", "-e", ".[rag]"]
|
443
|
+
else:
|
444
|
+
install_cmd = [
|
445
|
+
sys.executable,
|
446
|
+
"-m",
|
447
|
+
"pip",
|
448
|
+
"install",
|
449
|
+
"-e",
|
450
|
+
".[rag]",
|
451
|
+
]
|
432
452
|
else:
|
433
|
-
|
453
|
+
if is_uv_env:
|
454
|
+
install_cmd = ["uv", "pip", "install", "-e", "."]
|
455
|
+
else:
|
456
|
+
install_cmd = [
|
457
|
+
sys.executable,
|
458
|
+
"-m",
|
459
|
+
"pip",
|
460
|
+
"install",
|
461
|
+
"-e",
|
462
|
+
".",
|
463
|
+
]
|
434
464
|
|
435
465
|
# 尝试安装
|
436
466
|
result = subprocess.run(
|
@@ -9,7 +9,7 @@ import sys
|
|
9
9
|
import time
|
10
10
|
from pathlib import Path
|
11
11
|
from typing import Any, Callable, Dict, List, Optional
|
12
|
-
from datetime import datetime
|
12
|
+
from datetime import datetime, date
|
13
13
|
|
14
14
|
import yaml # type: ignore
|
15
15
|
from rich.align import Align
|
@@ -79,16 +79,110 @@ def _setup_signal_handler() -> None:
|
|
79
79
|
signal.signal(signal.SIGINT, sigint_handler)
|
80
80
|
|
81
81
|
|
82
|
-
def
|
83
|
-
"""
|
82
|
+
def _check_pip_updates() -> bool:
|
83
|
+
"""检查pip安装的Jarvis是否有更新
|
84
|
+
|
85
|
+
返回:
|
86
|
+
bool: 是否执行了更新(总是返回False,因为pip更新需要用户手动执行)
|
87
|
+
"""
|
88
|
+
import urllib.request
|
89
|
+
import urllib.error
|
90
|
+
from packaging import version
|
91
|
+
|
92
|
+
# 检查上次检查日期
|
93
|
+
last_check_file = Path(get_data_dir()) / "last_pip_check"
|
94
|
+
today_str = date.today().strftime("%Y-%m-%d")
|
95
|
+
|
96
|
+
if last_check_file.exists():
|
97
|
+
try:
|
98
|
+
last_check_date = last_check_file.read_text().strip()
|
99
|
+
if last_check_date == today_str:
|
100
|
+
return False
|
101
|
+
except Exception:
|
102
|
+
pass
|
103
|
+
|
104
|
+
try:
|
105
|
+
# 获取PyPI上的最新版本
|
106
|
+
url = "https://pypi.org/pypi/jarvis-ai-assistant/json"
|
107
|
+
try:
|
108
|
+
with urllib.request.urlopen(url, timeout=5) as response:
|
109
|
+
data = json.loads(response.read().decode())
|
110
|
+
latest_version = data["info"]["version"]
|
111
|
+
except (urllib.error.URLError, KeyError, json.JSONDecodeError) as e:
|
112
|
+
return False
|
113
|
+
|
114
|
+
# 比较版本
|
115
|
+
current_ver = version.parse(__version__)
|
116
|
+
latest_ver = version.parse(latest_version)
|
117
|
+
|
118
|
+
if latest_ver > current_ver:
|
119
|
+
PrettyOutput.print(
|
120
|
+
f"检测到新版本 v{latest_version} (当前版本: v{__version__})",
|
121
|
+
OutputType.INFO,
|
122
|
+
)
|
123
|
+
|
124
|
+
# 检测是否在虚拟环境中
|
125
|
+
in_venv = hasattr(sys, "real_prefix") or (
|
126
|
+
hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix
|
127
|
+
)
|
128
|
+
|
129
|
+
# 检测是否使用uv
|
130
|
+
is_uv_env = False
|
131
|
+
if in_venv:
|
132
|
+
if sys.platform == "win32":
|
133
|
+
uv_path = Path(sys.prefix) / "Scripts" / "uv.exe"
|
134
|
+
else:
|
135
|
+
uv_path = Path(sys.prefix) / "bin" / "uv"
|
136
|
+
if uv_path.exists():
|
137
|
+
is_uv_env = True
|
138
|
+
|
139
|
+
# 检测是否安装了 RAG 特性
|
140
|
+
rag_installed = False
|
141
|
+
try:
|
142
|
+
import langchain # noqa
|
143
|
+
|
144
|
+
rag_installed = True
|
145
|
+
except ImportError:
|
146
|
+
pass
|
147
|
+
|
148
|
+
# 提供更新命令
|
149
|
+
package_spec = (
|
150
|
+
"jarvis-ai-assistant[rag]" if rag_installed else "jarvis-ai-assistant"
|
151
|
+
)
|
152
|
+
if is_uv_env:
|
153
|
+
update_cmd = f"uv pip install --upgrade {package_spec}"
|
154
|
+
else:
|
155
|
+
update_cmd = f"{sys.executable} -m pip install --upgrade {package_spec}"
|
156
|
+
|
157
|
+
PrettyOutput.print(f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO)
|
158
|
+
|
159
|
+
# 更新检查日期
|
160
|
+
last_check_file.write_text(today_str)
|
161
|
+
|
162
|
+
except Exception as e:
|
163
|
+
# 静默处理错误,不影响正常使用
|
164
|
+
pass
|
165
|
+
|
166
|
+
return False
|
167
|
+
|
168
|
+
|
169
|
+
def _check_jarvis_updates() -> bool:
|
170
|
+
"""检查并更新Jarvis本身(git仓库或pip包)
|
84
171
|
|
85
172
|
返回:
|
86
173
|
bool: 是否需要重启进程
|
87
174
|
"""
|
88
175
|
script_dir = Path(os.path.dirname(os.path.dirname(__file__)))
|
89
|
-
from jarvis.jarvis_utils.git_utils import check_and_update_git_repo
|
90
176
|
|
91
|
-
|
177
|
+
# 先检查是否是git源码安装
|
178
|
+
git_dir = script_dir / ".git"
|
179
|
+
if git_dir.exists():
|
180
|
+
from jarvis.jarvis_utils.git_utils import check_and_update_git_repo
|
181
|
+
|
182
|
+
return check_and_update_git_repo(str(script_dir))
|
183
|
+
|
184
|
+
# 检查是否是pip/uv pip安装的版本
|
185
|
+
return _check_pip_updates()
|
92
186
|
|
93
187
|
|
94
188
|
def _show_usage_stats(welcome_str: str) -> None:
|
@@ -531,8 +625,8 @@ def init_env(welcome_str: str, config_file: Optional[str] = None) -> None:
|
|
531
625
|
if welcome_str:
|
532
626
|
_show_usage_stats(welcome_str)
|
533
627
|
|
534
|
-
# 5. 检查
|
535
|
-
if
|
628
|
+
# 5. 检查Jarvis更新
|
629
|
+
if _check_jarvis_updates():
|
536
630
|
os.execv(sys.executable, [sys.executable] + sys.argv)
|
537
631
|
sys.exit(0)
|
538
632
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/config_editor.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/edit_file_handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/memory_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/output_handler.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/prompt_builder.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/protocols.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/session_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/share_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/task_analyzer.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/task_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_agent/tool_executor.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_code_agent/code_agent.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/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.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_data/config_schema.json
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_git_squash/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_git_squash/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_git_utils/git_commiter.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_mcp/sse_mcp_client.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_mcp/stdio_mcp_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_methodology/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_multi_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_multi_agent/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/openai.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/registry.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/tongyi.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_platform/yuanbao.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/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.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/embedding_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/llm_interface.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/query_rewriter.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_rag/rag_pipeline.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_smart_shell/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_smart_shell/main.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_stats/visualizer.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/clear_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/cli/__init__.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/edit_file.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/execute_script.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/file_analyzer.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/generate_new_tool.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/methodology.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/read_code.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/read_webpage.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/retrieve_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/rewrite_file.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/save_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/search_web.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_tools/virtual_tty.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/clipboard.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/embedding.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/file_processors.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis/jarvis_utils/methodology.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.5 → jarvis_ai_assistant-0.3.7}/src/jarvis_ai_assistant.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|