jarvis-ai-assistant 0.3.2__py3-none-any.whl → 0.3.4__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 +170 -9
- jarvis/jarvis_agent/file_methodology_manager.py +6 -1
- jarvis/jarvis_agent/share_manager.py +21 -0
- jarvis/jarvis_agent/tool_executor.py +8 -4
- jarvis/jarvis_code_agent/code_agent.py +7 -12
- jarvis/jarvis_code_analysis/code_review.py +117 -12
- jarvis/jarvis_git_utils/git_commiter.py +63 -9
- jarvis/jarvis_memory_organizer/__init__.py +0 -0
- jarvis/jarvis_memory_organizer/memory_organizer.py +729 -0
- jarvis/jarvis_platform/base.py +9 -0
- jarvis/jarvis_platform/kimi.py +20 -0
- jarvis/jarvis_platform/openai.py +27 -0
- jarvis/jarvis_platform/tongyi.py +19 -0
- jarvis/jarvis_platform/yuanbao.py +18 -0
- jarvis/jarvis_platform_manager/main.py +22 -16
- jarvis/jarvis_tools/base.py +8 -1
- jarvis/jarvis_utils/git_utils.py +20 -3
- jarvis/jarvis_utils/globals.py +16 -10
- jarvis/jarvis_utils/methodology.py +19 -2
- jarvis/jarvis_utils/utils.py +159 -78
- {jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/METADATA +40 -1
- {jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/RECORD +27 -25
- {jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/entry_points.txt +2 -0
- {jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/licenses/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/top_level.txt +0 -0
jarvis/jarvis_utils/utils.py
CHANGED
@@ -26,6 +26,7 @@ from jarvis.jarvis_utils.config import (
|
|
26
26
|
)
|
27
27
|
from jarvis.jarvis_utils.embedding import get_context_token_count
|
28
28
|
from jarvis.jarvis_utils.globals import get_in_chat, get_interrupt, set_interrupt
|
29
|
+
from jarvis.jarvis_utils.input import user_confirm
|
29
30
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
30
31
|
|
31
32
|
g_config_file = None
|
@@ -57,6 +58,8 @@ COMMAND_MAPPING = {
|
|
57
58
|
"jrg": "jarvis-rag",
|
58
59
|
# 统计
|
59
60
|
"jst": "jarvis-stats",
|
61
|
+
# 记忆整理
|
62
|
+
"jmo": "jarvis-memory-organizer",
|
60
63
|
}
|
61
64
|
|
62
65
|
|
@@ -76,30 +79,6 @@ def _setup_signal_handler() -> None:
|
|
76
79
|
signal.signal(signal.SIGINT, sigint_handler)
|
77
80
|
|
78
81
|
|
79
|
-
def _show_welcome_message(welcome_str: str) -> None:
|
80
|
-
"""显示欢迎信息
|
81
|
-
|
82
|
-
参数:
|
83
|
-
welcome_str: 欢迎信息字符串
|
84
|
-
"""
|
85
|
-
if not welcome_str:
|
86
|
-
return
|
87
|
-
|
88
|
-
jarvis_ascii_art = f"""
|
89
|
-
██╗ █████╗ ██████╗ ██╗ ██╗██╗███████╗
|
90
|
-
██║██╔══██╗██╔══██╗██║ ██║██║██╔════╝
|
91
|
-
██║███████║██████╔╝██║ ██║██║███████╗
|
92
|
-
██╗██║██╔══██║██╔══██╗╚██╗ ██╔╝██║╚════██║
|
93
|
-
╚████║██║ ██║██║ ██║ ╚████╔╝ ██║███████║
|
94
|
-
╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═══╝ ╚═╝╚══════╝
|
95
|
-
{welcome_str}
|
96
|
-
|
97
|
-
https://github.com/skyfireitdiy/Jarvis
|
98
|
-
v{__version__}
|
99
|
-
"""
|
100
|
-
PrettyOutput.print_gradient_text(jarvis_ascii_art, (0, 120, 255), (0, 255, 200))
|
101
|
-
|
102
|
-
|
103
82
|
def _check_git_updates() -> bool:
|
104
83
|
"""检查并更新git仓库
|
105
84
|
|
@@ -112,7 +91,7 @@ def _check_git_updates() -> bool:
|
|
112
91
|
return check_and_update_git_repo(str(script_dir))
|
113
92
|
|
114
93
|
|
115
|
-
def _show_usage_stats() -> None:
|
94
|
+
def _show_usage_stats(welcome_str: str) -> None:
|
116
95
|
"""显示Jarvis使用统计信息"""
|
117
96
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
118
97
|
|
@@ -124,6 +103,8 @@ def _show_usage_stats() -> None:
|
|
124
103
|
from rich.table import Table
|
125
104
|
from rich.text import Text
|
126
105
|
|
106
|
+
console = Console()
|
107
|
+
|
127
108
|
from jarvis.jarvis_stats.stats import StatsManager
|
128
109
|
|
129
110
|
# 获取所有可用的指标
|
@@ -189,20 +170,12 @@ def _show_usage_stats() -> None:
|
|
189
170
|
|
190
171
|
# 计算采纳率并添加到统计中
|
191
172
|
commit_stats = categorized_stats["commit"]["metrics"]
|
192
|
-
#
|
193
|
-
generated_commits = commit_stats.get(
|
194
|
-
|
195
|
-
)
|
196
|
-
accepted_commits = commit_stats.get(
|
197
|
-
"commits_accepted",
|
198
|
-
commit_stats.get("commit_accepted", commit_stats.get("commit_adopted", 0)),
|
199
|
-
)
|
200
|
-
rejected_commits = commit_stats.get(
|
201
|
-
"commits_rejected", commit_stats.get("commit_rejected", 0)
|
202
|
-
)
|
173
|
+
# 使用精确的指标名称
|
174
|
+
generated_commits = commit_stats.get("commits_generated", 0)
|
175
|
+
accepted_commits = commit_stats.get("commits_accepted", 0)
|
203
176
|
|
204
|
-
# 如果有 generated
|
205
|
-
if generated_commits > 0
|
177
|
+
# 如果有 generated,则计算采纳率
|
178
|
+
if generated_commits > 0:
|
206
179
|
adoption_rate = (accepted_commits / generated_commits) * 100
|
207
180
|
categorized_stats["adoption"]["metrics"][
|
208
181
|
"adoption_rate"
|
@@ -210,17 +183,6 @@ def _show_usage_stats() -> None:
|
|
210
183
|
categorized_stats["adoption"]["metrics"][
|
211
184
|
"commits_status"
|
212
185
|
] = f"{accepted_commits}/{generated_commits}"
|
213
|
-
elif accepted_commits > 0 or rejected_commits > 0:
|
214
|
-
# 否则使用 accepted 和 rejected 计算
|
215
|
-
total_commits = accepted_commits + rejected_commits
|
216
|
-
if total_commits > 0:
|
217
|
-
adoption_rate = (accepted_commits / total_commits) * 100
|
218
|
-
categorized_stats["adoption"]["metrics"][
|
219
|
-
"adoption_rate"
|
220
|
-
] = f"{adoption_rate:.1f}%"
|
221
|
-
categorized_stats["adoption"]["metrics"][
|
222
|
-
"commits_status"
|
223
|
-
] = f"{accepted_commits}/{total_commits}"
|
224
186
|
|
225
187
|
# 构建输出
|
226
188
|
has_data = False
|
@@ -239,7 +201,6 @@ def _show_usage_stats() -> None:
|
|
239
201
|
table = Table(
|
240
202
|
show_header=True,
|
241
203
|
header_style="bold magenta",
|
242
|
-
title="📊 Jarvis 使用统计",
|
243
204
|
title_justify="center",
|
244
205
|
box=box.ROUNDED,
|
245
206
|
padding=(0, 1),
|
@@ -429,28 +390,117 @@ def _show_usage_stats() -> None:
|
|
429
390
|
summary_content.append(encouragement)
|
430
391
|
|
431
392
|
# 3. 组合并打印
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
393
|
+
from rich import box
|
394
|
+
|
395
|
+
# 右侧内容:总体表现 + 使命与愿景
|
396
|
+
right_column_items = []
|
397
|
+
|
398
|
+
# 欢迎信息 Panel
|
399
|
+
if welcome_str:
|
400
|
+
jarvis_ascii_art_str = """
|
401
|
+
██╗ █████╗ ██████╗ ██╗ ██╗██╗███████╗
|
402
|
+
██║██╔══██╗██╔══██╗██║ ██║██║██╔════╝
|
403
|
+
██║███████║██████╔╝██║ ██║██║███████╗
|
404
|
+
██╗██║██╔══██║██╔══██╗╚██╗ ██╔╝██║╚════██║
|
405
|
+
╚████║██║ ██║██║ ██║ ╚████╔╝ ██║███████║
|
406
|
+
╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═══╝ ╚═╝╚══════╝"""
|
407
|
+
|
408
|
+
welcome_panel_content = Group(
|
409
|
+
Align.center(Text(jarvis_ascii_art_str, style="bold blue")),
|
410
|
+
Align.center(Text(welcome_str, style="bold")),
|
411
|
+
"", # for a blank line
|
412
|
+
Align.center(Text(f"v{__version__}")),
|
413
|
+
Align.center(Text("https://github.com/skyfireitdiy/Jarvis")),
|
414
|
+
)
|
437
415
|
|
416
|
+
welcome_panel = Panel(
|
417
|
+
welcome_panel_content, border_style="yellow", expand=True
|
418
|
+
)
|
419
|
+
right_column_items.append(welcome_panel)
|
438
420
|
if summary_content:
|
439
421
|
summary_panel = Panel(
|
440
422
|
Text("\n".join(summary_content), justify="left"),
|
441
423
|
title="✨ 总体表现 ✨",
|
442
424
|
title_align="center",
|
443
425
|
border_style="green",
|
444
|
-
expand=
|
426
|
+
expand=True,
|
445
427
|
)
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
428
|
+
right_column_items.append(summary_panel)
|
429
|
+
|
430
|
+
# 愿景 Panel
|
431
|
+
vision_text = Text(
|
432
|
+
"重新定义开发者体验,打破人与工具的界限,构建开发者与AI之间真正的共生伙伴关系。",
|
433
|
+
justify="center",
|
434
|
+
style="italic",
|
435
|
+
)
|
436
|
+
vision_panel = Panel(
|
437
|
+
vision_text,
|
438
|
+
title="🔭 愿景 (Vision) 🔭",
|
439
|
+
title_align="center",
|
440
|
+
border_style="cyan",
|
441
|
+
expand=True,
|
442
|
+
)
|
443
|
+
right_column_items.append(vision_panel)
|
444
|
+
|
445
|
+
# 使命 Panel
|
446
|
+
mission_text = Text(
|
447
|
+
"通过深度人机协作,将开发者的灵感(Vibe)高效落地为代码与行动,释放创造之力。",
|
448
|
+
justify="center",
|
449
|
+
style="italic",
|
450
|
+
)
|
451
|
+
mission_panel = Panel(
|
452
|
+
mission_text,
|
453
|
+
title="🎯 使命 (Mission) 🎯",
|
454
|
+
title_align="center",
|
455
|
+
border_style="magenta",
|
456
|
+
expand=True,
|
457
|
+
)
|
458
|
+
right_column_items.append(mission_panel)
|
459
|
+
|
460
|
+
right_column_group = Group(*right_column_items)
|
461
|
+
|
462
|
+
layout_renderable: RenderableType
|
463
|
+
|
464
|
+
if console.width < 200:
|
465
|
+
# 上下布局
|
466
|
+
layout_items: List[RenderableType] = []
|
467
|
+
layout_items.append(right_column_group)
|
468
|
+
if has_content:
|
469
|
+
layout_items.append(table)
|
470
|
+
layout_renderable = Group(*layout_items)
|
471
|
+
else:
|
472
|
+
# 左右布局(当前)
|
473
|
+
layout_table = Table(
|
474
|
+
show_header=False,
|
475
|
+
box=None,
|
476
|
+
padding=0,
|
477
|
+
expand=True,
|
478
|
+
pad_edge=False,
|
479
|
+
)
|
480
|
+
# 左右布局,左侧为总结信息,右侧为统计表格
|
481
|
+
layout_table.add_column(ratio=5) # 左侧
|
482
|
+
layout_table.add_column(ratio=5) # 右侧
|
483
|
+
|
484
|
+
if has_content:
|
485
|
+
# 将总结信息放在左侧,统计表格放在右侧
|
486
|
+
layout_table.add_row(right_column_group, table)
|
487
|
+
else:
|
488
|
+
# 如果没有统计数据,则总结信息占满
|
489
|
+
layout_table.add_row(right_column_group)
|
490
|
+
layout_renderable = layout_table
|
491
|
+
|
492
|
+
# 打印最终的布局
|
493
|
+
if has_content or summary_content:
|
494
|
+
# 将整体布局封装在一个最终的Panel中,以提供整体边框
|
495
|
+
final_panel = Panel(
|
496
|
+
layout_renderable,
|
497
|
+
title="Jarvis AI Assistant",
|
498
|
+
title_align="center",
|
499
|
+
border_style="blue",
|
500
|
+
box=box.HEAVY,
|
501
|
+
padding=(0, 1),
|
502
|
+
)
|
503
|
+
console.print(final_panel)
|
454
504
|
except Exception as e:
|
455
505
|
# 输出错误信息以便调试
|
456
506
|
import traceback
|
@@ -472,20 +522,16 @@ def init_env(welcome_str: str, config_file: Optional[str] = None) -> None:
|
|
472
522
|
# 2. 统计命令使用
|
473
523
|
count_cmd_usage()
|
474
524
|
|
475
|
-
# 3.
|
476
|
-
if welcome_str:
|
477
|
-
_show_welcome_message(welcome_str)
|
478
|
-
|
479
|
-
# 4. 设置配置文件
|
525
|
+
# 3. 设置配置文件
|
480
526
|
global g_config_file
|
481
527
|
g_config_file = config_file
|
482
528
|
load_config()
|
483
529
|
|
484
|
-
#
|
530
|
+
# 4. 显示历史统计数据(仅在显示欢迎信息时显示)
|
485
531
|
if welcome_str:
|
486
|
-
_show_usage_stats()
|
532
|
+
_show_usage_stats(welcome_str)
|
487
533
|
|
488
|
-
#
|
534
|
+
# 5. 检查git更新
|
489
535
|
if _check_git_updates():
|
490
536
|
os.execv(sys.executable, [sys.executable] + sys.argv)
|
491
537
|
sys.exit(0)
|
@@ -518,11 +564,22 @@ def _interactive_config_setup(config_file_path: Path):
|
|
518
564
|
env_vars = {}
|
519
565
|
required_keys = platform_class.get_required_env_keys()
|
520
566
|
defaults = platform_class.get_env_defaults()
|
567
|
+
config_guide = platform_class.get_env_config_guide()
|
521
568
|
if required_keys:
|
522
569
|
PrettyOutput.print(
|
523
570
|
f"请输入 {platform_name} 平台所需的配置信息:", OutputType.INFO
|
524
571
|
)
|
572
|
+
|
573
|
+
# 如果有配置指导,先显示总体说明
|
574
|
+
if config_guide:
|
575
|
+
PrettyOutput.print(f"\n配置获取方法:", OutputType.INFO)
|
576
|
+
|
525
577
|
for key in required_keys:
|
578
|
+
# 显示该环境变量的配置指导
|
579
|
+
if key in config_guide and config_guide[key]:
|
580
|
+
PrettyOutput.print(f"\n{key} 获取方法:", OutputType.INFO)
|
581
|
+
PrettyOutput.print(config_guide[key], OutputType.INFO)
|
582
|
+
|
526
583
|
default_value = defaults.get(key, "")
|
527
584
|
prompt_text = f" - {key}"
|
528
585
|
if default_value:
|
@@ -659,7 +716,6 @@ def load_config():
|
|
659
716
|
|
660
717
|
from typing import Tuple
|
661
718
|
|
662
|
-
|
663
719
|
from typing import Tuple
|
664
720
|
|
665
721
|
|
@@ -998,11 +1054,36 @@ def _pull_git_repo(repo_path: Path, repo_type: str):
|
|
998
1054
|
timeout=10,
|
999
1055
|
)
|
1000
1056
|
if status_result.stdout:
|
1001
|
-
|
1002
|
-
f"检测到 '{repo_path.name}'
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1057
|
+
if user_confirm(
|
1058
|
+
f"检测到 '{repo_path.name}' 存在未提交的更改,是否放弃这些更改并更新?"
|
1059
|
+
):
|
1060
|
+
try:
|
1061
|
+
subprocess.run(
|
1062
|
+
["git", "checkout", "."],
|
1063
|
+
cwd=repo_path,
|
1064
|
+
capture_output=True,
|
1065
|
+
text=True,
|
1066
|
+
encoding="utf-8",
|
1067
|
+
errors="replace",
|
1068
|
+
check=True,
|
1069
|
+
timeout=10,
|
1070
|
+
)
|
1071
|
+
except (
|
1072
|
+
subprocess.CalledProcessError,
|
1073
|
+
subprocess.TimeoutExpired,
|
1074
|
+
FileNotFoundError,
|
1075
|
+
) as e:
|
1076
|
+
PrettyOutput.print(
|
1077
|
+
f"放弃 '{repo_path.name}' 的更改失败: {str(e)}",
|
1078
|
+
OutputType.ERROR,
|
1079
|
+
)
|
1080
|
+
return
|
1081
|
+
else:
|
1082
|
+
PrettyOutput.print(
|
1083
|
+
f"跳过更新 '{repo_path.name}' 以保留未提交的更改。",
|
1084
|
+
OutputType.INFO,
|
1085
|
+
)
|
1086
|
+
return
|
1006
1087
|
|
1007
1088
|
# 获取更新前的commit hash
|
1008
1089
|
before_hash_result = subprocess.run(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: jarvis-ai-assistant
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.4
|
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
|
@@ -202,27 +202,66 @@ iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercon
|
|
202
202
|
|
203
203
|
#### 手动安装
|
204
204
|
```bash
|
205
|
+
# 1. 克隆仓库
|
205
206
|
git clone https://github.com/skyfireitdiy/Jarvis
|
207
|
+
|
208
|
+
# 2. 进入项目目录
|
206
209
|
cd Jarvis
|
210
|
+
|
211
|
+
# 3. 安装项目为可编辑模式
|
207
212
|
pip3 install -e .
|
208
213
|
```
|
214
|
+
> **提示**: 使用 `-e .` (可编辑模式) 安装后,您对源码的任何修改都会立刻生效,非常适合开发者。
|
215
|
+
|
209
216
|
或者从PyPI安装 (可能不是最新版):
|
210
217
|
```bash
|
211
218
|
pip3 install jarvis-ai-assistant
|
212
219
|
```
|
213
220
|
|
221
|
+
**通过 uv 安装 (推荐)**
|
222
|
+
```bash
|
223
|
+
# 1. 安装 uv (如果未安装)
|
224
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
225
|
+
|
226
|
+
# 2. 克隆仓库
|
227
|
+
git clone https://github.com/skyfireitdiy/Jarvis
|
228
|
+
|
229
|
+
# 3. 进入项目目录
|
230
|
+
cd Jarvis
|
231
|
+
|
232
|
+
# 4. 创建虚拟环境并安装
|
233
|
+
uv venv
|
234
|
+
|
235
|
+
# 安装基础功能
|
236
|
+
uv pip install .
|
237
|
+
|
238
|
+
# 可选: 安装RAG功能(包含PyTorch等较重的依赖)
|
239
|
+
# uv pip install .[rag]
|
240
|
+
```
|
241
|
+
|
242
|
+
> **提示**: 安装完成后,建议将虚拟环境激活命令添加到您的 shell 配置文件中:
|
243
|
+
> - Bash/Zsh: 在 ~/.bashrc 或 ~/.zshrc 中添加 `source /path/to/Jarvis/.venv/bin/activate`
|
244
|
+
> - Fish: 在 ~/.config/fish/config.fish 中添加 `source /path/to/Jarvis/.venv/bin/activate.fish`
|
245
|
+
|
214
246
|
### 基本使用
|
215
247
|
Jarvis 包含一系列专注于不同任务的工具。以下是主要命令及其快捷方式:
|
216
248
|
|
217
249
|
| 命令 | 快捷方式 | 功能描述 |
|
218
250
|
|------|----------|----------|
|
219
251
|
| `jarvis` | `jvs` | 通用AI代理,适用于多种任务 |
|
252
|
+
| `jarvis-agent` | `ja` | AI代理基础功能,处理会话和任务 |
|
220
253
|
| `jarvis-code-agent` | `jca` | 专注于代码分析、修改和生成的代码代理 |
|
254
|
+
| `jarvis-code-review` | `jcr` | 智能代码审查工具 |
|
221
255
|
| `jarvis-git-commit` | `jgc` | 自动化分析代码变更并生成规范的Git提交信息 |
|
256
|
+
| `jarvis-git-squash` | `jgs` | Git提交历史整理工具 |
|
222
257
|
| `jarvis-platform-manager` | `jpm` | 管理和测试不同的大语言模型平台 |
|
258
|
+
| `jarvis-multi-agent` | `jma` | 多智能体协作系统 |
|
259
|
+
| `jarvis-tool` | `jt` | 工具管理与调用系统 |
|
260
|
+
| `jarvis-methodology` | `jm` | 方法论知识库管理 |
|
223
261
|
| `jarvis-rag` | `jrg` | 构建和查询本地化的RAG知识库 |
|
224
262
|
| `jarvis-smart-shell` | `jss` | 实验性的智能Shell功能 |
|
225
263
|
| `jarvis-stats` | `jst` | 通用统计模块,支持记录和可视化任意指标数据 |
|
264
|
+
| `jarvis-memory-organizer` | `jmo` | 记忆管理工具,支持整理、合并、导入导出记忆 |
|
226
265
|
|
227
266
|
更多详细用法和参数,请查阅我们的 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
|
228
267
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
jarvis/__init__.py,sha256=
|
2
|
-
jarvis/jarvis_agent/__init__.py,sha256=
|
1
|
+
jarvis/__init__.py,sha256=OeCDz6Z11rF2cp6sXEe7CwvIdTZ_EPzUJwW35kFF6BY,73
|
2
|
+
jarvis/jarvis_agent/__init__.py,sha256=NF_eUF85RRplGJyLmInIsTn-09aEPtjj4utYvEALvJw,31802
|
3
3
|
jarvis/jarvis_agent/agent_manager.py,sha256=YzpMiF0H2-eyk2kn2o24Bkj3bXsQx7Pv2vfD4gWepo0,2893
|
4
4
|
jarvis/jarvis_agent/builtin_input_handler.py,sha256=Qs4LAr4xdKLBJpQE81YP4CkucAop86ms0iVoKa1nnso,2468
|
5
5
|
jarvis/jarvis_agent/config_editor.py,sha256=Ctk82sO6w2cNW0-_5L7Bomj-hgM4U7WwMc52fwhAJyg,1809
|
6
6
|
jarvis/jarvis_agent/edit_file_handler.py,sha256=w-byNJ4TN_SlV3djjfFC7OksySOFGrM8ku49w662dzc,11854
|
7
|
-
jarvis/jarvis_agent/file_methodology_manager.py,sha256=
|
7
|
+
jarvis/jarvis_agent/file_methodology_manager.py,sha256=qCRh36LLiaF3cXwIRlHurCzQlQQCUvd9BteCdj3CxfQ,4526
|
8
8
|
jarvis/jarvis_agent/jarvis.py,sha256=2XMuMA3A4ihE4RAo-XnYZHnJ0ZrGRFagE1s-eiGdZ9Q,3252
|
9
9
|
jarvis/jarvis_agent/main.py,sha256=Sd4-OnBcMqY5i7vb-Riy_JT2fGfuANtgiAWvWFY8LXM,3345
|
10
10
|
jarvis/jarvis_agent/memory_manager.py,sha256=F7HTNzdN1_-cSygnz7zKSJRJvPLUOosqcXQeiW8zG4U,5266
|
@@ -14,16 +14,16 @@ jarvis/jarvis_agent/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh
|
|
14
14
|
jarvis/jarvis_agent/prompts.py,sha256=X6cXa-n0xqBQ8LDTgLsD0kqziAh1s0cNp89i4mxcvHg,9444
|
15
15
|
jarvis/jarvis_agent/protocols.py,sha256=JWnJDikFEuwvFUv7uzXu0ggJ4O9K2FkMnfVCwIJ5REw,873
|
16
16
|
jarvis/jarvis_agent/session_manager.py,sha256=DnvI9rWkVmkyO1XfKZyo9lTn4ajg4ccwzEkoRHFPOJM,2925
|
17
|
-
jarvis/jarvis_agent/share_manager.py,sha256=
|
17
|
+
jarvis/jarvis_agent/share_manager.py,sha256=h3H6PXSTVUBLablFys_h16mdI7a48RVALQhADL17rSs,8696
|
18
18
|
jarvis/jarvis_agent/shell_input_handler.py,sha256=1IboqdxcJuoIqRpmDU10GugR9fWXUHyCEbVF4nIWbyo,1328
|
19
19
|
jarvis/jarvis_agent/task_analyzer.py,sha256=-fQ9YBYFcc-Z1FSoDIPzRfAgkREFoIOXtU2TdBkB-e0,4656
|
20
20
|
jarvis/jarvis_agent/task_manager.py,sha256=HJm4_SMpsFbQMUUsAZeHm7cZuhNbz28YW-DRLYgoarc,4422
|
21
|
-
jarvis/jarvis_agent/tool_executor.py,sha256=
|
21
|
+
jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
|
22
22
|
jarvis/jarvis_agent/tool_share_manager.py,sha256=R5ONIQlDXX9pFq3clwHFhEW8BAJ3ECaR2DqWCEC9tzM,5205
|
23
23
|
jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
|
-
jarvis/jarvis_code_agent/code_agent.py,sha256=
|
24
|
+
jarvis/jarvis_code_agent/code_agent.py,sha256=49B2079pBLlxMmUaAzToAa-SdwAwDqWCeBhCnaA3Quk,29106
|
25
25
|
jarvis/jarvis_code_agent/lint.py,sha256=LZPsfyZPMo7Wm7LN4osZocuNJwZx1ojacO3MlF870x8,4009
|
26
|
-
jarvis/jarvis_code_analysis/code_review.py,sha256=
|
26
|
+
jarvis/jarvis_code_analysis/code_review.py,sha256=GHNzJKLRxNIINGxM2dnDg7JV9bxG88bY2ZDh4qgqTV0,36023
|
27
27
|
jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
|
28
28
|
jarvis/jarvis_code_analysis/checklists/c_cpp.py,sha256=9t62bMqs6qTkFSio4SKkj88qyb5ZubWrw3MxJBQ4X1A,1317
|
29
29
|
jarvis/jarvis_code_analysis/checklists/csharp.py,sha256=ShPXrl2_UPAnGaCHAG2wLl90COG3HK2XCSr1UK2dxN4,2420
|
@@ -48,25 +48,27 @@ jarvis/jarvis_data/config_schema.json,sha256=xri_qfCrs2AJ-fPwvnV4oU7VJpIrUxddffQ
|
|
48
48
|
jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
|
49
49
|
jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
50
|
jarvis/jarvis_git_squash/main.py,sha256=6PECdAbTbrsJBRLK1pXBh4hdJ_LADh-XXSic1xJi97E,2255
|
51
|
-
jarvis/jarvis_git_utils/git_commiter.py,sha256=
|
51
|
+
jarvis/jarvis_git_utils/git_commiter.py,sha256=6mdYbC6bMMQt4q5Is65ylL2S-Mho7ZdAB_NgoNq-CKA,15894
|
52
52
|
jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
|
53
53
|
jarvis/jarvis_mcp/sse_mcp_client.py,sha256=neKrgFxwLDPWjVrl9uDt1ricNwbLZbv1ZEFh0IkmqZk,22656
|
54
54
|
jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=APYUksYKlMx7AVNODKOLrTkKZPnp4kqTQIYIuNDDKko,11286
|
55
55
|
jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=sP0KEsxVcXGht0eA7a_m-ECtZAk39s4PL9OUdm35x2Y,14467
|
56
|
+
jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
57
|
+
jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=TP-h3CCoQh9E3kdCDbrKORKneRZYnoaWm-JOZqDY1B0,25178
|
56
58
|
jarvis/jarvis_methodology/main.py,sha256=6QF8hH3vB6rfxim0fPR34uVPf41zVpb4ZLqrFN2qONg,10983
|
57
59
|
jarvis/jarvis_multi_agent/__init__.py,sha256=kCgtAX7VvliyEOQxIj2DvNjRAuh6bpNaOtDn60nzph4,6089
|
58
60
|
jarvis/jarvis_multi_agent/main.py,sha256=Wbarez48QxXexlKEOcRsoMbcQEOP5rv_DzGkNk0SfpY,1779
|
59
61
|
jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
|
60
62
|
jarvis/jarvis_platform/ai8.py,sha256=W3947AGMpk3RRBfsfZmf222sEP0VIGoSU0vPkgiVnl0,11683
|
61
|
-
jarvis/jarvis_platform/base.py,sha256=
|
63
|
+
jarvis/jarvis_platform/base.py,sha256=XfazAKRE9HnLCqoYaRG38HlEkCWHRWGcAftHsaMN-Tc,10179
|
62
64
|
jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
|
63
|
-
jarvis/jarvis_platform/kimi.py,sha256=
|
64
|
-
jarvis/jarvis_platform/openai.py,sha256=
|
65
|
+
jarvis/jarvis_platform/kimi.py,sha256=imbH575fazyDai5pxB6zbHmzwzS4Ig0RP7WVpni-ooI,15175
|
66
|
+
jarvis/jarvis_platform/openai.py,sha256=0YSeDGHRSPQP2haEzFARx_aZH_d_UZ-HSCsJLh2hW5k,8037
|
65
67
|
jarvis/jarvis_platform/registry.py,sha256=1bMy0YZUa8NLzuZlKfC4CBtpa0iniypTxUZk0Hv6g9Y,8415
|
66
|
-
jarvis/jarvis_platform/tongyi.py,sha256=
|
67
|
-
jarvis/jarvis_platform/yuanbao.py,sha256=
|
68
|
+
jarvis/jarvis_platform/tongyi.py,sha256=KXEMfylTU91kHisXSaiz8dxzNXK_d7XD9vjuw4yXuVs,22891
|
69
|
+
jarvis/jarvis_platform/yuanbao.py,sha256=32hjk1Ju1tqrMpF47JsSuaxej5K-gUPxjsDu9g0briY,23575
|
68
70
|
jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
|
-
jarvis/jarvis_platform_manager/main.py,sha256=
|
71
|
+
jarvis/jarvis_platform_manager/main.py,sha256=kN5X6Y6p9g0ZHvMY-uBYd0QxCaJ9uhyPRzo1SUk2kxM,20966
|
70
72
|
jarvis/jarvis_platform_manager/service.py,sha256=myJYGSUclCEiRTf3JKs4JndwhXJeQj7MQQy4i13jMt0,13767
|
71
73
|
jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
|
72
74
|
jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
|
@@ -86,7 +88,7 @@ jarvis/jarvis_stats/storage.py,sha256=MBQRxExIWdePXzY1EE8JAs1IEpMqamImpgjruqt_u9
|
|
86
88
|
jarvis/jarvis_stats/visualizer.py,sha256=ZIBmGELzs6c7qM01tQql1HF6eFKn6HDGVQfKXRUUIY0,8529
|
87
89
|
jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
90
|
jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
|
89
|
-
jarvis/jarvis_tools/base.py,sha256=
|
91
|
+
jarvis/jarvis_tools/base.py,sha256=kgDjh64HYr_ox_1FR7j52LsJ4B4W2wSqOejdtSBb2Fc,1413
|
90
92
|
jarvis/jarvis_tools/clear_memory.py,sha256=HQMK70UJhhDgPPHozGaTpYizzQblUzYRwPbvD1z3z6o,8730
|
91
93
|
jarvis/jarvis_tools/edit_file.py,sha256=hM345E9rxS-EkqCZpwwizL6fmPdTadtB798tEO5Ce3g,10417
|
92
94
|
jarvis/jarvis_tools/execute_script.py,sha256=gMarE5yCCSPU6Dp6HlcL2KT-2xCzR-1p-oQNlYOJK58,6157
|
@@ -109,17 +111,17 @@ jarvis/jarvis_utils/clipboard.py,sha256=WgbQIQR2sh7_5ZzeX04eT3zXx_mxQbKyJOZXgGX_
|
|
109
111
|
jarvis/jarvis_utils/config.py,sha256=RSmKvpfB9-cq5PVZPNSirc0qiNtNKw8AUpuz5RKK2vs,15378
|
110
112
|
jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
|
111
113
|
jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
|
112
|
-
jarvis/jarvis_utils/git_utils.py,sha256
|
113
|
-
jarvis/jarvis_utils/globals.py,sha256=
|
114
|
+
jarvis/jarvis_utils/git_utils.py,sha256=-WReOr8JvfUHHXC9GDvYP-xA49wmM4_TRa6b4_ZccFs,22568
|
115
|
+
jarvis/jarvis_utils/globals.py,sha256=aTrOHcCgPAeZFLFIWMAMiJCYlmr4XhdFZf5gZ745hnE,8900
|
114
116
|
jarvis/jarvis_utils/http.py,sha256=eRhV3-GYuWmQ0ogq9di9WMlQkFcVb1zGCrySnOgT1x0,4392
|
115
117
|
jarvis/jarvis_utils/input.py,sha256=pl8SanShzaEJZybvNHTjnFdKC2VxDPS1IwONtbwe-7U,12765
|
116
|
-
jarvis/jarvis_utils/methodology.py,sha256=
|
118
|
+
jarvis/jarvis_utils/methodology.py,sha256=IIMU17WVSunsWXsnXROd4G77LxgYs4xEC_xm_0CDkjw,12554
|
117
119
|
jarvis/jarvis_utils/output.py,sha256=QRLlKObQKT0KuRSeZRqYb7NlTQvsd1oZXZ41WxeWEuU,10894
|
118
120
|
jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
|
119
|
-
jarvis/jarvis_utils/utils.py,sha256=
|
120
|
-
jarvis_ai_assistant-0.3.
|
121
|
-
jarvis_ai_assistant-0.3.
|
122
|
-
jarvis_ai_assistant-0.3.
|
123
|
-
jarvis_ai_assistant-0.3.
|
124
|
-
jarvis_ai_assistant-0.3.
|
125
|
-
jarvis_ai_assistant-0.3.
|
121
|
+
jarvis/jarvis_utils/utils.py,sha256=ZyLL-X0EGi8fnofAdP5Qd99lYlP5U5qGY50elR4uS08,44291
|
122
|
+
jarvis_ai_assistant-0.3.4.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
123
|
+
jarvis_ai_assistant-0.3.4.dist-info/METADATA,sha256=rgbEn1DYq_u7mcMyId7rgP4s3oJJwdCc0IQdppTU2_4,18184
|
124
|
+
jarvis_ai_assistant-0.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
125
|
+
jarvis_ai_assistant-0.3.4.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
|
126
|
+
jarvis_ai_assistant-0.3.4.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
127
|
+
jarvis_ai_assistant-0.3.4.dist-info/RECORD,,
|
{jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/entry_points.txt
RENAMED
@@ -6,6 +6,7 @@ jarvis-code-agent = jarvis.jarvis_code_agent.code_agent:main
|
|
6
6
|
jarvis-code-review = jarvis.jarvis_code_analysis.code_review:main
|
7
7
|
jarvis-git-commit = jarvis.jarvis_git_utils.git_commiter:main
|
8
8
|
jarvis-git-squash = jarvis.jarvis_git_squash.main:main
|
9
|
+
jarvis-memory-organizer = jarvis.jarvis_memory_organizer.memory_organizer:main
|
9
10
|
jarvis-methodology = jarvis.jarvis_methodology.main:main
|
10
11
|
jarvis-multi-agent = jarvis.jarvis_multi_agent.main:main
|
11
12
|
jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
|
@@ -19,6 +20,7 @@ jgc = jarvis.jarvis_git_utils.git_commiter:main
|
|
19
20
|
jgs = jarvis.jarvis_git_squash.main:main
|
20
21
|
jm = jarvis.jarvis_methodology.main:main
|
21
22
|
jma = jarvis.jarvis_multi_agent.main:main
|
23
|
+
jmo = jarvis.jarvis_memory_organizer.memory_organizer:main
|
22
24
|
jpm = jarvis.jarvis_platform_manager.main:main
|
23
25
|
jrg = jarvis.jarvis_rag.cli:main
|
24
26
|
jss = jarvis.jarvis_smart_shell.main:main
|
File without changes
|
{jarvis_ai_assistant-0.3.2.dist-info → jarvis_ai_assistant-0.3.4.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
File without changes
|