jarvis-ai-assistant 0.3.28__py3-none-any.whl → 0.3.30__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 +154 -32
- jarvis/jarvis_agent/event_bus.py +2 -2
- jarvis/jarvis_agent/events.py +157 -0
- jarvis/jarvis_agent/file_methodology_manager.py +17 -4
- jarvis/jarvis_agent/jarvis.py +3 -3
- jarvis/jarvis_agent/memory_manager.py +4 -3
- jarvis/jarvis_agent/prompts.py +2 -2
- jarvis/jarvis_agent/protocols.py +4 -1
- jarvis/jarvis_agent/run_loop.py +10 -27
- jarvis/jarvis_agent/shell_input_handler.py +6 -1
- jarvis/jarvis_agent/task_analyzer.py +18 -13
- jarvis/jarvis_agent/task_manager.py +6 -4
- jarvis/jarvis_agent/utils.py +50 -0
- jarvis/jarvis_code_agent/code_agent.py +3 -2
- jarvis/jarvis_data/config_schema.json +8 -0
- jarvis/jarvis_mcp/sse_mcp_client.py +1 -1
- jarvis/jarvis_memory_organizer/memory_organizer.py +4 -4
- jarvis/jarvis_platform/kimi.py +1 -1
- jarvis/jarvis_platform/tongyi.py +1 -1
- jarvis/jarvis_platform/yuanbao.py +1 -1
- jarvis/jarvis_rag/retriever.py +3 -3
- jarvis/jarvis_stats/stats.py +2 -2
- jarvis/jarvis_stats/storage.py +3 -3
- jarvis/jarvis_tools/edit_file.py +3 -3
- jarvis/jarvis_tools/execute_script.py +2 -2
- jarvis/jarvis_tools/generate_new_tool.py +13 -2
- jarvis/jarvis_tools/sub_agent.py +2 -2
- jarvis/jarvis_tools/sub_code_agent.py +2 -2
- jarvis/jarvis_utils/config.py +17 -3
- jarvis/jarvis_utils/fzf.py +4 -3
- jarvis/jarvis_utils/git_utils.py +20 -16
- jarvis/jarvis_utils/input.py +5 -5
- jarvis/jarvis_utils/utils.py +109 -20
- {jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/METADATA +1 -1
- {jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/RECORD +40 -38
- {jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/licenses/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/top_level.txt +0 -0
jarvis/jarvis_utils/git_utils.py
CHANGED
@@ -417,25 +417,32 @@ def check_and_update_git_repo(repo_path: str) -> bool:
|
|
417
417
|
hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix
|
418
418
|
)
|
419
419
|
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
420
|
+
# 检测 uv 可用性:优先虚拟环境内的 uv,其次 PATH 中的 uv
|
421
|
+
from shutil import which as _which
|
422
|
+
uv_executable = None
|
423
|
+
if sys.platform == "win32":
|
424
|
+
venv_uv = os.path.join(sys.prefix, "Scripts", "uv.exe")
|
425
|
+
else:
|
426
|
+
venv_uv = os.path.join(sys.prefix, "bin", "uv")
|
427
|
+
if os.path.exists(venv_uv):
|
428
|
+
uv_executable = venv_uv
|
429
|
+
else:
|
430
|
+
path_uv = _which("uv")
|
431
|
+
if path_uv:
|
432
|
+
uv_executable = path_uv
|
429
433
|
|
430
434
|
# 根据环境选择安装命令
|
431
435
|
# 检测是否安装了 RAG 特性(更精确)
|
432
436
|
rag_installed = is_rag_installed()
|
433
437
|
|
434
|
-
#
|
435
|
-
if
|
436
|
-
if
|
437
|
-
install_cmd = [
|
438
|
+
# 根据 uv 可用性与 RAG 特性选择安装命令(优先使用 uv)
|
439
|
+
if uv_executable:
|
440
|
+
if rag_installed:
|
441
|
+
install_cmd = [uv_executable, "pip", "install", "-e", ".[rag]"]
|
438
442
|
else:
|
443
|
+
install_cmd = [uv_executable, "pip", "install", "-e", "."]
|
444
|
+
else:
|
445
|
+
if rag_installed:
|
439
446
|
install_cmd = [
|
440
447
|
sys.executable,
|
441
448
|
"-m",
|
@@ -444,9 +451,6 @@ def check_and_update_git_repo(repo_path: str) -> bool:
|
|
444
451
|
"-e",
|
445
452
|
".[rag]",
|
446
453
|
]
|
447
|
-
else:
|
448
|
-
if is_uv_env:
|
449
|
-
install_cmd = ["uv", "pip", "install", "-e", "."]
|
450
454
|
else:
|
451
455
|
install_cmd = [
|
452
456
|
sys.executable,
|
jarvis/jarvis_utils/input.py
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
import os
|
12
12
|
import sys
|
13
13
|
import base64
|
14
|
-
from typing import Iterable, List
|
14
|
+
from typing import Iterable, List, Optional
|
15
15
|
import wcwidth
|
16
16
|
|
17
17
|
from colorama import Fore
|
@@ -308,7 +308,7 @@ class FileCompleter(Completer):
|
|
308
308
|
import os as _os
|
309
309
|
|
310
310
|
if self._all_files_cache is None:
|
311
|
-
files:
|
311
|
+
files: List[str] = []
|
312
312
|
for root, dirs, fnames in _os.walk(".", followlinks=False):
|
313
313
|
# Exclude .git directory
|
314
314
|
dirs[:] = [d for d in dirs if d != ".git"]
|
@@ -429,7 +429,7 @@ def _show_history_and_copy():
|
|
429
429
|
|
430
430
|
|
431
431
|
def _get_multiline_input_internal(
|
432
|
-
tip: str, preset: str
|
432
|
+
tip: str, preset: Optional[str] = None, preset_cursor: Optional[int] = None
|
433
433
|
) -> str:
|
434
434
|
"""
|
435
435
|
Internal function to get multiline input using prompt_toolkit.
|
@@ -660,8 +660,8 @@ def get_multiline_input(tip: str, print_on_empty: bool = True) -> str:
|
|
660
660
|
tip: 提示文本,将显示在底部工具栏中
|
661
661
|
print_on_empty: 当输入为空字符串时,是否打印“输入已取消”提示。默认打印。
|
662
662
|
"""
|
663
|
-
preset: str
|
664
|
-
preset_cursor: int
|
663
|
+
preset: Optional[str] = None
|
664
|
+
preset_cursor: Optional[int] = None
|
665
665
|
while True:
|
666
666
|
user_input = _get_multiline_input_internal(
|
667
667
|
tip, preset=preset, preset_cursor=preset_cursor
|
jarvis/jarvis_utils/utils.py
CHANGED
@@ -7,7 +7,7 @@ import subprocess
|
|
7
7
|
import sys
|
8
8
|
import time
|
9
9
|
from pathlib import Path
|
10
|
-
from typing import Any, Callable, Dict, List, Optional
|
10
|
+
from typing import Any, Callable, Dict, List, Optional, Tuple
|
11
11
|
from datetime import datetime, date
|
12
12
|
|
13
13
|
import yaml # type: ignore
|
@@ -97,6 +97,98 @@ def is_rag_installed() -> bool:
|
|
97
97
|
return len(get_missing_rag_modules()) == 0
|
98
98
|
|
99
99
|
|
100
|
+
def is_editable_install() -> bool:
|
101
|
+
"""
|
102
|
+
检测当前 Jarvis 是否以可编辑模式安装(pip/uv install -e .)。
|
103
|
+
|
104
|
+
判断顺序:
|
105
|
+
1. 读取 PEP 610 的 direct_url.json(dir_info.editable)
|
106
|
+
2. 兼容旧式 .egg-link 安装
|
107
|
+
3. 启发式回退:源码路径上游存在 .git 且不在 site-packages/dist-packages
|
108
|
+
"""
|
109
|
+
# 优先使用 importlib.metadata 读取 distribution 的 direct_url.json
|
110
|
+
try:
|
111
|
+
import importlib.metadata as metadata # Python 3.8+
|
112
|
+
except Exception:
|
113
|
+
metadata = None # type: ignore
|
114
|
+
|
115
|
+
def _check_direct_url() -> Optional[bool]:
|
116
|
+
if metadata is None:
|
117
|
+
return None
|
118
|
+
candidates = ["jarvis-ai-assistant", "jarvis_ai_assistant"]
|
119
|
+
for name in candidates:
|
120
|
+
try:
|
121
|
+
dist = metadata.distribution(name)
|
122
|
+
except Exception:
|
123
|
+
continue
|
124
|
+
try:
|
125
|
+
files = dist.files or []
|
126
|
+
for f in files:
|
127
|
+
try:
|
128
|
+
if f.name == "direct_url.json":
|
129
|
+
p = Path(str(dist.locate_file(f)))
|
130
|
+
if p.exists():
|
131
|
+
with open(p, "r", encoding="utf-8", errors="ignore") as fp:
|
132
|
+
info = json.load(fp)
|
133
|
+
dir_info = info.get("dir_info") or {}
|
134
|
+
if isinstance(dir_info, dict) and bool(dir_info.get("editable")):
|
135
|
+
return True
|
136
|
+
# 兼容部分工具可能写入顶层 editable 字段
|
137
|
+
if bool(info.get("editable")):
|
138
|
+
return True
|
139
|
+
return False # 找到了 direct_url.json 但未标记 editable
|
140
|
+
except Exception:
|
141
|
+
continue
|
142
|
+
except Exception:
|
143
|
+
continue
|
144
|
+
return None
|
145
|
+
|
146
|
+
res = _check_direct_url()
|
147
|
+
if res is True:
|
148
|
+
return True
|
149
|
+
if res is False:
|
150
|
+
# 明确不是可编辑安装
|
151
|
+
return False
|
152
|
+
|
153
|
+
# 兼容旧式 .egg-link 可编辑安装
|
154
|
+
try:
|
155
|
+
module_path = Path(__file__).resolve()
|
156
|
+
pkg_root = module_path.parent.parent # jarvis 包根目录
|
157
|
+
for entry in sys.path:
|
158
|
+
try:
|
159
|
+
p = Path(entry)
|
160
|
+
if not p.exists() or not p.is_dir():
|
161
|
+
continue
|
162
|
+
for egg in p.glob("*.egg-link"):
|
163
|
+
try:
|
164
|
+
text = egg.read_text(encoding="utf-8", errors="ignore")
|
165
|
+
first_line = (text.strip().splitlines() or [""])[0]
|
166
|
+
if not first_line:
|
167
|
+
continue
|
168
|
+
src_path = Path(first_line).resolve()
|
169
|
+
# 当前包根目录在 egg-link 指向的源码路径下,视为可编辑安装
|
170
|
+
if str(pkg_root).startswith(str(src_path)):
|
171
|
+
return True
|
172
|
+
except Exception:
|
173
|
+
continue
|
174
|
+
except Exception:
|
175
|
+
continue
|
176
|
+
except Exception:
|
177
|
+
pass
|
178
|
+
|
179
|
+
# 启发式回退:源码仓库路径
|
180
|
+
try:
|
181
|
+
parents = list(Path(__file__).resolve().parents)
|
182
|
+
has_git = any((d / ".git").exists() for d in parents)
|
183
|
+
in_site = any(("site-packages" in str(d)) or ("dist-packages" in str(d)) for d in parents)
|
184
|
+
if has_git and not in_site:
|
185
|
+
return True
|
186
|
+
except Exception:
|
187
|
+
pass
|
188
|
+
|
189
|
+
return False
|
190
|
+
|
191
|
+
|
100
192
|
def _setup_signal_handler() -> None:
|
101
193
|
"""设置SIGINT信号处理函数"""
|
102
194
|
original_sigint = signal.getsignal(signal.SIGINT)
|
@@ -124,7 +216,7 @@ def _check_pip_updates() -> bool:
|
|
124
216
|
from packaging import version
|
125
217
|
|
126
218
|
# 检查上次检查日期
|
127
|
-
last_check_file = Path(get_data_dir()) / "last_pip_check"
|
219
|
+
last_check_file = Path(str(get_data_dir())) / "last_pip_check"
|
128
220
|
today_str = date.today().strftime("%Y-%m-%d")
|
129
221
|
|
130
222
|
if last_check_file.exists():
|
@@ -160,17 +252,19 @@ def _check_pip_updates() -> bool:
|
|
160
252
|
hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix
|
161
253
|
)
|
162
254
|
|
163
|
-
#
|
164
|
-
|
255
|
+
# 检测是否可用 uv(优先使用虚拟环境内的uv,其次PATH中的uv)
|
256
|
+
from shutil import which as _which
|
165
257
|
uv_executable: Optional[str] = None
|
166
|
-
if
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
258
|
+
if sys.platform == "win32":
|
259
|
+
venv_uv = Path(sys.prefix) / "Scripts" / "uv.exe"
|
260
|
+
else:
|
261
|
+
venv_uv = Path(sys.prefix) / "bin" / "uv"
|
262
|
+
if venv_uv.exists():
|
263
|
+
uv_executable = str(venv_uv)
|
264
|
+
else:
|
265
|
+
path_uv = _which("uv")
|
266
|
+
if path_uv:
|
267
|
+
uv_executable = path_uv
|
174
268
|
|
175
269
|
# 检测是否安装了 RAG 特性(更精确)
|
176
270
|
from jarvis.jarvis_utils.utils import (
|
@@ -182,7 +276,7 @@ def _check_pip_updates() -> bool:
|
|
182
276
|
package_spec = (
|
183
277
|
"jarvis-ai-assistant[rag]" if rag_installed else "jarvis-ai-assistant"
|
184
278
|
)
|
185
|
-
if
|
279
|
+
if uv_executable:
|
186
280
|
cmd_list = [uv_executable, "pip", "install", "--upgrade", package_spec]
|
187
281
|
update_cmd = f"uv pip install --upgrade {package_spec}"
|
188
282
|
else:
|
@@ -867,7 +961,6 @@ def load_config():
|
|
867
961
|
_load_and_process_config(str(config_file_path.parent), str(config_file_path))
|
868
962
|
|
869
963
|
|
870
|
-
from typing import Tuple
|
871
964
|
|
872
965
|
|
873
966
|
def _load_config_file(config_file: str) -> Tuple[str, dict]:
|
@@ -1235,11 +1328,7 @@ def _collect_optional_config_interactively(
|
|
1235
1328
|
" 适用于您希望绕过检查并自行管理仓库状态的场景。"
|
1236
1329
|
)
|
1237
1330
|
|
1238
|
-
|
1239
|
-
# 查找当前模式在选项中的索引
|
1240
|
-
default_index = choices.index(current_mode)
|
1241
|
-
except ValueError:
|
1242
|
-
default_index = 0 # 默认为第一个选项
|
1331
|
+
|
1243
1332
|
|
1244
1333
|
new_mode = get_choice(
|
1245
1334
|
tip,
|
@@ -1848,7 +1937,7 @@ def daily_check_git_updates(repo_dirs: List[str], repo_type: str):
|
|
1848
1937
|
repo_dirs (List[str]): 需要检查的git仓库目录列表。
|
1849
1938
|
repo_type (str): 仓库的类型名称,例如 "工具" 或 "方法论",用于日志输出。
|
1850
1939
|
"""
|
1851
|
-
data_dir = Path(get_data_dir())
|
1940
|
+
data_dir = Path(str(get_data_dir()))
|
1852
1941
|
last_check_file = data_dir / f"{repo_type}_updates_last_check.txt"
|
1853
1942
|
should_check_for_updates = True
|
1854
1943
|
|
@@ -1,32 +1,34 @@
|
|
1
|
-
jarvis/__init__.py,sha256=
|
2
|
-
jarvis/jarvis_agent/__init__.py,sha256=
|
1
|
+
jarvis/__init__.py,sha256=UpbmB-TeVTIG-j9qC27w2Pdl9nDtcZc6sO3wyLbGRJ8,74
|
2
|
+
jarvis/jarvis_agent/__init__.py,sha256=BmIyS7P47Z9Ora2YfywMhvp1G2CYyU2WAzuOM1YgnuU,47962
|
3
3
|
jarvis/jarvis_agent/agent_manager.py,sha256=qNcMy5Xc5ZT26JfczBg4b4D5udKVHSFsCFjlpbIdmPo,3076
|
4
4
|
jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
|
5
5
|
jarvis/jarvis_agent/config.py,sha256=Ni1aTVzmdERJ89A1jsC21Tsys_9MM-TTx1w5XwxyEwA,3130
|
6
6
|
jarvis/jarvis_agent/config_editor.py,sha256=hlb9EYxKWcR_qdW2O89CgNDdciR9Isi743JU_1gD8j4,1927
|
7
7
|
jarvis/jarvis_agent/edit_file_handler.py,sha256=5sFz84jqy2gpc0aLOre2bvz8_DitlBoWZs_cQwftWLw,11570
|
8
|
-
jarvis/jarvis_agent/event_bus.py,sha256
|
9
|
-
jarvis/jarvis_agent/
|
10
|
-
jarvis/jarvis_agent/
|
8
|
+
jarvis/jarvis_agent/event_bus.py,sha256=pRdfk7d0OG18K6yNfWlCvAh_dW5p9sBtT2Yc3jGmzgo,1519
|
9
|
+
jarvis/jarvis_agent/events.py,sha256=rmFQ37PasImCh7OCdCzNBvubk-kHwcUiYLgzmL0t0_4,3689
|
10
|
+
jarvis/jarvis_agent/file_methodology_manager.py,sha256=LnhgTx5xQXCBK8esjCkFbgFm9iEyFX7TryUlC40Kzpw,4428
|
11
|
+
jarvis/jarvis_agent/jarvis.py,sha256=IW3BlErR_B6UxreTdmD9tIMy0C3xb593LOtCUdFChQs,24368
|
11
12
|
jarvis/jarvis_agent/main.py,sha256=bFcwXWC6O05jQiXy6ED_bHjdjDo5VwV_i1BoBEAzgP0,3336
|
12
|
-
jarvis/jarvis_agent/memory_manager.py,sha256=
|
13
|
+
jarvis/jarvis_agent/memory_manager.py,sha256=WSyUffx9xTmkcj4QrSLEfsjI3sTMUwZmkkC9_N_gTjo,8042
|
13
14
|
jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
|
14
15
|
jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
|
15
16
|
jarvis/jarvis_agent/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh2lC__p40,1705
|
16
17
|
jarvis/jarvis_agent/prompt_manager.py,sha256=_1qLBSA3yn4nT_N3X2npTpW40Cp-pMeyvnzu-pnG0iU,2720
|
17
|
-
jarvis/jarvis_agent/prompts.py,sha256=
|
18
|
-
jarvis/jarvis_agent/protocols.py,sha256=
|
19
|
-
jarvis/jarvis_agent/run_loop.py,sha256=
|
18
|
+
jarvis/jarvis_agent/prompts.py,sha256=CvbPYx_klEz6OQrxVReZAnC2uQNo53rWkkucmh30uKg,9531
|
19
|
+
jarvis/jarvis_agent/protocols.py,sha256=YFJaC9MHi7JfLzmvlyotJDjiCO4Z07XJXy1gKhVdUy4,956
|
20
|
+
jarvis/jarvis_agent/run_loop.py,sha256=GdOERKfQUTx5EtHMA-4ilmA__SJzXksheP44Oo6HF9c,4300
|
20
21
|
jarvis/jarvis_agent/session_manager.py,sha256=5wVcaZGwJ9cEKTQglSbqyxUDJ2fI5KxYN8C8L16UWLw,3024
|
21
22
|
jarvis/jarvis_agent/share_manager.py,sha256=MF2RlomcgPxF8nVUk28DP6IRddZ_tot5l_YRvy0qXSQ,8726
|
22
|
-
jarvis/jarvis_agent/shell_input_handler.py,sha256=
|
23
|
-
jarvis/jarvis_agent/task_analyzer.py,sha256=
|
24
|
-
jarvis/jarvis_agent/task_manager.py,sha256=
|
23
|
+
jarvis/jarvis_agent/shell_input_handler.py,sha256=wiAPjB-9uTkcLszbO5dlOUwIfaeR39RgRcZhahIGqoA,2018
|
24
|
+
jarvis/jarvis_agent/task_analyzer.py,sha256=JXc-63hnTD7oSX-nIfRcgxqCMhh4fM4QYVc7C1gp--M,7813
|
25
|
+
jarvis/jarvis_agent/task_manager.py,sha256=lme_aN8vaF_a4Tvv2kaSEnWATy8RPSjogTxeLnEYZdg,6504
|
25
26
|
jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
|
26
27
|
jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
|
27
28
|
jarvis/jarvis_agent/user_interaction.py,sha256=tifFN49GkO_Q80sqOTVmhxwbNWTazF3K0cr8AnnvzdU,1453
|
29
|
+
jarvis/jarvis_agent/utils.py,sha256=ldgfuNTNu4JU7Y1LtystBl85OC6H3A4OMycg0XBt_Cs,1615
|
28
30
|
jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
-
jarvis/jarvis_code_agent/code_agent.py,sha256=
|
31
|
+
jarvis/jarvis_code_agent/code_agent.py,sha256=0DjuaKSCz3vnS82EsjU9XB2Dc4si7Ryhbne9kL7IS14,32367
|
30
32
|
jarvis/jarvis_code_agent/lint.py,sha256=_qLJB_bC3PuoHG-j4EGOnYzNGO26jHlKLbkysfyQW1c,3954
|
31
33
|
jarvis/jarvis_code_analysis/code_review.py,sha256=Z0JsvyVPPHPm6rfo4fqaQr7CdZKIllo9jqStzV0i_-o,34470
|
32
34
|
jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
|
@@ -49,17 +51,17 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUA
|
|
49
51
|
jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
|
50
52
|
jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
|
51
53
|
jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
|
52
|
-
jarvis/jarvis_data/config_schema.json,sha256=
|
54
|
+
jarvis/jarvis_data/config_schema.json,sha256=GIzimcbNNedR3Fy_WwVdWAOgi-ODVerpWX83kYHF0NM,13068
|
53
55
|
jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
|
54
56
|
jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
57
|
jarvis/jarvis_git_squash/main.py,sha256=BRbsEQVXwseVFKliVqV8_JPh1om6QT6dLTHw0jQ7OE0,2474
|
56
58
|
jarvis/jarvis_git_utils/git_commiter.py,sha256=9JoQz6dhzYPyvLrbRBJmcLf28S8_lKFW-TmO-u-hFns,16357
|
57
59
|
jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
|
58
|
-
jarvis/jarvis_mcp/sse_mcp_client.py,sha256=
|
60
|
+
jarvis/jarvis_mcp/sse_mcp_client.py,sha256=okbuSxmY2HrDoqcuvZv2UWDmDCrB5fb-FAeduYNBpdg,22831
|
59
61
|
jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=sdVwHgBoXa95WeUTmFIq9ys3eRgEB5Psalfqq5FzMMI,11277
|
60
62
|
jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=BenOeZGNHdUOJT5Z3cc5MhS6aOeKQgqXm1ED-BqsLCY,15511
|
61
63
|
jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
-
jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=
|
64
|
+
jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=CMFL46vvtpcTI6oS3CAlYteR6xAlwCkvVJmMT22uDRw,26295
|
63
65
|
jarvis/jarvis_methodology/main.py,sha256=uiNzk5b5O6xdvRhsOuD7ubxdd2tPcDsFFnvmes8uH8I,11370
|
64
66
|
jarvis/jarvis_multi_agent/__init__.py,sha256=OD3ZyuxPNPHaqjQqiKiW0HuB0DI_sdv41wFlCISHWIQ,6084
|
65
67
|
jarvis/jarvis_multi_agent/main.py,sha256=b9IThFMeUZCYSlgT-VT8r7xeBdrEE_zNT11awEc8IdY,1853
|
@@ -67,11 +69,11 @@ jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB
|
|
67
69
|
jarvis/jarvis_platform/ai8.py,sha256=g8JkqPGs9SEbqstNMCc5rCHO0QcPHX9LNvb7HMWwB-Q,11471
|
68
70
|
jarvis/jarvis_platform/base.py,sha256=u1XvfE83-S-3W_euMrMaaa8NdXeIHlo7VSxLBbN3K-Y,13504
|
69
71
|
jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
|
70
|
-
jarvis/jarvis_platform/kimi.py,sha256=
|
72
|
+
jarvis/jarvis_platform/kimi.py,sha256=KLsf9udAsPRMbQ2JkBeiAlXkupCBwdtMaJ-hpH4Jdkc,15711
|
71
73
|
jarvis/jarvis_platform/openai.py,sha256=0YSeDGHRSPQP2haEzFARx_aZH_d_UZ-HSCsJLh2hW5k,8037
|
72
74
|
jarvis/jarvis_platform/registry.py,sha256=YqaFM2LXcHvqMQrTEQ_cVo8V-wQ8HhOeSdC8DdjvC00,8045
|
73
|
-
jarvis/jarvis_platform/tongyi.py,sha256=
|
74
|
-
jarvis/jarvis_platform/yuanbao.py,sha256=
|
75
|
+
jarvis/jarvis_platform/tongyi.py,sha256=QQHDn-kNcb_UH-B49lVIQTlHzYd_O8CFWN7SZqy38S4,23456
|
76
|
+
jarvis/jarvis_platform/yuanbao.py,sha256=jlttNWq-Bq9JLxaI6MOsxKZaNEXF1EfVVB7mjtVcYMA,23954
|
75
77
|
jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
78
|
jarvis/jarvis_platform_manager/main.py,sha256=yv7m8cNRBe4nk0Kui1w2PKTUr9Sb3wrQirvmyAUbr5U,20400
|
77
79
|
jarvis/jarvis_platform_manager/service.py,sha256=kFIsFTwaMZ1ooQNFAwvUXjB7G2enbAqHExCdO3jskzQ,14892
|
@@ -83,22 +85,22 @@ jarvis/jarvis_rag/llm_interface.py,sha256=ntZzJtq-74d8ljqm-_flHaFys_RHjMMZRCKcMd
|
|
83
85
|
jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMWOn-nDE,4072
|
84
86
|
jarvis/jarvis_rag/rag_pipeline.py,sha256=aaTuxiArtVaPemWeySApw64q204JeLNXpOEtq7Adn1I,13797
|
85
87
|
jarvis/jarvis_rag/reranker.py,sha256=7Azc3y5fngwfPKtzZ8tx6iGKNeqC8uDy8yo8VCyLyL4,2670
|
86
|
-
jarvis/jarvis_rag/retriever.py,sha256=
|
88
|
+
jarvis/jarvis_rag/retriever.py,sha256=J4jO0492yHEwxJz_Cp2WP3vGHRHKj56rDyWZQ2W0XdA,18374
|
87
89
|
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
90
|
jarvis/jarvis_smart_shell/main.py,sha256=lUJPwLR9RlaaVv0lx3ojjjv5dELHOaindlsLDDkpssQ,14960
|
89
91
|
jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
|
90
92
|
jarvis/jarvis_stats/cli.py,sha256=TsX4JQmEKjkFLkO_e81w7_6mXMin-7Mv_It_dols0q8,11477
|
91
|
-
jarvis/jarvis_stats/stats.py,sha256=
|
92
|
-
jarvis/jarvis_stats/storage.py,sha256=
|
93
|
+
jarvis/jarvis_stats/stats.py,sha256=_z7ZEZHGy8aLbcDJ0qTGrrl9M6bOix_-hveN2Af5GiI,25375
|
94
|
+
jarvis/jarvis_stats/storage.py,sha256=ztahlCf5ZaHizcJ3Kijmx6irTbzU_I9UEOgEwHZF84s,22084
|
93
95
|
jarvis/jarvis_stats/visualizer.py,sha256=ZIBmGELzs6c7qM01tQql1HF6eFKn6HDGVQfKXRUUIY0,8529
|
94
96
|
jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
95
97
|
jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
|
96
98
|
jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
|
97
99
|
jarvis/jarvis_tools/clear_memory.py,sha256=8DOq6dHLemfKTJqu227PWBIp8Iu5K7EXwINzL8DYk8M,8205
|
98
|
-
jarvis/jarvis_tools/edit_file.py,sha256=
|
99
|
-
jarvis/jarvis_tools/execute_script.py,sha256=
|
100
|
+
jarvis/jarvis_tools/edit_file.py,sha256=a6iyeH2MroejGCoaNDkXwGbSfqFikKbh6tG6Woljvi8,7105
|
101
|
+
jarvis/jarvis_tools/execute_script.py,sha256=oDOMn8GcV6qKP4d0RFT6xbHGTazRmaOlp-h_e_Wj80c,6227
|
100
102
|
jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
|
101
|
-
jarvis/jarvis_tools/generate_new_tool.py,sha256=
|
103
|
+
jarvis/jarvis_tools/generate_new_tool.py,sha256=tJz0YtfDwyH9y00VEWw3Btqr9JCNhvtI8BN9i5hYk_M,8560
|
102
104
|
jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
|
103
105
|
jarvis/jarvis_tools/read_code.py,sha256=qeQZ_emyPI5RTFx4HSgLBtWSwh8V5chqMjxu2uKzmfY,6100
|
104
106
|
jarvis/jarvis_tools/read_webpage.py,sha256=YTmoalY8y-jdQuoj9IL6ZjXPOevUj2P_9arJngPhbUY,5317
|
@@ -107,29 +109,29 @@ jarvis/jarvis_tools/retrieve_memory.py,sha256=hhhGSr7jebPHICY9oEKICyI8mfqsRtKjh5
|
|
107
109
|
jarvis/jarvis_tools/rewrite_file.py,sha256=CuvjWPTbUaPbex9FKSmw_Ru4r6R-CX_3vqTqCTp8nHA,6959
|
108
110
|
jarvis/jarvis_tools/save_memory.py,sha256=RQtNxcpU53FFv_EBjH0i0oyQ7jWubm-trD1BHuqaGjI,6985
|
109
111
|
jarvis/jarvis_tools/search_web.py,sha256=nkbmyIquGLl2JkgWP6pQ9dPcLlfQCuegwt_RKE0YWU0,6158
|
110
|
-
jarvis/jarvis_tools/sub_agent.py,sha256=
|
111
|
-
jarvis/jarvis_tools/sub_code_agent.py,sha256=
|
112
|
+
jarvis/jarvis_tools/sub_agent.py,sha256=kjMZBXQE3OUgm5eO9lNkOuBnugWQGZbCpVP0HNW5W2s,8905
|
113
|
+
jarvis/jarvis_tools/sub_code_agent.py,sha256=vVPcGKfgyhbZzl8vp2HHbgR1oQzC0TlS0G3THoZgU5Q,9453
|
112
114
|
jarvis/jarvis_tools/virtual_tty.py,sha256=L7-J00ARQvIa25T45Hhqg2eCBl6W2LFgqDlWMWf-7dk,25275
|
113
115
|
jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
114
116
|
jarvis/jarvis_tools/cli/main.py,sha256=WL2GNV7WqYl7G1-btRGvCkzDCMk4fPfNvzCrnUFVPxs,9323
|
115
117
|
jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
|
116
118
|
jarvis/jarvis_utils/builtin_replace_map.py,sha256=z8iAqsbZUiGFaozxG1xSu128op8udqHOeEw-GxNt4bU,1708
|
117
119
|
jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
|
118
|
-
jarvis/jarvis_utils/config.py,sha256=
|
120
|
+
jarvis/jarvis_utils/config.py,sha256=YpIwuRxLhChe0XYoh7nVK0peEILo1NCBvAnxzouHRag,20407
|
119
121
|
jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
|
120
122
|
jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
|
121
|
-
jarvis/jarvis_utils/fzf.py,sha256=
|
122
|
-
jarvis/jarvis_utils/git_utils.py,sha256=
|
123
|
+
jarvis/jarvis_utils/fzf.py,sha256=vCs0Uh5dUqGbWzXn2JCtLLCOYE2B39ZNdNveR9PK4DA,1681
|
124
|
+
jarvis/jarvis_utils/git_utils.py,sha256=vclHYC2LzyyyHQCMaYENGUwfr7NoajpG8aJ_qr3LgJo,23731
|
123
125
|
jarvis/jarvis_utils/globals.py,sha256=7Xvf9HY6jYJL4vSD1F1WCoxHkHCAyltJUYt4V9gGVU4,8865
|
124
126
|
jarvis/jarvis_utils/http.py,sha256=eRhV3-GYuWmQ0ogq9di9WMlQkFcVb1zGCrySnOgT1x0,4392
|
125
|
-
jarvis/jarvis_utils/input.py,sha256=
|
127
|
+
jarvis/jarvis_utils/input.py,sha256=EBdjPopkxVpG4JsnP9gtTSJ10u_scagujyKyOMhatLQ,36524
|
126
128
|
jarvis/jarvis_utils/methodology.py,sha256=z_renvRGgHiC-XTQPuN6rvrJ_ffHlwxK_b1BU_jmNAQ,12800
|
127
129
|
jarvis/jarvis_utils/output.py,sha256=y2fVcao_2ZowFl0IxUrJZCi8T6ZM0z-iPzpk8T8eLxc,13623
|
128
130
|
jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
|
129
|
-
jarvis/jarvis_utils/utils.py,sha256=
|
130
|
-
jarvis_ai_assistant-0.3.
|
131
|
-
jarvis_ai_assistant-0.3.
|
132
|
-
jarvis_ai_assistant-0.3.
|
133
|
-
jarvis_ai_assistant-0.3.
|
134
|
-
jarvis_ai_assistant-0.3.
|
135
|
-
jarvis_ai_assistant-0.3.
|
131
|
+
jarvis/jarvis_utils/utils.py,sha256=U3B_uz0-iZa4412krx37AsB6PXBJAvVyxOSlsLjPbRM,70590
|
132
|
+
jarvis_ai_assistant-0.3.30.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
133
|
+
jarvis_ai_assistant-0.3.30.dist-info/METADATA,sha256=VnXgGix74c52WCbc-y1dLDDxayj4RK2zCZBVokpw4PQ,18752
|
134
|
+
jarvis_ai_assistant-0.3.30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
135
|
+
jarvis_ai_assistant-0.3.30.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
|
136
|
+
jarvis_ai_assistant-0.3.30.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
137
|
+
jarvis_ai_assistant-0.3.30.dist-info/RECORD,,
|
File without changes
|
{jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/entry_points.txt
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.28.dist-info → jarvis_ai_assistant-0.3.30.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
File without changes
|