jarvis-ai-assistant 0.1.163__py3-none-any.whl → 0.1.164__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.

Potentially problematic release.


This version of jarvis-ai-assistant might be problematic. Click here for more details.

jarvis/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Jarvis AI Assistant"""
2
2
 
3
- __version__ = "0.1.163"
3
+ __version__ = "0.1.164"
@@ -1,23 +1,47 @@
1
-
2
-
3
1
  from abc import ABC, abstractmethod
4
2
  from typing import Any, Tuple
5
3
 
6
4
 
7
-
8
5
  class OutputHandler(ABC):
9
6
  @abstractmethod
10
7
  def handle(self, response: str, agent: Any) -> Tuple[bool, Any]:
8
+ """处理响应数据
9
+
10
+ Args:
11
+ response: 需要处理的响应字符串
12
+ agent: 执行处理的agent实例
13
+
14
+ Returns:
15
+ Tuple[bool, Any]: 返回处理结果元组,第一个元素表示是否处理成功,第二个元素为处理后的数据
16
+ """
11
17
  pass
12
18
 
13
19
  @abstractmethod
14
20
  def can_handle(self, response: str) -> bool:
21
+ """判断是否能处理给定的响应
22
+
23
+ Args:
24
+ response: 需要判断的响应字符串
25
+
26
+ Returns:
27
+ bool: 返回是否能处理该响应
28
+ """
15
29
  pass
16
30
 
17
31
  @abstractmethod
18
32
  def prompt(self) -> str:
33
+ """获取处理器的提示信息
34
+
35
+ Returns:
36
+ str: 返回处理器的提示字符串
37
+ """
19
38
  pass
20
39
 
21
40
  @abstractmethod
22
41
  def name(self) -> str:
42
+ """获取处理器的名称
43
+
44
+ Returns:
45
+ str: 返回处理器的名称字符串
46
+ """
23
47
  pass
@@ -166,7 +166,7 @@ class FileSearchReplaceTool:
166
166
  else:
167
167
  stderr_message = f"文件 {file_path} {'不存在' if not file_exists else '为空'},但搜索文本非空: '{search_text}'"
168
168
  stderr_messages.append(stderr_message)
169
- PrettyOutput.print(stderr_message, OutputType.ERROR)
169
+ PrettyOutput.print(stderr_message, OutputType.WARNING)
170
170
  success = False
171
171
  break
172
172
  else:
@@ -176,13 +176,13 @@ class FileSearchReplaceTool:
176
176
  if match_count == 0:
177
177
  stderr_message = f"文件 {file_path} 中未找到匹配文本: '{search_text}'"
178
178
  stderr_messages.append(stderr_message)
179
- PrettyOutput.print(stderr_message, OutputType.ERROR)
179
+ PrettyOutput.print(stderr_message, OutputType.WARNING)
180
180
  success = False
181
181
  break
182
182
  elif match_count > 1:
183
183
  stderr_message = f"文件 {file_path} 中匹配到多个 ({match_count}) '{search_text}',搜索文本只允许一次匹配"
184
184
  stderr_messages.append(stderr_message)
185
- PrettyOutput.print(stderr_message, OutputType.ERROR)
185
+ PrettyOutput.print(stderr_message, OutputType.WARNING)
186
186
  success = False
187
187
  break
188
188
  else:
@@ -212,7 +212,7 @@ class FileSearchReplaceTool:
212
212
  except Exception as e:
213
213
  stderr_message = f"处理文件 {file_path} 时出错: {str(e)}"
214
214
  stderr_messages.append(stderr_message)
215
- PrettyOutput.print(stderr_message, OutputType.ERROR)
215
+ PrettyOutput.print(stderr_message, OutputType.WARNING)
216
216
  success = False
217
217
 
218
218
  # 如果操作失败,回滚已修改的文件
@@ -238,7 +238,7 @@ class FileSearchReplaceTool:
238
238
  except Exception as e:
239
239
  rollback_error = f"回滚文件 {file_path} 失败: {str(e)}"
240
240
  stderr_messages.append(rollback_error)
241
- PrettyOutput.print(rollback_error, OutputType.ERROR)
241
+ PrettyOutput.print(rollback_error, OutputType.WARNING)
242
242
 
243
243
  return {
244
244
  "success": success,
@@ -248,7 +248,7 @@ class FileSearchReplaceTool:
248
248
 
249
249
  except Exception as e:
250
250
  error_msg = f"文件搜索替换操作失败: {str(e)}"
251
- PrettyOutput.print(error_msg, OutputType.ERROR)
251
+ PrettyOutput.print(error_msg, OutputType.WARNING)
252
252
 
253
253
  # 如果有已修改的文件,尝试回滚
254
254
  if processed:
@@ -118,7 +118,7 @@ class FileRewriteTool:
118
118
  except Exception as e:
119
119
  stderr_message = f"处理文件 {file_path} 时出错: {str(e)}"
120
120
  stderr_messages.append(stderr_message)
121
- PrettyOutput.print(stderr_message, OutputType.ERROR)
121
+ PrettyOutput.print(stderr_message, OutputType.WARNING)
122
122
  success = False
123
123
 
124
124
  # 如果操作失败,回滚已修改的文件
@@ -144,7 +144,7 @@ class FileRewriteTool:
144
144
  except Exception as e:
145
145
  rollback_error = f"回滚文件 {file_path} 失败: {str(e)}"
146
146
  stderr_messages.append(rollback_error)
147
- PrettyOutput.print(rollback_error, OutputType.ERROR)
147
+ PrettyOutput.print(rollback_error, OutputType.WARNING)
148
148
 
149
149
  return {
150
150
  "success": success,
@@ -154,7 +154,7 @@ class FileRewriteTool:
154
154
 
155
155
  except Exception as e:
156
156
  error_msg = f"文件重写操作失败: {str(e)}"
157
- PrettyOutput.print(error_msg, OutputType.ERROR)
157
+ PrettyOutput.print(error_msg, OutputType.WARNING)
158
158
 
159
159
  # 如果有已修改的文件,尝试回滚
160
160
  if processed:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.163
3
+ Version: 0.1.164
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
@@ -77,6 +77,7 @@ Dynamic: requires-python
77
77
 
78
78
  *您的智能开发和系统交互助手*
79
79
 
80
+ [核心特色](#core-features) •
80
81
  [视频介绍](#video-introduction) •
81
82
  [快速开始](#quick-start) •
82
83
  [配置说明](#configuration) •
@@ -89,6 +90,15 @@ Dynamic: requires-python
89
90
 
90
91
  ---
91
92
 
93
+ ## 🌟 核心特色 <a id="core-features"></a>
94
+
95
+ - 🆓 零成本接入:无缝集成元宝、Kimi等优质模型,无需支付API费用,同时保留强大的文件处理、搜索和推理能力
96
+ - 🛠️ 工具驱动:内置丰富工具集,涵盖脚本执行、代码开发、网页搜索、终端操作等核心功能
97
+ - 👥 人机协作:支持实时交互,用户可随时介入指导,确保AI行为符合预期
98
+ - 🔌 高度可扩展:支持自定义工具和平台,轻松集成MCP协议
99
+ - 📈 智能进化:内置方法论系统,持续学习优化,越用越智能
100
+
101
+
92
102
  ## 📺 视频介绍<a id="video-introduction"></a>
93
103
 
94
104
  [![视频介绍](docs/images/intro.png)](https://player.bilibili.com/player.html?isOutside=true&aid=114306578382907&bvid=BV1x2dAYeEpM&cid=29314583629&p=1)
@@ -205,7 +215,6 @@ jarvis-methodology --help
205
215
  | `JARVIS_EXECUTE_TOOL_CONFIRM` | false | 执行工具前是否需要确认 |
206
216
  | `JARVIS_CONFIRM_BEFORE_APPLY_PATCH` | true | 应用补丁前是否需要确认 |
207
217
  | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数 |
208
- | `JARVIS_CODE_EMBEDDING_MODEL_SIZE` | small | 代码嵌入模型大小,可选值:small、large |
209
218
 
210
219
 
211
220
  ---
@@ -1,10 +1,10 @@
1
- jarvis/__init__.py,sha256=P6iAjduKUrS0ylTRp0t78ffHOL40GFLlKQOFhIlYX5U,50
1
+ jarvis/__init__.py,sha256=NsIgLwBHooDskUwUxLuK7qUm_qq1H_1XF4B7deh5fEA,50
2
2
  jarvis/jarvis_agent/__init__.py,sha256=7rNz-HE8vDZMifWXgCiOLGwUQ4LIgC7If6Axl9UKUvM,25343
3
3
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=3rRA-7v_VUSFG1s7tTKhriq9vv0nsa3t69ReV0xH5gs,1505
4
4
  jarvis/jarvis_agent/file_input_handler.py,sha256=88VqJLe3oO9GtIRsqyx3KwZl10Apob2ddFMH3HQ2RMg,3413
5
5
  jarvis/jarvis_agent/jarvis.py,sha256=EQDK7CEfoJXg-KkZ7DGDi0lALauFR4tPRvW2O-CxJAQ,5795
6
6
  jarvis/jarvis_agent/main.py,sha256=Jlw_Tofh2C-sMVnkeOZBrwWJOWNH3IhsKDUn-WBlgU8,2602
7
- jarvis/jarvis_agent/output_handler.py,sha256=4limQ-Kf-YYvQjT5SMjJIyyvD1DVG8tINv1A_qbv4ho,405
7
+ jarvis/jarvis_agent/output_handler.py,sha256=VwU_RNDpdKw2Fwz7UTXlVvBdphJrVF9fO_LNeJncDro,1195
8
8
  jarvis/jarvis_agent/shell_input_handler.py,sha256=9IoGQCe6FF4HA2V5S11q63AtnWDZFpNeRd3hcqCAlBw,1237
9
9
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  jarvis/jarvis_code_agent/code_agent.py,sha256=V8DTvmno0OqQoX9P1NwkQT2q8Fis0i7xOKkdiXLxXG4,18007
@@ -65,7 +65,7 @@ jarvis/jarvis_tools/chdir.py,sha256=do_OdtabiH3lZcT_ynjSAX66XgH2gPl9mYiS7dMMDa8,
65
65
  jarvis/jarvis_tools/code_plan.py,sha256=jNa2rs4J3Fam8Q_RHE2_QvVch21TPp-Zfv-W6iQ3D_0,7729
66
66
  jarvis/jarvis_tools/create_code_agent.py,sha256=SRiQXZf57ViIDh6YSEmJkcoSKft0-y3iDfWF8f1bvZU,3387
67
67
  jarvis/jarvis_tools/create_sub_agent.py,sha256=wGiHukvi58wb1AKW5beP7R8VvApOn8TOeGmtXsmcETE,3001
68
- jarvis/jarvis_tools/edit_file.py,sha256=q5Sfvg8KS8cveQEDUn-O7CKqRQ1cr9D7iFrP608EgRI,12417
68
+ jarvis/jarvis_tools/edit_file.py,sha256=0r2E1wUJLdrS9sEAvCRA8_I96tQjkX-4Y8mKuGfZV8w,12429
69
69
  jarvis/jarvis_tools/execute_script.py,sha256=AeuC3yZIg-nBq_LTIyqxu-lG_uLG63lvwO28A6dRDYA,5715
70
70
  jarvis/jarvis_tools/file_analyzer.py,sha256=EVl7WqGgZoaQXqEX8vLynpqZDE3aug1hVBJbycT7YiY,4844
71
71
  jarvis/jarvis_tools/file_operation.py,sha256=G2hTp569O-IYX_LEz7BCNlJ6QPK58Ofut5Zjg9ThPmE,9020
@@ -75,7 +75,7 @@ jarvis/jarvis_tools/methodology.py,sha256=gnlJojY4Dg5v9AAB5xcpKqpPIHs0tOYVtzTHkw
75
75
  jarvis/jarvis_tools/read_code.py,sha256=ePlvWs9Xn6QR2wJcB0t2c5RrE1xwFUEd8cP1nwS_Zdk,5937
76
76
  jarvis/jarvis_tools/read_webpage.py,sha256=ECcMnPnUpIeiSA1IRdUf7uLWMe34Ian9pExSxekwpcg,2025
77
77
  jarvis/jarvis_tools/registry.py,sha256=6md5Fm-Uv0dhTHj0qubHRj0VQkNIcNn0A1cshBOQY5o,27109
78
- jarvis/jarvis_tools/rewrite_file.py,sha256=0a8qycO7wSL7ls8f3oAwhc1HDFPa7vZsnuDWnDCQjEs,6973
78
+ jarvis/jarvis_tools/rewrite_file.py,sha256=FXp70QrEEA08c3wZySu7TGGNnmYAQnjuxy703b-YKfI,6979
79
79
  jarvis/jarvis_tools/search_web.py,sha256=p1oahjSmSeBO9ZzgWkxIHsfcAGah22ju0xipXmuqnzg,759
80
80
  jarvis/jarvis_tools/virtual_tty.py,sha256=Rpn9VXUG17LQsY87F_O6UCjN_opXB05mpwozxYf-xVI,16372
81
81
  jarvis/jarvis_utils/__init__.py,sha256=KMg-KY5rZIhGTeOD5e2Xo5CU7DX1DUz4ULWAaTQ-ZNw,825
@@ -90,9 +90,9 @@ jarvis/jarvis_utils/methodology.py,sha256=SiCHhv9n23njOwznMIpesdsbTPfUbWsoWDTta-
90
90
  jarvis/jarvis_utils/output.py,sha256=BmWdB1bmizv0xfU4Z___9p_xQodorriIcEgADVq9fk0,8416
91
91
  jarvis/jarvis_utils/tag.py,sha256=YtXBYuZWy8j8YbeQX2qRrHRQl6Gp2Vt7W4p-2yjo0a4,405
92
92
  jarvis/jarvis_utils/utils.py,sha256=neokG_C9Djw6shwLcBxpQmRF5KFp9P6v52bMJMEFozg,4487
93
- jarvis_ai_assistant-0.1.163.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
94
- jarvis_ai_assistant-0.1.163.dist-info/METADATA,sha256=KAGj-vobdMm-nbK6HoSQxkPgYUaPPQX5V_ryvqocvPY,12880
95
- jarvis_ai_assistant-0.1.163.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
96
- jarvis_ai_assistant-0.1.163.dist-info/entry_points.txt,sha256=cKz_9SEpOvElTubKPMZMAdskD4GHz-NyKWRNssIVAWE,973
97
- jarvis_ai_assistant-0.1.163.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
98
- jarvis_ai_assistant-0.1.163.dist-info/RECORD,,
93
+ jarvis_ai_assistant-0.1.164.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
94
+ jarvis_ai_assistant-0.1.164.dist-info/METADATA,sha256=Z8NihnQOL_xq8Xre6AoyJm7sdCiowvZj25dqCiwnG6I,13405
95
+ jarvis_ai_assistant-0.1.164.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
96
+ jarvis_ai_assistant-0.1.164.dist-info/entry_points.txt,sha256=cKz_9SEpOvElTubKPMZMAdskD4GHz-NyKWRNssIVAWE,973
97
+ jarvis_ai_assistant-0.1.164.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
98
+ jarvis_ai_assistant-0.1.164.dist-info/RECORD,,