jarvis-ai-assistant 0.3.13__tar.gz → 0.3.14__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.13/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.14}/PKG-INFO +1 -1
  2. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/pyproject.toml +1 -1
  3. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/setup.py +1 -1
  4. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/__init__.py +1 -1
  5. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/__init__.py +32 -13
  6. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_agent/code_agent.py +25 -17
  7. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
  8. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/LICENSE +0 -0
  9. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/MANIFEST.in +0 -0
  10. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/README.md +0 -0
  11. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/setup.cfg +0 -0
  12. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/agent_manager.py +0 -0
  13. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  14. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/config_editor.py +0 -0
  15. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
  16. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
  17. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/jarvis.py +0 -0
  18. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/main.py +0 -0
  19. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
  20. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
  21. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  22. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
  23. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/prompts.py +0 -0
  24. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/protocols.py +0 -0
  25. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/session_manager.py +0 -0
  26. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/share_manager.py +0 -0
  27. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  28. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
  29. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/task_manager.py +0 -0
  30. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
  31. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
  32. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  33. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  34. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  35. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  36. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  37. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  38. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  39. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  40. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  41. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  42. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  43. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  44. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  45. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  46. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  47. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  48. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  49. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  50. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  51. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  52. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  53. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  54. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  55. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_data/config_schema.json +0 -0
  56. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  57. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  58. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_git_squash/main.py +0 -0
  59. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  60. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  61. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  62. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  63. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  64. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
  65. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
  66. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_methodology/main.py +0 -0
  67. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  68. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  69. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/__init__.py +0 -0
  70. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/ai8.py +0 -0
  71. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/base.py +0 -0
  72. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/human.py +0 -0
  73. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/kimi.py +0 -0
  74. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/openai.py +0 -0
  75. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/registry.py +0 -0
  76. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  77. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
  78. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  79. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  80. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  81. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/__init__.py +0 -0
  82. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/cache.py +0 -0
  83. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/cli.py +0 -0
  84. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
  85. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
  86. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
  87. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
  88. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/reranker.py +0 -0
  89. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_rag/retriever.py +0 -0
  90. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  91. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  92. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_stats/__init__.py +0 -0
  93. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_stats/cli.py +0 -0
  94. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_stats/stats.py +0 -0
  95. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_stats/storage.py +0 -0
  96. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_stats/visualizer.py +0 -0
  97. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/__init__.py +0 -0
  98. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  99. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/base.py +0 -0
  100. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
  101. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  102. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  103. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/edit_file.py +0 -0
  104. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  105. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  106. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  107. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/methodology.py +0 -0
  108. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/read_code.py +0 -0
  109. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  110. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/registry.py +0 -0
  111. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
  112. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  113. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/save_memory.py +0 -0
  114. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/search_web.py +0 -0
  115. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  116. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/__init__.py +0 -0
  117. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  118. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/clipboard.py +0 -0
  119. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/config.py +0 -0
  120. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/embedding.py +0 -0
  121. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  122. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  123. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/globals.py +0 -0
  124. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/http.py +0 -0
  125. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/input.py +0 -0
  126. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/methodology.py +0 -0
  127. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/output.py +0 -0
  128. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/tag.py +0 -0
  129. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis/jarvis_utils/utils.py +0 -0
  130. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  131. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  132. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  133. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  134. {jarvis_ai_assistant-0.3.13 → jarvis_ai_assistant-0.3.14}/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.13
3
+ Version: 0.3.14
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.13"
7
+ version = "0.3.14"
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.13",
6
+ version="0.3.14",
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.13"
4
+ __version__ = "0.3.14"
@@ -51,10 +51,12 @@ from jarvis.jarvis_utils.globals import (
51
51
  )
52
52
  from jarvis.jarvis_utils.input import get_multiline_input, user_confirm
53
53
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
54
- from jarvis.jarvis_utils.tag import ct, ot
54
+ from jarvis.jarvis_utils.tag import ot
55
55
 
56
56
 
57
- def show_agent_startup_stats(agent_name: str, model_name: str) -> None:
57
+ def show_agent_startup_stats(
58
+ agent_name: str, model_name: str, tool_registry_instance: Optional[Any] = None
59
+ ) -> None:
58
60
  """输出启动时的统计信息
59
61
 
60
62
  参数:
@@ -87,8 +89,11 @@ def show_agent_startup_stats(agent_name: str, model_name: str) -> None:
87
89
  total_tool_count = len(tool_registry_all.tools)
88
90
 
89
91
  # 获取可用工具的数量(应用过滤)
90
- tool_registry = ToolRegistry()
91
- available_tool_count = len(tool_registry.get_all_tools())
92
+ if tool_registry_instance is not None:
93
+ available_tool_count = len(tool_registry_instance.get_all_tools())
94
+ else:
95
+ tool_registry = ToolRegistry()
96
+ available_tool_count = len(tool_registry.get_all_tools())
92
97
 
93
98
  global_memory_dir = Path(get_data_dir()) / "memory" / "global_long_term"
94
99
  global_memory_count = 0
@@ -188,7 +193,12 @@ class Agent:
188
193
 
189
194
  def __del__(self):
190
195
  # 只有在记录启动时才停止记录
191
- delete_agent(self.name)
196
+ try:
197
+ name = getattr(self, "name", None)
198
+ if name:
199
+ delete_agent(name)
200
+ except Exception:
201
+ pass
192
202
 
193
203
  def get_tool_usage_prompt(self) -> str:
194
204
  """获取工具使用提示"""
@@ -203,8 +213,8 @@ class Agent:
203
213
  model_group: Optional[str] = None,
204
214
  summary_prompt: Optional[str] = None,
205
215
  auto_complete: bool = False,
206
- output_handler: List[OutputHandlerProtocol] = [],
207
- use_tools: List[str] = [],
216
+ output_handler: Optional[List[OutputHandlerProtocol]] = None,
217
+ use_tools: Optional[List[str]] = None,
208
218
  input_handler: Optional[List[Callable[[str, Any], Tuple[str, bool]]]] = None,
209
219
  execute_tool_confirm: Optional[bool] = None,
210
220
  need_summary: bool = True,
@@ -212,7 +222,7 @@ class Agent:
212
222
  use_methodology: Optional[bool] = None,
213
223
  use_analysis: Optional[bool] = None,
214
224
  force_save_memory: Optional[bool] = None,
215
- files: List[str] = [],
225
+ files: Optional[List[str]] = None,
216
226
  ):
217
227
  """初始化Jarvis Agent实例
218
228
 
@@ -225,7 +235,6 @@ class Agent:
225
235
  auto_complete: 是否自动完成任务
226
236
  output_handler: 输出处理器列表
227
237
  input_handler: 输入处理器列表
228
- max_context_length: 最大上下文长度
229
238
  execute_tool_confirm: 执行工具前是否需要确认
230
239
  need_summary: 是否需要生成总结
231
240
  multiline_inputer: 多行输入处理器
@@ -234,7 +243,7 @@ class Agent:
234
243
  force_save_memory: 是否强制保存记忆
235
244
  """
236
245
  # 基础属性初始化
237
- self.files = files
246
+ self.files = files or []
238
247
  self.name = make_agent_name(name)
239
248
  self.description = description
240
249
  self.system_prompt = system_prompt
@@ -250,7 +259,15 @@ class Agent:
250
259
  self._init_session()
251
260
 
252
261
  # 初始化处理器
253
- self._init_handlers(output_handler, input_handler, multiline_inputer, use_tools)
262
+ safe_output_handlers: List[OutputHandlerProtocol] = []
263
+ if output_handler:
264
+ safe_output_handlers = output_handler
265
+ safe_use_tools: List[str] = []
266
+ if use_tools:
267
+ safe_use_tools = use_tools
268
+ self._init_handlers(
269
+ safe_output_handlers, input_handler, multiline_inputer, safe_use_tools
270
+ )
254
271
 
255
272
  # 初始化配置
256
273
  self._init_config(
@@ -271,7 +288,7 @@ class Agent:
271
288
  self._setup_system_prompt()
272
289
 
273
290
  # 输出统计信息(包含欢迎信息)
274
- show_agent_startup_stats(name, self.model.name()) # type: ignore
291
+ show_agent_startup_stats(name, self.model.name(), self.get_tool_registry()) # type: ignore
275
292
 
276
293
  def _init_model(self, llm_type: str, model_group: Optional[str]):
277
294
  """初始化模型平台"""
@@ -528,7 +545,7 @@ class Agent:
528
545
 
529
546
  该方法将:
530
547
  1. 提示用户保存重要记忆
531
- 2. 调用_generate_summary生成摘要
548
+ 2. 调用 generate_summary 生成摘要
532
549
  3. 清除对话历史
533
550
  4. 保留系统消息
534
551
  5. 添加摘要作为新上下文
@@ -566,6 +583,8 @@ class Agent:
566
583
  # 清理历史(但不清理prompt,因为prompt会在builtin_input_handler中设置)
567
584
  if self.model:
568
585
  self.model.reset()
586
+ # 重置后重新设置系统提示词,确保系统约束仍然生效
587
+ self._setup_system_prompt()
569
588
  # 重置会话
570
589
  self.session.clear_history()
571
590
 
@@ -68,13 +68,15 @@ class CodeAgent:
68
68
  "retrieve_memory",
69
69
  "clear_memory",
70
70
  ]
71
-
71
+
72
72
  if append_tools:
73
- additional_tools = [tool.strip() for tool in append_tools.split(",")]
73
+ additional_tools = [
74
+ t for t in (tool.strip() for tool in append_tools.split(",")) if t
75
+ ]
74
76
  base_tools.extend(additional_tools)
75
77
  # 去重
76
78
  base_tools = list(dict.fromkeys(base_tools))
77
-
79
+
78
80
  tool_registry.use_tools(base_tools)
79
81
  code_system_prompt = self._get_system_prompt()
80
82
  self.agent = Agent(
@@ -412,18 +414,23 @@ class CodeAgent:
412
414
  return
413
415
 
414
416
  # 获取当前分支的提交总数
415
- commit_result = subprocess.run(
416
- ["git", "rev-list", "--count", "HEAD"],
417
- capture_output=True,
418
- text=True,
419
- encoding="utf-8",
420
- errors="replace",
421
- check=True,
422
- )
423
- if commit_result.returncode != 0:
424
- return
425
-
426
- commit_count = int(commit_result.stdout.strip())
417
+ # 兼容空仓库或无 HEAD 的场景:失败时将提交计数视为 0,继续执行提交流程
418
+ commit_count = 0
419
+ try:
420
+ commit_result = subprocess.run(
421
+ ["git", "rev-list", "--count", "HEAD"],
422
+ capture_output=True,
423
+ text=True,
424
+ encoding="utf-8",
425
+ errors="replace",
426
+ check=False,
427
+ )
428
+ if commit_result.returncode == 0:
429
+ out = commit_result.stdout.strip()
430
+ if out.isdigit():
431
+ commit_count = int(out)
432
+ except Exception:
433
+ commit_count = 0
427
434
 
428
435
  # 暂存所有修改
429
436
  subprocess.run(["git", "add", "."], check=True)
@@ -634,11 +641,12 @@ class CodeAgent:
634
641
  ):
635
642
  agent.session.prompt += final_ret
636
643
  return
637
- agent.session.prompt += final_ret
644
+ # 用户未确认,允许输入自定义回复作为附加提示
638
645
  custom_reply = get_multiline_input("请输入自定义回复")
639
- if custom_reply.strip(): # 如果自定义回复为空,返回空字符串
646
+ if custom_reply.strip(): # 如果自定义回复为空,不设置附加提示
640
647
  agent.set_addon_prompt(custom_reply)
641
648
  agent.session.prompt += final_ret
649
+ return
642
650
 
643
651
 
644
652
  @app.command()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.13
3
+ Version: 0.3.14
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