jarvis-ai-assistant 0.3.10__tar.gz → 0.3.12__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.
Files changed (134) hide show
  1. {jarvis_ai_assistant-0.3.10/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.12}/PKG-INFO +1 -1
  2. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/pyproject.toml +1 -1
  3. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/setup.py +1 -1
  4. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/__init__.py +1 -1
  5. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/__init__.py +24 -24
  6. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/builtin_input_handler.py +10 -2
  7. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/file_methodology_manager.py +3 -7
  8. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/jarvis.py +10 -17
  9. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/share_manager.py +10 -10
  10. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_data/config_schema.json +10 -0
  11. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/search_web.py +23 -0
  12. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/config.py +25 -0
  13. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
  14. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/LICENSE +0 -0
  15. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/MANIFEST.in +0 -0
  16. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/README.md +0 -0
  17. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/setup.cfg +0 -0
  18. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/agent_manager.py +0 -0
  19. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/config_editor.py +0 -0
  20. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
  21. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/main.py +0 -0
  22. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
  23. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
  24. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  25. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
  26. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/prompts.py +0 -0
  27. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/protocols.py +0 -0
  28. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/session_manager.py +0 -0
  29. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  30. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
  31. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/task_manager.py +0 -0
  32. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
  33. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
  34. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  35. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
  36. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  37. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  38. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  39. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  40. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  41. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  42. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  43. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  44. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  45. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  46. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  47. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  48. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  49. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  50. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  51. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  52. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  53. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  54. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  55. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  56. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  57. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  58. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  59. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  60. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_squash/main.py +0 -0
  61. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  62. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  63. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  64. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  65. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  66. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
  67. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
  68. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_methodology/main.py +0 -0
  69. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  70. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  71. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/__init__.py +0 -0
  72. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/ai8.py +0 -0
  73. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/base.py +0 -0
  74. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/human.py +0 -0
  75. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/kimi.py +0 -0
  76. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/openai.py +0 -0
  77. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/registry.py +0 -0
  78. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  79. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
  80. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  81. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  82. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  83. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/__init__.py +0 -0
  84. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/cache.py +0 -0
  85. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/cli.py +0 -0
  86. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
  87. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
  88. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
  89. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
  90. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/reranker.py +0 -0
  91. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/retriever.py +0 -0
  92. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  93. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  94. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/__init__.py +0 -0
  95. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/cli.py +0 -0
  96. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/stats.py +0 -0
  97. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/storage.py +0 -0
  98. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/visualizer.py +0 -0
  99. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/__init__.py +0 -0
  100. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  101. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/base.py +0 -0
  102. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
  103. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  104. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  105. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/edit_file.py +0 -0
  106. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  107. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  108. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  109. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/methodology.py +0 -0
  110. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/read_code.py +0 -0
  111. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  112. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/registry.py +0 -0
  113. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
  114. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  115. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/save_memory.py +0 -0
  116. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  117. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/__init__.py +0 -0
  118. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  119. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/clipboard.py +0 -0
  120. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/embedding.py +0 -0
  121. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  122. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  123. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/globals.py +0 -0
  124. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/http.py +0 -0
  125. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/input.py +0 -0
  126. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/methodology.py +0 -0
  127. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/output.py +0 -0
  128. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/tag.py +0 -0
  129. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/utils.py +0 -0
  130. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  131. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  132. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  133. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  134. {jarvis_ai_assistant-0.3.10 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.10
3
+ Version: 0.3.12
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jarvis-ai-assistant"
7
- version = "0.3.10"
7
+ version = "0.3.12"
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.10",
6
+ version="0.3.12",
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",
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.3.10"
4
+ __version__ = "0.3.12"
@@ -284,9 +284,7 @@ class Agent:
284
284
 
285
285
  self.model = PlatformRegistry().create_platform(platform_name)
286
286
  if self.model is None:
287
- PrettyOutput.print(
288
- f"平台 {platform_name} 不存在,将使用普通模型", OutputType.WARNING
289
- )
287
+ PrettyOutput.print(f"平台 {platform_name} 不存在,将使用普通模型", OutputType.WARNING)
290
288
  self.model = PlatformRegistry().get_normal_platform()
291
289
 
292
290
  if model_name:
@@ -444,9 +442,10 @@ class Agent:
444
442
  4. 会检查并处理上下文长度限制
445
443
  """
446
444
  # 处理输入
447
- message = self._process_input(message, run_input_handlers)
448
- if run_input_handlers and self._should_return_early(message):
449
- return message
445
+ if run_input_handlers:
446
+ message = self._process_input(message)
447
+ if not message:
448
+ return ""
450
449
 
451
450
  # 添加附加提示
452
451
  message = self._add_addon_prompt(message, need_complete)
@@ -459,21 +458,16 @@ class Agent:
459
458
 
460
459
  return response
461
460
 
462
- def _process_input(self, message: str, run_input_handlers: bool) -> str:
461
+ def _process_input(self, message: str) -> str:
463
462
  """处理输入消息"""
464
- if run_input_handlers:
465
- for handler in self.input_handler:
466
- message, need_return = handler(message, self)
467
- if need_return:
468
- self._last_handler_returned = True
469
- return message
463
+ for handler in self.input_handler:
464
+ message, need_return = handler(message, self)
465
+ if need_return:
466
+ self._last_handler_returned = True
467
+ return message
470
468
  self._last_handler_returned = False
471
469
  return message
472
470
 
473
- def _should_return_early(self, message: str) -> bool:
474
- """检查是否需要提前返回"""
475
- return hasattr(self, "_last_handler_returned") and self._last_handler_returned
476
-
477
471
  def _add_addon_prompt(self, message: str, need_complete: bool) -> str:
478
472
  """添加附加提示到消息"""
479
473
  if self.session.addon_prompt:
@@ -561,12 +555,19 @@ class Agent:
561
555
  def _handle_history_with_summary(self) -> str:
562
556
  """使用摘要方式处理历史"""
563
557
  summary = self.generate_summary()
564
- self.clear_history()
565
558
 
566
- if not summary:
567
- return ""
559
+ # 先获取格式化的摘要消息
560
+ formatted_summary = ""
561
+ if summary:
562
+ formatted_summary = self._format_summary_message(summary)
563
+
564
+ # 清理历史(但不清理prompt,因为prompt会在builtin_input_handler中设置)
565
+ if self.model:
566
+ self.model.reset()
567
+ # 重置会话
568
+ self.session.clear_history()
568
569
 
569
- return self._format_summary_message(summary)
570
+ return formatted_summary
570
571
 
571
572
  def _handle_history_with_file_upload(self) -> str:
572
573
  """使用文件上传方式处理历史"""
@@ -704,6 +705,7 @@ class Agent:
704
705
  current_response = self._call_model(
705
706
  self.session.prompt, True, run_input_handlers
706
707
  )
708
+
707
709
  self.session.prompt = ""
708
710
  run_input_handlers = False
709
711
 
@@ -783,9 +785,7 @@ class Agent:
783
785
  返回:
784
786
  str: "continue" 或 "complete"
785
787
  """
786
- user_input = self.multiline_inputer(
787
- f"{self.name}: 请输入,或输入空行来结束当前任务:"
788
- )
788
+ user_input = self.multiline_inputer(f"{self.name}: 请输入,或输入空行来结束当前任务:")
789
789
 
790
790
  if user_input:
791
791
  self.session.prompt = user_input
@@ -32,8 +32,16 @@ def builtin_input_handler(user_input: str, agent_: Any) -> Tuple[str, bool]:
32
32
  for tag in special_tags:
33
33
  # 优先处理特殊标记
34
34
  if tag == "Summary":
35
- agent._summarize_and_clear_history()
36
- return "", True
35
+ summary = agent._summarize_and_clear_history()
36
+ memory_tags_prompt = agent.memory_manager.prepare_memory_tags_prompt()
37
+ prompt = ""
38
+ if summary:
39
+ # 将摘要和记忆标签设置为新会话的初始提示
40
+ prompt = summary + "\n" + memory_tags_prompt
41
+ else:
42
+ # 即使没有摘要,也确保设置记忆标签作为新会话的初始提示
43
+ prompt = memory_tags_prompt
44
+ return prompt, True
37
45
  elif tag == "Clear":
38
46
  agent.clear()
39
47
  return "", True
@@ -48,13 +48,10 @@ class FileMethodologyManager:
48
48
  # 上传成功
49
49
  from jarvis.jarvis_agent.memory_manager import MemoryManager
50
50
 
51
- memory_manager = MemoryManager(self.agent)
52
- memory_tags_prompt = memory_manager.prepare_memory_tags_prompt()
53
-
54
51
  if self.agent.files:
55
- self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息和方法论文件,可以从中获取一些经验信息。{memory_tags_prompt}"
52
+ self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息和方法论文件,可以从中获取一些经验信息。"
56
53
  else:
57
- self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息,可以从中获取一些经验信息。{memory_tags_prompt}"
54
+ self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息,可以从中获取一些经验信息。"
58
55
 
59
56
  def _handle_files_upload(self):
60
57
  """处理普通文件上传"""
@@ -79,14 +76,13 @@ class FileMethodologyManager:
79
76
  from jarvis.jarvis_agent.memory_manager import MemoryManager
80
77
 
81
78
  memory_manager = MemoryManager(self.agent)
82
- memory_tags_prompt = memory_manager.prepare_memory_tags_prompt()
83
79
  methodology = load_methodology(
84
80
  msg,
85
81
  self.agent.get_tool_registry(),
86
82
  platform_name=self.agent.model.platform_name(),
87
83
  model_name=self.agent.model.name(),
88
84
  )
89
- self.agent.session.prompt = f"{self.agent.session.prompt}\n\n以下是历史类似问题的执行经验,可参考:\n{methodology}{memory_tags_prompt}"
85
+ self.agent.session.prompt = f"{self.agent.session.prompt}\n\n以下是历史类似问题的执行经验,可参考:\n{methodology}"
90
86
 
91
87
  def handle_history_with_file_upload(self) -> str:
92
88
  """使用文件上传方式处理历史"""
@@ -19,21 +19,18 @@ def run_cli(
19
19
  ctx: typer.Context,
20
20
  llm_type: str = typer.Option(
21
21
  "normal",
22
- "-t", "--llm-type",
22
+ "-t",
23
+ "--llm-type",
23
24
  help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
24
25
  ),
25
- task: Optional[str] = typer.Option(
26
- None, "-T", "--task", help="从命令行直接输入任务内容"
27
- ),
26
+ task: Optional[str] = typer.Option(None, "-T", "--task", help="从命令行直接输入任务内容"),
28
27
  model_group: Optional[str] = typer.Option(
29
28
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
30
29
  ),
31
30
  tool_group: Optional[str] = typer.Option(
32
31
  None, "-G", "--tool-group", help="使用的工具组,覆盖配置文件中的设置"
33
32
  ),
34
- config_file: Optional[str] = typer.Option(
35
- None, "-f", "--config", help="自定义配置文件路径"
36
- ),
33
+ config_file: Optional[str] = typer.Option(None, "-f", "--config", help="自定义配置文件路径"),
37
34
  restore_session: bool = typer.Option(
38
35
  False,
39
36
  "--restore-session",
@@ -43,9 +40,7 @@ def run_cli(
43
40
  share_methodology: bool = typer.Option(
44
41
  False, "--share-methodology", help="分享本地方法论到中心方法论仓库"
45
42
  ),
46
- share_tool: bool = typer.Option(
47
- False, "--share-tool", help="分享本地工具到中心工具仓库"
48
- ),
43
+ share_tool: bool = typer.Option(False, "--share-tool", help="分享本地工具到中心工具仓库"),
49
44
  ) -> None:
50
45
  """Jarvis AI assistant command-line interface."""
51
46
  if ctx.invoked_subcommand is not None:
@@ -59,21 +54,19 @@ def run_cli(
59
54
  # 处理方法论分享
60
55
  if share_methodology:
61
56
  init_env("", config_file=config_file) # 初始化配置但不显示欢迎信息
62
- manager = MethodologyShareManager()
63
- manager.run()
57
+ methodology_manager = MethodologyShareManager()
58
+ methodology_manager.run()
64
59
  return
65
60
 
66
61
  # 处理工具分享
67
62
  if share_tool:
68
63
  init_env("", config_file=config_file) # 初始化配置但不显示欢迎信息
69
- manager = ToolShareManager()
70
- manager.run()
64
+ tool_manager = ToolShareManager()
65
+ tool_manager.run()
71
66
  return
72
67
 
73
68
  # 初始化环境
74
- init_env(
75
- "欢迎使用 Jarvis AI 助手,您的智能助理已准备就绪!", config_file=config_file
76
- )
69
+ init_env("欢迎使用 Jarvis AI 助手,您的智能助理已准备就绪!", config_file=config_file)
77
70
 
78
71
  # 运行主流程
79
72
  try:
@@ -2,7 +2,7 @@
2
2
  """分享管理模块,负责工具和方法论的分享功能"""
3
3
  import os
4
4
  import subprocess
5
- from typing import List, Dict, Any
5
+ from typing import List, Dict, Any, Set
6
6
  from abc import ABC, abstractmethod
7
7
 
8
8
  from prompt_toolkit import prompt
@@ -16,7 +16,7 @@ def parse_selection(selection_str: str, max_value: int) -> List[int]:
16
16
 
17
17
  例如: "1,2,3,4-9,20" -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 20]
18
18
  """
19
- selected: set[int] = set()
19
+ selected: Set[int] = set()
20
20
  parts = selection_str.split(",")
21
21
 
22
22
  for part in parts:
@@ -73,13 +73,15 @@ class ShareManager(ABC):
73
73
  if "__pycache__" not in content:
74
74
  f.write("\n__pycache__/\n")
75
75
  modified = True
76
-
76
+
77
77
  if modified:
78
- subprocess.run(["git", "add", ".gitignore"], cwd=self.repo_path, check=True)
79
78
  subprocess.run(
80
- ["git", "commit", "-m", "chore: add __pycache__ to .gitignore"],
81
- cwd=self.repo_path,
82
- check=True
79
+ ["git", "add", ".gitignore"], cwd=self.repo_path, check=True
80
+ )
81
+ subprocess.run(
82
+ ["git", "commit", "-m", "chore: add __pycache__ to .gitignore"],
83
+ cwd=self.repo_path,
84
+ check=True,
83
85
  )
84
86
  subprocess.run(["git", "push"], cwd=self.repo_path, check=True)
85
87
  else:
@@ -163,9 +165,7 @@ class ShareManager(ABC):
163
165
  def select_resources(self, resources: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
164
166
  """让用户选择要分享的资源"""
165
167
  # 显示可选的资源
166
- resource_list = [
167
- f"\n可分享的{self.get_resource_type()}(已排除中心仓库中已有的):"
168
- ]
168
+ resource_list = [f"\n可分享的{self.get_resource_type()}(已排除中心仓库中已有的):"]
169
169
  for i, resource in enumerate(resources, 1):
170
170
  resource_list.append(f"[{i}] {self.format_resource_display(resource)}")
171
171
 
@@ -136,6 +136,16 @@
136
136
  "description": "思考操作模型名称",
137
137
  "default": "deep_seek_v3"
138
138
  },
139
+ "JARVIS_WEB_SEARCH_PLATFORM": {
140
+ "type": "string",
141
+ "description": "Web搜索使用的平台名称",
142
+ "default": ""
143
+ },
144
+ "JARVIS_WEB_SEARCH_MODEL": {
145
+ "type": "string",
146
+ "description": "Web搜索使用的模型名称",
147
+ "default": ""
148
+ },
139
149
  "JARVIS_LLM_GROUP": {
140
150
  "type": "string",
141
151
  "description": "选择一个预定义的模型组",
@@ -12,6 +12,10 @@ from ddgs import DDGS # type: ignore[import-not-found]
12
12
 
13
13
  from jarvis.jarvis_agent import Agent
14
14
  from jarvis.jarvis_platform.registry import PlatformRegistry
15
+ from jarvis.jarvis_utils.config import (
16
+ get_web_search_platform_name,
17
+ get_web_search_model_name,
18
+ )
15
19
  from jarvis.jarvis_utils.http import get as http_get
16
20
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
17
21
 
@@ -136,6 +140,25 @@ class SearchWebTool:
136
140
  "success": False,
137
141
  }
138
142
 
143
+ # 检查是否配置了专门的 Web 搜索平台和模型
144
+ web_search_platform = get_web_search_platform_name()
145
+ web_search_model = get_web_search_model_name()
146
+
147
+ # 如果配置了专门的 Web 搜索平台和模型,优先使用
148
+ if web_search_platform and web_search_model:
149
+ model = PlatformRegistry().create_platform(web_search_platform)
150
+ if model:
151
+ model.set_model_name(web_search_model)
152
+ if model.support_web():
153
+ model.set_web(True)
154
+ model.set_suppress_output(False)
155
+ return {
156
+ "stdout": model.chat_until_success(query),
157
+ "stderr": "",
158
+ "success": True,
159
+ }
160
+
161
+ # 否则使用现有的模型选择流程
139
162
  if agent.model.support_web():
140
163
  model = PlatformRegistry().create_platform(agent.model.platform_name())
141
164
  if not model:
@@ -499,6 +499,31 @@ def get_rag_use_rerank() -> bool:
499
499
  return config.get("use_rerank", True) is True
500
500
 
501
501
 
502
+ # ==============================================================================
503
+ # Web Search Configuration
504
+ # ==============================================================================
505
+
506
+
507
+ def get_web_search_platform_name() -> Optional[str]:
508
+ """
509
+ 获取Web搜索使用的平台名称。
510
+
511
+ 返回:
512
+ Optional[str]: 平台名称,如果未配置则返回None
513
+ """
514
+ return GLOBAL_CONFIG_DATA.get("JARVIS_WEB_SEARCH_PLATFORM")
515
+
516
+
517
+ def get_web_search_model_name() -> Optional[str]:
518
+ """
519
+ 获取Web搜索使用的模型名称。
520
+
521
+ 返回:
522
+ Optional[str]: 模型名称,如果未配置则返回None
523
+ """
524
+ return GLOBAL_CONFIG_DATA.get("JARVIS_WEB_SEARCH_MODEL")
525
+
526
+
502
527
  # ==============================================================================
503
528
  # Tool Configuration
504
529
  # ==============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.10
3
+ Version: 0.3.12
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire