jarvis-ai-assistant 0.1.176__tar.gz → 0.1.177__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.

Potentially problematic release.


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

Files changed (109) hide show
  1. {jarvis_ai_assistant-0.1.176/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.177}/PKG-INFO +4 -4
  2. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/README.md +3 -3
  3. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/pyproject.toml +1 -1
  4. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/setup.py +1 -1
  5. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/__init__.py +1 -1
  6. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_agent/__init__.py +12 -10
  7. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_agent/jarvis.py +10 -10
  8. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_agent/main.py +6 -6
  9. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_agent/code_agent.py +10 -6
  10. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/code_review.py +1 -1
  11. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_dev/main.py +1 -1
  12. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_git_details/main.py +1 -1
  13. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_git_squash/main.py +1 -1
  14. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_git_utils/git_commiter.py +1 -1
  15. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_multi_agent/main.py +1 -1
  16. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/base.py +6 -3
  17. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/yuanbao.py +1 -1
  18. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform_manager/main.py +1 -1
  19. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_smart_shell/main.py +4 -2
  20. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/ask_codebase.py +1 -1
  21. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/cli/main.py +28 -1
  22. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/edit_file.py +163 -103
  23. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/read_code.py +0 -2
  24. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/registry.py +30 -0
  25. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/config.py +3 -3
  26. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/output.py +36 -7
  27. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/utils.py +19 -1
  28. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177/src/jarvis_ai_assistant.egg-info}/PKG-INFO +4 -4
  29. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/LICENSE +0 -0
  30. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/MANIFEST.in +0 -0
  31. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/setup.cfg +0 -0
  32. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  33. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  34. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  35. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  36. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  37. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  38. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  39. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  40. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  41. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  42. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  43. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  44. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  45. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  46. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  47. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  48. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  49. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  50. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  51. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  52. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  53. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  54. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  55. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  56. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
  57. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_git_details/__init__.py +0 -0
  58. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  59. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_lsp/base.py +0 -0
  60. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_lsp/cpp.py +0 -0
  61. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_lsp/go.py +0 -0
  62. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_lsp/python.py +0 -0
  63. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_lsp/registry.py +0 -0
  64. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_lsp/rust.py +0 -0
  65. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  66. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
  67. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  68. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_methodology/main.py +0 -0
  69. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  70. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/__init__.py +0 -0
  71. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/human.py +0 -0
  72. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/kimi.py +0 -0
  73. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/openai.py +0 -0
  74. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform/registry.py +0 -0
  75. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  76. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  77. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/__init__.py +0 -0
  78. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  79. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/base.py +0 -0
  80. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/chdir.py +0 -0
  81. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  82. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/code_plan.py +0 -0
  83. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
  84. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
  85. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  86. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
  87. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/file_operation.py +0 -0
  88. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/find_methodology.py +0 -0
  89. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  90. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/lsp_get_diagnostics.py +0 -0
  91. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/methodology.py +0 -0
  92. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  93. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  94. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/search_web.py +0 -0
  95. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  96. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/__init__.py +0 -0
  97. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  98. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/embedding.py +0 -0
  99. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  100. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  101. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/globals.py +0 -0
  102. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/input.py +0 -0
  103. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/methodology.py +0 -0
  104. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis/jarvis_utils/tag.py +0 -0
  105. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  106. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  107. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  108. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  109. {jarvis_ai_assistant-0.1.176 → jarvis_ai_assistant-0.1.177}/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.176
3
+ Version: 0.1.177
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
@@ -201,7 +201,7 @@ OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
201
201
  ### 环境变量配置
202
202
  | 变量名称 | 默认值 | 说明 |
203
203
  |----------|--------|------|
204
- | `JARVIS_MAX_TOKEN_COUNT` | 102400000 | 上下文窗口的最大token数量 |
204
+ | `JARVIS_MAX_TOKEN_COUNT` | 960000 | 上下文窗口的最大token数量 |
205
205
  | `JARVIS_MAX_INPUT_TOKEN_COUNT` | 32000 | 输入的最大token数量 |
206
206
  | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动完成功能(任务判定完成的时候会自动终止) |
207
207
  | `JARVIS_SHELL_NAME` | bash | 系统shell名称 |
@@ -211,9 +211,9 @@ OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
211
211
  | `JARVIS_THINKING_MODEL` | JARVIS_MODEL | 推理任务使用的模型 |
212
212
  | `JARVIS_EXECUTE_TOOL_CONFIRM` | false | 执行工具前是否需要确认 |
213
213
  | `JARVIS_CONFIRM_BEFORE_APPLY_PATCH` | true | 应用补丁前是否需要确认 |
214
- | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数 |
214
+ | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数,如果是0表示无限制 |
215
215
  | `JARVIS_AUTO_UPDATE` | true | 是否自动更新Jarvis(仅在以git仓库方式安装时有效) |
216
- | `JARVIS_MAX_BIG_CONTENT_SIZE` | 96000 | 最大大内容大小 |
216
+ | `JARVIS_MAX_BIG_CONTENT_SIZE` | 1024000 | 最大大内容大小 |
217
217
  | `JARVIS_PRETTY_OUTPUT` | false | 是否启用PrettyOutput |
218
218
 
219
219
  所有配置编写到`~/.jarvis/env`文件中即可生效。
@@ -131,7 +131,7 @@ OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
131
131
  ### 环境变量配置
132
132
  | 变量名称 | 默认值 | 说明 |
133
133
  |----------|--------|------|
134
- | `JARVIS_MAX_TOKEN_COUNT` | 102400000 | 上下文窗口的最大token数量 |
134
+ | `JARVIS_MAX_TOKEN_COUNT` | 960000 | 上下文窗口的最大token数量 |
135
135
  | `JARVIS_MAX_INPUT_TOKEN_COUNT` | 32000 | 输入的最大token数量 |
136
136
  | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动完成功能(任务判定完成的时候会自动终止) |
137
137
  | `JARVIS_SHELL_NAME` | bash | 系统shell名称 |
@@ -141,9 +141,9 @@ OPENAI_API_BASE=https://api.openai.com/v1 # 可选,默认为官方API地址
141
141
  | `JARVIS_THINKING_MODEL` | JARVIS_MODEL | 推理任务使用的模型 |
142
142
  | `JARVIS_EXECUTE_TOOL_CONFIRM` | false | 执行工具前是否需要确认 |
143
143
  | `JARVIS_CONFIRM_BEFORE_APPLY_PATCH` | true | 应用补丁前是否需要确认 |
144
- | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数 |
144
+ | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数,如果是0表示无限制 |
145
145
  | `JARVIS_AUTO_UPDATE` | true | 是否自动更新Jarvis(仅在以git仓库方式安装时有效) |
146
- | `JARVIS_MAX_BIG_CONTENT_SIZE` | 96000 | 最大大内容大小 |
146
+ | `JARVIS_MAX_BIG_CONTENT_SIZE` | 1024000 | 最大大内容大小 |
147
147
  | `JARVIS_PRETTY_OUTPUT` | false | 是否启用PrettyOutput |
148
148
 
149
149
  所有配置编写到`~/.jarvis/env`文件中即可生效。
@@ -8,7 +8,7 @@ default = true
8
8
 
9
9
  [project]
10
10
  name = "jarvis-ai-assistant"
11
- version = "0.1.176"
11
+ version = "0.1.177"
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.176",
6
+ version="0.1.177",
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.176"
4
+ __version__ = "0.1.177"
@@ -340,15 +340,17 @@ class Agent:
340
340
  complete_prompt = f"- 输出{ot('!!!COMPLETE!!!')}" if need_complete and self.auto_complete else ""
341
341
 
342
342
  addon_prompt = f"""
343
- 请判断是否已经完成任务,如果已经完成:
344
- - 说明完成原因,不需要再有新的操作
345
- {complete_prompt}
346
- 如果没有完成,请进行下一步操作:
347
- - 仅包含一个操作
348
- - 如果信息不明确,请请求用户补充
349
- - 如果执行过程中连续失败5次,请使用ask_user询问用户操作
350
- - 操作列表:
351
- {action_handlers}
343
+ [系统提示开始]
344
+ 请判断是否已经完成任务,如果已经完成:
345
+ - 说明完成原因,不需要再有新的操作
346
+ {complete_prompt}
347
+ 如果没有完成,请进行下一步操作:
348
+ - 仅包含一个操作
349
+ - 如果信息不明确,请请求用户补充
350
+ - 如果执行过程中连续失败5次,请使用ask_user询问用户操作
351
+ - 操作列表:
352
+ {action_handlers}
353
+ [系统提示结束]
352
354
 
353
355
  请继续。
354
356
  """
@@ -490,7 +492,7 @@ class Agent:
490
492
  return False, f"操作失败:检测到多个操作。一次只能执行一个操作。尝试执行的操作:{', '.join([handler.name() for handler in tool_list])}"
491
493
  if len(tool_list) == 0:
492
494
  return False, ""
493
- if self.tool_call_count >= self.max_tool_call_count:
495
+ if self.max_tool_call_count > 0 and self.tool_call_count >= self.max_tool_call_count:
494
496
  if user_confirm(f"工具调用次数超过限制,是否继续执行?", True):
495
497
  self.reset_tool_call_count()
496
498
  else:
@@ -3,7 +3,7 @@ import argparse
3
3
  import os
4
4
  import sys
5
5
 
6
- from typing import Dict # 仅保留实际使用的类型导入
6
+ from typing import Dict, List, Tuple # 增加必要的类型导入
7
7
 
8
8
  from jarvis.jarvis_utils.config import get_data_dir
9
9
  from prompt_toolkit import prompt
@@ -39,10 +39,10 @@ def _load_tasks() -> Dict[str, str]:
39
39
  for name, desc in user_tasks.items():
40
40
  if desc:
41
41
  tasks[str(name)] = str(desc)
42
- spinner.text = "预定义任务加载完成"
42
+ spinner.text = f"预定义任务加载完成{pre_command_path}"
43
43
  spinner.ok("✅")
44
44
  except (yaml.YAMLError, OSError):
45
- spinner.text = "预定义任务加载失败"
45
+ spinner.text = f"预定义任务加载失败{pre_command_path}"
46
46
  spinner.fail("❌")
47
47
 
48
48
  # Check .jarvis/pre-command in current directory
@@ -58,10 +58,10 @@ def _load_tasks() -> Dict[str, str]:
58
58
  for name, desc in local_tasks.items():
59
59
  if desc:
60
60
  tasks[str(name)] = str(desc)
61
- spinner.text = "预定义任务加载完成"
61
+ spinner.text = f"预定义任务加载完成{pre_command_path}"
62
62
  spinner.ok("✅")
63
63
  except (yaml.YAMLError, OSError):
64
- spinner.text = "预定义任务加载失败"
64
+ spinner.text = f"预定义任务加载失败{pre_command_path}"
65
65
  spinner.fail("❌")
66
66
 
67
67
  return tasks
@@ -90,6 +90,7 @@ def _select_task(tasks: Dict[str, str]) -> str:
90
90
  return ""
91
91
  if 1 <= choice <= len(task_names):
92
92
  selected_task = tasks[task_names[choice - 1]]
93
+ PrettyOutput.print(f"将要执行任务:\n {selected_task}", OutputType.INFO)
93
94
  # 询问是否需要补充信息
94
95
  need_additional = user_confirm("需要为此任务添加补充信息吗?", default=False)
95
96
  if need_additional:
@@ -105,11 +106,10 @@ def _select_task(tasks: Dict[str, str]) -> str:
105
106
  PrettyOutput.print(f"选择任务失败: {str(val_err)}", OutputType.ERROR)
106
107
 
107
108
 
108
-
109
-
110
109
  def main() -> None:
111
- """Jarvis main entry point"""
112
- init_env()
110
+
111
+
112
+ init_env("欢迎使用 Jarvis AI 助手,您的智能助理已准备就绪!")
113
113
  parser = argparse.ArgumentParser(description='Jarvis AI assistant')
114
114
  parser.add_argument('-p', '--platform', type=str, help='Platform to use')
115
115
  parser.add_argument('-m', '--model', type=str, help='Model to use')
@@ -138,7 +138,7 @@ def main() -> None:
138
138
 
139
139
  tasks = _load_tasks()
140
140
  if tasks and (selected_task := _select_task(tasks)):
141
- PrettyOutput.print(f"执行任务: {selected_task}", OutputType.INFO)
141
+ PrettyOutput.print(f"开始执行任务: \n{selected_task}", OutputType.INFO)
142
142
  agent.run(selected_task)
143
143
  sys.exit(0)
144
144
 
@@ -9,13 +9,13 @@ from jarvis.jarvis_utils.utils import init_env
9
9
 
10
10
 
11
11
  def load_config(config_path: str) -> dict:
12
- """Load configuration from YAML file
12
+ """YAML文件加载配置
13
13
 
14
- Args:
15
- config_path: Path to the YAML configuration file
14
+ 参数:
15
+ config_path: YAML配置文件的路径
16
16
 
17
- Returns:
18
- dict: Configuration dictionary
17
+ 返回:
18
+ dict: 配置字典
19
19
  """
20
20
  if not os.path.exists(config_path):
21
21
  PrettyOutput.print(f"配置文件 {config_path} 不存在,使用默认配置", OutputType.WARNING)
@@ -32,7 +32,7 @@ def load_config(config_path: str) -> dict:
32
32
  def main():
33
33
  """Main entry point for Jarvis agent"""
34
34
  # Initialize environment
35
- init_env()
35
+ init_env("欢迎使用 Jarvis AI 助手,您的智能助理已准备就绪!")
36
36
 
37
37
  # Set up argument parser
38
38
  parser = argparse.ArgumentParser(description='Jarvis AI assistant')
@@ -31,7 +31,7 @@ from jarvis.jarvis_utils.git_utils import (
31
31
  from jarvis.jarvis_utils.input import get_multiline_input
32
32
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
33
33
  from jarvis.jarvis_utils.utils import init_env, user_confirm
34
-
34
+ from jarvis import __version__
35
35
 
36
36
  class CodeAgent:
37
37
  """Jarvis系统的代码修改代理。
@@ -372,10 +372,14 @@ class CodeAgent:
372
372
  final_ret += f"# 应用补丁:\n```diff\n{diff}\n```"
373
373
 
374
374
  # 修改后的提示逻辑
375
- addon_prompt = "如果对应语言有静态检查工具,请使用静态检查工具检查修改的代码,如果本次修改引入了警告和错误,请根据警告和错误信息修复代码\n"
376
- addon_prompt += "在引入警告和错误都被修复的前提下,如果用户的需求未完成,请继续修改代码,如果已经完成,请终止,不要实现任何超出用户需求外的内容\n"
377
- addon_prompt += "如果有任何信息不明确,调用工具获取信息\n"
378
- addon_prompt += "每次响应必须且只能包含一个操作\n"
375
+ addon_prompt = """
376
+ [系统提示开始]
377
+ 如果对应语言有静态检查工具,请使用静态检查工具检查修改的代码,如果本次修改引入了警告和错误,请根据警告和错误信息修复代码
378
+ 在引入警告和错误都被修复的前提下,如果用户的需求未完成,请继续修改代码,如果已经完成,请终止,不要实现任何超出用户需求外的内容
379
+ 如果有任何信息不明确,调用工具获取信息
380
+ 每次响应必须且只能包含一个操作
381
+ [系统提示结束]
382
+ """
379
383
 
380
384
  agent.set_addon_prompt(addon_prompt)
381
385
 
@@ -403,7 +407,7 @@ class CodeAgent:
403
407
 
404
408
  def main() -> None:
405
409
  """Jarvis主入口点。"""
406
- init_env()
410
+ init_env("欢迎使用 Jarvis-CodeAgent,您的代码工程助手已准备就绪!")
407
411
 
408
412
  parser = argparse.ArgumentParser(description='Jarvis Code Agent')
409
413
  parser.add_argument('-p', '--platform', type=str,
@@ -661,7 +661,7 @@ def main():
661
661
  """CLI entry point"""
662
662
  import argparse
663
663
 
664
- init_env()
664
+ init_env("欢迎使用 Jarvis-CodeReview,您的代码审查助手已准备就绪!")
665
665
 
666
666
  parser = argparse.ArgumentParser(description='Autonomous code review tool')
667
667
  subparsers = parser.add_subparsers(dest='type')
@@ -1257,7 +1257,7 @@ def create_dev_team() -> MultiAgent:
1257
1257
  def main():
1258
1258
  """Main entry point for the development team simulation."""
1259
1259
 
1260
- init_env()
1260
+ init_env("欢迎使用 Jarvis-Dev,您的开发团队已准备就绪!")
1261
1261
 
1262
1262
  # Create the development team
1263
1263
  dev_team = create_dev_team()
@@ -233,7 +233,7 @@ def main():
233
233
  """主函数,用于命令行接口"""
234
234
  import argparse
235
235
 
236
- init_env()
236
+ init_env("欢迎使用 Jarvis-GitCommitAnalyzer,您的Git Commit分析助手已准备就绪!")
237
237
 
238
238
  parser = argparse.ArgumentParser(description='Git Commit Analyzer')
239
239
  group = parser.add_mutually_exclusive_group(required=True)
@@ -46,7 +46,7 @@ class GitSquashTool:
46
46
  PrettyOutput.print(f"压缩提交失败: {str(e)}", OutputType.WARNING)
47
47
 
48
48
  def main():
49
- init_env()
49
+ init_env("欢迎使用 Jarvis-GitSquash,您的Git压缩助手已准备就绪!")
50
50
  parser = argparse.ArgumentParser(description='Git squash tool')
51
51
  parser.add_argument('commit_hash', type=str, help='Base commit hash to squash from')
52
52
  parser.add_argument('--lang', type=str, default='Chinese', help='Language for commit messages')
@@ -265,7 +265,7 @@ class GitCommitTool:
265
265
  }
266
266
 
267
267
  def main():
268
- init_env()
268
+ init_env("欢迎使用 Jarvis-GitCommitTool,您的Git提交助手已准备就绪!")
269
269
  parser = argparse.ArgumentParser(description='Git commit tool')
270
270
  parser.add_argument('--lang', type=str, default='Chinese', help='Language for commit messages')
271
271
  parser.add_argument('--root-dir', type=str, default='.', help='Root directory of the Git repository')
@@ -10,7 +10,7 @@ def main():
10
10
  Returns:
11
11
  最终处理结果
12
12
  """
13
- init_env()
13
+ init_env("欢迎使用 Jarvis-MultiAgent,您的多智能体系统已准备就绪!")
14
14
  import argparse
15
15
  parser = argparse.ArgumentParser(description="多智能体系统启动器")
16
16
  parser.add_argument("--config", "-c", required=True, help="YAML配置文件路径")
@@ -58,7 +58,7 @@ class BasePlatform(ABC):
58
58
 
59
59
  if input_token_count > get_max_input_token_count():
60
60
  max_chunk_size = get_max_input_token_count() - 1024 # 留出一些余量
61
- min_chunk_size = max_chunk_size // 2 # 最小块大小设为最大块大小的一半
61
+ min_chunk_size = get_max_input_token_count() - 2048
62
62
  inputs = split_text_into_chunks(message, max_chunk_size, min_chunk_size)
63
63
  with yaspin(text="正在提交长上下文...", color="cyan") as spinner:
64
64
  prefix_prompt = f"""
@@ -66,10 +66,13 @@ class BasePlatform(ABC):
66
66
  """
67
67
  while_true(lambda: while_success(lambda: self.chat(prefix_prompt), 5), 5)
68
68
  submit_count = 0
69
+ length = 0
69
70
  for input in inputs:
70
71
  submit_count += 1
71
- spinner.text = f"正在提交第{submit_count}部分(共{len(inputs)}部分)"
72
- while_true(lambda: while_success(lambda: self.chat(f"<part_content>{input}</part_content>请返回已收到"), 5), 5)
72
+ length += len(input)
73
+ spinner.text = f"正在提交第{submit_count}部分(共{len(inputs)}部分({length}/{len(message)}))"
74
+ list(while_true(lambda: while_success(lambda: self.chat(f"<part_content>{input}</part_content>请返回已收到"), 5), 5))
75
+ spinner.write(f"提交第{submit_count}部分完成,当前进度:{length}/{len(message)}")
73
76
  spinner.text = "提交完成"
74
77
  spinner.ok("✅")
75
78
  response = while_true(lambda: while_success(lambda: self._chat("内容已经全部提供完毕,请继续"), 5), 5)
@@ -294,7 +294,7 @@ class YuanbaoPlatform(BasePlatform):
294
294
  with open(file_path, 'rb') as file:
295
295
  file_content = file.read()
296
296
 
297
- spinner.write(f"ℹ️ 上传文件大小: {len(file_content)}")
297
+ spinner.write(f"ℹ️ 上传文件大小: {len(file_content)}")
298
298
 
299
299
  # Prepare headers for PUT request
300
300
  host = f"{upload_info['bucketName']}.{upload_info.get('accelerateDomain', 'cos.accelerate.myqcloud.com')}"
@@ -606,7 +606,7 @@ def main():
606
606
  """Main function"""
607
607
  import argparse
608
608
 
609
- init_env()
609
+ init_env("欢迎使用 Jarvis-PlatformManager,您的平台管理助手已准备就绪!")
610
610
 
611
611
  parser = argparse.ArgumentParser(description='Jarvis AI 平台')
612
612
  subparsers = parser.add_subparsers(dest='command', help='可用子命令')
@@ -5,6 +5,8 @@ import os
5
5
  import sys
6
6
  from typing import Optional
7
7
 
8
+ from sympy import false
9
+
8
10
  from jarvis.jarvis_platform.registry import PlatformRegistry
9
11
  from jarvis.jarvis_utils.config import get_shell_name
10
12
  from jarvis.jarvis_utils.input import get_multiline_input
@@ -113,8 +115,8 @@ def process_request(request: str) -> Optional[str]:
113
115
  return None
114
116
 
115
117
  def main() -> int:
116
- # 创建参数解析器
117
- init_env()
118
+ # 创建参数解析器s
119
+ init_env("")
118
120
  parser = argparse.ArgumentParser(
119
121
  description="将自然语言要求转换为shell命令",
120
122
  formatter_class=argparse.RawDescriptionHelpFormatter,
@@ -259,7 +259,7 @@ def main():
259
259
  import sys
260
260
  from jarvis.jarvis_utils.input import get_multiline_input
261
261
 
262
- init_env()
262
+ init_env("欢迎使用 Jarvis-AskCodebase,您的智能代码库查询工具已准备就绪!")
263
263
 
264
264
  # 创建命令行参数解析器
265
265
  parser = argparse.ArgumentParser(description="智能代码库查询工具")
@@ -29,7 +29,7 @@ def main() -> int:
29
29
  import argparse
30
30
  import json
31
31
 
32
- init_env()
32
+ init_env("欢迎使用 Jarvis-Tools,您的工具系统已准备就绪!")
33
33
 
34
34
  parser = argparse.ArgumentParser(description="Jarvis 工具系统命令行界面")
35
35
  subparsers = parser.add_subparsers(dest="command", help="命令")
@@ -47,6 +47,10 @@ def main() -> int:
47
47
  "--args-file", type=str, help="从文件加载工具参数 (JSON格式)"
48
48
  )
49
49
 
50
+ # 统计子命令
51
+ stat_parser = subparsers.add_parser("stat", help="显示工具调用统计信息")
52
+ stat_parser.add_argument("--json", action="store_true", help="以JSON格式输出")
53
+
50
54
  args = parser.parse_args()
51
55
 
52
56
  # 初始化工具注册表
@@ -72,6 +76,29 @@ def main() -> int:
72
76
  print(f" 参数:")
73
77
  print(tool["parameters"]) # 显示详细参数信息
74
78
 
79
+ elif args.command == "stat":
80
+ from tabulate import tabulate
81
+ stats = registry._get_tool_stats()
82
+ tools = registry.get_all_tools()
83
+
84
+ # 构建统计表格数据
85
+ table_data = []
86
+ for tool in tools:
87
+ name = tool["name"]
88
+ count = stats.get(name, 0)
89
+ table_data.append([name, count])
90
+
91
+ # 按调用次数降序排序
92
+ table_data.sort(key=lambda x: x[1], reverse=True)
93
+
94
+ if args.json:
95
+ print(json.dumps(dict(table_data), indent=2))
96
+ else:
97
+ PrettyOutput.section("工具调用统计", OutputType.SYSTEM)
98
+ print(tabulate(table_data, headers=["工具名称", "调用次数"], tablefmt="grid"))
99
+
100
+ return 0
101
+
75
102
  elif args.command == "call":
76
103
  tool_name = args.tool_name
77
104
  tool_obj = registry.get_tool(tool_name)