jarvis-ai-assistant 0.1.191__py3-none-any.whl → 0.1.192__py3-none-any.whl

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/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.1.191"
4
+ __version__ = "0.1.192"
@@ -772,17 +772,18 @@ arguments:
772
772
 
773
773
  if need_return:
774
774
  return self.prompt
775
-
776
- if self.after_tool_call_cb:
777
- self.after_tool_call_cb(self)
778
-
775
+
779
776
  if get_interrupt():
780
777
  set_interrupt(False)
781
778
  user_input = self.multiline_inputer(
782
779
  f"模型交互期间被中断,请输入用户干预信息:"
783
780
  )
784
781
  if user_input:
785
- self.prompt += f"\n\n用户干预信息:{user_input}"
782
+ self.prompt += f"{user_input}"
783
+ continue
784
+
785
+ if self.after_tool_call_cb:
786
+ self.after_tool_call_cb(self)
786
787
 
787
788
  if self.prompt or self.addon_prompt:
788
789
  continue
@@ -301,12 +301,7 @@ class CodeAgent:
301
301
 
302
302
  # 添加提交信息到final_ret
303
303
  if commits:
304
- final_ret += "✅ 补丁已应用\n"
305
- final_ret += "# 提交信息:\n"
306
- for commit_hash, commit_message in commits:
307
- final_ret += f"- {commit_hash[:7]}: {commit_message}\n"
308
-
309
- final_ret += f"# 应用补丁:\n```diff\n{diff}\n```"
304
+ final_ret += "代码已修改完成\n"
310
305
 
311
306
  # 修改后的提示逻辑
312
307
  lint_tools_info = "\n".join(
@@ -325,9 +320,9 @@ class CodeAgent:
325
320
  """
326
321
  agent.set_addon_prompt(addon_prompt)
327
322
  else:
328
- final_ret += "✅ 补丁已应用(没有新的提交)"
323
+ final_ret += "修改没有生效"
329
324
  else:
330
- final_ret += "❌ 补丁应用被拒绝\n"
325
+ final_ret += "修改被拒绝\n"
331
326
  final_ret += f"# 补丁预览:\n```diff\n{diff}\n```"
332
327
  else:
333
328
  return
@@ -160,4 +160,13 @@ class OpenAIModel(BasePlatform):
160
160
  返回:
161
161
  bool: 当前是否支持网页访问 (OpenAI平台始终返回False)
162
162
  """
163
+ return False
164
+
165
+ def support_upload_files(self) -> bool:
166
+ """
167
+ 检查是否支持上传文件功能
168
+
169
+ 返回:
170
+ bool: 当前是否支持上传文件 (OpenAI平台始终返回False)
171
+ """
163
172
  return False
@@ -24,23 +24,27 @@ current_agent_name: str = ""
24
24
  # 表示与大模型交互的深度(>0表示正在交互)
25
25
  g_in_chat: int = 0
26
26
  # 表示是否接收到中断信号
27
- g_interrupt: bool = False
27
+ g_interrupt: int = 0
28
28
  # 使用自定义主题配置rich控制台
29
- custom_theme = Theme({
30
- "INFO": "yellow",
31
- "WARNING": "yellow",
32
- "ERROR": "red",
33
- "SUCCESS": "green",
34
- "SYSTEM": "cyan",
35
- "CODE": "green",
36
- "RESULT": "blue",
37
- "PLANNING": "magenta",
38
- "PROGRESS": "white",
39
- "DEBUG": "blue",
40
- "USER": "green",
41
- "TOOL": "yellow",
42
- })
29
+ custom_theme = Theme(
30
+ {
31
+ "INFO": "yellow",
32
+ "WARNING": "yellow",
33
+ "ERROR": "red",
34
+ "SUCCESS": "green",
35
+ "SYSTEM": "cyan",
36
+ "CODE": "green",
37
+ "RESULT": "blue",
38
+ "PLANNING": "magenta",
39
+ "PROGRESS": "white",
40
+ "DEBUG": "blue",
41
+ "USER": "green",
42
+ "TOOL": "yellow",
43
+ }
44
+ )
43
45
  console = Console(theme=custom_theme)
46
+
47
+
44
48
  def make_agent_name(agent_name: str) -> str:
45
49
  """
46
50
  通过附加后缀生成唯一的代理名称(如果必要)。
@@ -57,6 +61,8 @@ def make_agent_name(agent_name: str) -> str:
57
61
  i += 1
58
62
  return f"{agent_name}_{i}"
59
63
  return agent_name
64
+
65
+
60
66
  def set_agent(agent_name: str, agent: Any) -> None:
61
67
  """
62
68
  设置当前代理并将其添加到全局代理集合中。
@@ -68,6 +74,8 @@ def set_agent(agent_name: str, agent: Any) -> None:
68
74
  global_agents.add(agent_name)
69
75
  global current_agent_name
70
76
  current_agent_name = agent_name
77
+
78
+
71
79
  def get_agent_list() -> str:
72
80
  """
73
81
  获取表示当前代理状态的格式化字符串。
@@ -75,7 +83,13 @@ def get_agent_list() -> str:
75
83
  返回:
76
84
  str: 包含代理数量和当前代理名称的格式化字符串
77
85
  """
78
- return "[" + str(len(global_agents)) + "]" + current_agent_name if global_agents else ""
86
+ return (
87
+ "[" + str(len(global_agents)) + "]" + current_agent_name
88
+ if global_agents
89
+ else ""
90
+ )
91
+
92
+
79
93
  def delete_agent(agent_name: str) -> None:
80
94
  """
81
95
  从全局代理集合中删除一个代理。
@@ -88,6 +102,7 @@ def delete_agent(agent_name: str) -> None:
88
102
  global current_agent_name
89
103
  current_agent_name = ""
90
104
 
105
+
91
106
  def set_in_chat(status: bool) -> None:
92
107
  """
93
108
  设置与大模型交互的状态。
@@ -101,6 +116,7 @@ def set_in_chat(status: bool) -> None:
101
116
  else:
102
117
  g_in_chat = max(0, g_in_chat - 1)
103
118
 
119
+
104
120
  def get_in_chat() -> bool:
105
121
  """
106
122
  获取当前是否正在与大模型交互的状态。
@@ -110,6 +126,7 @@ def get_in_chat() -> bool:
110
126
  """
111
127
  return g_in_chat > 0
112
128
 
129
+
113
130
  def set_interrupt(status: bool) -> None:
114
131
  """
115
132
  设置中断信号状态。
@@ -118,13 +135,17 @@ def set_interrupt(status: bool) -> None:
118
135
  status: 中断状态
119
136
  """
120
137
  global g_interrupt
121
- g_interrupt = status
138
+ if status:
139
+ g_interrupt += 1
140
+ else:
141
+ g_interrupt = 0
142
+
122
143
 
123
- def get_interrupt() -> bool:
144
+ def get_interrupt() -> int:
124
145
  """
125
146
  获取当前中断信号状态。
126
147
 
127
148
  返回:
128
- bool: 当前中断状态
149
+ int: 当前中断计数
129
150
  """
130
151
  return g_interrupt
@@ -15,7 +15,7 @@ from jarvis.jarvis_utils.config import get_data_dir, get_max_big_content_size, s
15
15
  from jarvis.jarvis_utils.embedding import get_context_token_count
16
16
  from jarvis.jarvis_utils.input import get_single_line_input
17
17
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
18
- from jarvis.jarvis_utils.globals import get_in_chat, set_interrupt
18
+ from jarvis.jarvis_utils.globals import get_in_chat, get_interrupt, set_interrupt
19
19
 
20
20
 
21
21
 
@@ -38,10 +38,10 @@ def init_env(welcome_str: str, config_file: Optional[str] = None) -> None:
38
38
 
39
39
  def sigint_handler(signum, frame):
40
40
  if get_in_chat():
41
- PrettyOutput.print("接收到SIGINT信号,正在设置中断标志...", OutputType.INFO)
42
41
  set_interrupt(True)
42
+ if get_interrupt() > 5 and original_sigint and callable(original_sigint):
43
+ original_sigint(signum, frame)
43
44
  else:
44
- PrettyOutput.print("接收到SIGINT信号,正在优雅退出...", OutputType.INFO)
45
45
  if original_sigint and callable(original_sigint):
46
46
  original_sigint(signum, frame)
47
47
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.191
3
+ Version: 0.1.192
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
@@ -1,5 +1,5 @@
1
- jarvis/__init__.py,sha256=cHZhc7P2GKlcTNqDbgIRmnJdpA9XNqfw_meJJM4O-sg,74
2
- jarvis/jarvis_agent/__init__.py,sha256=NnHJY7yEthpS4w9Yt6cvOeQZGPy-Qx9bnjV-Qo7HE00,29774
1
+ jarvis/__init__.py,sha256=5_sLz94_CMqE2he4vQ7HAZhBu30-NLMM4jT2UvSUt2c,74
2
+ jarvis/jarvis_agent/__init__.py,sha256=ZB3Tt09qwCO68vY62ogzfvvdF4HMQcEV6EjPUsJpuR8,29806
3
3
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=f4DaEHPakXcAbgykFP-tiOQP6fh_yGFlZx_h91_j2tQ,1529
4
4
  jarvis/jarvis_agent/file_input_handler.py,sha256=OfoYI5on6w5BDUUg4OadFcfWzMsUF70GNrlt9QyauvA,4181
5
5
  jarvis/jarvis_agent/jarvis.py,sha256=zfYlwXaZJYfwvNeU5IUSlURyY0pn7QxsHmXBqSptUo8,6105
@@ -7,7 +7,7 @@ jarvis/jarvis_agent/main.py,sha256=miR8wnWBzmbhOfnscyiKo1oI4wZBRU6FEE-k1lkqtiI,2
7
7
  jarvis/jarvis_agent/output_handler.py,sha256=7qori-RGrQmdiFepoEe3oPPKJIvRt90l_JDmvCoa4zA,1219
8
8
  jarvis/jarvis_agent/shell_input_handler.py,sha256=pi3AtPKrkKc6K9e99S1djKXQ_XrxtP6FrSWebQmRT6E,1261
9
9
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- jarvis/jarvis_code_agent/code_agent.py,sha256=2TG_Hi_2mbiZHUcWnxYs4C30eYpgSedtIYZLs7BbyUk,15827
10
+ jarvis/jarvis_code_agent/code_agent.py,sha256=4nYYPFGSr7U8TGbqhayMOOHK6NZRzd-H4JcM4FDNcMk,15522
11
11
  jarvis/jarvis_code_agent/lint.py,sha256=TZlhNbeaoLzO9DzExjN5GAjrt66owd8lyQV56LTfkrs,4370
12
12
  jarvis/jarvis_code_analysis/code_review.py,sha256=45MPcXullg55w6E0Xhm2dDj6TGmkUxNNI2LJWexnTKQ,30123
13
13
  jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=cKQ_FOGy5TQgM-YkRCqORo-mUOZaPAJ9VDmZoFX58us,78
@@ -50,7 +50,7 @@ jarvis/jarvis_platform/__init__.py,sha256=0YnsUoM4JkIBOtImFdjfuDbrqQZT3dEaAwSJ62
50
50
  jarvis/jarvis_platform/base.py,sha256=MAY2Xe8WECOfisd-7_F8LXqzsIswkVwlVzXEj-D5Vlg,7186
51
51
  jarvis/jarvis_platform/human.py,sha256=MkKdwZ8oY5eacjHOEjUCUwDCJJnXtlzU8o8_jJAMdaA,2566
52
52
  jarvis/jarvis_platform/kimi.py,sha256=m45UlTkE3XhZZ3XfQk4degpKWsy5yrdzBHi9pDvmoZk,12100
53
- jarvis/jarvis_platform/openai.py,sha256=Kj0ZUQ9RRx1fpCN8J8sXcuXnK5bp9AmhzlcZLH9aWsc,4740
53
+ jarvis/jarvis_platform/openai.py,sha256=iXsJ52e7zGaKNho1Lzg4_rjXUwLn0wpVmWCLZ0k4xU8,4985
54
54
  jarvis/jarvis_platform/registry.py,sha256=qq19f9HoISxpVf09t1oEuOgzLXP8QT1mDzWAI5ifIHc,7819
55
55
  jarvis/jarvis_platform/tongyi.py,sha256=Q0MCqKofuoQpp6XiYBdgO6LA4vJPEiTvVvKGgwJcpII,21062
56
56
  jarvis/jarvis_platform/yuanbao.py,sha256=wpJxYS8lF9c-1F5S6pFSdKhipXkQREtErtn5WgCblCQ,20750
@@ -85,15 +85,15 @@ jarvis/jarvis_utils/config.py,sha256=Z7pZsSYXJkc2RzUhJ-_VvQA3xOLo6LEo4nEE1ftyQY8
85
85
  jarvis/jarvis_utils/embedding.py,sha256=J8YAqIEj16TJIPEG24uvUlPHeN-5zq0JW_hbNLizQug,3832
86
86
  jarvis/jarvis_utils/file_processors.py,sha256=G5kQI7vCGIDnjgAB5J1dYIR102u6WUv3IhcWFfDh_gs,2977
87
87
  jarvis/jarvis_utils/git_utils.py,sha256=k0rrMAbKwnD7hztmtegxtFFiCzyID4p2oHKTycE2Q-4,15070
88
- jarvis/jarvis_utils/globals.py,sha256=13mShJwkBQxyilUZVIThN11j17QQDGHRjS3UMRMewac,3231
88
+ jarvis/jarvis_utils/globals.py,sha256=908DizIMrInuOlirTp5lsOfqbD6K2v18P_J7A8nrdus,3375
89
89
  jarvis/jarvis_utils/input.py,sha256=FkLW7MXL8awQUghFLQnW1r5F1wV8K3EZeVPwHFRHJTo,7458
90
90
  jarvis/jarvis_utils/methodology.py,sha256=6vf__ahwJZ2I62mWGAvh2C-G6pq930Dh_EkrY1VpduQ,8485
91
91
  jarvis/jarvis_utils/output.py,sha256=QboL42GtG_dnvd1O64sl8o72mEBhXNRADPXQMXgDE7Q,9661
92
92
  jarvis/jarvis_utils/tag.py,sha256=YJHmuedLb7_AiqvKQetHr4R1FxyzIh7HN0RRkWMmYbU,429
93
- jarvis/jarvis_utils/utils.py,sha256=j9L5kPT3jOYP0PxiAywJtbfbMM4Fu7MyKgjfPKKACkE,11649
94
- jarvis_ai_assistant-0.1.191.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
95
- jarvis_ai_assistant-0.1.191.dist-info/METADATA,sha256=GL95Op-eQIglzKxOYSL4AyfFsTifEbtxoRoPBkbtHNc,17829
96
- jarvis_ai_assistant-0.1.191.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
97
- jarvis_ai_assistant-0.1.191.dist-info/entry_points.txt,sha256=Gy3DOP1PYLMK0GCj4rrP_9lkOyBQ39EK_lKGUSwn41E,869
98
- jarvis_ai_assistant-0.1.191.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
99
- jarvis_ai_assistant-0.1.191.dist-info/RECORD,,
93
+ jarvis/jarvis_utils/utils.py,sha256=r9Xnf84jR2E1CfHBtYVF_sPZ74-S4W63aPleBQZtdYo,11597
94
+ jarvis_ai_assistant-0.1.192.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
95
+ jarvis_ai_assistant-0.1.192.dist-info/METADATA,sha256=L-16MCi-TdoxaluwVvuq1KVUKJazX05Ell2ZqMToJq0,17829
96
+ jarvis_ai_assistant-0.1.192.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
97
+ jarvis_ai_assistant-0.1.192.dist-info/entry_points.txt,sha256=Gy3DOP1PYLMK0GCj4rrP_9lkOyBQ39EK_lKGUSwn41E,869
98
+ jarvis_ai_assistant-0.1.192.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
99
+ jarvis_ai_assistant-0.1.192.dist-info/RECORD,,