jarvis-ai-assistant 0.1.171__tar.gz → 0.1.172__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.
- {jarvis_ai_assistant-0.1.171/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.172}/PKG-INFO +3 -3
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/README.md +2 -2
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/pyproject.toml +2 -2
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/setup.py +2 -2
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/__init__.py +17 -9
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/file_input_handler.py +16 -1
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/base.py +1 -1
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/human.py +3 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/openai.py +3 -0
- jarvis_ai_assistant-0.1.172/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- jarvis_ai_assistant-0.1.172/src/jarvis/jarvis_tools/cli/main.py +127 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/registry.py +8 -124
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172/src/jarvis_ai_assistant.egg-info}/PKG-INFO +3 -3
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +2 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis_ai_assistant.egg-info/entry_points.txt +1 -1
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/jarvis.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_dev/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_details/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_details/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/base.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/cpp.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/go.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/python.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/registry.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/rust.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/registry.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/ask_codebase.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/chdir.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/code_plan.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/edit_file.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/file_operation.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/find_methodology.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/lsp_get_diagnostics.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/config.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/git_utils.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/globals.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/input.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/utils.py +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/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.
|
|
3
|
+
Version: 0.1.172
|
|
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
|
|
@@ -333,7 +333,7 @@ MCP(模型上下文协议)。在`~/.jarvis/tools/mcp/`中创建YAML配置文件
|
|
|
333
333
|
|
|
334
334
|
#### 本地MCP配置(`stdio`模式)
|
|
335
335
|
```yaml
|
|
336
|
-
type:
|
|
336
|
+
type: stdio
|
|
337
337
|
name: MCP名称
|
|
338
338
|
command: 可执行命令
|
|
339
339
|
args: [参数列表] # 可选
|
|
@@ -343,7 +343,7 @@ env: # 可选环境变量
|
|
|
343
343
|
|
|
344
344
|
#### 远程MCP配置(`sse`模式)
|
|
345
345
|
```yaml
|
|
346
|
-
type:
|
|
346
|
+
type: sse
|
|
347
347
|
name: MCP名称
|
|
348
348
|
base_url: http://example.com/api
|
|
349
349
|
auth_token: 认证令牌 # 可选
|
|
@@ -263,7 +263,7 @@ MCP(模型上下文协议)。在`~/.jarvis/tools/mcp/`中创建YAML配置文件
|
|
|
263
263
|
|
|
264
264
|
#### 本地MCP配置(`stdio`模式)
|
|
265
265
|
```yaml
|
|
266
|
-
type:
|
|
266
|
+
type: stdio
|
|
267
267
|
name: MCP名称
|
|
268
268
|
command: 可执行命令
|
|
269
269
|
args: [参数列表] # 可选
|
|
@@ -273,7 +273,7 @@ env: # 可选环境变量
|
|
|
273
273
|
|
|
274
274
|
#### 远程MCP配置(`sse`模式)
|
|
275
275
|
```yaml
|
|
276
|
-
type:
|
|
276
|
+
type: sse
|
|
277
277
|
name: MCP名称
|
|
278
278
|
base_url: http://example.com/api
|
|
279
279
|
auth_token: 认证令牌 # 可选
|
|
@@ -8,7 +8,7 @@ default = true
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
name = "jarvis-ai-assistant"
|
|
11
|
-
version = "0.1.
|
|
11
|
+
version = "0.1.172"
|
|
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" }]
|
|
@@ -65,7 +65,7 @@ jarvis-dev = "jarvis.jarvis_dev.main:main"
|
|
|
65
65
|
jarvis-git-squash = "jarvis.jarvis_git_squash.main:main"
|
|
66
66
|
jarvis-multi-agent = "jarvis.jarvis_multi_agent.main:main"
|
|
67
67
|
jarvis-agent = "jarvis.jarvis_agent.main:main"
|
|
68
|
-
jarvis-tool = "jarvis.jarvis_tools.
|
|
68
|
+
jarvis-tool = "jarvis.jarvis_tools.cli.main:main"
|
|
69
69
|
jarvis-ask-codebase = "jarvis.jarvis_tools.ask_codebase:main"
|
|
70
70
|
jac = "jarvis.jarvis_tools.ask_codebase:main"
|
|
71
71
|
jarvis-git-details = "jarvis.jarvis_git_details.main:main"
|
|
@@ -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.
|
|
6
|
+
version="0.1.172",
|
|
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",
|
|
@@ -52,7 +52,7 @@ setup(
|
|
|
52
52
|
"jarvis-git-squash=jarvis.jarvis_git_squash.main:main",
|
|
53
53
|
"jarvis-multi-agent=jarvis.jarvis_multi_agent.main:main",
|
|
54
54
|
"jarvis-agent=jarvis.jarvis_agent.main:main",
|
|
55
|
-
"jarvis-tool=jarvis.jarvis_tools.
|
|
55
|
+
"jarvis-tool=jarvis.jarvis_tools.cli.main:main",
|
|
56
56
|
"jarvis-ask-codebase=jarvis.jarvis_tools.ask_codebase:main",
|
|
57
57
|
"jac=jarvis.jarvis_tools.ask_codebase:main",
|
|
58
58
|
"jarvis-git-details=jarvis.jarvis_git_details.main:main",
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/__init__.py
RENAMED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
import datetime
|
|
3
3
|
import platform
|
|
4
|
-
from typing import Any, Callable, List, Optional, Tuple, Union
|
|
4
|
+
from typing import Any, Callable, List, Optional, Tuple, Union, Protocol
|
|
5
5
|
|
|
6
|
-
from jarvis.jarvis_tools.registry import ToolRegistry
|
|
7
6
|
from yaspin import yaspin # type: ignore
|
|
8
7
|
|
|
9
8
|
from jarvis.jarvis_agent.output_handler import OutputHandler
|
|
@@ -105,6 +104,13 @@ origin_agent_system_prompt = f"""
|
|
|
105
104
|
"""
|
|
106
105
|
|
|
107
106
|
|
|
107
|
+
class OutputHandlerProtocol(Protocol):
|
|
108
|
+
def name(self) -> str: ...
|
|
109
|
+
def can_handle(self, response: str) -> bool: ...
|
|
110
|
+
def prompt(self) -> str: ...
|
|
111
|
+
def handle(self, response: str, agent: Any) -> Tuple[bool, Any]: ...
|
|
112
|
+
|
|
113
|
+
|
|
108
114
|
class Agent:
|
|
109
115
|
|
|
110
116
|
def set_summary_prompt(self, summary_prompt: str):
|
|
@@ -139,7 +145,7 @@ class Agent:
|
|
|
139
145
|
model_name: Optional[str] = None,
|
|
140
146
|
summary_prompt: Optional[str] = None,
|
|
141
147
|
auto_complete: Optional[bool] = None,
|
|
142
|
-
output_handler: List[
|
|
148
|
+
output_handler: List[OutputHandlerProtocol] = [],
|
|
143
149
|
use_tools: List[str] = [],
|
|
144
150
|
input_handler: Optional[List[Callable[[str, Any], Tuple[str, bool]]]] = None,
|
|
145
151
|
execute_tool_confirm: Optional[bool] = None,
|
|
@@ -287,6 +293,8 @@ class Agent:
|
|
|
287
293
|
self.first = True
|
|
288
294
|
|
|
289
295
|
def set_use_tools(self, use_tools):
|
|
296
|
+
"""设置要使用的工具列表"""
|
|
297
|
+
from jarvis.jarvis_tools.registry import ToolRegistry
|
|
290
298
|
for handler in self.output_handler:
|
|
291
299
|
if isinstance(handler, ToolRegistry):
|
|
292
300
|
if use_tools:
|
|
@@ -310,12 +318,9 @@ class Agent:
|
|
|
310
318
|
"""
|
|
311
319
|
self.after_tool_call_cb = cb
|
|
312
320
|
|
|
313
|
-
def get_tool_registry(self) -> Optional[
|
|
314
|
-
"""
|
|
315
|
-
|
|
316
|
-
返回:
|
|
317
|
-
ToolRegistry: 工具注册器实例
|
|
318
|
-
"""
|
|
321
|
+
def get_tool_registry(self) -> Optional[Any]:
|
|
322
|
+
"""获取工具注册表实例"""
|
|
323
|
+
from jarvis.jarvis_tools.registry import ToolRegistry
|
|
319
324
|
for handler in self.output_handler:
|
|
320
325
|
if isinstance(handler, ToolRegistry):
|
|
321
326
|
return handler
|
|
@@ -505,6 +510,8 @@ class Agent:
|
|
|
505
510
|
self.reset_tool_call_count()
|
|
506
511
|
else:
|
|
507
512
|
return False, ""
|
|
513
|
+
if self.execute_tool_confirm:
|
|
514
|
+
self.reset_tool_call_count()
|
|
508
515
|
if not self.execute_tool_confirm or user_confirm(f"需要执行{tool_list[0].name()}确认执行?", True):
|
|
509
516
|
with yaspin(text=f"正在执行{tool_list[0].name()}...", color="cyan") as spinner:
|
|
510
517
|
with spinner.hidden():
|
|
@@ -834,6 +841,7 @@ arguments:
|
|
|
834
841
|
self.prompt = f"{user_input}\n\n以下是历史类似问题的执行经验,可参考:\n{load_methodology(msg, self.get_tool_registry())}"
|
|
835
842
|
self.first = False
|
|
836
843
|
|
|
844
|
+
self.conversation_length = get_context_token_count(self.prompt)
|
|
837
845
|
while True:
|
|
838
846
|
try:
|
|
839
847
|
# 如果对话历史长度超过限制,在提示中添加提醒
|
|
@@ -13,6 +13,20 @@ from jarvis.jarvis_utils.utils import is_context_overflow
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def file_input_handler(user_input: str, agent: Any) -> Tuple[str, bool]:
|
|
16
|
+
"""Process user input containing file references and read file contents.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
user_input: Input string that may contain file references in format:
|
|
20
|
+
- 'file_path' (whole file)
|
|
21
|
+
- 'file_path:start_line,end_line' (line range)
|
|
22
|
+
- 'file_path:start_line:end_line' (alternative range format)
|
|
23
|
+
agent: Agent object for further processing (currently unused)
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
Tuple[str, bool]:
|
|
27
|
+
- Processed prompt string with file contents prepended
|
|
28
|
+
- Boolean indicating if context overflow occurred
|
|
29
|
+
"""
|
|
16
30
|
prompt = user_input
|
|
17
31
|
files = []
|
|
18
32
|
|
|
@@ -37,7 +51,7 @@ def file_input_handler(user_input: str, agent: Any) -> Tuple[str, bool]:
|
|
|
37
51
|
except FileNotFoundError:
|
|
38
52
|
PrettyOutput.print(f"文件不存在: {file_path}", OutputType.WARNING)
|
|
39
53
|
continue
|
|
40
|
-
# Process start line
|
|
54
|
+
# Process start line (0 means whole file, negative means from end)
|
|
41
55
|
if raw_start == 0: # 0表示整个文件
|
|
42
56
|
start_line = 1
|
|
43
57
|
end_line = total_lines
|
|
@@ -85,6 +99,7 @@ def file_input_handler(user_input: str, agent: Any) -> Tuple[str, bool]:
|
|
|
85
99
|
if result["success"]:
|
|
86
100
|
spinner.text = "文件读取完成"
|
|
87
101
|
spinner.ok("✅")
|
|
102
|
+
# Prepend file contents to prompt and check for overflow
|
|
88
103
|
prompt = result["stdout"] + "\n" + prompt
|
|
89
104
|
if is_context_overflow(prompt):
|
|
90
105
|
return old_prompt, False
|
|
File without changes
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
|
|
2
|
+
import sys
|
|
3
|
+
from jarvis.jarvis_tools.registry import ToolRegistry
|
|
4
|
+
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
|
5
|
+
from jarvis.jarvis_utils.utils import init_env
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def main() -> int:
|
|
9
|
+
"""命令行工具入口,提供工具列表查看和工具调用功能"""
|
|
10
|
+
import argparse
|
|
11
|
+
import json
|
|
12
|
+
|
|
13
|
+
init_env()
|
|
14
|
+
|
|
15
|
+
parser = argparse.ArgumentParser(description="Jarvis 工具系统命令行界面")
|
|
16
|
+
subparsers = parser.add_subparsers(dest="command", help="命令")
|
|
17
|
+
|
|
18
|
+
# 列出工具子命令
|
|
19
|
+
list_parser = subparsers.add_parser("list", help="列出所有可用工具")
|
|
20
|
+
list_parser.add_argument("--json", action="store_true", help="以JSON格式输出")
|
|
21
|
+
list_parser.add_argument("--detailed", action="store_true", help="显示详细信息")
|
|
22
|
+
|
|
23
|
+
# 调用工具子命令
|
|
24
|
+
call_parser = subparsers.add_parser("call", help="调用指定工具")
|
|
25
|
+
call_parser.add_argument("tool_name", help="要调用的工具名称")
|
|
26
|
+
call_parser.add_argument("--args", type=str, help="工具参数 (JSON格式)")
|
|
27
|
+
call_parser.add_argument(
|
|
28
|
+
"--args-file", type=str, help="从文件加载工具参数 (JSON格式)"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
args = parser.parse_args()
|
|
32
|
+
|
|
33
|
+
# 初始化工具注册表
|
|
34
|
+
registry = ToolRegistry()
|
|
35
|
+
|
|
36
|
+
if args.command == "list":
|
|
37
|
+
tools = registry.get_all_tools()
|
|
38
|
+
|
|
39
|
+
if args.json:
|
|
40
|
+
if args.detailed:
|
|
41
|
+
print(json.dumps(tools, indent=2, ensure_ascii=False))
|
|
42
|
+
else:
|
|
43
|
+
simple_tools = [
|
|
44
|
+
{"name": t["name"], "description": t["description"]} for t in tools
|
|
45
|
+
]
|
|
46
|
+
print(json.dumps(simple_tools, indent=2, ensure_ascii=False))
|
|
47
|
+
else:
|
|
48
|
+
PrettyOutput.section("可用工具列表", OutputType.SYSTEM)
|
|
49
|
+
for tool in tools:
|
|
50
|
+
print(f"\n✅ {tool['name']}")
|
|
51
|
+
print(f" 描述: {tool['description']}")
|
|
52
|
+
if args.detailed:
|
|
53
|
+
print(f" 参数:")
|
|
54
|
+
print(tool["parameters"])
|
|
55
|
+
|
|
56
|
+
elif args.command == "call":
|
|
57
|
+
tool_name = args.tool_name
|
|
58
|
+
tool_obj = registry.get_tool(tool_name)
|
|
59
|
+
|
|
60
|
+
if not tool_obj:
|
|
61
|
+
PrettyOutput.print(f"错误: 工具 '{tool_name}' 不存在", OutputType.ERROR)
|
|
62
|
+
available_tools = ", ".join([t["name"] for t in registry.get_all_tools()])
|
|
63
|
+
print(f"可用工具: {available_tools}")
|
|
64
|
+
return 1
|
|
65
|
+
|
|
66
|
+
# 获取参数
|
|
67
|
+
tool_args = {}
|
|
68
|
+
if args.args:
|
|
69
|
+
try:
|
|
70
|
+
tool_args = json.loads(args.args)
|
|
71
|
+
except json.JSONDecodeError:
|
|
72
|
+
PrettyOutput.print("错误: 参数必须是有效的JSON格式", OutputType.ERROR)
|
|
73
|
+
return 1
|
|
74
|
+
|
|
75
|
+
elif args.args_file:
|
|
76
|
+
try:
|
|
77
|
+
with open(args.args_file, "r", encoding="utf-8") as f:
|
|
78
|
+
tool_args = json.load(f)
|
|
79
|
+
except (json.JSONDecodeError, FileNotFoundError) as e:
|
|
80
|
+
PrettyOutput.print(
|
|
81
|
+
f"错误: 无法从文件加载参数: {str(e)}", OutputType.ERROR
|
|
82
|
+
)
|
|
83
|
+
return 1
|
|
84
|
+
|
|
85
|
+
# 检查必需参数
|
|
86
|
+
required_params = tool_obj.parameters.get("required", [])
|
|
87
|
+
missing_params = [p for p in required_params if p not in tool_args]
|
|
88
|
+
|
|
89
|
+
if missing_params:
|
|
90
|
+
PrettyOutput.print(
|
|
91
|
+
f"错误: 缺少必需参数: {', '.join(missing_params)}", OutputType.ERROR
|
|
92
|
+
)
|
|
93
|
+
print("\n参数说明:")
|
|
94
|
+
params = tool_obj.parameters.get("properties", {})
|
|
95
|
+
for param_name in required_params:
|
|
96
|
+
param_info = params.get(param_name, {})
|
|
97
|
+
desc = param_info.get("description", "无描述")
|
|
98
|
+
print(f" - {param_name}: {desc}")
|
|
99
|
+
return 1
|
|
100
|
+
|
|
101
|
+
# 执行工具
|
|
102
|
+
result = registry.execute_tool(tool_name, tool_args)
|
|
103
|
+
|
|
104
|
+
# 显示结果
|
|
105
|
+
if result["success"]:
|
|
106
|
+
PrettyOutput.section(f"工具 {tool_name} 执行成功", OutputType.SUCCESS)
|
|
107
|
+
else:
|
|
108
|
+
PrettyOutput.section(f"工具 {tool_name} 执行失败", OutputType.ERROR)
|
|
109
|
+
|
|
110
|
+
if result.get("stdout"):
|
|
111
|
+
print("\n输出:")
|
|
112
|
+
print(result["stdout"])
|
|
113
|
+
|
|
114
|
+
if result.get("stderr"):
|
|
115
|
+
PrettyOutput.print("\n错误:", OutputType.ERROR)
|
|
116
|
+
print(result["stderr"])
|
|
117
|
+
|
|
118
|
+
return 0 if result["success"] else 1
|
|
119
|
+
|
|
120
|
+
else:
|
|
121
|
+
parser.print_help()
|
|
122
|
+
|
|
123
|
+
return 0
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
if __name__ == "__main__":
|
|
127
|
+
sys.exit(main())
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/registry.py
RENAMED
|
@@ -5,11 +5,10 @@ import re
|
|
|
5
5
|
import sys
|
|
6
6
|
import tempfile
|
|
7
7
|
import os
|
|
8
|
-
from typing import Any, Callable, Dict, List, Optional, Tuple
|
|
8
|
+
from typing import Any, Callable, Dict, List, Optional, Tuple, Protocol
|
|
9
9
|
|
|
10
10
|
import yaml
|
|
11
11
|
|
|
12
|
-
from jarvis.jarvis_agent.output_handler import OutputHandler
|
|
13
12
|
from jarvis.jarvis_platform.registry import PlatformRegistry
|
|
14
13
|
from jarvis.jarvis_tools.base import Tool
|
|
15
14
|
from jarvis.jarvis_utils.config import get_data_dir
|
|
@@ -106,7 +105,13 @@ arguments:
|
|
|
106
105
|
"""
|
|
107
106
|
|
|
108
107
|
|
|
109
|
-
class
|
|
108
|
+
class OutputHandlerProtocol(Protocol):
|
|
109
|
+
def name(self) -> str: ...
|
|
110
|
+
def can_handle(self, response: str) -> bool: ...
|
|
111
|
+
def prompt(self) -> str: ...
|
|
112
|
+
def handle(self, response: str, agent: Any) -> Tuple[bool, Any]: ...
|
|
113
|
+
|
|
114
|
+
class ToolRegistry(OutputHandlerProtocol):
|
|
110
115
|
|
|
111
116
|
def name(self) -> str:
|
|
112
117
|
return "TOOL_CALL"
|
|
@@ -654,124 +659,3 @@ class ToolRegistry(OutputHandler):
|
|
|
654
659
|
PrettyOutput.print(f"工具执行失败:{str(e)}", OutputType.ERROR)
|
|
655
660
|
return f"工具调用失败: {str(e)}"
|
|
656
661
|
|
|
657
|
-
|
|
658
|
-
def main() -> int:
|
|
659
|
-
"""命令行工具入口,提供工具列表查看和工具调用功能"""
|
|
660
|
-
import argparse
|
|
661
|
-
import json
|
|
662
|
-
|
|
663
|
-
init_env()
|
|
664
|
-
|
|
665
|
-
parser = argparse.ArgumentParser(description="Jarvis 工具系统命令行界面")
|
|
666
|
-
subparsers = parser.add_subparsers(dest="command", help="命令")
|
|
667
|
-
|
|
668
|
-
# 列出工具子命令
|
|
669
|
-
list_parser = subparsers.add_parser("list", help="列出所有可用工具")
|
|
670
|
-
list_parser.add_argument("--json", action="store_true", help="以JSON格式输出")
|
|
671
|
-
list_parser.add_argument("--detailed", action="store_true", help="显示详细信息")
|
|
672
|
-
|
|
673
|
-
# 调用工具子命令
|
|
674
|
-
call_parser = subparsers.add_parser("call", help="调用指定工具")
|
|
675
|
-
call_parser.add_argument("tool_name", help="要调用的工具名称")
|
|
676
|
-
call_parser.add_argument("--args", type=str, help="工具参数 (JSON格式)")
|
|
677
|
-
call_parser.add_argument(
|
|
678
|
-
"--args-file", type=str, help="从文件加载工具参数 (JSON格式)"
|
|
679
|
-
)
|
|
680
|
-
|
|
681
|
-
args = parser.parse_args()
|
|
682
|
-
|
|
683
|
-
# 初始化工具注册表
|
|
684
|
-
registry = ToolRegistry()
|
|
685
|
-
|
|
686
|
-
if args.command == "list":
|
|
687
|
-
tools = registry.get_all_tools()
|
|
688
|
-
|
|
689
|
-
if args.json:
|
|
690
|
-
if args.detailed:
|
|
691
|
-
print(json.dumps(tools, indent=2, ensure_ascii=False))
|
|
692
|
-
else:
|
|
693
|
-
simple_tools = [
|
|
694
|
-
{"name": t["name"], "description": t["description"]} for t in tools
|
|
695
|
-
]
|
|
696
|
-
print(json.dumps(simple_tools, indent=2, ensure_ascii=False))
|
|
697
|
-
else:
|
|
698
|
-
PrettyOutput.section("可用工具列表", OutputType.SYSTEM)
|
|
699
|
-
for tool in tools:
|
|
700
|
-
print(f"\n✅ {tool['name']}")
|
|
701
|
-
print(f" 描述: {tool['description']}")
|
|
702
|
-
if args.detailed:
|
|
703
|
-
print(f" 参数:")
|
|
704
|
-
print(tool["parameters"])
|
|
705
|
-
|
|
706
|
-
elif args.command == "call":
|
|
707
|
-
tool_name = args.tool_name
|
|
708
|
-
tool_obj = registry.get_tool(tool_name)
|
|
709
|
-
|
|
710
|
-
if not tool_obj:
|
|
711
|
-
PrettyOutput.print(f"错误: 工具 '{tool_name}' 不存在", OutputType.ERROR)
|
|
712
|
-
available_tools = ", ".join([t["name"] for t in registry.get_all_tools()])
|
|
713
|
-
print(f"可用工具: {available_tools}")
|
|
714
|
-
return 1
|
|
715
|
-
|
|
716
|
-
# 获取参数
|
|
717
|
-
tool_args = {}
|
|
718
|
-
if args.args:
|
|
719
|
-
try:
|
|
720
|
-
tool_args = json.loads(args.args)
|
|
721
|
-
except json.JSONDecodeError:
|
|
722
|
-
PrettyOutput.print("错误: 参数必须是有效的JSON格式", OutputType.ERROR)
|
|
723
|
-
return 1
|
|
724
|
-
|
|
725
|
-
elif args.args_file:
|
|
726
|
-
try:
|
|
727
|
-
with open(args.args_file, "r", encoding="utf-8") as f:
|
|
728
|
-
tool_args = json.load(f)
|
|
729
|
-
except (json.JSONDecodeError, FileNotFoundError) as e:
|
|
730
|
-
PrettyOutput.print(
|
|
731
|
-
f"错误: 无法从文件加载参数: {str(e)}", OutputType.ERROR
|
|
732
|
-
)
|
|
733
|
-
return 1
|
|
734
|
-
|
|
735
|
-
# 检查必需参数
|
|
736
|
-
required_params = tool_obj.parameters.get("required", [])
|
|
737
|
-
missing_params = [p for p in required_params if p not in tool_args]
|
|
738
|
-
|
|
739
|
-
if missing_params:
|
|
740
|
-
PrettyOutput.print(
|
|
741
|
-
f"错误: 缺少必需参数: {', '.join(missing_params)}", OutputType.ERROR
|
|
742
|
-
)
|
|
743
|
-
print("\n参数说明:")
|
|
744
|
-
params = tool_obj.parameters.get("properties", {})
|
|
745
|
-
for param_name in required_params:
|
|
746
|
-
param_info = params.get(param_name, {})
|
|
747
|
-
desc = param_info.get("description", "无描述")
|
|
748
|
-
print(f" - {param_name}: {desc}")
|
|
749
|
-
return 1
|
|
750
|
-
|
|
751
|
-
# 执行工具
|
|
752
|
-
result = registry.execute_tool(tool_name, tool_args)
|
|
753
|
-
|
|
754
|
-
# 显示结果
|
|
755
|
-
if result["success"]:
|
|
756
|
-
PrettyOutput.section(f"工具 {tool_name} 执行成功", OutputType.SUCCESS)
|
|
757
|
-
else:
|
|
758
|
-
PrettyOutput.section(f"工具 {tool_name} 执行失败", OutputType.ERROR)
|
|
759
|
-
|
|
760
|
-
if result.get("stdout"):
|
|
761
|
-
print("\n输出:")
|
|
762
|
-
print(result["stdout"])
|
|
763
|
-
|
|
764
|
-
if result.get("stderr"):
|
|
765
|
-
PrettyOutput.print("\n错误:", OutputType.ERROR)
|
|
766
|
-
print(result["stderr"])
|
|
767
|
-
|
|
768
|
-
return 0 if result["success"] else 1
|
|
769
|
-
|
|
770
|
-
else:
|
|
771
|
-
parser.print_help()
|
|
772
|
-
|
|
773
|
-
return 0
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
if __name__ == "__main__":
|
|
777
|
-
sys.exit(main())
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jarvis-ai-assistant
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.172
|
|
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
|
|
@@ -333,7 +333,7 @@ MCP(模型上下文协议)。在`~/.jarvis/tools/mcp/`中创建YAML配置文件
|
|
|
333
333
|
|
|
334
334
|
#### 本地MCP配置(`stdio`模式)
|
|
335
335
|
```yaml
|
|
336
|
-
type:
|
|
336
|
+
type: stdio
|
|
337
337
|
name: MCP名称
|
|
338
338
|
command: 可执行命令
|
|
339
339
|
args: [参数列表] # 可选
|
|
@@ -343,7 +343,7 @@ env: # 可选环境变量
|
|
|
343
343
|
|
|
344
344
|
#### 远程MCP配置(`sse`模式)
|
|
345
345
|
```yaml
|
|
346
|
-
type:
|
|
346
|
+
type: sse
|
|
347
347
|
name: MCP名称
|
|
348
348
|
base_url: http://example.com/api
|
|
349
349
|
auth_token: 认证令牌 # 可选
|
|
@@ -86,6 +86,8 @@ src/jarvis/jarvis_tools/registry.py
|
|
|
86
86
|
src/jarvis/jarvis_tools/rewrite_file.py
|
|
87
87
|
src/jarvis/jarvis_tools/search_web.py
|
|
88
88
|
src/jarvis/jarvis_tools/virtual_tty.py
|
|
89
|
+
src/jarvis/jarvis_tools/cli/__init__.py
|
|
90
|
+
src/jarvis/jarvis_tools/cli/main.py
|
|
89
91
|
src/jarvis/jarvis_utils/__init__.py
|
|
90
92
|
src/jarvis/jarvis_utils/builtin_replace_map.py
|
|
91
93
|
src/jarvis/jarvis_utils/config.py
|
|
@@ -13,7 +13,7 @@ jarvis-methodology = jarvis.jarvis_methodology.main:main
|
|
|
13
13
|
jarvis-multi-agent = jarvis.jarvis_multi_agent.main:main
|
|
14
14
|
jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
|
|
15
15
|
jarvis-smart-shell = jarvis.jarvis_smart_shell.main:main
|
|
16
|
-
jarvis-tool = jarvis.jarvis_tools.
|
|
16
|
+
jarvis-tool = jarvis.jarvis_tools.cli.main:main
|
|
17
17
|
jca = jarvis.jarvis_code_agent.code_agent:main
|
|
18
18
|
jgc = jarvis.jarvis_git_utils.git_commiter:main
|
|
19
19
|
jss = jarvis.jarvis_smart_shell.main:main
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_agent/jarvis.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_code_agent/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_details/main.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_squash/__init__.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_git_squash/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_lsp/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_mcp/__init__.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_mcp/sse_mcp_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_methodology/main.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_multi_agent/main.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/__init__.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/kimi.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/registry.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_platform/yuanbao.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_smart_shell/main.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/__init__.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/ask_codebase.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/ask_user.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/chdir.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/code_plan.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/edit_file.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/file_analyzer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/methodology.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/read_code.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/read_webpage.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/rewrite_file.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/search_web.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_tools/virtual_tty.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/config.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/embedding.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/git_utils.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/globals.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/input.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/methodology.py
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/output.py
RENAMED
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.171 → jarvis_ai_assistant-0.1.172}/src/jarvis/jarvis_utils/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|