jarvis-ai-assistant 0.3.27__tar.gz → 0.3.28__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.27/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.28}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/pyproject.toml +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/setup.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/__init__.py +13 -4
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/agent_manager.py +6 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/config_editor.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/file_methodology_manager.py +1 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/jarvis.py +8 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/memory_manager.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/shell_input_handler.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/task_analyzer.py +1 -2
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/user_interaction.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_agent/code_agent.py +2 -2
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/code_review.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_git_utils/git_commiter.py +13 -4
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +2 -5
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_methodology/main.py +0 -2
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_multi_agent/__init__.py +3 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/base.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/registry.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/yuanbao.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform_manager/service.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/cli.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/embedding_manager.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/llm_interface.py +0 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_smart_shell/main.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_stats/cli.py +2 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_stats/stats.py +1 -2
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/clear_memory.py +1 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/cli/main.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/edit_file.py +0 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/generate_new_tool.py +3 -5
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/registry.py +2 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/retrieve_memory.py +2 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/save_memory.py +3 -3
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/search_web.py +2 -2
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/sub_agent.py +20 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/sub_code_agent.py +17 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/virtual_tty.py +3 -14
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/builtin_replace_map.py +4 -4
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/config.py +30 -15
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/git_utils.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/globals.py +1 -2
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/methodology.py +3 -5
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/output.py +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/utils.py +64 -22
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/README.md +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/config.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/event_bus.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/prompt_manager.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/run_loop.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_data/config_schema.json +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/openai.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/tongyi.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_rag/retriever.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_stats/visualizer.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/fzf.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/http.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/input.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/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.28"
|
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.28",
|
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",
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/__init__.py
RENAMED
@@ -67,7 +67,10 @@ from jarvis.jarvis_utils.tag import ot
|
|
67
67
|
|
68
68
|
|
69
69
|
def show_agent_startup_stats(
|
70
|
-
agent_name: str,
|
70
|
+
agent_name: str,
|
71
|
+
model_name: str,
|
72
|
+
tool_registry_instance: Optional[Any] = None,
|
73
|
+
platform_name: Optional[str] = None,
|
71
74
|
) -> None:
|
72
75
|
"""输出启动时的统计信息
|
73
76
|
|
@@ -112,7 +115,8 @@ def show_agent_startup_stats(
|
|
112
115
|
current_dir = os.getcwd()
|
113
116
|
|
114
117
|
# 构建欢迎信息
|
115
|
-
|
118
|
+
platform = platform_name or get_normal_platform_name()
|
119
|
+
welcome_message = f"{agent_name} 初始化完成 - 使用 {platform} 平台 {model_name} 模型"
|
116
120
|
|
117
121
|
stats_parts = [
|
118
122
|
f"📚 本地方法论: [bold cyan]{methodology_count}[/bold cyan]",
|
@@ -326,7 +330,12 @@ class Agent:
|
|
326
330
|
self._setup_system_prompt()
|
327
331
|
|
328
332
|
# 输出统计信息(包含欢迎信息)
|
329
|
-
show_agent_startup_stats(
|
333
|
+
show_agent_startup_stats(
|
334
|
+
name,
|
335
|
+
self.model.name(),
|
336
|
+
self.get_tool_registry(), # type: ignore
|
337
|
+
platform_name=self.model.platform_name(), # type: ignore
|
338
|
+
)
|
330
339
|
|
331
340
|
def _init_model(self, model_group: Optional[str]):
|
332
341
|
"""初始化模型平台(统一使用 normal 平台/模型)"""
|
@@ -639,7 +648,7 @@ class Agent:
|
|
639
648
|
) # type: ignore
|
640
649
|
|
641
650
|
return summary
|
642
|
-
except Exception
|
651
|
+
except Exception:
|
643
652
|
PrettyOutput.print("总结对话历史失败", OutputType.ERROR)
|
644
653
|
return ""
|
645
654
|
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
@@ -25,10 +25,14 @@ class AgentManager:
|
|
25
25
|
model_group: Optional[str] = None,
|
26
26
|
tool_group: Optional[str] = None,
|
27
27
|
restore_session: bool = False,
|
28
|
+
use_methodology: Optional[bool] = None,
|
29
|
+
use_analysis: Optional[bool] = None,
|
28
30
|
):
|
29
31
|
self.model_group = model_group
|
30
32
|
self.tool_group = tool_group
|
31
33
|
self.restore_session = restore_session
|
34
|
+
self.use_methodology = use_methodology
|
35
|
+
self.use_analysis = use_analysis
|
32
36
|
self.agent: Optional[Agent] = None
|
33
37
|
|
34
38
|
def initialize(self) -> Agent:
|
@@ -45,6 +49,8 @@ class AgentManager:
|
|
45
49
|
input_handler=[shell_input_handler, builtin_input_handler],
|
46
50
|
output_handler=[ToolRegistry()], # type: ignore
|
47
51
|
need_summary=False,
|
52
|
+
use_methodology=self.use_methodology,
|
53
|
+
use_analysis=self.use_analysis,
|
48
54
|
)
|
49
55
|
|
50
56
|
# 尝试恢复会话
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/config_editor.py
RENAMED
@@ -51,7 +51,7 @@ class ConfigEditor:
|
|
51
51
|
raise typer.Exit(code=1)
|
52
52
|
else:
|
53
53
|
PrettyOutput.print(
|
54
|
-
|
54
|
+
"No suitable editor found. Please install one of: vim, nano, emacs, code",
|
55
55
|
OutputType.ERROR,
|
56
56
|
)
|
57
57
|
raise typer.Exit(code=1)
|
@@ -5,7 +5,6 @@
|
|
5
5
|
"""
|
6
6
|
import os
|
7
7
|
import tempfile
|
8
|
-
from typing import List, Optional
|
9
8
|
|
10
9
|
from jarvis.jarvis_utils.methodology import load_methodology, upload_methodology
|
11
10
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
@@ -46,7 +45,6 @@ class FileMethodologyManager:
|
|
46
45
|
self._load_local_methodology()
|
47
46
|
else:
|
48
47
|
# 上传成功
|
49
|
-
from jarvis.jarvis_agent.memory_manager import MemoryManager
|
50
48
|
|
51
49
|
if self.agent.files:
|
52
50
|
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息和方法论文件,可以从中获取一些经验信息。"
|
@@ -75,7 +73,7 @@ class FileMethodologyManager:
|
|
75
73
|
|
76
74
|
from jarvis.jarvis_agent.memory_manager import MemoryManager
|
77
75
|
|
78
|
-
|
76
|
+
MemoryManager(self.agent)
|
79
77
|
methodology = load_methodology(
|
80
78
|
msg,
|
81
79
|
self.agent.get_tool_registry(),
|
@@ -21,7 +21,6 @@ import jarvis.jarvis_utils.utils as jutils
|
|
21
21
|
from jarvis.jarvis_utils.input import user_confirm, get_single_line_input
|
22
22
|
from jarvis.jarvis_utils.fzf import fzf_select
|
23
23
|
import os
|
24
|
-
import sys
|
25
24
|
import subprocess
|
26
25
|
from pathlib import Path
|
27
26
|
import yaml # type: ignore
|
@@ -516,6 +515,12 @@ def run_cli(
|
|
516
515
|
"--interactive-config",
|
517
516
|
help="启动交互式配置向导(基于当前配置补充设置)",
|
518
517
|
),
|
518
|
+
disable_methodology_analysis: bool = typer.Option(
|
519
|
+
False,
|
520
|
+
"-D",
|
521
|
+
"--disable-methodology-analysis",
|
522
|
+
help="禁用方法论和任务分析(覆盖配置文件设置)",
|
523
|
+
),
|
519
524
|
) -> None:
|
520
525
|
"""Jarvis AI assistant command-line interface."""
|
521
526
|
if ctx.invoked_subcommand is not None:
|
@@ -562,6 +567,8 @@ def run_cli(
|
|
562
567
|
model_group=model_group,
|
563
568
|
tool_group=tool_group,
|
564
569
|
restore_session=restore_session,
|
570
|
+
use_methodology=False if disable_methodology_analysis else None,
|
571
|
+
use_analysis=False if disable_methodology_analysis else None,
|
565
572
|
)
|
566
573
|
agent_manager.initialize()
|
567
574
|
agent_manager.run_task(task)
|
@@ -28,7 +28,7 @@ def shell_input_handler(user_input: str, agent: Any) -> Tuple[str, bool]:
|
|
28
28
|
# If any line contains the no-confirm marker, skip the pre-execution confirmation
|
29
29
|
no_confirm = any(marker in c for c in cmdline)
|
30
30
|
|
31
|
-
if no_confirm or user_confirm(
|
31
|
+
if no_confirm or user_confirm("是否要执行以上shell脚本?", default=True):
|
32
32
|
from jarvis.jarvis_tools.registry import ToolRegistry
|
33
33
|
|
34
34
|
output = ToolRegistry().handle_tool_calls(
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_agent/task_analyzer.py
RENAMED
@@ -3,7 +3,6 @@
|
|
3
3
|
任务分析器模块
|
4
4
|
负责处理任务分析和方法论生成功能
|
5
5
|
"""
|
6
|
-
from typing import Optional
|
7
6
|
|
8
7
|
from jarvis.jarvis_utils.globals import get_interrupt, set_interrupt
|
9
8
|
|
@@ -44,7 +43,7 @@ class TaskAnalyzer:
|
|
44
43
|
# 循环处理工具调用,直到没有工具调用为止
|
45
44
|
self._process_analysis_loop()
|
46
45
|
|
47
|
-
except Exception
|
46
|
+
except Exception:
|
48
47
|
PrettyOutput.print("分析失败", OutputType.ERROR)
|
49
48
|
finally:
|
50
49
|
# 标记已完成一次分析,避免事件回调重复执行
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_code_agent/code_agent.py
RENAMED
@@ -262,7 +262,7 @@ class CodeAgent:
|
|
262
262
|
if has_uncommitted_changes():
|
263
263
|
|
264
264
|
git_commiter = GitCommitTool()
|
265
|
-
git_commiter.execute({"prefix": prefix, "suffix": suffix, "agent": self.agent})
|
265
|
+
git_commiter.execute({"prefix": prefix, "suffix": suffix, "agent": self.agent, "model_group": getattr(self.agent.model, "model_group", None)})
|
266
266
|
|
267
267
|
def _init_env(self, prefix: str, suffix: str) -> None:
|
268
268
|
"""初始化环境,组合以下功能:
|
@@ -522,7 +522,7 @@ class CodeAgent:
|
|
522
522
|
check=True,
|
523
523
|
)
|
524
524
|
git_commiter = GitCommitTool()
|
525
|
-
git_commiter.execute({"prefix": prefix, "suffix": suffix, "agent": self.agent})
|
525
|
+
git_commiter.execute({"prefix": prefix, "suffix": suffix, "agent": self.agent, "model_group": getattr(self.agent.model, "model_group", None)})
|
526
526
|
|
527
527
|
# 在用户接受commit后,根据配置决定是否保存记忆
|
528
528
|
if self.agent.force_save_memory:
|
@@ -2,7 +2,6 @@
|
|
2
2
|
import os
|
3
3
|
import re
|
4
4
|
import subprocess
|
5
|
-
import sys
|
6
5
|
import tempfile
|
7
6
|
from typing import Any, Dict, Optional
|
8
7
|
|
@@ -138,7 +137,7 @@ class GitCommitTool:
|
|
138
137
|
base_prompt = (
|
139
138
|
custom_prompt
|
140
139
|
if custom_prompt
|
141
|
-
else
|
140
|
+
else """根据代码差异生成提交信息:
|
142
141
|
提交信息应使用中文书写
|
143
142
|
# 格式模板
|
144
143
|
必须使用以下格式:
|
@@ -219,11 +218,21 @@ commit信息
|
|
219
218
|
platform = PlatformRegistry().create_platform(platform_name)
|
220
219
|
if platform and model_name:
|
221
220
|
platform.set_model_name(model_name)
|
222
|
-
|
223
|
-
|
221
|
+
if platform and model_group:
|
222
|
+
try:
|
223
|
+
platform.set_model_group(model_group)
|
224
|
+
except Exception:
|
225
|
+
# 兼容早期实现
|
226
|
+
platform.model_group = model_group # type: ignore
|
224
227
|
else:
|
225
228
|
platform = PlatformRegistry().get_normal_platform()
|
226
229
|
|
230
|
+
# 跳过模型可用性校验:
|
231
|
+
# 为避免某些平台/代理不支持 get_model_list 接口导致的噪音日志(如 404),
|
232
|
+
# 这里默认不调用 platform.get_model_list() 进行模型可用性校验。
|
233
|
+
# 如果未来需要恢复校验,可参考被移除的逻辑。
|
234
|
+
# no-op
|
235
|
+
|
227
236
|
# Ensure platform is not None
|
228
237
|
if not platform:
|
229
238
|
return {
|
@@ -7,14 +7,11 @@
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
import json
|
10
|
-
import sys
|
11
10
|
from collections import defaultdict
|
12
|
-
from itertools import combinations
|
13
11
|
from pathlib import Path
|
14
|
-
from typing import Dict, List, Set,
|
12
|
+
from typing import Dict, List, Set, Any, Optional
|
15
13
|
|
16
14
|
import typer
|
17
|
-
import yaml
|
18
15
|
|
19
16
|
from jarvis.jarvis_utils.config import (
|
20
17
|
get_data_dir,
|
@@ -311,7 +308,7 @@ tags:
|
|
311
308
|
group_memories = [memories[i] for i in original_indices]
|
312
309
|
|
313
310
|
# 显示将要合并的记忆(先拼接后统一打印,避免循环逐条输出)
|
314
|
-
lines = [
|
311
|
+
lines = ["", f"准备合并 {len(group_memories)} 个记忆:"]
|
315
312
|
for mem in group_memories:
|
316
313
|
lines.append(
|
317
314
|
f" - ID: {mem.get('id', '未知')}, "
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_multi_agent/__init__.py
RENAMED
@@ -73,7 +73,7 @@ content: |2
|
|
73
73
|
if len(send_messages) > 1:
|
74
74
|
return (
|
75
75
|
False,
|
76
|
-
|
76
|
+
"Send multiple messages, please only send one message at a time.",
|
77
77
|
)
|
78
78
|
if len(send_messages) == 0:
|
79
79
|
return False, ""
|
@@ -100,7 +100,7 @@ content: |2
|
|
100
100
|
msg = yaml.safe_load(item)
|
101
101
|
if "to" in msg and "content" in msg:
|
102
102
|
ret.append(msg)
|
103
|
-
except Exception
|
103
|
+
except Exception:
|
104
104
|
continue
|
105
105
|
return ret
|
106
106
|
|
@@ -161,7 +161,7 @@ content: {msg['content']}
|
|
161
161
|
"""
|
162
162
|
to_agent_name = msg.get("to")
|
163
163
|
if not to_agent_name:
|
164
|
-
return
|
164
|
+
return "消息中未指定 `to` 字段"
|
165
165
|
|
166
166
|
if to_agent_name not in self.agents_config_map:
|
167
167
|
PrettyOutput.print(
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/base.py
RENAMED
@@ -88,7 +88,7 @@ class BasePlatform(ABC):
|
|
88
88
|
PrettyOutput.print(
|
89
89
|
f"长上下文,分批提交,共{len(inputs)}部分...", OutputType.INFO
|
90
90
|
)
|
91
|
-
prefix_prompt =
|
91
|
+
prefix_prompt = """
|
92
92
|
我将分多次提供大量内容,在我明确告诉你内容已经全部提供完毕之前,每次仅需要输出"已收到",明白请输出"开始接收输入"。
|
93
93
|
"""
|
94
94
|
while_true(lambda: while_success(lambda: self._chat(prefix_prompt), 5), 5)
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_platform/yuanbao.py
RENAMED
@@ -69,7 +69,6 @@ class YuanbaoPlatform(BasePlatform):
|
|
69
69
|
"X-Requested-With": "XMLHttpRequest",
|
70
70
|
"chat_version": "v1",
|
71
71
|
"X-Instance-ID": "5",
|
72
|
-
"X-Requested-With": "XMLHttpRequest",
|
73
72
|
"Accept": "application/json, text/plain, */*",
|
74
73
|
"Content-Type": "application/json",
|
75
74
|
"sec-ch-ua-mobile": "?0",
|
@@ -16,7 +16,6 @@ from pathlib import Path
|
|
16
16
|
from .stats import StatsManager
|
17
17
|
from jarvis.jarvis_utils.utils import init_env
|
18
18
|
from jarvis.jarvis_utils.config import get_data_dir
|
19
|
-
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
20
19
|
|
21
20
|
app = typer.Typer(help="Jarvis 统计模块命令行工具")
|
22
21
|
console = Console()
|
@@ -310,7 +309,7 @@ def remove(
|
|
310
309
|
unit = info.get("unit", "-")
|
311
310
|
last_updated = info.get("last_updated", "-")
|
312
311
|
|
313
|
-
rprint(
|
312
|
+
rprint("\n[yellow]准备删除指标:[/yellow]")
|
314
313
|
rprint(f" 名称: {metric}")
|
315
314
|
rprint(f" 单位: {unit}")
|
316
315
|
rprint(f" 最后更新: {last_updated}")
|
@@ -340,7 +339,7 @@ def demo():
|
|
340
339
|
stats = StatsManager(_get_stats_dir())
|
341
340
|
|
342
341
|
# 添加演示数据
|
343
|
-
with console.status("[bold green]正在生成演示数据...")
|
342
|
+
with console.status("[bold green]正在生成演示数据..."):
|
344
343
|
# API响应时间
|
345
344
|
for i in range(20):
|
346
345
|
response_time = random.uniform(0.1, 2.0)
|
@@ -167,7 +167,6 @@ class StatsManager:
|
|
167
167
|
"""
|
168
168
|
# 处理时间范围
|
169
169
|
# 当未提供时间过滤参数时,默认显示全历史数据
|
170
|
-
all_time = False
|
171
170
|
if last_hours or last_days:
|
172
171
|
if end_time is None:
|
173
172
|
end_time = datetime.now()
|
@@ -177,7 +176,7 @@ class StatsManager:
|
|
177
176
|
elif last_days:
|
178
177
|
start_time = end_time - timedelta(days=last_days)
|
179
178
|
else:
|
180
|
-
|
179
|
+
pass
|
181
180
|
|
182
181
|
if metric_name is None:
|
183
182
|
# 显示所有指标摘要
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/clear_memory.py
RENAMED
@@ -1,6 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
import json
|
3
|
-
import shutil
|
4
3
|
from pathlib import Path
|
5
4
|
from typing import Any, Dict, List, Optional
|
6
5
|
|
@@ -8,7 +7,6 @@ from jarvis.jarvis_utils.config import get_data_dir
|
|
8
7
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
9
8
|
from jarvis.jarvis_utils.globals import (
|
10
9
|
clear_short_term_memories,
|
11
|
-
get_short_term_memories,
|
12
10
|
short_term_memories,
|
13
11
|
)
|
14
12
|
|
@@ -212,7 +210,7 @@ class ClearMemoryTool:
|
|
212
210
|
# 生成结果报告
|
213
211
|
|
214
212
|
# 详细报告
|
215
|
-
report =
|
213
|
+
report = "# 记忆清除报告\n\n"
|
216
214
|
report += f"**总计清除**: {total_removed} 条记忆\n\n"
|
217
215
|
|
218
216
|
if tags:
|
@@ -120,15 +120,13 @@ class generate_new_tool:
|
|
120
120
|
# 注册新工具到当前的工具注册表
|
121
121
|
success_message = f"工具 '{tool_name}' 已成功生成在 {tool_file_path}"
|
122
122
|
|
123
|
-
registration_successful = False
|
124
123
|
if agent:
|
125
124
|
tool_registry = agent.get_tool_registry()
|
126
125
|
if tool_registry:
|
127
126
|
# 尝试加载并注册新工具
|
128
127
|
|
129
128
|
if tool_registry.register_tool_by_file(str(tool_file_path)):
|
130
|
-
success_message +=
|
131
|
-
registration_successful = True
|
129
|
+
success_message += "\n已成功注册到当前会话的工具注册表中"
|
132
130
|
else:
|
133
131
|
# 注册失败,删除已创建的文件
|
134
132
|
PrettyOutput.print(
|
@@ -140,13 +138,13 @@ class generate_new_tool:
|
|
140
138
|
return {
|
141
139
|
"success": False,
|
142
140
|
"stdout": "",
|
143
|
-
"stderr":
|
141
|
+
"stderr": "工具文件已生成,但注册失败。文件已被删除。",
|
144
142
|
}
|
145
143
|
else:
|
146
144
|
PrettyOutput.print(
|
147
145
|
"未找到工具注册表,无法自动注册工具", OutputType.WARNING
|
148
146
|
)
|
149
|
-
success_message +=
|
147
|
+
success_message += "\n注册到当前会话失败,可能需要重新启动Jarvis"
|
150
148
|
|
151
149
|
# 检查并安装缺失的依赖
|
152
150
|
try:
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/registry.py
RENAMED
@@ -15,7 +15,6 @@ from jarvis.jarvis_mcp.stdio_mcp_client import StdioMcpClient
|
|
15
15
|
from jarvis.jarvis_mcp.streamable_mcp_client import StreamableMcpClient
|
16
16
|
from jarvis.jarvis_tools.base import Tool
|
17
17
|
from jarvis.jarvis_utils.config import get_data_dir, get_tool_load_dirs
|
18
|
-
from jarvis.jarvis_utils.input import user_confirm
|
19
18
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
20
19
|
from jarvis.jarvis_utils.tag import ct, ot
|
21
20
|
from jarvis.jarvis_utils.utils import is_context_overflow, daily_check_git_updates
|
@@ -128,7 +127,7 @@ class ToolRegistry(OutputHandlerProtocol):
|
|
128
127
|
"""加载工具"""
|
129
128
|
tools = self.get_all_tools()
|
130
129
|
if tools:
|
131
|
-
tools_prompt =
|
130
|
+
tools_prompt = "<tools_section>\n"
|
132
131
|
tools_prompt += " <header>## 可用工具:</header>\n"
|
133
132
|
tools_prompt += " <tools_list>\n"
|
134
133
|
for tool in tools:
|
@@ -202,7 +201,7 @@ class ToolRegistry(OutputHandlerProtocol):
|
|
202
201
|
def _get_tool_stats(self) -> Dict[str, int]:
|
203
202
|
"""从数据目录获取工具调用统计"""
|
204
203
|
from jarvis.jarvis_stats.stats import StatsManager
|
205
|
-
from datetime import datetime
|
204
|
+
from datetime import datetime
|
206
205
|
|
207
206
|
# 获取所有工具的统计数据
|
208
207
|
tool_stats = {}
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/retrieve_memory.py
RENAMED
@@ -1,6 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
import json
|
3
|
-
import random
|
4
3
|
from pathlib import Path
|
5
4
|
from typing import Any, Dict, List, Optional
|
6
5
|
|
@@ -170,7 +169,7 @@ class RetrieveMemoryTool:
|
|
170
169
|
pass
|
171
170
|
|
172
171
|
# 格式化为Markdown输出
|
173
|
-
markdown_output =
|
172
|
+
markdown_output = "# 记忆检索结果\n\n"
|
174
173
|
markdown_output += f"**检索到 {len(all_memories)} 条记忆**\n\n"
|
175
174
|
|
176
175
|
if tags:
|
@@ -201,7 +200,7 @@ class RetrieveMemoryTool:
|
|
201
200
|
if k not in ["id", "type", "tags", "created_at", "content"]
|
202
201
|
}
|
203
202
|
if metadata:
|
204
|
-
markdown_output +=
|
203
|
+
markdown_output += "**其他信息**:\n"
|
205
204
|
for key, value in metadata.items():
|
206
205
|
markdown_output += f"- {key}: {value}\n"
|
207
206
|
markdown_output += "\n"
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/save_memory.py
RENAMED
@@ -3,7 +3,7 @@ import json
|
|
3
3
|
import time
|
4
4
|
from datetime import datetime
|
5
5
|
from pathlib import Path
|
6
|
-
from typing import Any, Dict
|
6
|
+
from typing import Any, Dict
|
7
7
|
|
8
8
|
from jarvis.jarvis_utils.config import get_data_dir
|
9
9
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
@@ -157,8 +157,8 @@ class SaveMemoryTool:
|
|
157
157
|
success_count += 1
|
158
158
|
|
159
159
|
# 打印单条记忆保存信息
|
160
|
-
|
161
|
-
|
160
|
+
memory_data["memory_type"]
|
161
|
+
memory_data.get("tags", [])
|
162
162
|
|
163
163
|
except Exception as e:
|
164
164
|
failed_count += 1
|
{jarvis_ai_assistant-0.3.27 → jarvis_ai_assistant-0.3.28}/src/jarvis/jarvis_tools/search_web.py
RENAMED
@@ -54,7 +54,7 @@ class SearchWebTool:
|
|
54
54
|
break
|
55
55
|
|
56
56
|
url = r["href"]
|
57
|
-
|
57
|
+
r.get("title", url)
|
58
58
|
|
59
59
|
try:
|
60
60
|
|
@@ -79,7 +79,7 @@ class SearchWebTool:
|
|
79
79
|
"success": False,
|
80
80
|
}
|
81
81
|
|
82
|
-
|
82
|
+
"\n".join(f" - {u}" for u in visited_urls)
|
83
83
|
|
84
84
|
summary_prompt = f"请为查询“{query}”总结以下内容:\n\n{full_content}"
|
85
85
|
|