jarvis-ai-assistant 0.1.190__tar.gz → 0.1.192__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 (106) hide show
  1. {jarvis_ai_assistant-0.1.190/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.192}/PKG-INFO +50 -2
  2. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/README.md +49 -1
  3. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/pyproject.toml +1 -1
  4. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/setup.py +1 -1
  5. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/__init__.py +1 -1
  6. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/__init__.py +12 -39
  7. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/jarvis.py +0 -2
  8. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_agent/code_agent.py +3 -8
  9. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/base.py +11 -6
  10. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/human.py +1 -1
  11. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/kimi.py +1 -1
  12. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/openai.py +10 -1
  13. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/registry.py +1 -1
  14. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/tongyi.py +1 -1
  15. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/yuanbao.py +1 -1
  16. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform_manager/main.py +283 -125
  17. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_smart_shell/main.py +1 -1
  18. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/file_analyzer.py +1 -1
  19. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/registry.py +3 -3
  20. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/globals.py +81 -15
  21. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/utils.py +16 -0
  22. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192/src/jarvis_ai_assistant.egg-info}/PKG-INFO +50 -2
  23. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/LICENSE +0 -0
  24. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/MANIFEST.in +0 -0
  25. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/setup.cfg +0 -0
  26. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  27. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/file_input_handler.py +0 -0
  28. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/main.py +0 -0
  29. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  30. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  31. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  32. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  33. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  34. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  35. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  36. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  37. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  38. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  39. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  40. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  41. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  42. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  43. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  44. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  45. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  46. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  47. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  48. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  49. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  50. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  51. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  52. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  53. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
  54. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_data/config_schema.json +0 -0
  55. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
  56. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_dev/main.py +0 -0
  57. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_event/__init__.py +0 -0
  58. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_git_details/__init__.py +0 -0
  59. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_git_details/main.py +0 -0
  60. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  61. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_git_squash/main.py +0 -0
  62. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
  63. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  64. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  65. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  66. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
  67. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_methodology/main.py +0 -0
  68. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  69. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  70. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform/__init__.py +0 -0
  71. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  72. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  73. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/__init__.py +0 -0
  74. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  75. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/base.py +0 -0
  76. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/chdir.py +0 -0
  77. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  78. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/cli/main.py +0 -0
  79. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/code_plan.py +0 -0
  80. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
  81. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
  82. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/edit_file.py +0 -0
  83. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  84. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/file_operation.py +0 -0
  85. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  86. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/methodology.py +0 -0
  87. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/read_code.py +0 -0
  88. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  89. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  90. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/search_web.py +0 -0
  91. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  92. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/__init__.py +0 -0
  93. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  94. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/config.py +0 -0
  95. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/embedding.py +0 -0
  96. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  97. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  98. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/input.py +0 -0
  99. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/methodology.py +0 -0
  100. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/output.py +0 -0
  101. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis/jarvis_utils/tag.py +0 -0
  102. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  103. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  104. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  105. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  106. {jarvis_ai_assistant-0.1.190 → jarvis_ai_assistant-0.1.192}/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.190
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
@@ -230,6 +230,54 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
230
230
  | `jarvis-git-details` | - | 使用git details功能 |
231
231
  | `jarvis-methodology` | - | 使用方法论功能 |
232
232
 
233
+ ## 🏗️ 平台管理功能
234
+
235
+ `jarvis-platform-manager` 提供以下子命令来管理AI平台和模型:
236
+
237
+ ### 1. 列出支持的平台和模型
238
+ ```bash
239
+ jarvis-platform-manager info
240
+ ```
241
+ 显示所有支持的AI平台及其可用模型列表。
242
+
243
+ ### 2. 与指定平台和模型聊天
244
+ ```bash
245
+ jarvis-platform-manager chat -p <平台名称> -m <模型名称>
246
+ ```
247
+ 启动交互式聊天会话,支持以下命令:
248
+ - `/bye` - 退出聊天
249
+ - `/clear` - 清除当前会话
250
+ - `/upload <文件路径>` - 上传文件到当前会话
251
+ - `/shell <命令>` - 执行shell命令
252
+ - `/save <文件名>` - 保存最后一条消息
253
+ - `/saveall <文件名>` - 保存完整对话历史
254
+
255
+ ### 3. 启动OpenAI兼容的API服务
256
+ ```bash
257
+ jarvis-platform-manager service --host <IP地址> --port <端口号> -p <平台名称> -m <模型名称>
258
+ ```
259
+ 启动一个兼容OpenAI API的服务,可用于其他应用程序集成。
260
+
261
+ ### 4. 加载角色配置文件
262
+ ```bash
263
+ jarvis-platform-manager role -c <配置文件路径>
264
+ ```
265
+ 从YAML配置文件加载预定义角色进行对话。配置文件格式示例:
266
+ ```yaml
267
+ roles:
268
+ - name: "代码助手"
269
+ description: "专注于代码分析和生成的AI助手"
270
+ platform: "yuanbao"
271
+ model: "deep_seek_v3"
272
+ system_prompt: "你是一个专业的代码助手,专注于分析和生成高质量的代码"
273
+ - name: "文档撰写"
274
+ description: "帮助撰写技术文档的AI助手"
275
+ platform: "kimi"
276
+ model: "k1"
277
+ system_prompt: "你是一个技术文档撰写专家,擅长将复杂技术概念转化为清晰易懂的文字"
278
+ ```
279
+
280
+
233
281
  ---
234
282
 
235
283
  ## ⚙️ 配置说明 <a id="configuration"></a>
@@ -428,7 +476,7 @@ class CustomPlatform(BasePlatform):
428
476
  # 设置模型名称
429
477
  pass
430
478
 
431
- def set_system_message(self, message: str):
479
+ def set_system_prompt(self, message: str):
432
480
  # 设置系统消息
433
481
  pass
434
482
 
@@ -160,6 +160,54 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
160
160
  | `jarvis-git-details` | - | 使用git details功能 |
161
161
  | `jarvis-methodology` | - | 使用方法论功能 |
162
162
 
163
+ ## 🏗️ 平台管理功能
164
+
165
+ `jarvis-platform-manager` 提供以下子命令来管理AI平台和模型:
166
+
167
+ ### 1. 列出支持的平台和模型
168
+ ```bash
169
+ jarvis-platform-manager info
170
+ ```
171
+ 显示所有支持的AI平台及其可用模型列表。
172
+
173
+ ### 2. 与指定平台和模型聊天
174
+ ```bash
175
+ jarvis-platform-manager chat -p <平台名称> -m <模型名称>
176
+ ```
177
+ 启动交互式聊天会话,支持以下命令:
178
+ - `/bye` - 退出聊天
179
+ - `/clear` - 清除当前会话
180
+ - `/upload <文件路径>` - 上传文件到当前会话
181
+ - `/shell <命令>` - 执行shell命令
182
+ - `/save <文件名>` - 保存最后一条消息
183
+ - `/saveall <文件名>` - 保存完整对话历史
184
+
185
+ ### 3. 启动OpenAI兼容的API服务
186
+ ```bash
187
+ jarvis-platform-manager service --host <IP地址> --port <端口号> -p <平台名称> -m <模型名称>
188
+ ```
189
+ 启动一个兼容OpenAI API的服务,可用于其他应用程序集成。
190
+
191
+ ### 4. 加载角色配置文件
192
+ ```bash
193
+ jarvis-platform-manager role -c <配置文件路径>
194
+ ```
195
+ 从YAML配置文件加载预定义角色进行对话。配置文件格式示例:
196
+ ```yaml
197
+ roles:
198
+ - name: "代码助手"
199
+ description: "专注于代码分析和生成的AI助手"
200
+ platform: "yuanbao"
201
+ model: "deep_seek_v3"
202
+ system_prompt: "你是一个专业的代码助手,专注于分析和生成高质量的代码"
203
+ - name: "文档撰写"
204
+ description: "帮助撰写技术文档的AI助手"
205
+ platform: "kimi"
206
+ model: "k1"
207
+ system_prompt: "你是一个技术文档撰写专家,擅长将复杂技术概念转化为清晰易懂的文字"
208
+ ```
209
+
210
+
163
211
  ---
164
212
 
165
213
  ## ⚙️ 配置说明 <a id="configuration"></a>
@@ -358,7 +406,7 @@ class CustomPlatform(BasePlatform):
358
406
  # 设置模型名称
359
407
  pass
360
408
 
361
- def set_system_message(self, message: str):
409
+ def set_system_prompt(self, message: str):
362
410
  # 设置系统消息
363
411
  pass
364
412
 
@@ -8,7 +8,7 @@ default = true
8
8
 
9
9
  [project]
10
10
  name = "jarvis-ai-assistant"
11
- version = "0.1.190"
11
+ version = "0.1.192"
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.190",
6
+ version="0.1.192",
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.190"
4
+ __version__ = "0.1.192"
@@ -19,8 +19,8 @@ from jarvis.jarvis_utils.config import (get_max_token_count,
19
19
  is_execute_tool_confirm,
20
20
  is_use_analysis, is_use_methodology)
21
21
  from jarvis.jarvis_utils.embedding import get_context_token_count
22
- from jarvis.jarvis_utils.globals import (delete_agent, make_agent_name,
23
- set_agent)
22
+ from jarvis.jarvis_utils.globals import (delete_agent, get_interrupt, make_agent_name,
23
+ set_agent, set_interrupt)
24
24
  from jarvis.jarvis_utils.input import get_multiline_input
25
25
  from jarvis.jarvis_utils.methodology import (load_methodology,
26
26
  upload_methodology)
@@ -319,7 +319,7 @@ class Agent:
319
319
  </actions>
320
320
  """
321
321
 
322
- self.model.set_system_message(
322
+ self.model.set_system_prompt(
323
323
  f"""
324
324
  {self.system_prompt}
325
325
 
@@ -371,40 +371,6 @@ class Agent:
371
371
  return handler
372
372
  return None
373
373
 
374
- def make_default_addon_prompt(self, need_complete: bool) -> str:
375
- """生成附加提示。
376
-
377
- 参数:
378
- need_complete: 是否需要完成任务
379
-
380
- """
381
- # 结构化系统指令
382
- action_handlers = ", ".join([handler.name() for handler in self.output_handler])
383
-
384
- # 任务完成提示
385
- complete_prompt = (
386
- f"- 输出{ot('!!!COMPLETE!!!')}"
387
- if need_complete and self.auto_complete
388
- else ""
389
- )
390
-
391
- addon_prompt = f"""
392
- <system_prompt>
393
- 请判断是否已经完成任务,如果已经完成:
394
- - 直接输出完成原因,不需要再有新的操作,不要输出{ot("TOOL_CALL")}标签
395
- {complete_prompt}
396
- 如果没有完成,请进行下一步操作:
397
- - 仅包含一个操作
398
- - 如果信息不明确,请请求用户补充
399
- - 如果执行过程中连续失败5次,请使用ask_user询问用户操作
400
- - 操作列表:{action_handlers}
401
- </system_prompt>
402
-
403
- 请继续。
404
- """
405
-
406
- return addon_prompt
407
-
408
374
  def _call_model(self, message: str, need_complete: bool = False) -> str:
409
375
  """调用AI模型并实现重试逻辑
410
376
 
@@ -429,8 +395,6 @@ class Agent:
429
395
  if self.addon_prompt:
430
396
  message += f"\n\n{self.addon_prompt}"
431
397
  self.addon_prompt = ""
432
- else:
433
- message += f"\n\n{self.make_default_addon_prompt(need_complete)}"
434
398
 
435
399
  # 累加对话长度
436
400
  self.conversation_length += get_context_token_count(message)
@@ -808,6 +772,15 @@ arguments:
808
772
 
809
773
  if need_return:
810
774
  return self.prompt
775
+
776
+ if get_interrupt():
777
+ set_interrupt(False)
778
+ user_input = self.multiline_inputer(
779
+ f"模型交互期间被中断,请输入用户干预信息:"
780
+ )
781
+ if user_input:
782
+ self.prompt += f"{user_input}"
783
+ continue
811
784
 
812
785
  if self.after_tool_call_cb:
813
786
  self.after_tool_call_cb(self)
@@ -126,8 +126,6 @@ def main() -> None:
126
126
  need_summary=False
127
127
  )
128
128
 
129
- agent.set_addon_prompt(agent.make_default_addon_prompt(False) + "\n如果使用脚本可以完成任务,优先execute_script工具")
130
-
131
129
  # 优先处理命令行直接传入的任务
132
130
  if args.task:
133
131
  agent.run(args.task)
@@ -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
@@ -12,6 +12,7 @@ from yaspin import yaspin
12
12
  from jarvis.jarvis_utils.config import (get_max_input_token_count,
13
13
  get_pretty_output, is_print_prompt)
14
14
  from jarvis.jarvis_utils.embedding import split_text_into_chunks
15
+ from jarvis.jarvis_utils.globals import set_in_chat
15
16
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
16
17
  from jarvis.jarvis_utils.tag import ct, ot
17
18
  from jarvis.jarvis_utils.utils import (get_context_token_count,
@@ -128,10 +129,14 @@ class BasePlatform(ABC):
128
129
 
129
130
  def chat_until_success(self, message: str) -> str:
130
131
  """Chat with model until successful response"""
131
- if not self.suppress_output and is_print_prompt():
132
- PrettyOutput.print(f"{message}", OutputType.USER)
133
- result: str = while_true(lambda: while_success(lambda: self._chat(message), 5), 5)
134
- return result
132
+ try:
133
+ set_in_chat(True)
134
+ if not self.suppress_output and is_print_prompt():
135
+ PrettyOutput.print(f"{message}", OutputType.USER)
136
+ result: str = while_true(lambda: while_success(lambda: self._chat(message), 5), 5)
137
+ return result
138
+ finally:
139
+ set_in_chat(False)
135
140
 
136
141
  @abstractmethod
137
142
  def name(self) -> str:
@@ -144,9 +149,9 @@ class BasePlatform(ABC):
144
149
  raise NotImplementedError("delete_chat is not implemented")
145
150
 
146
151
  @abstractmethod
147
- def set_system_message(self, message: str):
152
+ def set_system_prompt(self, message: str):
148
153
  """Set system message"""
149
- raise NotImplementedError("set_system_message is not implemented")
154
+ raise NotImplementedError("set_system_prompt is not implemented")
150
155
 
151
156
  @abstractmethod
152
157
  def get_model_list(self) -> List[Tuple[str, str]]:
@@ -25,7 +25,7 @@ class HumanPlatform(BasePlatform):
25
25
  self.system_message = "" # 系统消息,用于初始化对话
26
26
  self.first_message = True
27
27
 
28
- def set_system_message(self, message: str):
28
+ def set_system_prompt(self, message: str):
29
29
  """设置系统消息"""
30
30
  self.system_message = message
31
31
 
@@ -41,7 +41,7 @@ class KimiModel(BasePlatform):
41
41
  self.system_message = ""
42
42
  self.model_name = "kimi"
43
43
 
44
- def set_system_message(self, message: str):
44
+ def set_system_prompt(self, message: str):
45
45
  """Set system message"""
46
46
  self.system_message = message
47
47
 
@@ -74,7 +74,7 @@ class OpenAIModel(BasePlatform):
74
74
 
75
75
  self.model_name = model_name
76
76
 
77
- def set_system_message(self, message: str):
77
+ def set_system_prompt(self, message: str):
78
78
  """
79
79
  设置系统消息(角色设定)
80
80
 
@@ -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
@@ -16,7 +16,7 @@ REQUIRED_METHODS = [
16
16
  ('chat', ['message']), # 方法名和参数列表
17
17
  ('name', []),
18
18
  ('delete_chat', []),
19
- ('set_system_message', ['message']),
19
+ ('set_system_prompt', ['message']),
20
20
  ('set_model_name', ['model_name']),
21
21
  ('get_model_list', []),
22
22
  ('upload_files', ['file_list']),
@@ -493,7 +493,7 @@ class TongyiPlatform(BasePlatform):
493
493
  PrettyOutput.print(f"Error deleting chat: {str(e)}", OutputType.ERROR)
494
494
  return False
495
495
 
496
- def set_system_message(self, message: str):
496
+ def set_system_prompt(self, message: str):
497
497
  """Set system message
498
498
 
499
499
  Args:
@@ -45,7 +45,7 @@ class YuanbaoPlatform(BasePlatform):
45
45
  self.model_name = "deep_seek_v3" # 默认模型名称,使用下划线保持一致
46
46
  self.multimedia = []
47
47
 
48
- def set_system_message(self, message: str):
48
+ def set_system_prompt(self, message: str):
49
49
  """设置系统消息"""
50
50
  self.system_message = message
51
51