jarvis-ai-assistant 0.1.196__tar.gz → 0.1.198__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 (105) hide show
  1. {jarvis_ai_assistant-0.1.196/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.198}/PKG-INFO +2 -2
  2. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/README.md +1 -1
  3. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/pyproject.toml +1 -1
  4. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/setup.py +1 -1
  5. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/__init__.py +1 -1
  6. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_agent/__init__.py +34 -7
  7. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/jarvis_history.py +9 -7
  8. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198/src/jarvis_ai_assistant.egg-info}/PKG-INFO +2 -2
  9. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/LICENSE +0 -0
  10. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/MANIFEST.in +0 -0
  11. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/setup.cfg +0 -0
  12. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  13. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_agent/jarvis.py +0 -0
  14. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_agent/main.py +0 -0
  15. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  16. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  17. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  18. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
  19. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  20. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  21. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  22. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  23. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  24. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  25. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  26. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  27. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  28. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  29. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  30. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  31. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  32. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  33. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  34. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  35. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  36. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  37. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  38. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  39. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  40. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  41. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_data/config_schema.json +0 -0
  42. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
  43. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_dev/main.py +0 -0
  44. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_git_details/__init__.py +0 -0
  45. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_git_details/main.py +0 -0
  46. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  47. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_git_squash/main.py +0 -0
  48. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  49. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  50. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  51. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  52. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  53. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_methodology/main.py +0 -0
  54. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  55. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  56. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/__init__.py +0 -0
  57. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/base.py +0 -0
  58. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/human.py +0 -0
  59. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/kimi.py +0 -0
  60. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/openai.py +0 -0
  61. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/registry.py +0 -0
  62. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/tongyi.py +0 -0
  63. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
  64. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  65. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  66. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  67. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  68. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/__init__.py +0 -0
  69. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  70. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/base.py +0 -0
  71. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/chdir.py +0 -0
  72. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  73. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  74. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/code_plan.py +0 -0
  75. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
  76. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
  77. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/edit_file.py +0 -0
  78. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  79. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  80. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/file_operation.py +0 -0
  81. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  82. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/methodology.py +0 -0
  83. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/read_code.py +0 -0
  84. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  85. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/registry.py +0 -0
  86. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  87. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/search_web.py +0 -0
  88. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  89. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/__init__.py +0 -0
  90. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  91. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/config.py +0 -0
  92. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/embedding.py +0 -0
  93. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  94. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  95. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/globals.py +0 -0
  96. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/input.py +0 -0
  97. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/methodology.py +0 -0
  98. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/output.py +0 -0
  99. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/tag.py +0 -0
  100. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis/jarvis_utils/utils.py +0 -0
  101. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  102. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  103. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  104. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  105. {jarvis_ai_assistant-0.1.196 → jarvis_ai_assistant-0.1.198}/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.1.196
3
+ Version: 0.1.198
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
@@ -538,7 +538,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
538
538
  | `JARVIS_PRINT_PROMPT` | false | 是否打印提示 |
539
539
  | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论功能 |
540
540
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
541
- | `JARVIS_USE_HISTORY` | false | 是否启用历史记录功能 |
541
+ | `JARVIS_USE_HISTORY_COUNT` | 0 | 使用N次历史记录作为上下文记忆 |
542
542
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
543
543
 
544
544
  ## 🛠️ 工具说明 <a id="tools"></a>
@@ -468,7 +468,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
468
468
  | `JARVIS_PRINT_PROMPT` | false | 是否打印提示 |
469
469
  | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论功能 |
470
470
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
471
- | `JARVIS_USE_HISTORY` | false | 是否启用历史记录功能 |
471
+ | `JARVIS_USE_HISTORY_COUNT` | 0 | 使用N次历史记录作为上下文记忆 |
472
472
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
473
473
 
474
474
  ## 🛠️ 工具说明 <a id="tools"></a>
@@ -8,7 +8,7 @@ default = true
8
8
 
9
9
  [project]
10
10
  name = "jarvis-ai-assistant"
11
- version = "0.1.196"
11
+ version = "0.1.198"
12
12
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
13
13
  readme = "README.md"
14
14
  authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
3
3
 
4
4
  setup(
5
5
  name="jarvis-ai-assistant",
6
- version="0.1.196",
6
+ version="0.1.198",
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.1.196"
4
+ __version__ = "0.1.198"
@@ -473,13 +473,25 @@ class Agent:
473
473
  注意:
474
474
  当上下文长度超过最大值时使用
475
475
  """
476
- summary = self.generate_summary()
477
- self.clear_history() # type: ignore
476
+ need_summary = True
477
+ tmp_file_name = ""
478
+ try:
479
+ if self.model and self.model.support_upload_files():
480
+ need_summary = False
481
+ if need_summary:
482
+ summary = self.generate_summary()
483
+ else:
484
+ import tempfile
485
+ tmp_file = tempfile.NamedTemporaryFile(delete=False)
486
+ tmp_file_name = tmp_file.name
487
+ self.history.save_history(tmp_file_name)
488
+ self.clear_history() # type: ignore
478
489
 
479
- if not summary:
480
- return ""
490
+ if need_summary:
491
+ if not summary:
492
+ return ""
481
493
 
482
- return f"""
494
+ return f"""
483
495
  以下是之前对话的关键信息总结:
484
496
 
485
497
  <content>
@@ -487,7 +499,15 @@ class Agent:
487
499
  </content>
488
500
 
489
501
  请基于以上信息继续完成任务。请注意,这是之前对话的摘要,上下文长度已超过限制而被重置。请直接继续任务,无需重复已完成的步骤。如有需要,可以询问用户以获取更多信息。
490
- """
502
+ """
503
+ else:
504
+ if self.model and self.model.upload_files([tmp_file_name]):
505
+ return "上传的文件是历史对话信息,请基于历史对话信息继续完成任务。"
506
+ else:
507
+ return ""
508
+ finally:
509
+ if tmp_file_name:
510
+ os.remove(tmp_file_name)
491
511
 
492
512
  def _call_tools(self, response: str) -> Tuple[bool, Any]:
493
513
  """调用工具执行响应
@@ -848,7 +868,7 @@ arguments:
848
868
  import tempfile
849
869
  timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
850
870
  history_md = str(Path(tempfile.gettempdir())/f"{self.name}_history_{timestamp}.md")
851
- self.history.export_history_to_markdown(tempfile.gettempdir(), history_md, max_files=self.history_count)
871
+ self.history.export_history_to_markdown(self.history_dir, history_md, max_files=self.history_count)
852
872
  self.files.append(history_md)
853
873
 
854
874
  # 如果有上传文件,先上传文件
@@ -862,9 +882,16 @@ arguments:
862
882
  for handler in self.input_handler:
863
883
  msg, _ = handler(msg, self)
864
884
  self.prompt = f"{self.prompt}\n\n以下是历史类似问题的执行经验,可参考:\n{load_methodology(msg, self.get_tool_registry())}"
885
+ else:
886
+ if self.files:
887
+ self.prompt = f"{self.prompt}\n\n上传的文件包含历史对话信息和方法论文件,可以从中获取一些经验信息。"
888
+ else:
889
+ self.prompt = f"{self.prompt}\n\n上传的文件包含历史对话信息,可以从中获取一些经验信息。"
865
890
  elif self.files:
866
891
  if not self.model.upload_files(self.files):
867
892
  PrettyOutput.print("文件上传失败,将忽略文件列表", OutputType.WARNING)
893
+ else:
894
+ self.prompt = f"{self.prompt}\n\n上传的文件包含历史对话信息,可以从中获取一些经验信息。"
868
895
  else:
869
896
  if self.files:
870
897
  PrettyOutput.print("不支持上传文件,将忽略文件列表", OutputType.WARNING)
@@ -23,23 +23,25 @@ class JarvisHistory:
23
23
  raise RuntimeError("Recording not started. Call start_record first.")
24
24
  self.records.append({"role": role, "message": msg})
25
25
 
26
- def stop_record(self) -> None:
26
+ def save_history(self, filename: str) -> None:
27
27
  """Save recorded messages to YAML file"""
28
- if not self.current_file:
29
- raise RuntimeError("No recording session to stop.")
30
28
 
31
29
  # Skip saving if records is empty
32
30
  if not self.records:
33
- self.current_file = None
34
- self.records = []
35
31
  return
36
32
 
37
33
  # Ensure directory exists
38
- os.makedirs(os.path.dirname(self.current_file), exist_ok=True)
34
+ os.makedirs(os.path.dirname(filename), exist_ok=True)
39
35
 
40
- with open(self.current_file, "w") as f:
36
+ with open(filename, "w") as f:
41
37
  yaml.safe_dump({"conversation": self.records}, f, allow_unicode=True)
42
38
 
39
+ def stop_record(self) -> None:
40
+ """Stop recording session and save messages"""
41
+ if not self.current_file:
42
+ raise RuntimeError("No recording session to stop.")
43
+
44
+ self.save_history(self.current_file)
43
45
  self.current_file = None
44
46
  self.records = []
45
47
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.196
3
+ Version: 0.1.198
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
@@ -538,7 +538,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
538
538
  | `JARVIS_PRINT_PROMPT` | false | 是否打印提示 |
539
539
  | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论功能 |
540
540
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
541
- | `JARVIS_USE_HISTORY` | false | 是否启用历史记录功能 |
541
+ | `JARVIS_USE_HISTORY_COUNT` | 0 | 使用N次历史记录作为上下文记忆 |
542
542
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
543
543
 
544
544
  ## 🛠️ 工具说明 <a id="tools"></a>