jarvis-ai-assistant 0.3.4__tar.gz → 0.3.6__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.4/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.6}/PKG-INFO +1 -1
  2. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/pyproject.toml +4 -4
  3. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/setup.py +1 -1
  4. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/__init__.py +1 -1
  5. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +47 -13
  6. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/base.py +3 -14
  7. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
  8. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/LICENSE +0 -0
  9. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/MANIFEST.in +0 -0
  10. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/README.md +0 -0
  11. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/setup.cfg +0 -0
  12. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/__init__.py +0 -0
  13. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/agent_manager.py +0 -0
  14. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  15. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/config_editor.py +0 -0
  16. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
  17. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
  18. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/jarvis.py +0 -0
  19. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/main.py +0 -0
  20. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
  21. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
  22. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  23. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
  24. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/prompts.py +0 -0
  25. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/protocols.py +0 -0
  26. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/session_manager.py +0 -0
  27. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/share_manager.py +0 -0
  28. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  29. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
  30. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/task_manager.py +0 -0
  31. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
  32. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
  33. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  34. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
  35. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  36. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  37. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  38. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  39. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  40. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  41. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  42. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  43. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  44. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  45. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  46. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  47. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  48. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  49. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  50. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  51. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  52. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  53. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  54. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  55. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  56. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  57. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_data/config_schema.json +0 -0
  58. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  59. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  60. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_git_squash/main.py +0 -0
  61. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  62. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  63. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  64. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  65. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  66. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
  67. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_methodology/main.py +0 -0
  68. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  69. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  70. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/__init__.py +0 -0
  71. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/ai8.py +0 -0
  72. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/human.py +0 -0
  73. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/kimi.py +0 -0
  74. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/openai.py +0 -0
  75. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/registry.py +0 -0
  76. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  77. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
  78. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  79. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  80. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  81. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/__init__.py +0 -0
  82. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/cache.py +0 -0
  83. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/cli.py +0 -0
  84. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
  85. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
  86. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
  87. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
  88. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/reranker.py +0 -0
  89. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_rag/retriever.py +0 -0
  90. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  91. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  92. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_stats/__init__.py +0 -0
  93. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_stats/cli.py +0 -0
  94. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_stats/stats.py +0 -0
  95. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_stats/storage.py +0 -0
  96. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_stats/visualizer.py +0 -0
  97. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/__init__.py +0 -0
  98. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  99. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/base.py +0 -0
  100. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
  101. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  102. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  103. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/edit_file.py +0 -0
  104. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  105. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  106. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  107. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/methodology.py +0 -0
  108. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/read_code.py +0 -0
  109. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  110. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/registry.py +0 -0
  111. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
  112. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  113. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/save_memory.py +0 -0
  114. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/search_web.py +0 -0
  115. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  116. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/__init__.py +0 -0
  117. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  118. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/clipboard.py +0 -0
  119. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/config.py +0 -0
  120. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/embedding.py +0 -0
  121. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  122. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  123. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/globals.py +0 -0
  124. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/http.py +0 -0
  125. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/input.py +0 -0
  126. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/methodology.py +0 -0
  127. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/output.py +0 -0
  128. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/tag.py +0 -0
  129. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis/jarvis_utils/utils.py +0 -0
  130. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  131. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  132. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  133. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  134. {jarvis_ai_assistant-0.3.4 → jarvis_ai_assistant-0.3.6}/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.4
3
+ Version: 0.3.6
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.4"
7
+ version = "0.3.6"
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" }]
@@ -101,9 +101,8 @@ jst = "jarvis.jarvis_stats.cli:main"
101
101
 
102
102
 
103
103
 
104
- [[tool.uv.index]]
105
- name = "tsinghua"
106
- url = "https://pypi.tuna.tsinghua.edu.cn/simple"
104
+ [tool.uv]
105
+ index-strategy = "unsafe-first-match"
107
106
 
108
107
  [[tool.uv.index]]
109
108
  name = "aliyun"
@@ -112,3 +111,4 @@ url = "https://mirrors.aliyun.com/pypi/simple/"
112
111
  [[tool.uv.index]]
113
112
  name = "ustc"
114
113
  url = "https://pypi.mirrors.ustc.edu.cn/simple/"
114
+
@@ -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.4",
6
+ version="0.3.6",
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.4"
4
+ __version__ = "0.3.6"
@@ -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
- {(("="*50) + "\n").join(memory_contents)}
172
+ {memory_contents_str}
171
173
  {"="*50}
172
174
 
173
175
  原始标签集合:{', '.join(sorted(all_tags))}
@@ -278,8 +280,23 @@ tags:
278
280
  # 从高重叠度开始处理
279
281
  max_tags = max(len(m.get("tags", [])) for m in memories)
280
282
 
283
+ # 创建一个标记已删除记忆的集合
284
+ deleted_indices = set()
285
+
281
286
  for overlap_count in range(min(max_tags, 5), min_overlap - 1, -1):
282
- overlap_groups = self._find_overlapping_memories(memories, overlap_count)
287
+ # 过滤掉已删除的记忆
288
+ active_memories = [
289
+ (i, mem) for i, mem in enumerate(memories) if i not in deleted_indices
290
+ ]
291
+ if not active_memories:
292
+ break
293
+
294
+ # 创建索引映射:原始索引 -> 活跃索引
295
+ active_memory_list = [mem for _, mem in active_memories]
296
+
297
+ overlap_groups = self._find_overlapping_memories(
298
+ active_memory_list, overlap_count
299
+ )
283
300
 
284
301
  if overlap_count in overlap_groups:
285
302
  groups = overlap_groups[overlap_count]
@@ -289,7 +306,13 @@ tags:
289
306
  )
290
307
 
291
308
  for group in groups:
292
- group_memories = [memories[i] for i in group]
309
+ # 将活跃索引转换回原始索引
310
+ original_indices = set()
311
+ for active_idx in group:
312
+ original_idx = active_memories[active_idx][0]
313
+ original_indices.add(original_idx)
314
+
315
+ group_memories = [memories[i] for i in original_indices]
293
316
 
294
317
  # 显示将要合并的记忆
295
318
  PrettyOutput.print(
@@ -315,16 +338,17 @@ tags:
315
338
 
316
339
  # 保存新记忆
317
340
  self._save_merged_memory(
318
- merged_memory, memory_type, [memories[i] for i in group]
341
+ merged_memory,
342
+ memory_type,
343
+ [memories[i] for i in original_indices],
319
344
  )
320
345
 
321
346
  stats["processed_groups"] += 1
322
- stats["merged_memories"] += len(group)
347
+ stats["merged_memories"] += len(original_indices)
323
348
  stats["created_memories"] += 1
324
349
 
325
- # 从列表中移除已合并的记忆
326
- for i in sorted(group, reverse=True):
327
- del memories[i]
350
+ # 标记这些记忆已被删除
351
+ deleted_indices.update(original_indices)
328
352
  else:
329
353
  PrettyOutput.print(" [模拟运行] 跳过实际合并", OutputType.INFO)
330
354
 
@@ -376,11 +400,18 @@ tags:
376
400
  for orig_memory in original_memories:
377
401
  if "file_path" in orig_memory:
378
402
  try:
379
- Path(orig_memory["file_path"]).unlink()
380
- PrettyOutput.print(
381
- f"删除原始记忆: {orig_memory.get('id', '未知')}",
382
- OutputType.INFO,
383
- )
403
+ file_path = Path(orig_memory["file_path"])
404
+ if file_path.exists():
405
+ file_path.unlink()
406
+ PrettyOutput.print(
407
+ f"删除原始记忆: {orig_memory.get('id', '未知')}",
408
+ OutputType.INFO,
409
+ )
410
+ else:
411
+ PrettyOutput.print(
412
+ f"原始记忆文件已不存在,跳过删除: {orig_memory.get('id', '未知')}",
413
+ OutputType.INFO,
414
+ )
384
415
  except Exception as e:
385
416
  PrettyOutput.print(
386
417
  f"删除记忆文件失败 {orig_memory['file_path']}: {str(e)}",
@@ -607,6 +638,9 @@ def organize(
607
638
  else:
608
639
  raise typer.Exit(0) # 即使没有处理也是正常退出
609
640
 
641
+ except typer.Exit:
642
+ # typer.Exit 是正常的退出方式,直接传播
643
+ raise
610
644
  except Exception as e:
611
645
  PrettyOutput.print(f"记忆整理失败: {str(e)}", OutputType.ERROR)
612
646
  raise typer.Exit(1)
@@ -142,20 +142,9 @@ class BasePlatform(ABC):
142
142
  live.update(panel)
143
143
  end_time = time.time()
144
144
  duration = end_time - start_time
145
- char_count = len(response)
146
- # Calculate token count and tokens per second
147
- try:
148
- token_count = get_context_token_count(response)
149
- tokens_per_second = (
150
- token_count / duration if duration > 0 else 0
151
- )
152
- except Exception as e:
153
- PrettyOutput.print(
154
- f"Tokenization failed: {str(e)}", OutputType.WARNING
155
- )
156
- token_count = 0
157
- tokens_per_second = 0
158
- panel.subtitle = f"[bold green]✓ 对话完成耗时: {duration:.2f}秒, 输入字符数: {len(message)}, 输入Token数量: {input_token_count}, 输出字符数: {char_count}, 输出Token数量: {token_count}, 每秒Token数量: {tokens_per_second:.2f}[/bold green]"
145
+ panel.subtitle = (
146
+ f"[bold green]✓ 对话完成耗时: {duration:.2f}秒[/bold green]"
147
+ )
159
148
  live.update(panel)
160
149
  else:
161
150
  for s in self.chat(message):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.4
3
+ Version: 0.3.6
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