jarvis-ai-assistant 0.5.0__py3-none-any.whl → 0.6.0__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 +114 -6
- jarvis/jarvis_agent/agent_manager.py +3 -0
- jarvis/jarvis_agent/jarvis.py +45 -9
- jarvis/jarvis_agent/run_loop.py +6 -1
- jarvis/jarvis_agent/task_planner.py +219 -0
- jarvis/jarvis_c2rust/__init__.py +13 -0
- jarvis/jarvis_c2rust/cli.py +405 -0
- jarvis/jarvis_c2rust/collector.py +209 -0
- jarvis/jarvis_c2rust/library_replacer.py +933 -0
- jarvis/jarvis_c2rust/llm_module_agent.py +1265 -0
- jarvis/jarvis_c2rust/scanner.py +1671 -0
- jarvis/jarvis_c2rust/transpiler.py +1236 -0
- jarvis/jarvis_code_agent/code_agent.py +151 -18
- jarvis/jarvis_data/config_schema.json +13 -3
- jarvis/jarvis_sec/README.md +180 -0
- jarvis/jarvis_sec/__init__.py +674 -0
- jarvis/jarvis_sec/checkers/__init__.py +33 -0
- jarvis/jarvis_sec/checkers/c_checker.py +1269 -0
- jarvis/jarvis_sec/checkers/rust_checker.py +367 -0
- jarvis/jarvis_sec/cli.py +110 -0
- jarvis/jarvis_sec/prompts.py +324 -0
- jarvis/jarvis_sec/report.py +260 -0
- jarvis/jarvis_sec/types.py +20 -0
- jarvis/jarvis_sec/workflow.py +513 -0
- jarvis/jarvis_tools/cli/main.py +1 -0
- jarvis/jarvis_tools/execute_script.py +1 -1
- jarvis/jarvis_tools/read_code.py +11 -1
- jarvis/jarvis_tools/read_symbols.py +129 -0
- jarvis/jarvis_tools/registry.py +9 -1
- jarvis/jarvis_tools/sub_agent.py +4 -3
- jarvis/jarvis_tools/sub_code_agent.py +3 -3
- jarvis/jarvis_utils/config.py +28 -6
- jarvis/jarvis_utils/git_utils.py +39 -0
- jarvis/jarvis_utils/utils.py +150 -7
- {jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/METADATA +13 -1
- {jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/RECORD +41 -22
- {jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/entry_points.txt +4 -0
- {jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/licenses/LICENSE +0 -0
- {jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/top_level.txt +0 -0
jarvis/jarvis_tools/registry.py
CHANGED
|
@@ -175,7 +175,15 @@ class ToolRegistry(OutputHandlerProtocol):
|
|
|
175
175
|
try:
|
|
176
176
|
tool_call, err_msg, auto_completed = self._extract_tool_calls(response)
|
|
177
177
|
if err_msg:
|
|
178
|
-
|
|
178
|
+
# 只要工具解析错误,追加工具使用帮助信息(相当于一次 <ToolUsage>)
|
|
179
|
+
try:
|
|
180
|
+
from jarvis.jarvis_agent import Agent
|
|
181
|
+
agent: Agent = agent_
|
|
182
|
+
tool_usage = agent.get_tool_usage_prompt()
|
|
183
|
+
return False, f"{err_msg}\n\n{tool_usage}"
|
|
184
|
+
except Exception:
|
|
185
|
+
# 兼容处理:无法获取Agent或ToolUsage时,至少返回工具系统帮助信息
|
|
186
|
+
return False, f"{err_msg}\n\n{tool_call_help}"
|
|
179
187
|
result = self.handle_tool_calls(tool_call, agent_)
|
|
180
188
|
if auto_completed:
|
|
181
189
|
# 如果自动补全了结束标签,在结果中添加说明信息
|
jarvis/jarvis_tools/sub_agent.py
CHANGED
|
@@ -4,7 +4,9 @@ sub_agent 工具
|
|
|
4
4
|
将子任务交给通用 Agent 执行,并返回执行结果。
|
|
5
5
|
|
|
6
6
|
约定:
|
|
7
|
-
- 必填参数:task, name,
|
|
7
|
+
- 必填参数:task, name, system_prompt, summary_prompt
|
|
8
|
+
- 可选参数:background
|
|
9
|
+
- 工具集:默认使用系统工具集(无需传入 use_tools)
|
|
8
10
|
- 继承父 Agent 的部分配置:model_group、input_handler、execute_tool_confirm、multiline_inputer、non_interactive、use_methodology、use_analysis;其他参数需显式提供
|
|
9
11
|
- 子Agent必须自动完成(auto_complete=True)且需要summary(need_summary=True)
|
|
10
12
|
"""
|
|
@@ -41,7 +43,7 @@ class SubAgentTool:
|
|
|
41
43
|
},
|
|
42
44
|
"background": {
|
|
43
45
|
"type": "string",
|
|
44
|
-
"description": "
|
|
46
|
+
"description": "任务背景与已知信息(可选,将与任务一并提供给子Agent)",
|
|
45
47
|
},
|
|
46
48
|
"system_prompt": {
|
|
47
49
|
"type": "string",
|
|
@@ -59,7 +61,6 @@ class SubAgentTool:
|
|
|
59
61
|
"required": [
|
|
60
62
|
"task",
|
|
61
63
|
"name",
|
|
62
|
-
"background",
|
|
63
64
|
"system_prompt",
|
|
64
65
|
"summary_prompt",
|
|
65
66
|
],
|
|
@@ -4,7 +4,8 @@ sub_code_agent 工具
|
|
|
4
4
|
将子任务交给 CodeAgent 执行,并返回执行结果。
|
|
5
5
|
|
|
6
6
|
约定:
|
|
7
|
-
-
|
|
7
|
+
- 必填参数:task
|
|
8
|
+
- 可选参数:background
|
|
8
9
|
- 不依赖父 Agent,所有配置使用系统默认与全局变量
|
|
9
10
|
- 子Agent必须自动完成(auto_complete=True)且需要summary(need_summary=True)
|
|
10
11
|
"""
|
|
@@ -196,7 +197,6 @@ class SubCodeAgentTool:
|
|
|
196
197
|
|
|
197
198
|
# 执行子任务(无提交信息前后缀)
|
|
198
199
|
ret = code_agent.run(enhanced_task, prefix="", suffix="")
|
|
199
|
-
stdout = ret if isinstance(ret, str) and ret else "任务执行完成"
|
|
200
200
|
|
|
201
201
|
# 主动清理内部 Agent,避免污染父Agent的全局状态
|
|
202
202
|
try:
|
|
@@ -207,7 +207,7 @@ class SubCodeAgentTool:
|
|
|
207
207
|
|
|
208
208
|
return {
|
|
209
209
|
"success": True,
|
|
210
|
-
"stdout":
|
|
210
|
+
"stdout": ret,
|
|
211
211
|
"stderr": "",
|
|
212
212
|
}
|
|
213
213
|
except Exception as e:
|
jarvis/jarvis_utils/config.py
CHANGED
|
@@ -700,6 +700,28 @@ def get_tool_filter_threshold() -> int:
|
|
|
700
700
|
"""
|
|
701
701
|
return int(GLOBAL_CONFIG_DATA.get("JARVIS_TOOL_FILTER_THRESHOLD", 30))
|
|
702
702
|
|
|
703
|
+
def get_plan_max_depth() -> int:
|
|
704
|
+
"""
|
|
705
|
+
获取任务规划的最大层数。
|
|
706
|
+
|
|
707
|
+
返回:
|
|
708
|
+
int: 最大规划层数,默认为2(可通过 GLOBAL_CONFIG_DATA['JARVIS_PLAN_MAX_DEPTH'] 配置)
|
|
709
|
+
"""
|
|
710
|
+
try:
|
|
711
|
+
return int(GLOBAL_CONFIG_DATA.get("JARVIS_PLAN_MAX_DEPTH", 2))
|
|
712
|
+
except Exception:
|
|
713
|
+
return 2
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
def is_plan_enabled() -> bool:
|
|
717
|
+
"""
|
|
718
|
+
获取是否默认启用任务规划。
|
|
719
|
+
|
|
720
|
+
返回:
|
|
721
|
+
bool: 如果启用任务规划则返回True,默认为False
|
|
722
|
+
"""
|
|
723
|
+
return GLOBAL_CONFIG_DATA.get("JARVIS_PLAN_ENABLED", False) is True
|
|
724
|
+
|
|
703
725
|
|
|
704
726
|
def get_auto_summary_rounds() -> int:
|
|
705
727
|
"""
|
|
@@ -709,9 +731,9 @@ def get_auto_summary_rounds() -> int:
|
|
|
709
731
|
int: 轮次阈值,默认20
|
|
710
732
|
"""
|
|
711
733
|
try:
|
|
712
|
-
return int(GLOBAL_CONFIG_DATA.get("JARVIS_AUTO_SUMMARY_ROUNDS",
|
|
734
|
+
return int(GLOBAL_CONFIG_DATA.get("JARVIS_AUTO_SUMMARY_ROUNDS", 50))
|
|
713
735
|
except Exception:
|
|
714
|
-
return
|
|
736
|
+
return 50
|
|
715
737
|
|
|
716
738
|
|
|
717
739
|
|
|
@@ -730,18 +752,18 @@ def get_script_execution_timeout() -> int:
|
|
|
730
752
|
def is_enable_git_repo_jca_switch() -> bool:
|
|
731
753
|
"""
|
|
732
754
|
是否启用:在初始化环境前检测Git仓库并提示可切换到代码开发模式(jca)
|
|
733
|
-
|
|
755
|
+
默认开启
|
|
734
756
|
"""
|
|
735
|
-
return GLOBAL_CONFIG_DATA.get("JARVIS_ENABLE_GIT_JCA_SWITCH",
|
|
757
|
+
return GLOBAL_CONFIG_DATA.get("JARVIS_ENABLE_GIT_JCA_SWITCH", True) is True
|
|
736
758
|
|
|
737
759
|
|
|
738
760
|
def is_enable_builtin_config_selector() -> bool:
|
|
739
761
|
"""
|
|
740
762
|
是否启用:在进入默认通用代理前,列出可用配置(agent/multi_agent/roles)供选择
|
|
741
|
-
|
|
763
|
+
默认开启
|
|
742
764
|
"""
|
|
743
765
|
return (
|
|
744
|
-
GLOBAL_CONFIG_DATA.get("JARVIS_ENABLE_STARTUP_CONFIG_SELECTOR",
|
|
766
|
+
GLOBAL_CONFIG_DATA.get("JARVIS_ENABLE_STARTUP_CONFIG_SELECTOR", True) is True
|
|
745
767
|
)
|
|
746
768
|
|
|
747
769
|
|
jarvis/jarvis_utils/git_utils.py
CHANGED
|
@@ -719,6 +719,45 @@ def confirm_add_new_files() -> None:
|
|
|
719
719
|
"是否要添加这些变更(如果不需要请修改.gitignore文件以忽略不需要的文件)?",
|
|
720
720
|
False,
|
|
721
721
|
):
|
|
722
|
+
# 用户选择 N:自动将未跟踪文件列表添加到仓库根目录的 .gitignore
|
|
723
|
+
try:
|
|
724
|
+
repo_root_result = subprocess.run(
|
|
725
|
+
["git", "rev-parse", "--show-toplevel"],
|
|
726
|
+
capture_output=True,
|
|
727
|
+
text=True,
|
|
728
|
+
check=True,
|
|
729
|
+
)
|
|
730
|
+
repo_root = repo_root_result.stdout.strip() or "."
|
|
731
|
+
except Exception:
|
|
732
|
+
repo_root = "."
|
|
733
|
+
gitignore_path = os.path.join(repo_root, ".gitignore")
|
|
734
|
+
|
|
735
|
+
# 仅对未跟踪的新文件进行忽略(已跟踪文件无法通过 .gitignore 忽略)
|
|
736
|
+
files_to_ignore = sorted(set(new_files))
|
|
737
|
+
|
|
738
|
+
# 读取已存在的 .gitignore 以避免重复添加
|
|
739
|
+
existing_lines: Set[str] = set()
|
|
740
|
+
try:
|
|
741
|
+
if os.path.exists(gitignore_path):
|
|
742
|
+
with open(gitignore_path, "r", encoding="utf-8") as f:
|
|
743
|
+
existing_lines = set(line.strip() for line in f if line.strip())
|
|
744
|
+
except Exception:
|
|
745
|
+
existing_lines = set()
|
|
746
|
+
|
|
747
|
+
# 追加未存在的文件路径到 .gitignore(使用相对于仓库根目录的路径)
|
|
748
|
+
try:
|
|
749
|
+
with open(gitignore_path, "a", encoding="utf-8") as f:
|
|
750
|
+
for file in files_to_ignore:
|
|
751
|
+
abs_path = os.path.abspath(file)
|
|
752
|
+
rel_path = os.path.relpath(abs_path, repo_root)
|
|
753
|
+
# 避免无效的相对路径(不应出现 .. 前缀),有则回退用原始值
|
|
754
|
+
entry = rel_path if not rel_path.startswith("..") else file
|
|
755
|
+
if entry not in existing_lines:
|
|
756
|
+
f.write(entry + "\n")
|
|
757
|
+
PrettyOutput.print("已将未跟踪文件添加到 .gitignore,正在重新检测...", OutputType.INFO)
|
|
758
|
+
except Exception as e:
|
|
759
|
+
PrettyOutput.print(f"更新 .gitignore 失败: {str(e)}", OutputType.WARNING)
|
|
760
|
+
|
|
722
761
|
continue
|
|
723
762
|
|
|
724
763
|
break
|
jarvis/jarvis_utils/utils.py
CHANGED
|
@@ -6,6 +6,8 @@ import signal
|
|
|
6
6
|
import subprocess
|
|
7
7
|
import sys
|
|
8
8
|
import time
|
|
9
|
+
import atexit
|
|
10
|
+
import errno
|
|
9
11
|
from pathlib import Path
|
|
10
12
|
from typing import Any, Callable, Dict, List, Optional, Tuple
|
|
11
13
|
from datetime import datetime, date
|
|
@@ -205,6 +207,130 @@ def _setup_signal_handler() -> None:
|
|
|
205
207
|
signal.signal(signal.SIGINT, sigint_handler)
|
|
206
208
|
|
|
207
209
|
|
|
210
|
+
# ----------------------------
|
|
211
|
+
# 单实例文件锁(放置于初始化早期使用)
|
|
212
|
+
# ----------------------------
|
|
213
|
+
_INSTANCE_LOCK_PATH: Optional[Path] = None
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def _get_instance_lock_path(lock_name: str = "instance.lock") -> Path:
|
|
217
|
+
try:
|
|
218
|
+
data_dir = Path(str(get_data_dir()))
|
|
219
|
+
except Exception:
|
|
220
|
+
data_dir = Path(os.path.expanduser("~/.jarvis"))
|
|
221
|
+
data_dir.mkdir(parents=True, exist_ok=True)
|
|
222
|
+
return data_dir / lock_name
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def _read_lock_owner_pid(lock_path: Path) -> Optional[int]:
|
|
226
|
+
try:
|
|
227
|
+
txt = lock_path.read_text(encoding="utf-8", errors="ignore").strip()
|
|
228
|
+
if not txt:
|
|
229
|
+
return None
|
|
230
|
+
try:
|
|
231
|
+
info = json.loads(txt)
|
|
232
|
+
pid = info.get("pid")
|
|
233
|
+
return int(pid) if pid is not None else None
|
|
234
|
+
except Exception:
|
|
235
|
+
# 兼容纯数字PID
|
|
236
|
+
return int(txt)
|
|
237
|
+
except Exception:
|
|
238
|
+
return None
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
def _is_process_alive(pid: int) -> bool:
|
|
242
|
+
if pid is None or pid <= 0:
|
|
243
|
+
return False
|
|
244
|
+
try:
|
|
245
|
+
os.kill(pid, 0)
|
|
246
|
+
except ProcessLookupError:
|
|
247
|
+
return False
|
|
248
|
+
except PermissionError:
|
|
249
|
+
# 无权限但进程存在
|
|
250
|
+
return True
|
|
251
|
+
except OSError as e:
|
|
252
|
+
# 某些平台上,EPERM 表示进程存在但无权限
|
|
253
|
+
if getattr(e, "errno", None) == errno.EPERM:
|
|
254
|
+
return True
|
|
255
|
+
return False
|
|
256
|
+
else:
|
|
257
|
+
return True
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
def _release_instance_lock() -> None:
|
|
261
|
+
global _INSTANCE_LOCK_PATH
|
|
262
|
+
try:
|
|
263
|
+
if _INSTANCE_LOCK_PATH and _INSTANCE_LOCK_PATH.exists():
|
|
264
|
+
_INSTANCE_LOCK_PATH.unlink()
|
|
265
|
+
except Exception:
|
|
266
|
+
# 清理失败不影响退出
|
|
267
|
+
pass
|
|
268
|
+
_INSTANCE_LOCK_PATH = None
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
def _acquire_single_instance_lock(lock_name: str = "instance.lock") -> None:
|
|
272
|
+
"""
|
|
273
|
+
在数据目录(~/.jarvis 或配置的数据目录)下创建实例锁,防止重复启动。
|
|
274
|
+
如果检测到已有存活实例,提示后退出。
|
|
275
|
+
"""
|
|
276
|
+
global _INSTANCE_LOCK_PATH
|
|
277
|
+
lock_path = _get_instance_lock_path(lock_name)
|
|
278
|
+
|
|
279
|
+
# 已存在锁:检查是否为有效存活实例
|
|
280
|
+
if lock_path.exists():
|
|
281
|
+
pid = _read_lock_owner_pid(lock_path)
|
|
282
|
+
if pid and _is_process_alive(pid):
|
|
283
|
+
PrettyOutput.print(
|
|
284
|
+
f"检测到已有一个 Jarvis 实例正在运行 (PID: {pid})。\n"
|
|
285
|
+
f"如果确认不存在正在运行的实例,请删除锁文件后重试:{lock_path}",
|
|
286
|
+
OutputType.WARNING,
|
|
287
|
+
)
|
|
288
|
+
sys.exit(0)
|
|
289
|
+
# 尝试移除陈旧锁
|
|
290
|
+
try:
|
|
291
|
+
lock_path.unlink()
|
|
292
|
+
except Exception:
|
|
293
|
+
PrettyOutput.print(
|
|
294
|
+
f"无法删除旧锁文件:{lock_path},请手动清理后重试。",
|
|
295
|
+
OutputType.ERROR,
|
|
296
|
+
)
|
|
297
|
+
sys.exit(1)
|
|
298
|
+
|
|
299
|
+
# 原子创建锁文件,避免并发竞争
|
|
300
|
+
flags = os.O_CREAT | os.O_EXCL | os.O_WRONLY
|
|
301
|
+
try:
|
|
302
|
+
fd = os.open(str(lock_path), flags)
|
|
303
|
+
with os.fdopen(fd, "w", encoding="utf-8") as fp:
|
|
304
|
+
payload = {
|
|
305
|
+
"pid": os.getpid(),
|
|
306
|
+
"time": int(time.time()),
|
|
307
|
+
"argv": sys.argv[:10],
|
|
308
|
+
}
|
|
309
|
+
try:
|
|
310
|
+
fp.write(json.dumps(payload, ensure_ascii=False))
|
|
311
|
+
except Exception:
|
|
312
|
+
fp.write(str(os.getpid()))
|
|
313
|
+
_INSTANCE_LOCK_PATH = lock_path
|
|
314
|
+
atexit.register(_release_instance_lock)
|
|
315
|
+
except FileExistsError:
|
|
316
|
+
# 极端并发下再次校验
|
|
317
|
+
pid = _read_lock_owner_pid(lock_path)
|
|
318
|
+
if pid and _is_process_alive(pid):
|
|
319
|
+
PrettyOutput.print(
|
|
320
|
+
f"检测到已有一个 Jarvis 实例正在运行 (PID: {pid})。",
|
|
321
|
+
OutputType.WARNING,
|
|
322
|
+
)
|
|
323
|
+
sys.exit(0)
|
|
324
|
+
PrettyOutput.print(
|
|
325
|
+
f"锁文件已存在但可能为陈旧状态:{lock_path},请手动删除后重试。",
|
|
326
|
+
OutputType.ERROR,
|
|
327
|
+
)
|
|
328
|
+
sys.exit(1)
|
|
329
|
+
except Exception as e:
|
|
330
|
+
PrettyOutput.print(f"创建实例锁失败: {e}", OutputType.ERROR)
|
|
331
|
+
sys.exit(1)
|
|
332
|
+
|
|
333
|
+
|
|
208
334
|
def _check_pip_updates() -> bool:
|
|
209
335
|
"""检查pip安装的Jarvis是否有更新
|
|
210
336
|
|
|
@@ -338,14 +464,22 @@ def _check_jarvis_updates() -> bool:
|
|
|
338
464
|
返回:
|
|
339
465
|
bool: 是否需要重启进程
|
|
340
466
|
"""
|
|
341
|
-
|
|
467
|
+
# 从当前文件目录向上查找包含 .git 的仓库根目录,修复原先只检查 src/jarvis 的问题
|
|
468
|
+
try:
|
|
469
|
+
script_path = Path(__file__).resolve()
|
|
470
|
+
repo_root: Optional[Path] = None
|
|
471
|
+
for d in [script_path.parent] + list(script_path.parents):
|
|
472
|
+
if (d / ".git").exists():
|
|
473
|
+
repo_root = d
|
|
474
|
+
break
|
|
475
|
+
except Exception:
|
|
476
|
+
repo_root = None
|
|
342
477
|
|
|
343
|
-
# 先检查是否是git
|
|
344
|
-
|
|
345
|
-
if git_dir.exists():
|
|
478
|
+
# 先检查是否是git源码安装(找到仓库根目录即认为是源码安装)
|
|
479
|
+
if repo_root and (repo_root / ".git").exists():
|
|
346
480
|
from jarvis.jarvis_utils.git_utils import check_and_update_git_repo
|
|
347
481
|
|
|
348
|
-
return check_and_update_git_repo(str(
|
|
482
|
+
return check_and_update_git_repo(str(repo_root))
|
|
349
483
|
|
|
350
484
|
# 检查是否是pip/uv pip安装的版本
|
|
351
485
|
return _check_pip_updates()
|
|
@@ -1289,12 +1423,21 @@ def _collect_optional_config_interactively(
|
|
|
1289
1423
|
)
|
|
1290
1424
|
or changed
|
|
1291
1425
|
)
|
|
1426
|
+
# 规划相关:最大递归层数(仅在启用规划时生效,CLI --plan/--no-plan 控制启用)
|
|
1427
|
+
changed = (
|
|
1428
|
+
_ask_and_set_int(
|
|
1429
|
+
"JARVIS_PLAN_MAX_DEPTH",
|
|
1430
|
+
"任务规划的最大层数(限制递归拆分深度,默认2;仅在启用规划时生效)",
|
|
1431
|
+
3,
|
|
1432
|
+
)
|
|
1433
|
+
or changed
|
|
1434
|
+
)
|
|
1292
1435
|
# 新增:自动总结轮次与脚本超时
|
|
1293
1436
|
changed = (
|
|
1294
1437
|
_ask_and_set_int(
|
|
1295
1438
|
"JARVIS_AUTO_SUMMARY_ROUNDS",
|
|
1296
|
-
"基于对话轮次的自动总结阈值(达到该轮次后自动总结并清理历史,默认
|
|
1297
|
-
|
|
1439
|
+
"基于对话轮次的自动总结阈值(达到该轮次后自动总结并清理历史,默认50)",
|
|
1440
|
+
50,
|
|
1298
1441
|
)
|
|
1299
1442
|
or changed
|
|
1300
1443
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jarvis-ai-assistant
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
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
|
|
@@ -78,6 +78,18 @@ Requires-Dist: sentence-transformers==2.7.0; extra == "rag"
|
|
|
78
78
|
Requires-Dist: torch>=2.6; extra == "rag"
|
|
79
79
|
Requires-Dist: unstructured[md]; extra == "rag"
|
|
80
80
|
Requires-Dist: rank-bm25; extra == "rag"
|
|
81
|
+
Provides-Extra: clang16
|
|
82
|
+
Requires-Dist: clang==16.*; extra == "clang16"
|
|
83
|
+
Provides-Extra: clang17
|
|
84
|
+
Requires-Dist: clang==17.*; extra == "clang17"
|
|
85
|
+
Provides-Extra: clang18
|
|
86
|
+
Requires-Dist: clang==18.*; extra == "clang18"
|
|
87
|
+
Provides-Extra: clang19
|
|
88
|
+
Requires-Dist: clang==19.*; extra == "clang19"
|
|
89
|
+
Provides-Extra: clang20
|
|
90
|
+
Requires-Dist: clang==20.*; extra == "clang20"
|
|
91
|
+
Provides-Extra: clang21
|
|
92
|
+
Requires-Dist: clang==21.*; extra == "clang21"
|
|
81
93
|
Dynamic: author
|
|
82
94
|
Dynamic: home-page
|
|
83
95
|
Dynamic: license-file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
jarvis/__init__.py,sha256=
|
|
2
|
-
jarvis/jarvis_agent/__init__.py,sha256=
|
|
3
|
-
jarvis/jarvis_agent/agent_manager.py,sha256=
|
|
1
|
+
jarvis/__init__.py,sha256=TsTXCP60vIrsxYvAjdU8MfwI2cuIMAl-r5V3YdZLVj0,73
|
|
2
|
+
jarvis/jarvis_agent/__init__.py,sha256=ZrRwvproslqcmJ0wa3Bj820CYZWOSwkvEEZICLaU0ZA,57394
|
|
3
|
+
jarvis/jarvis_agent/agent_manager.py,sha256=x79JTCJV-xTzX8ndmsyqSgsE1a2Ci4krcySx31JK0eU,3897
|
|
4
4
|
jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
|
|
5
5
|
jarvis/jarvis_agent/config_editor.py,sha256=hlb9EYxKWcR_qdW2O89CgNDdciR9Isi743JU_1gD8j4,1927
|
|
6
6
|
jarvis/jarvis_agent/edit_file_handler.py,sha256=8j7SRSWTw468fTuR-ueNKFK_0pR1GwDxTvsGGmm3zlA,24714
|
|
@@ -8,7 +8,7 @@ jarvis/jarvis_agent/event_bus.py,sha256=pRdfk7d0OG18K6yNfWlCvAh_dW5p9sBtT2Yc3jGm
|
|
|
8
8
|
jarvis/jarvis_agent/events.py,sha256=rmFQ37PasImCh7OCdCzNBvubk-kHwcUiYLgzmL0t0_4,3689
|
|
9
9
|
jarvis/jarvis_agent/file_context_handler.py,sha256=2MPn_O_2llX39meFg272Cjk3wMPn5nmgbGMUyX06YQo,2113
|
|
10
10
|
jarvis/jarvis_agent/file_methodology_manager.py,sha256=LnhgTx5xQXCBK8esjCkFbgFm9iEyFX7TryUlC40Kzpw,4428
|
|
11
|
-
jarvis/jarvis_agent/jarvis.py,sha256=
|
|
11
|
+
jarvis/jarvis_agent/jarvis.py,sha256=euX9K8rTc4qTaFIHJhjnpG2EZNYnMfUW-wDc3usO8SQ,50127
|
|
12
12
|
jarvis/jarvis_agent/main.py,sha256=IgS7d3rng2vFlu983OUeCkOAosKjFAn1sFCk3gT9J9Q,4563
|
|
13
13
|
jarvis/jarvis_agent/memory_manager.py,sha256=WSyUffx9xTmkcj4QrSLEfsjI3sTMUwZmkkC9_N_gTjo,8042
|
|
14
14
|
jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
|
|
@@ -18,13 +18,14 @@ jarvis/jarvis_agent/prompt_manager.py,sha256=_1qLBSA3yn4nT_N3X2npTpW40Cp-pMeyvnz
|
|
|
18
18
|
jarvis/jarvis_agent/prompts.py,sha256=CvbPYx_klEz6OQrxVReZAnC2uQNo53rWkkucmh30uKg,9531
|
|
19
19
|
jarvis/jarvis_agent/protocols.py,sha256=YFJaC9MHi7JfLzmvlyotJDjiCO4Z07XJXy1gKhVdUy4,956
|
|
20
20
|
jarvis/jarvis_agent/rewrite_file_handler.py,sha256=FVSrfrC115_cGvdPW9RIn3A-gQAhok7GyyBfnOFdpXs,5276
|
|
21
|
-
jarvis/jarvis_agent/run_loop.py,sha256
|
|
21
|
+
jarvis/jarvis_agent/run_loop.py,sha256=-GqU2gAS3nbAr6GxJfEbupz-Cv0JsE0bEJdHH1L4EVs,6507
|
|
22
22
|
jarvis/jarvis_agent/session_manager.py,sha256=5wVcaZGwJ9cEKTQglSbqyxUDJ2fI5KxYN8C8L16UWLw,3024
|
|
23
23
|
jarvis/jarvis_agent/share_manager.py,sha256=Nl7zvy5PbcYAPXUgfnvatoUB0V4sIQOt61LyYkp5-2w,9127
|
|
24
24
|
jarvis/jarvis_agent/shell_input_handler.py,sha256=wiAPjB-9uTkcLszbO5dlOUwIfaeR39RgRcZhahIGqoA,2018
|
|
25
25
|
jarvis/jarvis_agent/stdio_redirect.py,sha256=xqF-sENitpefCT3TA9oRwATFqbDrU2dvqM-UiMZRhbE,9944
|
|
26
26
|
jarvis/jarvis_agent/task_analyzer.py,sha256=JXc-63hnTD7oSX-nIfRcgxqCMhh4fM4QYVc7C1gp--M,7813
|
|
27
27
|
jarvis/jarvis_agent/task_manager.py,sha256=lme_aN8vaF_a4Tvv2kaSEnWATy8RPSjogTxeLnEYZdg,6504
|
|
28
|
+
jarvis/jarvis_agent/task_planner.py,sha256=TRNZROyQPedB6vrUnp0wGcZztIK6mpZaefjSdGhw29s,10691
|
|
28
29
|
jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
|
|
29
30
|
jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
|
|
30
31
|
jarvis/jarvis_agent/user_interaction.py,sha256=tifFN49GkO_Q80sqOTVmhxwbNWTazF3K0cr8AnnvzdU,1453
|
|
@@ -32,8 +33,15 @@ jarvis/jarvis_agent/utils.py,sha256=WJmKys_ceDALL73GdMCOgmjGHBzeRSPj7rmc8Pkrvzc,
|
|
|
32
33
|
jarvis/jarvis_agent/web_bridge.py,sha256=h15PXuPWWfZynWt8bPW4BDeCpIVoIOlRXfO0je6HDx4,6673
|
|
33
34
|
jarvis/jarvis_agent/web_output_sink.py,sha256=sZ6WbLZnuCdT5dS9d8msHY_g-pnj-dvML-I6uJ7-sbc,1733
|
|
34
35
|
jarvis/jarvis_agent/web_server.py,sha256=oZZy4nAOPhRWJn7K8VjBlho1F9AsvLEYiusKgipjO94,28204
|
|
36
|
+
jarvis/jarvis_c2rust/__init__.py,sha256=piredVT3roAgl6Sq3fqtS9MGc7QeSneH2-7zUbQ1bRo,328
|
|
37
|
+
jarvis/jarvis_c2rust/cli.py,sha256=BE6LBjIeB6wmp9fOcz3rcduXhc5oGsLOrHL_lm2VAuY,17623
|
|
38
|
+
jarvis/jarvis_c2rust/collector.py,sha256=tF02dyGNH3ldIsPAggAf610nMLJOPOAA6tnWZrOLmec,7286
|
|
39
|
+
jarvis/jarvis_c2rust/library_replacer.py,sha256=nhBNOL5ttSrVdxjFcUNWWXXaI7h9kyKyo6zQwDxtulQ,40047
|
|
40
|
+
jarvis/jarvis_c2rust/llm_module_agent.py,sha256=3SIPVXwMaOJQCrFzb51hgjZ8rcJWiY3nti5ujgx82zc,55255
|
|
41
|
+
jarvis/jarvis_c2rust/scanner.py,sha256=qxDNFaHmy6YuJPnNAKwrUbLorGOMZws6OyQ8bb2YpM8,62626
|
|
42
|
+
jarvis/jarvis_c2rust/transpiler.py,sha256=MtbrGFOsxEt742PUVVVSqCsXyGz4RWfBRUZu7wUq7MI,56025
|
|
35
43
|
jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
-
jarvis/jarvis_code_agent/code_agent.py,sha256=
|
|
44
|
+
jarvis/jarvis_code_agent/code_agent.py,sha256=knN8niW9jh5F1fFXHaIOWIyx9J1_1tPq6cRPFm46Nu8,46680
|
|
37
45
|
jarvis/jarvis_code_agent/lint.py,sha256=_qLJB_bC3PuoHG-j4EGOnYzNGO26jHlKLbkysfyQW1c,3954
|
|
38
46
|
jarvis/jarvis_code_analysis/code_review.py,sha256=48r0UE4pmOUaRgBJIJrpPW307sKGo1rnTNkWdsqkOrY,29889
|
|
39
47
|
jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
|
|
@@ -56,7 +64,7 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUA
|
|
|
56
64
|
jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
|
|
57
65
|
jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
|
|
58
66
|
jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
|
|
59
|
-
jarvis/jarvis_data/config_schema.json,sha256=
|
|
67
|
+
jarvis/jarvis_data/config_schema.json,sha256=qb5kyUD-_DPV2aWzyqA2Aasdllzfy__qt3eiht5Dnk8,15583
|
|
60
68
|
jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
|
|
61
69
|
jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
70
|
jarvis/jarvis_git_squash/main.py,sha256=BRbsEQVXwseVFKliVqV8_JPh1om6QT6dLTHw0jQ7OE0,2474
|
|
@@ -91,6 +99,16 @@ jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMW
|
|
|
91
99
|
jarvis/jarvis_rag/rag_pipeline.py,sha256=aaTuxiArtVaPemWeySApw64q204JeLNXpOEtq7Adn1I,13797
|
|
92
100
|
jarvis/jarvis_rag/reranker.py,sha256=7Azc3y5fngwfPKtzZ8tx6iGKNeqC8uDy8yo8VCyLyL4,2670
|
|
93
101
|
jarvis/jarvis_rag/retriever.py,sha256=J4jO0492yHEwxJz_Cp2WP3vGHRHKj56rDyWZQ2W0XdA,18374
|
|
102
|
+
jarvis/jarvis_sec/README.md,sha256=0GpTAOAupOGEAv0juLJXEBBfaa6KL74t2nRbj0N5Mkw,7621
|
|
103
|
+
jarvis/jarvis_sec/__init__.py,sha256=SYgHZcxoV4xgjdal1S04u7QXCQJdgPpwiAxmEcK1pYg,25690
|
|
104
|
+
jarvis/jarvis_sec/cli.py,sha256=_DWWcYscLWCyIs5k7bKjXSBkQPxLbYLJKkU0QuTaeZs,3494
|
|
105
|
+
jarvis/jarvis_sec/prompts.py,sha256=ObGFNvrCtbIhsWlJHYQ5tcsTkuBlID0FozncYCv8S8k,14165
|
|
106
|
+
jarvis/jarvis_sec/report.py,sha256=5wLKqK-CDFZ2fPtwP3sGYgjAi69TKoYizyLK1cchDVA,8516
|
|
107
|
+
jarvis/jarvis_sec/types.py,sha256=_C3IHwnni3kApryP3c_UTYdvFdmlJSVXQLLefX94zl0,365
|
|
108
|
+
jarvis/jarvis_sec/workflow.py,sha256=DokD8ZBcAfyiq078OM7rmZdpWrOXAL_7ZGkLF2TOqcc,20187
|
|
109
|
+
jarvis/jarvis_sec/checkers/__init__.py,sha256=ZF7zHJS6P6cu9VE3kMc66DK7m-Ki2bmMkwkap5mm26g,786
|
|
110
|
+
jarvis/jarvis_sec/checkers/c_checker.py,sha256=ezW_-9wwzLxYEENd3HhdgDnLfJiLccJacJklTOnVXgw,53498
|
|
111
|
+
jarvis/jarvis_sec/checkers/rust_checker.py,sha256=SBobyUjN1rDzFPESZ6uif3PR3HUW6Mux2ofxeqRUJ2Q,13483
|
|
94
112
|
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
113
|
jarvis/jarvis_smart_shell/main.py,sha256=lUJPwLR9RlaaVv0lx3ojjjv5dELHOaindlsLDDkpssQ,14960
|
|
96
114
|
jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
|
|
@@ -102,39 +120,40 @@ jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
102
120
|
jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
|
|
103
121
|
jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
|
|
104
122
|
jarvis/jarvis_tools/clear_memory.py,sha256=8DOq6dHLemfKTJqu227PWBIp8Iu5K7EXwINzL8DYk8M,8205
|
|
105
|
-
jarvis/jarvis_tools/execute_script.py,sha256=
|
|
123
|
+
jarvis/jarvis_tools/execute_script.py,sha256=AQ9Krh6GuhzHzLPZ7HFpCe7UMtVtkI-ua3bTiQ2QShQ,8257
|
|
106
124
|
jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
|
|
107
125
|
jarvis/jarvis_tools/generate_new_tool.py,sha256=tJz0YtfDwyH9y00VEWw3Btqr9JCNhvtI8BN9i5hYk_M,8560
|
|
108
126
|
jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
|
|
109
|
-
jarvis/jarvis_tools/read_code.py,sha256=
|
|
127
|
+
jarvis/jarvis_tools/read_code.py,sha256=os7VCHc24WYdjpWTG7YQKddmRL9aDD2xXKiitc2yryM,6861
|
|
128
|
+
jarvis/jarvis_tools/read_symbols.py,sha256=GI8Q12P2ABbedgGtZfvzMVXyqWykh8wi4aapnRqvb8o,5246
|
|
110
129
|
jarvis/jarvis_tools/read_webpage.py,sha256=dfyXJ9vaX-ZRbua1P5ZlaU_SlSzKkeNw-1kI_3-gxFE,5433
|
|
111
|
-
jarvis/jarvis_tools/registry.py,sha256=
|
|
130
|
+
jarvis/jarvis_tools/registry.py,sha256=ryHc6JJ-flkICoA4I8wvUxgMezqBHSabk-zLAp_ZnCQ,34561
|
|
112
131
|
jarvis/jarvis_tools/retrieve_memory.py,sha256=hhhGSr7jebPHICY9oEKICyI8mfqsRtKjh58qZNZApKc,8624
|
|
113
132
|
jarvis/jarvis_tools/save_memory.py,sha256=RQtNxcpU53FFv_EBjH0i0oyQ7jWubm-trD1BHuqaGjI,6985
|
|
114
133
|
jarvis/jarvis_tools/search_web.py,sha256=Hi8WBxcRH02qjOF1qcJP2qSqs3kVOKGFAARfh548Ii4,6370
|
|
115
|
-
jarvis/jarvis_tools/sub_agent.py,sha256=
|
|
116
|
-
jarvis/jarvis_tools/sub_code_agent.py,sha256=
|
|
134
|
+
jarvis/jarvis_tools/sub_agent.py,sha256=oV_-R5kAnocA3X8yrxtccGKa6UIo08_YbMQB0ozCPzU,8534
|
|
135
|
+
jarvis/jarvis_tools/sub_code_agent.py,sha256=F9iY0XgYsHJEdfMo_0UR646qYbj61t4jIUVnrq9zPuE,9479
|
|
117
136
|
jarvis/jarvis_tools/virtual_tty.py,sha256=L7-J00ARQvIa25T45Hhqg2eCBl6W2LFgqDlWMWf-7dk,25275
|
|
118
137
|
jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
119
|
-
jarvis/jarvis_tools/cli/main.py,sha256=
|
|
138
|
+
jarvis/jarvis_tools/cli/main.py,sha256=0JTAj2vPc410Noj_bcJBF4AijovYQTIFBp7cO8LlRfA,9324
|
|
120
139
|
jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
|
|
121
140
|
jarvis/jarvis_utils/builtin_replace_map.py,sha256=z8iAqsbZUiGFaozxG1xSu128op8udqHOeEw-GxNt4bU,1708
|
|
122
141
|
jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
|
|
123
|
-
jarvis/jarvis_utils/config.py,sha256=
|
|
142
|
+
jarvis/jarvis_utils/config.py,sha256=UqDj2wWSDyXT5FfXx3iUNTzPdHbzBQdyx_srt6vc2rw,23163
|
|
124
143
|
jarvis/jarvis_utils/embedding.py,sha256=x6mrkL7Bc3qgfuBDsjc4fg4nKG8ofGxVLVVydbsb8PY,2838
|
|
125
144
|
jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
|
|
126
145
|
jarvis/jarvis_utils/fzf.py,sha256=vCs0Uh5dUqGbWzXn2JCtLLCOYE2B39ZNdNveR9PK4DA,1681
|
|
127
|
-
jarvis/jarvis_utils/git_utils.py,sha256=
|
|
146
|
+
jarvis/jarvis_utils/git_utils.py,sha256=_UFVUr73cMn_YGQw8HK3ws1mPaItlCX0kMF6RcDfGrU,26111
|
|
128
147
|
jarvis/jarvis_utils/globals.py,sha256=7Xvf9HY6jYJL4vSD1F1WCoxHkHCAyltJUYt4V9gGVU4,8865
|
|
129
148
|
jarvis/jarvis_utils/http.py,sha256=eRhV3-GYuWmQ0ogq9di9WMlQkFcVb1zGCrySnOgT1x0,4392
|
|
130
149
|
jarvis/jarvis_utils/input.py,sha256=4VXpUZoAocW1mldlZd4bmXI8a_CmcQj7IPLBNgNLGSI,40045
|
|
131
150
|
jarvis/jarvis_utils/methodology.py,sha256=YuuKBjr58cu8QWcniU7QVlEM9Cem6wo4IYcq1iwSDMw,13158
|
|
132
151
|
jarvis/jarvis_utils/output.py,sha256=y2fVcao_2ZowFl0IxUrJZCi8T6ZM0z-iPzpk8T8eLxc,13623
|
|
133
152
|
jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
|
|
134
|
-
jarvis/jarvis_utils/utils.py,sha256=
|
|
135
|
-
jarvis_ai_assistant-0.
|
|
136
|
-
jarvis_ai_assistant-0.
|
|
137
|
-
jarvis_ai_assistant-0.
|
|
138
|
-
jarvis_ai_assistant-0.
|
|
139
|
-
jarvis_ai_assistant-0.
|
|
140
|
-
jarvis_ai_assistant-0.
|
|
153
|
+
jarvis/jarvis_utils/utils.py,sha256=FnPhuwUII9N-HLgIF68nJ5gHJWUYsbw7dbu6GUBh0A8,79095
|
|
154
|
+
jarvis_ai_assistant-0.6.0.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
|
155
|
+
jarvis_ai_assistant-0.6.0.dist-info/METADATA,sha256=_cEYvREbrWC-QzPMNToJZa9PxMPhO7Bf140Ko9wtOYo,19177
|
|
156
|
+
jarvis_ai_assistant-0.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
157
|
+
jarvis_ai_assistant-0.6.0.dist-info/entry_points.txt,sha256=Uxk2_VeucH_m7EwH2mw0SlEYHIUmbzXkjTb15z_lcko,1552
|
|
158
|
+
jarvis_ai_assistant-0.6.0.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
|
159
|
+
jarvis_ai_assistant-0.6.0.dist-info/RECORD,,
|
{jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/entry_points.txt
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
ja = jarvis.jarvis_agent.main:main
|
|
3
3
|
jarvis = jarvis.jarvis_agent.jarvis:main
|
|
4
4
|
jarvis-agent = jarvis.jarvis_agent.main:main
|
|
5
|
+
jarvis-c2rust = jarvis.jarvis_c2rust.cli:main
|
|
5
6
|
jarvis-code-agent = jarvis.jarvis_code_agent.code_agent:main
|
|
6
7
|
jarvis-code-review = jarvis.jarvis_code_analysis.code_review:main
|
|
7
8
|
jarvis-git-commit = jarvis.jarvis_git_utils.git_commiter:main
|
|
@@ -11,9 +12,11 @@ jarvis-methodology = jarvis.jarvis_methodology.main:main
|
|
|
11
12
|
jarvis-multi-agent = jarvis.jarvis_multi_agent.main:main
|
|
12
13
|
jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
|
|
13
14
|
jarvis-rag = jarvis.jarvis_rag.cli:main
|
|
15
|
+
jarvis-sec = jarvis.jarvis_sec.cli:main
|
|
14
16
|
jarvis-smart-shell = jarvis.jarvis_smart_shell.main:main
|
|
15
17
|
jarvis-stats = jarvis.jarvis_stats.cli:main
|
|
16
18
|
jarvis-tool = jarvis.jarvis_tools.cli.main:main
|
|
19
|
+
jc2r = jarvis.jarvis_c2rust.cli:main
|
|
17
20
|
jca = jarvis.jarvis_code_agent.code_agent:main
|
|
18
21
|
jcr = jarvis.jarvis_code_analysis.code_review:main
|
|
19
22
|
jgc = jarvis.jarvis_git_utils.git_commiter:main
|
|
@@ -23,6 +26,7 @@ jma = jarvis.jarvis_multi_agent.main:main
|
|
|
23
26
|
jmo = jarvis.jarvis_memory_organizer.memory_organizer:main
|
|
24
27
|
jpm = jarvis.jarvis_platform_manager.main:main
|
|
25
28
|
jrg = jarvis.jarvis_rag.cli:main
|
|
29
|
+
jsec = jarvis.jarvis_sec.cli:main
|
|
26
30
|
jss = jarvis.jarvis_smart_shell.main:main
|
|
27
31
|
jst = jarvis.jarvis_stats.cli:main
|
|
28
32
|
jt = jarvis.jarvis_tools.cli.main:main
|
|
File without changes
|
{jarvis_ai_assistant-0.5.0.dist-info → jarvis_ai_assistant-0.6.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|