jarvis-ai-assistant 0.7.0__py3-none-any.whl → 0.7.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jarvis/__init__.py +1 -1
- jarvis/jarvis_agent/__init__.py +243 -139
- jarvis/jarvis_agent/agent_manager.py +5 -10
- jarvis/jarvis_agent/builtin_input_handler.py +2 -6
- jarvis/jarvis_agent/config_editor.py +2 -7
- jarvis/jarvis_agent/event_bus.py +82 -12
- jarvis/jarvis_agent/file_context_handler.py +265 -15
- jarvis/jarvis_agent/file_methodology_manager.py +3 -4
- jarvis/jarvis_agent/jarvis.py +113 -98
- jarvis/jarvis_agent/language_extractors/__init__.py +57 -0
- jarvis/jarvis_agent/language_extractors/c_extractor.py +21 -0
- jarvis/jarvis_agent/language_extractors/cpp_extractor.py +21 -0
- jarvis/jarvis_agent/language_extractors/go_extractor.py +21 -0
- jarvis/jarvis_agent/language_extractors/java_extractor.py +84 -0
- jarvis/jarvis_agent/language_extractors/javascript_extractor.py +79 -0
- jarvis/jarvis_agent/language_extractors/python_extractor.py +21 -0
- jarvis/jarvis_agent/language_extractors/rust_extractor.py +21 -0
- jarvis/jarvis_agent/language_extractors/typescript_extractor.py +84 -0
- jarvis/jarvis_agent/language_support_info.py +486 -0
- jarvis/jarvis_agent/main.py +6 -12
- jarvis/jarvis_agent/memory_manager.py +7 -16
- jarvis/jarvis_agent/methodology_share_manager.py +10 -16
- jarvis/jarvis_agent/prompt_manager.py +1 -1
- jarvis/jarvis_agent/prompts.py +193 -171
- jarvis/jarvis_agent/protocols.py +8 -12
- jarvis/jarvis_agent/run_loop.py +77 -14
- jarvis/jarvis_agent/session_manager.py +2 -3
- jarvis/jarvis_agent/share_manager.py +12 -21
- jarvis/jarvis_agent/shell_input_handler.py +1 -2
- jarvis/jarvis_agent/task_analyzer.py +26 -4
- jarvis/jarvis_agent/task_manager.py +11 -27
- jarvis/jarvis_agent/tool_executor.py +2 -3
- jarvis/jarvis_agent/tool_share_manager.py +12 -24
- jarvis/jarvis_agent/web_server.py +55 -20
- jarvis/jarvis_c2rust/__init__.py +5 -5
- jarvis/jarvis_c2rust/cli.py +461 -499
- jarvis/jarvis_c2rust/collector.py +45 -53
- jarvis/jarvis_c2rust/constants.py +26 -0
- jarvis/jarvis_c2rust/library_replacer.py +264 -132
- jarvis/jarvis_c2rust/llm_module_agent.py +162 -190
- jarvis/jarvis_c2rust/loaders.py +207 -0
- jarvis/jarvis_c2rust/models.py +28 -0
- jarvis/jarvis_c2rust/optimizer.py +1592 -395
- jarvis/jarvis_c2rust/transpiler.py +1722 -1064
- jarvis/jarvis_c2rust/utils.py +385 -0
- jarvis/jarvis_code_agent/build_validation_config.py +2 -3
- jarvis/jarvis_code_agent/code_agent.py +394 -320
- jarvis/jarvis_code_agent/code_analyzer/__init__.py +3 -0
- jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py +4 -0
- jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py +17 -2
- jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py +3 -0
- jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py +36 -4
- jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py +9 -0
- jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py +9 -0
- jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py +12 -1
- jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py +22 -5
- jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py +57 -32
- jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py +62 -6
- jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py +8 -9
- jarvis/jarvis_code_agent/code_analyzer/context_manager.py +290 -5
- jarvis/jarvis_code_agent/code_analyzer/language_support.py +21 -0
- jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py +21 -3
- jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py +72 -4
- jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py +35 -3
- jarvis/jarvis_code_agent/code_analyzer/languages/java_language.py +212 -0
- jarvis/jarvis_code_agent/code_analyzer/languages/javascript_language.py +254 -0
- jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py +52 -2
- jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py +73 -1
- jarvis/jarvis_code_agent/code_analyzer/languages/typescript_language.py +280 -0
- jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py +306 -152
- jarvis/jarvis_code_agent/code_analyzer/structured_code.py +556 -0
- jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py +193 -18
- jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py +18 -8
- jarvis/jarvis_code_agent/lint.py +258 -27
- jarvis/jarvis_code_agent/utils.py +0 -1
- jarvis/jarvis_code_analysis/code_review.py +19 -24
- jarvis/jarvis_data/config_schema.json +53 -26
- jarvis/jarvis_git_squash/main.py +4 -5
- jarvis/jarvis_git_utils/git_commiter.py +44 -49
- jarvis/jarvis_mcp/sse_mcp_client.py +20 -27
- jarvis/jarvis_mcp/stdio_mcp_client.py +11 -12
- jarvis/jarvis_mcp/streamable_mcp_client.py +15 -14
- jarvis/jarvis_memory_organizer/memory_organizer.py +55 -74
- jarvis/jarvis_methodology/main.py +32 -48
- jarvis/jarvis_multi_agent/__init__.py +79 -61
- jarvis/jarvis_multi_agent/main.py +3 -7
- jarvis/jarvis_platform/base.py +469 -199
- jarvis/jarvis_platform/human.py +7 -8
- jarvis/jarvis_platform/kimi.py +30 -36
- jarvis/jarvis_platform/openai.py +65 -27
- jarvis/jarvis_platform/registry.py +26 -10
- jarvis/jarvis_platform/tongyi.py +24 -25
- jarvis/jarvis_platform/yuanbao.py +31 -42
- jarvis/jarvis_platform_manager/main.py +66 -77
- jarvis/jarvis_platform_manager/service.py +8 -13
- jarvis/jarvis_rag/cli.py +49 -51
- jarvis/jarvis_rag/embedding_manager.py +13 -18
- jarvis/jarvis_rag/llm_interface.py +8 -9
- jarvis/jarvis_rag/query_rewriter.py +10 -21
- jarvis/jarvis_rag/rag_pipeline.py +24 -27
- jarvis/jarvis_rag/reranker.py +4 -5
- jarvis/jarvis_rag/retriever.py +28 -30
- jarvis/jarvis_sec/__init__.py +220 -3520
- jarvis/jarvis_sec/agents.py +143 -0
- jarvis/jarvis_sec/analysis.py +276 -0
- jarvis/jarvis_sec/cli.py +29 -6
- jarvis/jarvis_sec/clustering.py +1439 -0
- jarvis/jarvis_sec/file_manager.py +427 -0
- jarvis/jarvis_sec/parsers.py +73 -0
- jarvis/jarvis_sec/prompts.py +268 -0
- jarvis/jarvis_sec/report.py +83 -4
- jarvis/jarvis_sec/review.py +453 -0
- jarvis/jarvis_sec/utils.py +499 -0
- jarvis/jarvis_sec/verification.py +848 -0
- jarvis/jarvis_sec/workflow.py +7 -0
- jarvis/jarvis_smart_shell/main.py +38 -87
- jarvis/jarvis_stats/cli.py +1 -1
- jarvis/jarvis_stats/stats.py +7 -7
- jarvis/jarvis_stats/storage.py +15 -21
- jarvis/jarvis_tools/clear_memory.py +3 -20
- jarvis/jarvis_tools/cli/main.py +20 -23
- jarvis/jarvis_tools/edit_file.py +1066 -0
- jarvis/jarvis_tools/execute_script.py +42 -21
- jarvis/jarvis_tools/file_analyzer.py +6 -9
- jarvis/jarvis_tools/generate_new_tool.py +11 -20
- jarvis/jarvis_tools/lsp_client.py +1552 -0
- jarvis/jarvis_tools/methodology.py +2 -3
- jarvis/jarvis_tools/read_code.py +1525 -87
- jarvis/jarvis_tools/read_symbols.py +2 -3
- jarvis/jarvis_tools/read_webpage.py +7 -10
- jarvis/jarvis_tools/registry.py +370 -181
- jarvis/jarvis_tools/retrieve_memory.py +20 -19
- jarvis/jarvis_tools/rewrite_file.py +105 -0
- jarvis/jarvis_tools/save_memory.py +3 -15
- jarvis/jarvis_tools/search_web.py +3 -7
- jarvis/jarvis_tools/sub_agent.py +17 -6
- jarvis/jarvis_tools/sub_code_agent.py +14 -16
- jarvis/jarvis_tools/virtual_tty.py +54 -32
- jarvis/jarvis_utils/clipboard.py +7 -10
- jarvis/jarvis_utils/config.py +98 -63
- jarvis/jarvis_utils/embedding.py +5 -5
- jarvis/jarvis_utils/fzf.py +8 -8
- jarvis/jarvis_utils/git_utils.py +81 -67
- jarvis/jarvis_utils/input.py +24 -49
- jarvis/jarvis_utils/jsonnet_compat.py +465 -0
- jarvis/jarvis_utils/methodology.py +33 -35
- jarvis/jarvis_utils/utils.py +245 -202
- {jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/METADATA +205 -70
- jarvis_ai_assistant-0.7.6.dist-info/RECORD +218 -0
- jarvis/jarvis_agent/edit_file_handler.py +0 -584
- jarvis/jarvis_agent/rewrite_file_handler.py +0 -141
- jarvis/jarvis_agent/task_planner.py +0 -496
- jarvis/jarvis_platform/ai8.py +0 -332
- jarvis/jarvis_tools/ask_user.py +0 -54
- jarvis_ai_assistant-0.7.0.dist-info/RECORD +0 -192
- {jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/licenses/LICENSE +0 -0
- {jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/top_level.txt +0 -0
jarvis/jarvis_platform/ai8.py
DELETED
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from typing import Any, Dict, Generator, List, Tuple
|
|
3
|
-
|
|
4
|
-
from jarvis.jarvis_platform.base import BasePlatform
|
|
5
|
-
import json
|
|
6
|
-
|
|
7
|
-
from jarvis.jarvis_utils import http
|
|
8
|
-
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
|
9
|
-
from jarvis.jarvis_utils.utils import while_success
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class AI8Model(BasePlatform):
|
|
13
|
-
"""AI8 model implementation"""
|
|
14
|
-
|
|
15
|
-
BASE_URL = "https://ai8.rcouyi.com"
|
|
16
|
-
|
|
17
|
-
def get_model_list(self) -> List[Tuple[str, str]]:
|
|
18
|
-
"""获取模型列表"""
|
|
19
|
-
self.get_available_models()
|
|
20
|
-
return [(name, info["desc"]) for name, info in self.models.items()]
|
|
21
|
-
|
|
22
|
-
def __init__(self):
|
|
23
|
-
"""Initialize model"""
|
|
24
|
-
super().__init__()
|
|
25
|
-
self.system_prompt = ""
|
|
26
|
-
self.conversation = {}
|
|
27
|
-
self.models = {} # 存储模型信息
|
|
28
|
-
|
|
29
|
-
self.token = os.getenv("AI8_API_KEY")
|
|
30
|
-
if not self.token:
|
|
31
|
-
PrettyOutput.print("未设置 AI8_API_KEY", OutputType.WARNING)
|
|
32
|
-
|
|
33
|
-
self.headers = {
|
|
34
|
-
"Authorization": self.token,
|
|
35
|
-
"sec-ch-ua-platform": '"Windows"',
|
|
36
|
-
"sec-ch-ua": '"Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"',
|
|
37
|
-
"sec-ch-ua-mobile": "?0",
|
|
38
|
-
"Content-Type": "application/json",
|
|
39
|
-
"Accept": "application/json, text/plain, */*",
|
|
40
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
|
|
41
|
-
"X-APP-VERSION": "2.4.2",
|
|
42
|
-
"Origin": self.BASE_URL,
|
|
43
|
-
"Referer": f"{self.BASE_URL}/chat?_userMenuKey=chat",
|
|
44
|
-
"Sec-Fetch-Site": "same-origin",
|
|
45
|
-
"Sec-Fetch-Mode": "cors",
|
|
46
|
-
"Sec-Fetch-Dest": "empty",
|
|
47
|
-
"Accept-Language": "zh-CN,zh;q=0.9",
|
|
48
|
-
"Accept-Encoding": "gzip, deflate, br, zstd",
|
|
49
|
-
"Connection": "keep-alive",
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
self.model_name = os.getenv("JARVIS_MODEL") or "deepseek-chat"
|
|
53
|
-
|
|
54
|
-
def set_model_name(self, model_name: str):
|
|
55
|
-
"""Set model name"""
|
|
56
|
-
|
|
57
|
-
self.model_name = model_name
|
|
58
|
-
|
|
59
|
-
def create_conversation(self) -> bool:
|
|
60
|
-
"""Create a new conversation"""
|
|
61
|
-
try:
|
|
62
|
-
# 1. 创建会话
|
|
63
|
-
response = while_success(
|
|
64
|
-
lambda: http.post(
|
|
65
|
-
f"{self.BASE_URL}/api/chat/session",
|
|
66
|
-
headers=self.headers,
|
|
67
|
-
json={
|
|
68
|
-
"mcp": [],
|
|
69
|
-
"model": self.model_name,
|
|
70
|
-
"plugins": [],
|
|
71
|
-
"rags": [],
|
|
72
|
-
},
|
|
73
|
-
),
|
|
74
|
-
sleep_time=5,
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
data = response.json()
|
|
78
|
-
if data["code"] != 0:
|
|
79
|
-
PrettyOutput.print(
|
|
80
|
-
f"创建会话失败: {data.get('msg', '未知错误')}", OutputType.WARNING
|
|
81
|
-
)
|
|
82
|
-
return False
|
|
83
|
-
|
|
84
|
-
self.conversation = data["data"]
|
|
85
|
-
|
|
86
|
-
# 2. 更新会话设置
|
|
87
|
-
session_data = {
|
|
88
|
-
**self.conversation,
|
|
89
|
-
"model": self.model_name,
|
|
90
|
-
"contextCount": 65536,
|
|
91
|
-
"prompt": self.system_prompt,
|
|
92
|
-
"plugins": [],
|
|
93
|
-
"localPlugins": None,
|
|
94
|
-
"useAppId": 0,
|
|
95
|
-
"temperature": 0,
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
response = while_success(
|
|
99
|
-
lambda: http.put(
|
|
100
|
-
f"{self.BASE_URL}/api/chat/session/{self.conversation['id']}", # type: ignore
|
|
101
|
-
headers=self.headers,
|
|
102
|
-
json=session_data,
|
|
103
|
-
),
|
|
104
|
-
sleep_time=5,
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
data = response.json()
|
|
108
|
-
if data["code"] == 0:
|
|
109
|
-
self.conversation = data["data"]
|
|
110
|
-
return True
|
|
111
|
-
else:
|
|
112
|
-
PrettyOutput.print(
|
|
113
|
-
f"更新会话设置失败: {data.get('msg', '未知错误')}",
|
|
114
|
-
OutputType.WARNING,
|
|
115
|
-
)
|
|
116
|
-
return False
|
|
117
|
-
|
|
118
|
-
except Exception as e:
|
|
119
|
-
PrettyOutput.print(f"创建会话失败: {str(e)}", OutputType.ERROR)
|
|
120
|
-
return False
|
|
121
|
-
|
|
122
|
-
def set_system_prompt(self, message: str):
|
|
123
|
-
"""Set system message"""
|
|
124
|
-
self.system_prompt = message
|
|
125
|
-
|
|
126
|
-
def chat(self, message: str) -> Generator[str, None, None]:
|
|
127
|
-
"""Execute conversation"""
|
|
128
|
-
try:
|
|
129
|
-
# 确保有会话ID
|
|
130
|
-
if not self.conversation:
|
|
131
|
-
if not self.create_conversation():
|
|
132
|
-
raise Exception("Failed to create conversation")
|
|
133
|
-
|
|
134
|
-
payload: Dict[str, Any] = {
|
|
135
|
-
"text": message,
|
|
136
|
-
"sessionId": self.conversation["id"] if self.conversation else None,
|
|
137
|
-
"files": [],
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
# 为流式请求构造专用的请求头,避免 'Accept' 和 'accept' 键冲突
|
|
141
|
-
stream_headers = self.headers.copy()
|
|
142
|
-
stream_headers["Accept"] = "text/event-stream" # 添加流式专用的accept头
|
|
143
|
-
|
|
144
|
-
# 使用stream_post进行流式请求
|
|
145
|
-
response_stream = while_success(
|
|
146
|
-
lambda: http.stream_post(
|
|
147
|
-
f"{self.BASE_URL}/api/chat/completions",
|
|
148
|
-
headers=stream_headers,
|
|
149
|
-
json=payload,
|
|
150
|
-
),
|
|
151
|
-
sleep_time=5,
|
|
152
|
-
)
|
|
153
|
-
|
|
154
|
-
# 处理流式响应
|
|
155
|
-
for line in response_stream:
|
|
156
|
-
if line and line.startswith("data: "):
|
|
157
|
-
try:
|
|
158
|
-
data = json.loads(line[6:])
|
|
159
|
-
if data.get("type") == "string":
|
|
160
|
-
chunk_data = data.get("data", "")
|
|
161
|
-
if chunk_data:
|
|
162
|
-
yield chunk_data
|
|
163
|
-
except json.JSONDecodeError:
|
|
164
|
-
continue
|
|
165
|
-
|
|
166
|
-
return None
|
|
167
|
-
|
|
168
|
-
except Exception as e:
|
|
169
|
-
PrettyOutput.print(f"对话异常: {str(e)}", OutputType.ERROR)
|
|
170
|
-
raise e
|
|
171
|
-
|
|
172
|
-
def name(self) -> str:
|
|
173
|
-
"""Return model name"""
|
|
174
|
-
return self.model_name
|
|
175
|
-
|
|
176
|
-
@classmethod
|
|
177
|
-
def platform_name(cls) -> str:
|
|
178
|
-
"""Return platform name"""
|
|
179
|
-
return "ai8"
|
|
180
|
-
|
|
181
|
-
def delete_chat(self) -> bool:
|
|
182
|
-
"""Delete current chat session"""
|
|
183
|
-
try:
|
|
184
|
-
if not self.conversation:
|
|
185
|
-
return True
|
|
186
|
-
|
|
187
|
-
response = while_success(
|
|
188
|
-
lambda: http.delete(
|
|
189
|
-
f"{self.BASE_URL}/api/chat/session/{self.conversation['id']}", # type: ignore
|
|
190
|
-
headers=self.headers,
|
|
191
|
-
),
|
|
192
|
-
sleep_time=5,
|
|
193
|
-
)
|
|
194
|
-
|
|
195
|
-
data = response.json()
|
|
196
|
-
if data["code"] == 0:
|
|
197
|
-
self.conversation = {}
|
|
198
|
-
return True
|
|
199
|
-
else:
|
|
200
|
-
error_msg = f"删除会话失败: {data.get('msg', '未知错误')}"
|
|
201
|
-
PrettyOutput.print(error_msg, OutputType.WARNING)
|
|
202
|
-
return False
|
|
203
|
-
|
|
204
|
-
except Exception as e:
|
|
205
|
-
PrettyOutput.print(f"删除会话失败: {str(e)}", OutputType.ERROR)
|
|
206
|
-
return False
|
|
207
|
-
|
|
208
|
-
def save(self, file_path: str) -> bool:
|
|
209
|
-
"""Save chat session to a file."""
|
|
210
|
-
if not self.conversation:
|
|
211
|
-
PrettyOutput.print("没有活动的会话可供保存", OutputType.WARNING)
|
|
212
|
-
return False
|
|
213
|
-
|
|
214
|
-
state = {
|
|
215
|
-
"conversation": self.conversation,
|
|
216
|
-
"model_name": self.model_name,
|
|
217
|
-
"system_prompt": self.system_prompt,
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
try:
|
|
221
|
-
with open(file_path, "w", encoding="utf-8") as f:
|
|
222
|
-
json.dump(state, f, ensure_ascii=False, indent=4)
|
|
223
|
-
self._saved = True
|
|
224
|
-
PrettyOutput.print(f"会话已成功保存到 {file_path}", OutputType.SUCCESS)
|
|
225
|
-
return True
|
|
226
|
-
except Exception as e:
|
|
227
|
-
PrettyOutput.print(f"保存会话失败: {str(e)}", OutputType.ERROR)
|
|
228
|
-
return False
|
|
229
|
-
|
|
230
|
-
def restore(self, file_path: str) -> bool:
|
|
231
|
-
"""Restore chat session from a file."""
|
|
232
|
-
try:
|
|
233
|
-
with open(file_path, "r", encoding="utf-8") as f:
|
|
234
|
-
state = json.load(f)
|
|
235
|
-
|
|
236
|
-
self.conversation = state["conversation"]
|
|
237
|
-
self.model_name = state["model_name"]
|
|
238
|
-
self.system_prompt = state.get("system_prompt", "")
|
|
239
|
-
|
|
240
|
-
# A restored session should not be deleted on exit, as it's persistent.
|
|
241
|
-
self._saved = True
|
|
242
|
-
|
|
243
|
-
PrettyOutput.print(f"从 {file_path} 成功恢复会话", OutputType.SUCCESS)
|
|
244
|
-
return True
|
|
245
|
-
except FileNotFoundError:
|
|
246
|
-
PrettyOutput.print(f"会话文件未找到: {file_path}", OutputType.ERROR)
|
|
247
|
-
return False
|
|
248
|
-
except KeyError as e:
|
|
249
|
-
PrettyOutput.print(
|
|
250
|
-
f"恢复失败: 会话文件格式不正确,缺少键 {e}", OutputType.ERROR
|
|
251
|
-
)
|
|
252
|
-
return False
|
|
253
|
-
except Exception as e:
|
|
254
|
-
PrettyOutput.print(f"恢复会话失败: {str(e)}", OutputType.ERROR)
|
|
255
|
-
return False
|
|
256
|
-
|
|
257
|
-
def get_available_models(self) -> List[str]:
|
|
258
|
-
"""Get available model list
|
|
259
|
-
|
|
260
|
-
Returns:
|
|
261
|
-
List[str]: Available model name list
|
|
262
|
-
"""
|
|
263
|
-
try:
|
|
264
|
-
if self.models:
|
|
265
|
-
return list(self.models.keys())
|
|
266
|
-
|
|
267
|
-
response = while_success(
|
|
268
|
-
lambda: http.get(
|
|
269
|
-
f"{self.BASE_URL}/api/chat/tmpl", headers=self.headers
|
|
270
|
-
),
|
|
271
|
-
sleep_time=5,
|
|
272
|
-
)
|
|
273
|
-
|
|
274
|
-
data = response.json()
|
|
275
|
-
if data["code"] != 0:
|
|
276
|
-
PrettyOutput.print(
|
|
277
|
-
f"获取模型列表失败: {data.get('msg', '未知错误')}",
|
|
278
|
-
OutputType.WARNING,
|
|
279
|
-
)
|
|
280
|
-
return []
|
|
281
|
-
|
|
282
|
-
# 保存模型信息
|
|
283
|
-
self.models = {model["value"]: model for model in data["data"]["models"]}
|
|
284
|
-
|
|
285
|
-
for model in self.models.values():
|
|
286
|
-
# 添加标签
|
|
287
|
-
model_str = f"{model['label']}"
|
|
288
|
-
|
|
289
|
-
# 添加特性标记
|
|
290
|
-
features = []
|
|
291
|
-
if model["attr"].get("multimodal"):
|
|
292
|
-
features.append("Multimodal")
|
|
293
|
-
if model["attr"].get("plugin"):
|
|
294
|
-
features.append("Plugin support")
|
|
295
|
-
if model["attr"].get("onlyImg"):
|
|
296
|
-
features.append("Image support")
|
|
297
|
-
if model["attr"].get("tag"):
|
|
298
|
-
features.append(model["attr"]["tag"])
|
|
299
|
-
if model["attr"].get("integral"):
|
|
300
|
-
features.append(model["attr"]["integral"])
|
|
301
|
-
# 添加备注
|
|
302
|
-
if model["attr"].get("note"):
|
|
303
|
-
model_str += f" - {model['attr']['note']}"
|
|
304
|
-
if features:
|
|
305
|
-
model_str += f" [{'|'.join(features)}]"
|
|
306
|
-
|
|
307
|
-
model["desc"] = model_str
|
|
308
|
-
|
|
309
|
-
return list(self.models.keys())
|
|
310
|
-
|
|
311
|
-
except Exception as e:
|
|
312
|
-
PrettyOutput.print(f"获取模型列表失败: {str(e)}", OutputType.ERROR)
|
|
313
|
-
return []
|
|
314
|
-
|
|
315
|
-
def support_upload_files(self) -> bool:
|
|
316
|
-
return False
|
|
317
|
-
|
|
318
|
-
def support_web(self) -> bool:
|
|
319
|
-
return False
|
|
320
|
-
|
|
321
|
-
def upload_files(self, file_list: List[str]) -> bool:
|
|
322
|
-
return False
|
|
323
|
-
|
|
324
|
-
@classmethod
|
|
325
|
-
def get_required_env_keys(cls) -> List[str]:
|
|
326
|
-
"""
|
|
327
|
-
获取AI8平台所需的环境变量键列表
|
|
328
|
-
|
|
329
|
-
返回:
|
|
330
|
-
List[str]: 环境变量键的列表
|
|
331
|
-
"""
|
|
332
|
-
return ["AI8_API_KEY"]
|
jarvis/jarvis_tools/ask_user.py
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# 导入所需的类型注解模块
|
|
3
|
-
from typing import Any, Dict
|
|
4
|
-
|
|
5
|
-
# 导入多行输入工具和输出工具
|
|
6
|
-
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# 定义AskUserTool类,用于向用户提问
|
|
10
|
-
class AskUserTool:
|
|
11
|
-
name = "ask_user"
|
|
12
|
-
description = """当完成任务所需的信息缺失或关键决策信息不足时,向用户提问。用户可以输入多行文本,以空行结束。使用场景:1. 需要用户提供更多信息以完成任务;2. 需要用户做出关键决策;3. 需要用户确认重要操作;4. 需要用户提供额外信息"""
|
|
13
|
-
# 定义参数结构,指定必须包含的问题字段
|
|
14
|
-
parameters = {
|
|
15
|
-
"type": "object",
|
|
16
|
-
"properties": {
|
|
17
|
-
"question": {"type": "string", "description": "要向用户提出的问题"}
|
|
18
|
-
},
|
|
19
|
-
"required": ["question"],
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
|
|
23
|
-
"""执行向用户提问的操作
|
|
24
|
-
|
|
25
|
-
Args:
|
|
26
|
-
args: 一个包含问题的字典
|
|
27
|
-
|
|
28
|
-
Returns:
|
|
29
|
-
Dict: 一个包含用户响应的字典
|
|
30
|
-
"""
|
|
31
|
-
try:
|
|
32
|
-
# 从参数中获取问题
|
|
33
|
-
question = args["question"]
|
|
34
|
-
|
|
35
|
-
# 获取agent对象并重置工具调用计数
|
|
36
|
-
agent = args["agent"]
|
|
37
|
-
agent.set_run_input_handlers_next_turn(True)
|
|
38
|
-
|
|
39
|
-
# 显示问题给用户
|
|
40
|
-
PrettyOutput.print(f"问题: {question}", OutputType.SYSTEM)
|
|
41
|
-
|
|
42
|
-
# 获取用户输入
|
|
43
|
-
user_response = agent.multiline_inputer("请输入您的答案 (输入空行结束)")
|
|
44
|
-
|
|
45
|
-
# 返回成功响应,包含用户输入的内容
|
|
46
|
-
return {"success": True, "stdout": user_response, "stderr": ""}
|
|
47
|
-
|
|
48
|
-
except Exception as e:
|
|
49
|
-
# 如果发生异常,返回失败响应,包含错误信息
|
|
50
|
-
return {
|
|
51
|
-
"success": False,
|
|
52
|
-
"stdout": "",
|
|
53
|
-
"stderr": f"Failed to ask user: {str(e)}",
|
|
54
|
-
}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
jarvis/__init__.py,sha256=i25VhgQauKHFtFyLmGHzXf9gg5c6vABnwim5a7JBA0I,73
|
|
2
|
-
jarvis/jarvis_agent/__init__.py,sha256=MBMYL32CqwxLIf0mbp1qNKK_yvocxZ9cCrT8gBBMnNs,58947
|
|
3
|
-
jarvis/jarvis_agent/agent_manager.py,sha256=Tke5eFugTCBCdMSUXMCikiQcGXCl-AjdmYIzap-vSfI,3621
|
|
4
|
-
jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
|
|
5
|
-
jarvis/jarvis_agent/config_editor.py,sha256=hlb9EYxKWcR_qdW2O89CgNDdciR9Isi743JU_1gD8j4,1927
|
|
6
|
-
jarvis/jarvis_agent/edit_file_handler.py,sha256=C-g-BCU3CR5zxv7wpdMDGNPWgVDirWuLgDroACHgHb4,26460
|
|
7
|
-
jarvis/jarvis_agent/event_bus.py,sha256=wNMX8oseyVd2q40-M-VBrQo2Gbfw9yVmqJw8haLSCho,1513
|
|
8
|
-
jarvis/jarvis_agent/events.py,sha256=rmFQ37PasImCh7OCdCzNBvubk-kHwcUiYLgzmL0t0_4,3689
|
|
9
|
-
jarvis/jarvis_agent/file_context_handler.py,sha256=98PmZuHi-EBJx17vjtN8azqsd7WrvCfqlfydXoQAz5I,2599
|
|
10
|
-
jarvis/jarvis_agent/file_methodology_manager.py,sha256=LnhgTx5xQXCBK8esjCkFbgFm9iEyFX7TryUlC40Kzpw,4428
|
|
11
|
-
jarvis/jarvis_agent/jarvis.py,sha256=XUOuXEY2jM5LRAfstO1LiwFtrx0tDC3cEQNroZs6j5M,50179
|
|
12
|
-
jarvis/jarvis_agent/main.py,sha256=IgS7d3rng2vFlu983OUeCkOAosKjFAn1sFCk3gT9J9Q,4563
|
|
13
|
-
jarvis/jarvis_agent/memory_manager.py,sha256=WSyUffx9xTmkcj4QrSLEfsjI3sTMUwZmkkC9_N_gTjo,8042
|
|
14
|
-
jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
|
|
15
|
-
jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
|
|
16
|
-
jarvis/jarvis_agent/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh2lC__p40,1705
|
|
17
|
-
jarvis/jarvis_agent/prompt_manager.py,sha256=_1qLBSA3yn4nT_N3X2npTpW40Cp-pMeyvnzu-pnG0iU,2720
|
|
18
|
-
jarvis/jarvis_agent/prompts.py,sha256=CvbPYx_klEz6OQrxVReZAnC2uQNo53rWkkucmh30uKg,9531
|
|
19
|
-
jarvis/jarvis_agent/protocols.py,sha256=YFJaC9MHi7JfLzmvlyotJDjiCO4Z07XJXy1gKhVdUy4,956
|
|
20
|
-
jarvis/jarvis_agent/rewrite_file_handler.py,sha256=z8go1BM40r7gc8DxmbtvEUxvRj_blBFlb-TatzQnsbo,5199
|
|
21
|
-
jarvis/jarvis_agent/run_loop.py,sha256=-GqU2gAS3nbAr6GxJfEbupz-Cv0JsE0bEJdHH1L4EVs,6507
|
|
22
|
-
jarvis/jarvis_agent/session_manager.py,sha256=5wVcaZGwJ9cEKTQglSbqyxUDJ2fI5KxYN8C8L16UWLw,3024
|
|
23
|
-
jarvis/jarvis_agent/share_manager.py,sha256=Nl7zvy5PbcYAPXUgfnvatoUB0V4sIQOt61LyYkp5-2w,9127
|
|
24
|
-
jarvis/jarvis_agent/shell_input_handler.py,sha256=wiAPjB-9uTkcLszbO5dlOUwIfaeR39RgRcZhahIGqoA,2018
|
|
25
|
-
jarvis/jarvis_agent/stdio_redirect.py,sha256=cG3z54rShhE9ATFlcVFgKXNk8ShqwSVfDCtaIVilTes,9923
|
|
26
|
-
jarvis/jarvis_agent/task_analyzer.py,sha256=OZJSdEGaXwheo5bPCYLxMuaV7K92ZrqRFymJvCusDoM,8046
|
|
27
|
-
jarvis/jarvis_agent/task_manager.py,sha256=lme_aN8vaF_a4Tvv2kaSEnWATy8RPSjogTxeLnEYZdg,6504
|
|
28
|
-
jarvis/jarvis_agent/task_planner.py,sha256=zXFTc96cQRiy3EWQb93dO6gONHssvCQLyKh4X_5oF3w,24417
|
|
29
|
-
jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
|
|
30
|
-
jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
|
|
31
|
-
jarvis/jarvis_agent/user_interaction.py,sha256=tifFN49GkO_Q80sqOTVmhxwbNWTazF3K0cr8AnnvzdU,1453
|
|
32
|
-
jarvis/jarvis_agent/utils.py,sha256=WJmKys_ceDALL73GdMCOgmjGHBzeRSPj7rmc8Pkrvzc,1784
|
|
33
|
-
jarvis/jarvis_agent/web_bridge.py,sha256=h15PXuPWWfZynWt8bPW4BDeCpIVoIOlRXfO0je6HDx4,6673
|
|
34
|
-
jarvis/jarvis_agent/web_output_sink.py,sha256=sZ6WbLZnuCdT5dS9d8msHY_g-pnj-dvML-I6uJ7-sbc,1733
|
|
35
|
-
jarvis/jarvis_agent/web_server.py,sha256=rOMP2ejCYJAqGw9aFYBlMsQmQp5JR-SVyfANKDWyJ0c,28227
|
|
36
|
-
jarvis/jarvis_c2rust/__init__.py,sha256=gtZlPXHo22Kns3InsgXmvQIBLWf2cOTLnbybGrRFjdc,1337
|
|
37
|
-
jarvis/jarvis_c2rust/cli.py,sha256=8V5x3NkZgKDQ5UpEF62_FAMludp9pz2jcRs2gv7khEY,26320
|
|
38
|
-
jarvis/jarvis_c2rust/collector.py,sha256=3W3QJhvcsRuRfsnhjp8n7XEs3tWwKyuE4_Hvv9MWlGM,8416
|
|
39
|
-
jarvis/jarvis_c2rust/library_replacer.py,sha256=COZ9CK42WRZZxv6Po_m7fSWtDgCNI6PMevRJmL0Hk7Y,46261
|
|
40
|
-
jarvis/jarvis_c2rust/llm_module_agent.py,sha256=TCpfhx0CtHOpeUOBf-coyI0DSzjjOYhuIjwr1Pa2Pmg,59386
|
|
41
|
-
jarvis/jarvis_c2rust/optimizer.py,sha256=IpdkE57zczGVaYvzT54MTZb3jQg5uRLQVZoUEi9OL4U,42348
|
|
42
|
-
jarvis/jarvis_c2rust/scanner.py,sha256=4kuRCCZYZXH1WBhS30CzSojFaj5kzX7a1m_C5J05e5U,62871
|
|
43
|
-
jarvis/jarvis_c2rust/transpiler.py,sha256=y50bgJ0zGNeD_OA6BuDnOziY0crqoXiYCrDrNcGCpx8,123633
|
|
44
|
-
jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
jarvis/jarvis_code_agent/build_validation_config.py,sha256=LEwCTDZYLo7XkJdmcYdCci__CJaiEm6O2EIDdjkiz04,4488
|
|
46
|
-
jarvis/jarvis_code_agent/code_agent.py,sha256=MfJVtzO2XoBsdy2hnjjOm500pF0O98-iuegCPhmx7d0,80609
|
|
47
|
-
jarvis/jarvis_code_agent/lint.py,sha256=1BtXWmpLlFy-yiF9w1ZTM3XAr6nxcGU9u0LU4pLvnb4,13739
|
|
48
|
-
jarvis/jarvis_code_agent/utils.py,sha256=BKL27OVxeYmSmslsxFG2yQ0BKVG8urdjj8Ojcl6mOqk,4828
|
|
49
|
-
jarvis/jarvis_code_agent/code_analyzer/__init__.py,sha256=qm7PxFCN7qZNyxrxb8AYetlYubP9QVl8fV8VkwhQYi0,1625
|
|
50
|
-
jarvis/jarvis_code_agent/code_analyzer/base_language.py,sha256=4TH9Mlgnj4X3n9uOJgJTTWHSMrJYHpojcLGzXlBen_E,2132
|
|
51
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator.py,sha256=XVBwHJgaBnwYaQ-bSXw3mts5aLW2SjgzsXu4s77GV4A,1032
|
|
52
|
-
jarvis/jarvis_code_agent/code_analyzer/context_manager.py,sha256=UjxrVkrhBfZc0k3lXYNrLWcJ6o4CaP0jOKCNSsKgroQ,14350
|
|
53
|
-
jarvis/jarvis_code_agent/code_analyzer/context_recommender.py,sha256=xAYMHI2Gb7uSDaNdBuaJMLPGwwXeW34bByj_JT06wWM,433
|
|
54
|
-
jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py,sha256=K_9-govIzeobGeoPvmgW-r4pTJAHxxnonklvl5rSpOg,5078
|
|
55
|
-
jarvis/jarvis_code_agent/code_analyzer/file_ignore.py,sha256=HU5769KTNv-gYoIi2drrMgzn6l8kfgzvs3RwEFHDOp8,9818
|
|
56
|
-
jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py,sha256=JqfneA1Z0ermmlZfYDQmTfxCbqibWbnMpwHBlHzpLTQ,29643
|
|
57
|
-
jarvis/jarvis_code_agent/code_analyzer/language_registry.py,sha256=k6Tg7l3UMEUIoUONyGQ-vMm62EBl4o200_clsXl6NEA,5597
|
|
58
|
-
jarvis/jarvis_code_agent/code_analyzer/language_support.py,sha256=Ruc_00KH8Akr9U9ho1IXCP7D0QOlaIdXFpD-mFKeo18,2627
|
|
59
|
-
jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py,sha256=rpf9hQhkeRMOouXDHcpv98cuchokmvIELY0NFNqzg4g,17357
|
|
60
|
-
jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py,sha256=--8D7m-5R-k25co0Zg_itq30lLieUOCORT4C4P35Vto,2939
|
|
61
|
-
jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py,sha256=IUxAVxAYHU4ALeBBBraXBF2WMPFaeThh95XwyImL-Z0,1779
|
|
62
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py,sha256=FJda17qW9n4ICGmrhH_CAwN68iZ4kVdo0yF9dj5__oo,1202
|
|
63
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py,sha256=BxuqQ0dIIgaj6ApfJ84CHP2R4VDEVKyatMNOP_idwUM,2766
|
|
64
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py,sha256=hF7TzRyQi1dW1_CLVmBe_ATzinIVmdvTX7pgtJvRl_o,1961
|
|
65
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py,sha256=rLFWUhieg9-RbKTTrlnA-N2Nr2xSOyHoO5yFa-QaJA4,4247
|
|
66
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py,sha256=um4UWELR8qogK2we1BxTAZ0Yg7NiJn1B25IBu260Z9c,2386
|
|
67
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py,sha256=njcyyP0MxRQxr2ln_A0PRV8KO0ieRKMsqV4ymNAirjI,961
|
|
68
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py,sha256=E1fjlcd8JACRR6J7qYgdyIRZDyA60HBpFmIWfPeG5Qw,1263
|
|
69
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py,sha256=AR48BH4j9XDL1KKZpLKncNUvydV0V_TYTD6sWZHE11E,1025
|
|
70
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py,sha256=FtJG9PeUi-VCLhKPRrnO1BDykddJMAFBCEeHmw0jDB0,1463
|
|
71
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py,sha256=kKTSTHLaMboH_kl5hv9ysE6ixPIQpkaXUMpjIMMYLuQ,3645
|
|
72
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py,sha256=rpZ-lmMph3za4MQUVEJi69FmDhPzn2xduC_rXiuF0B8,5147
|
|
73
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py,sha256=an-I-U8hXMe62UkPp9Ztiq-IfHIw1-Lpqr-_g_LgfOg,1621
|
|
74
|
-
jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py,sha256=Q2Gb6ZCfYOLAzEw4r9AF_eO7ksMBGy-629KZ_7IMLE8,6788
|
|
75
|
-
jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py,sha256=vHEqg2sSG2P2eRttTKo3kiRFR3F7hV0f7wyQamWqgCs,809
|
|
76
|
-
jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py,sha256=k_f79x6PUYpsiIIz4DjZuB37ZUrYiCD-4eQQCtwLESw,7215
|
|
77
|
-
jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py,sha256=4D-rlqsw2j4xp0NGb-k40BlgHDX4oZq79XU0m7Q6ubg,6160
|
|
78
|
-
jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py,sha256=5JSI-b0-YE7eEf3gJrNBOk5PGjiPdkOOl7olkYDxCtg,8775
|
|
79
|
-
jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py,sha256=6ZrIjx2e1fazb4trDLUQfM6M6kXWJWg90eC9LttsDws,7113
|
|
80
|
-
jarvis/jarvis_code_analysis/code_review.py,sha256=48r0UE4pmOUaRgBJIJrpPW307sKGo1rnTNkWdsqkOrY,29889
|
|
81
|
-
jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
|
|
82
|
-
jarvis/jarvis_code_analysis/checklists/c_cpp.py,sha256=9t62bMqs6qTkFSio4SKkj88qyb5ZubWrw3MxJBQ4X1A,1317
|
|
83
|
-
jarvis/jarvis_code_analysis/checklists/csharp.py,sha256=ShPXrl2_UPAnGaCHAG2wLl90COG3HK2XCSr1UK2dxN4,2420
|
|
84
|
-
jarvis/jarvis_code_analysis/checklists/data_format.py,sha256=urCb9qiJBDGev6C-PXv30NKFoQeGdbtlOl1VSPbjCSA,3005
|
|
85
|
-
jarvis/jarvis_code_analysis/checklists/devops.py,sha256=tlKD75mbFx6HHk8H8eHL_I_WTusHvWA8Zfb5P6c_1w4,3542
|
|
86
|
-
jarvis/jarvis_code_analysis/checklists/docs.py,sha256=gxhxuw-w0puen2Hgwe9MsgO_kijtCJC6THXSoz3YgiA,3341
|
|
87
|
-
jarvis/jarvis_code_analysis/checklists/go.py,sha256=NDBFA0qPrjr1HOZYy5DYU0iIcKWCaevJRLw4fbHZwwQ,1388
|
|
88
|
-
jarvis/jarvis_code_analysis/checklists/infrastructure.py,sha256=7z5MZnOUT3FpMrTQw2QcxkkTHKdMblc_Rf2NjxSI39A,3765
|
|
89
|
-
jarvis/jarvis_code_analysis/checklists/java.py,sha256=gWRVhXfsNhRFdthjIiQTkviqLwisuKCrr6gjxP0S9Z4,2085
|
|
90
|
-
jarvis/jarvis_code_analysis/checklists/javascript.py,sha256=SQkw2I09DaaLxD_WTZjuHn4leUKil68IEPB03BoSYuo,2340
|
|
91
|
-
jarvis/jarvis_code_analysis/checklists/kotlin.py,sha256=dNSHM1u3R7lxe8BU8ADtDyKJxmj3NUh9ZQuC7HHWHGY,4436
|
|
92
|
-
jarvis/jarvis_code_analysis/checklists/loader.py,sha256=bjE4On6WMLt41bfkCZsHnBpfXF61VPthFPsgNcbH90c,1903
|
|
93
|
-
jarvis/jarvis_code_analysis/checklists/php.py,sha256=qW34sF9AqLuSVuOVP5yJUHnB9V3-YRQjNPuB3lFI5UY,2481
|
|
94
|
-
jarvis/jarvis_code_analysis/checklists/python.py,sha256=gjyJ0QPY1CAwqhbDnIyLYruvFduZU5hiKyehAXMHu-I,1452
|
|
95
|
-
jarvis/jarvis_code_analysis/checklists/ruby.py,sha256=kzwd7Wl6gKrkAANq7_MvA5X5du5r1MeE-EY2Xb43n7U,4274
|
|
96
|
-
jarvis/jarvis_code_analysis/checklists/rust.py,sha256=kzt6ARBzUaC2UCviIt5ybfhJjyCkK_V9Kd4e97Dbtd4,1646
|
|
97
|
-
jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUAHPtZeciTg4aDcwvRZE,2619
|
|
98
|
-
jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
|
|
99
|
-
jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
|
|
100
|
-
jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
|
|
101
|
-
jarvis/jarvis_data/config_schema.json,sha256=EKeHC8sJje-bGyOq4-sHovE0pJlx7js9csdTFmyha64,16786
|
|
102
|
-
jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
|
|
103
|
-
jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
104
|
-
jarvis/jarvis_git_squash/main.py,sha256=BRbsEQVXwseVFKliVqV8_JPh1om6QT6dLTHw0jQ7OE0,2474
|
|
105
|
-
jarvis/jarvis_git_utils/git_commiter.py,sha256=aFVo50MwoBD7i5OtwGfPwrtpnVF2F5OPPslNP4gEg7E,17327
|
|
106
|
-
jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
|
|
107
|
-
jarvis/jarvis_mcp/sse_mcp_client.py,sha256=rBj1cIH6z6ilISOyD4zvojK6sSZ35A4z3HJlYNeVLaE,22873
|
|
108
|
-
jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=uhduVXAmEGS5reZYirx7IozoF8vuvf_yP1a1pwsa93k,11287
|
|
109
|
-
jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=BenOeZGNHdUOJT5Z3cc5MhS6aOeKQgqXm1ED-BqsLCY,15511
|
|
110
|
-
jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
111
|
-
jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=0nJniocg27t257xGXiwo-b1L5Da-ZK1-MAOmYRxAFPE,26327
|
|
112
|
-
jarvis/jarvis_methodology/main.py,sha256=uiNzk5b5O6xdvRhsOuD7ubxdd2tPcDsFFnvmes8uH8I,11370
|
|
113
|
-
jarvis/jarvis_multi_agent/__init__.py,sha256=frH5ufVMasKFz_jbVsBk2wH5nq4D0sfDcmfBWQ-DLoA,16726
|
|
114
|
-
jarvis/jarvis_multi_agent/main.py,sha256=vqLzHesgQkpScVvbgOSyi6X7XoEDQYq3dJ9gZfGiPZw,3351
|
|
115
|
-
jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
|
|
116
|
-
jarvis/jarvis_platform/ai8.py,sha256=g8JkqPGs9SEbqstNMCc5rCHO0QcPHX9LNvb7HMWwB-Q,11471
|
|
117
|
-
jarvis/jarvis_platform/base.py,sha256=bgi95DBbX4vQPaBTws2kTst3jbJM2osIjeIjCjSbdIY,15828
|
|
118
|
-
jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
|
|
119
|
-
jarvis/jarvis_platform/kimi.py,sha256=KLsf9udAsPRMbQ2JkBeiAlXkupCBwdtMaJ-hpH4Jdkc,15711
|
|
120
|
-
jarvis/jarvis_platform/openai.py,sha256=4YapmkmJmPGfrjktORcIejlB98b83Wsi_48zjBymHAc,9500
|
|
121
|
-
jarvis/jarvis_platform/registry.py,sha256=YqaFM2LXcHvqMQrTEQ_cVo8V-wQ8HhOeSdC8DdjvC00,8045
|
|
122
|
-
jarvis/jarvis_platform/tongyi.py,sha256=QQHDn-kNcb_UH-B49lVIQTlHzYd_O8CFWN7SZqy38S4,23456
|
|
123
|
-
jarvis/jarvis_platform/yuanbao.py,sha256=H-mZL1RN0qn3M46qZcV-PsJuXTHm7gTK2U9OvnT2MSE,23926
|
|
124
|
-
jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
|
-
jarvis/jarvis_platform_manager/main.py,sha256=yv7m8cNRBe4nk0Kui1w2PKTUr9Sb3wrQirvmyAUbr5U,20400
|
|
126
|
-
jarvis/jarvis_platform_manager/service.py,sha256=TcyTSWdmKRVbKiYupixnC0tOWZgsrkiskDR_CqfZXlY,14882
|
|
127
|
-
jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
|
|
128
|
-
jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
|
|
129
|
-
jarvis/jarvis_rag/cli.py,sha256=67T_I2Wzosy5qMRXETVl2DT9zfmYEMO6f03hTlMbU6Y,17573
|
|
130
|
-
jarvis/jarvis_rag/embedding_manager.py,sha256=r-S12eW5nz3GJQgbk-7eQ9JVxxZ57-wLAQx_1zSl0po,10330
|
|
131
|
-
jarvis/jarvis_rag/llm_interface.py,sha256=ntZzJtq-74d8ljqm-_flHaFys_RHjMMZRCKcMdwZt-Y,4505
|
|
132
|
-
jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMWOn-nDE,4072
|
|
133
|
-
jarvis/jarvis_rag/rag_pipeline.py,sha256=aaTuxiArtVaPemWeySApw64q204JeLNXpOEtq7Adn1I,13797
|
|
134
|
-
jarvis/jarvis_rag/reranker.py,sha256=7Azc3y5fngwfPKtzZ8tx6iGKNeqC8uDy8yo8VCyLyL4,2670
|
|
135
|
-
jarvis/jarvis_rag/retriever.py,sha256=J4jO0492yHEwxJz_Cp2WP3vGHRHKj56rDyWZQ2W0XdA,18374
|
|
136
|
-
jarvis/jarvis_sec/__init__.py,sha256=ObFm4wr2uKX3DzsiFMd0G9Zw3JxDJk2uCKr8Vp1ZtxA,150324
|
|
137
|
-
jarvis/jarvis_sec/cli.py,sha256=PNvt-Rslfy09YljxFEuM9dcR-6PjT2cABK4SXkKQrxw,3704
|
|
138
|
-
jarvis/jarvis_sec/report.py,sha256=FKVVSUJ-PcTJDBoYNgzxPRj5cHjmRmot3Kqj31M-77E,8109
|
|
139
|
-
jarvis/jarvis_sec/status.py,sha256=BtshMe7fkLMjyMmrG7Saezfd_xX1nmt0AL0axrmW1-k,8534
|
|
140
|
-
jarvis/jarvis_sec/types.py,sha256=_C3IHwnni3kApryP3c_UTYdvFdmlJSVXQLLefX94zl0,365
|
|
141
|
-
jarvis/jarvis_sec/workflow.py,sha256=cul_sh7W6PTWOyg_RiuFHGBBXnGwANooo1_l3j6C9eg,9602
|
|
142
|
-
jarvis/jarvis_sec/checkers/__init__.py,sha256=bkyIFSImBNFsH7RvwXwN6nETefRjtbS62gZRpQFH01I,706
|
|
143
|
-
jarvis/jarvis_sec/checkers/c_checker.py,sha256=-w_ij6BNGl6520mVL6nk9LtsLDQzwXSrskyc-CU_K9c,115465
|
|
144
|
-
jarvis/jarvis_sec/checkers/rust_checker.py,sha256=12sqoI5Phh_KpSjW-OwzRVfPx4MofTGUrmgPkpBdwes,40479
|
|
145
|
-
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
|
-
jarvis/jarvis_smart_shell/main.py,sha256=lUJPwLR9RlaaVv0lx3ojjjv5dELHOaindlsLDDkpssQ,14960
|
|
147
|
-
jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
|
|
148
|
-
jarvis/jarvis_stats/cli.py,sha256=OZdVqry0_7ZpITGe68TVL4c7KEaJ3Dci6ZXFRRt991Q,11487
|
|
149
|
-
jarvis/jarvis_stats/stats.py,sha256=U2wLXXTWvBYcj5WxmNypOHRHjN7PM3Dkhz7EmrbFBNY,25385
|
|
150
|
-
jarvis/jarvis_stats/storage.py,sha256=ztahlCf5ZaHizcJ3Kijmx6irTbzU_I9UEOgEwHZF84s,22084
|
|
151
|
-
jarvis/jarvis_stats/visualizer.py,sha256=0Gc1O1cANq73GKrVVXr0rgP4tUBLQ9ZT2Q6oiLUJwS0,8539
|
|
152
|
-
jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
|
-
jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
|
|
154
|
-
jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
|
|
155
|
-
jarvis/jarvis_tools/clear_memory.py,sha256=8DOq6dHLemfKTJqu227PWBIp8Iu5K7EXwINzL8DYk8M,8205
|
|
156
|
-
jarvis/jarvis_tools/execute_script.py,sha256=AQ9Krh6GuhzHzLPZ7HFpCe7UMtVtkI-ua3bTiQ2QShQ,8257
|
|
157
|
-
jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
|
|
158
|
-
jarvis/jarvis_tools/generate_new_tool.py,sha256=AK21yfefMxN9me0W2y7Y5e7JsVGIud1_8bD3ISjvuLA,8620
|
|
159
|
-
jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
|
|
160
|
-
jarvis/jarvis_tools/read_code.py,sha256=nhHdWpLgTONFZQwKKOiVgpAUlCs1n0NHi83kmHob-pw,18952
|
|
161
|
-
jarvis/jarvis_tools/read_symbols.py,sha256=bCNe_c442GZaIDogWWFbG90T4qtFno4kXwhCN2oyGJE,5765
|
|
162
|
-
jarvis/jarvis_tools/read_webpage.py,sha256=FAz0oIRYWPWUBUsJ7K-yk4sDliFk0izUGp9sV_SQ6q0,5465
|
|
163
|
-
jarvis/jarvis_tools/registry.py,sha256=FJ211s47Y4GHAPE_8NYZMczTB-W9SCaMjq1NswPQbRU,35644
|
|
164
|
-
jarvis/jarvis_tools/retrieve_memory.py,sha256=hhhGSr7jebPHICY9oEKICyI8mfqsRtKjh58qZNZApKc,8624
|
|
165
|
-
jarvis/jarvis_tools/save_memory.py,sha256=RQtNxcpU53FFv_EBjH0i0oyQ7jWubm-trD1BHuqaGjI,6985
|
|
166
|
-
jarvis/jarvis_tools/search_web.py,sha256=woxMBhkSNi8omJWJiBHQqpiFo7Xk4X5XRx-SrS1gJ-k,6402
|
|
167
|
-
jarvis/jarvis_tools/sub_agent.py,sha256=OqDY32MNPaupKcOb-KcH6uk3anlsP2OSaTT5M-3iCGU,8474
|
|
168
|
-
jarvis/jarvis_tools/sub_code_agent.py,sha256=7n2uEPqJS0D4sNhD6glRDJj8VAiWbWRel0IF1H3zD00,9490
|
|
169
|
-
jarvis/jarvis_tools/virtual_tty.py,sha256=WG3Mu46R3nvBiW-ck_PSppgVIIiy5Ft5_3YTb3AsK3U,25285
|
|
170
|
-
jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
171
|
-
jarvis/jarvis_tools/cli/main.py,sha256=0JTAj2vPc410Noj_bcJBF4AijovYQTIFBp7cO8LlRfA,9324
|
|
172
|
-
jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
|
|
173
|
-
jarvis/jarvis_utils/builtin_replace_map.py,sha256=z8iAqsbZUiGFaozxG1xSu128op8udqHOeEw-GxNt4bU,1708
|
|
174
|
-
jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
|
|
175
|
-
jarvis/jarvis_utils/config.py,sha256=oXa-vBW8WRaPNdb2A7EK3CiRGNJXrfgUZHcAx_KGSmo,24915
|
|
176
|
-
jarvis/jarvis_utils/embedding.py,sha256=x6mrkL7Bc3qgfuBDsjc4fg4nKG8ofGxVLVVydbsb8PY,2838
|
|
177
|
-
jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
|
|
178
|
-
jarvis/jarvis_utils/fzf.py,sha256=vCs0Uh5dUqGbWzXn2JCtLLCOYE2B39ZNdNveR9PK4DA,1681
|
|
179
|
-
jarvis/jarvis_utils/git_utils.py,sha256=uRJT-RHij-9HepT4g2jDv94XQyeXS3DxhQZcavl-F1A,30605
|
|
180
|
-
jarvis/jarvis_utils/globals.py,sha256=a7j4X1IBcJ8XJmxVhSOsOfXnniVf4p6JIRzRQvZ8fFk,8907
|
|
181
|
-
jarvis/jarvis_utils/http.py,sha256=KLTBqti8m9B2TPKOLAsNuxSd8mFPN0whQhuXYnRDNW0,4424
|
|
182
|
-
jarvis/jarvis_utils/input.py,sha256=OUu_-Ytbyzk3sl9_7P5039fO3K9tC29tEvHJsdJpaow,39959
|
|
183
|
-
jarvis/jarvis_utils/methodology.py,sha256=YuuKBjr58cu8QWcniU7QVlEM9Cem6wo4IYcq1iwSDMw,13158
|
|
184
|
-
jarvis/jarvis_utils/output.py,sha256=y2fVcao_2ZowFl0IxUrJZCi8T6ZM0z-iPzpk8T8eLxc,13623
|
|
185
|
-
jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
|
|
186
|
-
jarvis/jarvis_utils/utils.py,sha256=ZGnVG2CIMgP4yxY75syEsrTMzG-SAqEG3Gy-wacLDgU,82855
|
|
187
|
-
jarvis_ai_assistant-0.7.0.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
|
188
|
-
jarvis_ai_assistant-0.7.0.dist-info/METADATA,sha256=EVLNsGrQPooCBb8r-_TMK0Vdo3riwfucT9yK1S2PkNI,23057
|
|
189
|
-
jarvis_ai_assistant-0.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
190
|
-
jarvis_ai_assistant-0.7.0.dist-info/entry_points.txt,sha256=Uxk2_VeucH_m7EwH2mw0SlEYHIUmbzXkjTb15z_lcko,1552
|
|
191
|
-
jarvis_ai_assistant-0.7.0.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
|
192
|
-
jarvis_ai_assistant-0.7.0.dist-info/RECORD,,
|
|
File without changes
|
{jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{jarvis_ai_assistant-0.7.0.dist-info → jarvis_ai_assistant-0.7.6.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|