jarvis-ai-assistant 0.1.218__py3-none-any.whl → 0.1.220__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 +37 -92
- jarvis/jarvis_agent/shell_input_handler.py +1 -1
- jarvis/jarvis_code_agent/code_agent.py +5 -3
- jarvis/jarvis_data/config_schema.json +30 -0
- jarvis/jarvis_git_squash/main.py +2 -1
- jarvis/jarvis_platform/human.py +2 -7
- jarvis/jarvis_platform/yuanbao.py +3 -1
- jarvis/jarvis_rag/__init__.py +11 -0
- jarvis/jarvis_rag/cache.py +87 -0
- jarvis/jarvis_rag/cli.py +297 -0
- jarvis/jarvis_rag/embedding_manager.py +109 -0
- jarvis/jarvis_rag/llm_interface.py +130 -0
- jarvis/jarvis_rag/query_rewriter.py +63 -0
- jarvis/jarvis_rag/rag_pipeline.py +177 -0
- jarvis/jarvis_rag/reranker.py +56 -0
- jarvis/jarvis_rag/retriever.py +201 -0
- jarvis/jarvis_tools/search_web.py +127 -11
- jarvis/jarvis_utils/config.py +71 -0
- jarvis/jarvis_utils/git_utils.py +27 -18
- jarvis/jarvis_utils/input.py +21 -10
- jarvis/jarvis_utils/utils.py +43 -20
- {jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/METADATA +87 -5
- {jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/RECORD +28 -19
- {jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/entry_points.txt +1 -0
- {jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/licenses/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/top_level.txt +0 -0
jarvis/jarvis_utils/git_utils.py
CHANGED
@@ -18,7 +18,7 @@ from typing import Any, Dict, List, Set, Tuple
|
|
18
18
|
|
19
19
|
from jarvis.jarvis_utils.config import is_confirm_before_apply_patch
|
20
20
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
21
|
-
from jarvis.jarvis_utils.
|
21
|
+
from jarvis.jarvis_utils.input import user_confirm
|
22
22
|
|
23
23
|
|
24
24
|
def find_git_root_and_cd(start_dir: str = ".") -> str:
|
@@ -408,48 +408,51 @@ def check_and_update_git_repo(repo_path: str) -> bool:
|
|
408
408
|
f"Jarvis已更新到tag {remote_tag_result.stdout.strip()}",
|
409
409
|
OutputType.SUCCESS,
|
410
410
|
)
|
411
|
-
|
411
|
+
|
412
412
|
# 执行pip安装更新代码
|
413
413
|
try:
|
414
414
|
PrettyOutput.print("正在安装更新后的代码...", OutputType.INFO)
|
415
|
-
|
415
|
+
|
416
416
|
# 检查是否在虚拟环境中
|
417
|
-
in_venv = hasattr(sys,
|
418
|
-
hasattr(sys,
|
417
|
+
in_venv = hasattr(sys, "real_prefix") or (
|
418
|
+
hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix
|
419
419
|
)
|
420
|
-
|
420
|
+
|
421
421
|
# 尝试普通安装
|
422
422
|
install_cmd = [sys.executable, "-m", "pip", "install", "-e", "."]
|
423
423
|
result = subprocess.run(
|
424
|
-
install_cmd,
|
425
|
-
cwd=git_root,
|
426
|
-
capture_output=True,
|
427
|
-
text=True
|
424
|
+
install_cmd, cwd=git_root, capture_output=True, text=True
|
428
425
|
)
|
429
|
-
|
426
|
+
|
430
427
|
if result.returncode == 0:
|
431
428
|
PrettyOutput.print("代码更新安装成功", OutputType.SUCCESS)
|
432
429
|
return True
|
433
|
-
|
430
|
+
|
434
431
|
# 处理权限错误
|
435
432
|
error_msg = result.stderr.strip()
|
436
|
-
if not in_venv and (
|
437
|
-
|
433
|
+
if not in_venv and (
|
434
|
+
"Permission denied" in error_msg or "not writeable" in error_msg
|
435
|
+
):
|
436
|
+
if user_confirm(
|
437
|
+
"检测到权限问题,是否尝试用户级安装(--user)?", True
|
438
|
+
):
|
438
439
|
user_result = subprocess.run(
|
439
440
|
install_cmd + ["--user"],
|
440
441
|
cwd=git_root,
|
441
442
|
capture_output=True,
|
442
|
-
text=True
|
443
|
+
text=True,
|
443
444
|
)
|
444
445
|
if user_result.returncode == 0:
|
445
446
|
PrettyOutput.print("用户级代码安装成功", OutputType.SUCCESS)
|
446
447
|
return True
|
447
448
|
error_msg = user_result.stderr.strip()
|
448
|
-
|
449
|
+
|
449
450
|
PrettyOutput.print(f"代码安装失败: {error_msg}", OutputType.ERROR)
|
450
451
|
return False
|
451
452
|
except Exception as e:
|
452
|
-
PrettyOutput.print(
|
453
|
+
PrettyOutput.print(
|
454
|
+
f"安装过程中发生意外错误: {str(e)}", OutputType.ERROR
|
455
|
+
)
|
453
456
|
return False
|
454
457
|
return False
|
455
458
|
except Exception as e:
|
@@ -522,7 +525,13 @@ def get_recent_commits_with_files() -> List[Dict[str, Any]]:
|
|
522
525
|
|
523
526
|
# 获取当前用户最近5次提交的基本信息
|
524
527
|
result = subprocess.run(
|
525
|
-
[
|
528
|
+
[
|
529
|
+
"git",
|
530
|
+
"log",
|
531
|
+
"-5",
|
532
|
+
"--author=" + current_author,
|
533
|
+
"--pretty=format:%H%n%s%n%an%n%ad",
|
534
|
+
],
|
526
535
|
capture_output=True,
|
527
536
|
text=True,
|
528
537
|
)
|
jarvis/jarvis_utils/input.py
CHANGED
@@ -26,6 +26,7 @@ from prompt_toolkit.styles import Style as PromptStyle # type: ignore
|
|
26
26
|
from jarvis.jarvis_utils.config import get_replace_map
|
27
27
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
28
28
|
from jarvis.jarvis_utils.tag import ot
|
29
|
+
from jarvis.jarvis_utils.utils import copy_to_clipboard
|
29
30
|
|
30
31
|
|
31
32
|
def get_single_line_input(tip: str) -> str:
|
@@ -179,6 +180,24 @@ class FileCompleter(Completer):
|
|
179
180
|
return tag
|
180
181
|
|
181
182
|
|
183
|
+
def user_confirm(tip: str, default: bool = True) -> bool:
|
184
|
+
"""提示用户确认是/否问题
|
185
|
+
|
186
|
+
参数:
|
187
|
+
tip: 显示给用户的消息
|
188
|
+
default: 用户直接回车时的默认响应
|
189
|
+
|
190
|
+
返回:
|
191
|
+
bool: 用户确认返回True,否则返回False
|
192
|
+
"""
|
193
|
+
try:
|
194
|
+
suffix = "[Y/n]" if default else "[y/N]"
|
195
|
+
ret = get_single_line_input(f"{tip} {suffix}: ")
|
196
|
+
return default if ret == "" else ret.lower() == "y"
|
197
|
+
except KeyboardInterrupt:
|
198
|
+
return False
|
199
|
+
|
200
|
+
|
182
201
|
def get_multiline_input(tip: str) -> str:
|
183
202
|
"""
|
184
203
|
获取带有增强补全和确认功能的多行输入。
|
@@ -217,19 +236,11 @@ def get_multiline_input(tip: str) -> str:
|
|
217
236
|
def _(event):
|
218
237
|
"""处理Ctrl+O以复制最后一条消息到剪贴板。"""
|
219
238
|
from jarvis.jarvis_utils.globals import get_last_message
|
220
|
-
import subprocess
|
221
239
|
|
222
240
|
last_msg = get_last_message()
|
223
241
|
if last_msg:
|
224
|
-
|
225
|
-
|
226
|
-
subprocess.run(
|
227
|
-
["xsel", "-b", "-i"], input=last_msg.encode("utf-8"), check=True
|
228
|
-
)
|
229
|
-
print(last_msg)
|
230
|
-
PrettyOutput.print("已将最后一条消息复制到剪贴板", OutputType.INFO)
|
231
|
-
except subprocess.CalledProcessError as e:
|
232
|
-
PrettyOutput.print(f"复制到剪贴板失败: {e}", OutputType.ERROR)
|
242
|
+
print(f"{last_msg}")
|
243
|
+
copy_to_clipboard(last_msg)
|
233
244
|
else:
|
234
245
|
PrettyOutput.print("没有可复制的消息", OutputType.INFO)
|
235
246
|
|
jarvis/jarvis_utils/utils.py
CHANGED
@@ -5,7 +5,6 @@ import os
|
|
5
5
|
import signal
|
6
6
|
import subprocess
|
7
7
|
import sys
|
8
|
-
import tarfile
|
9
8
|
import time
|
10
9
|
from pathlib import Path
|
11
10
|
from typing import Any, Callable, Dict, Optional
|
@@ -20,7 +19,6 @@ from jarvis.jarvis_utils.config import (
|
|
20
19
|
)
|
21
20
|
from jarvis.jarvis_utils.embedding import get_context_token_count
|
22
21
|
from jarvis.jarvis_utils.globals import get_in_chat, get_interrupt, set_interrupt
|
23
|
-
from jarvis.jarvis_utils.input import get_single_line_input
|
24
22
|
from jarvis.jarvis_utils.output import OutputType, PrettyOutput
|
25
23
|
|
26
24
|
g_config_file = None
|
@@ -371,24 +369,6 @@ def get_file_md5(filepath: str) -> str:
|
|
371
369
|
return hashlib.md5(open(filepath, "rb").read(100 * 1024 * 1024)).hexdigest()
|
372
370
|
|
373
371
|
|
374
|
-
def user_confirm(tip: str, default: bool = True) -> bool:
|
375
|
-
"""提示用户确认是/否问题
|
376
|
-
|
377
|
-
参数:
|
378
|
-
tip: 显示给用户的消息
|
379
|
-
default: 用户直接回车时的默认响应
|
380
|
-
|
381
|
-
返回:
|
382
|
-
bool: 用户确认返回True,否则返回False
|
383
|
-
"""
|
384
|
-
try:
|
385
|
-
suffix = "[Y/n]" if default else "[y/N]"
|
386
|
-
ret = get_single_line_input(f"{tip} {suffix}: ")
|
387
|
-
return default if ret == "" else ret.lower() == "y"
|
388
|
-
except KeyboardInterrupt:
|
389
|
-
return False
|
390
|
-
|
391
|
-
|
392
372
|
def get_file_line_count(filename: str) -> int:
|
393
373
|
"""计算文件中的行数
|
394
374
|
|
@@ -451,3 +431,46 @@ def get_loc_stats() -> str:
|
|
451
431
|
return result.stdout if result.returncode == 0 else ""
|
452
432
|
except FileNotFoundError:
|
453
433
|
return ""
|
434
|
+
|
435
|
+
|
436
|
+
def copy_to_clipboard(text: str) -> None:
|
437
|
+
"""将文本复制到剪贴板,依次尝试xsel和xclip (非阻塞)
|
438
|
+
|
439
|
+
参数:
|
440
|
+
text: 要复制的文本
|
441
|
+
"""
|
442
|
+
# 尝试使用 xsel
|
443
|
+
try:
|
444
|
+
process = subprocess.Popen(
|
445
|
+
["xsel", "-b", "-i"],
|
446
|
+
stdin=subprocess.PIPE,
|
447
|
+
stdout=subprocess.DEVNULL,
|
448
|
+
stderr=subprocess.DEVNULL,
|
449
|
+
)
|
450
|
+
if process.stdin:
|
451
|
+
process.stdin.write(text.encode("utf-8"))
|
452
|
+
process.stdin.close()
|
453
|
+
return
|
454
|
+
except FileNotFoundError:
|
455
|
+
pass # xsel 未安装,继续尝试下一个
|
456
|
+
except Exception as e:
|
457
|
+
PrettyOutput.print(f"使用xsel时出错: {e}", OutputType.WARNING)
|
458
|
+
|
459
|
+
# 尝试使用 xclip
|
460
|
+
try:
|
461
|
+
process = subprocess.Popen(
|
462
|
+
["xclip", "-selection", "clipboard"],
|
463
|
+
stdin=subprocess.PIPE,
|
464
|
+
stdout=subprocess.DEVNULL,
|
465
|
+
stderr=subprocess.DEVNULL,
|
466
|
+
)
|
467
|
+
if process.stdin:
|
468
|
+
process.stdin.write(text.encode("utf-8"))
|
469
|
+
process.stdin.close()
|
470
|
+
return
|
471
|
+
except FileNotFoundError:
|
472
|
+
PrettyOutput.print(
|
473
|
+
"xsel 和 xclip 均未安装, 无法复制到剪贴板", OutputType.WARNING
|
474
|
+
)
|
475
|
+
except Exception as e:
|
476
|
+
PrettyOutput.print(f"使用xclip时出错: {e}", OutputType.WARNING)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: jarvis-ai-assistant
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.220
|
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
|
@@ -33,11 +33,11 @@ Classifier: Intended Audience :: Developers
|
|
33
33
|
Classifier: License :: OSI Approved :: MIT License
|
34
34
|
Classifier: Operating System :: POSIX :: Linux
|
35
35
|
Classifier: Programming Language :: Python :: 3
|
36
|
-
Classifier: Programming Language :: Python :: 3.8
|
37
36
|
Classifier: Programming Language :: Python :: 3.9
|
38
37
|
Classifier: Programming Language :: Python :: 3.10
|
39
38
|
Classifier: Programming Language :: Python :: 3.11
|
40
|
-
|
39
|
+
Classifier: Programming Language :: Python :: 3.12
|
40
|
+
Requires-Python: >=3.9
|
41
41
|
Description-Content-Type: text/markdown
|
42
42
|
License-File: LICENSE
|
43
43
|
Requires-Dist: requests==2.32.3
|
@@ -56,6 +56,19 @@ Requires-Dist: tabulate==0.9.0
|
|
56
56
|
Requires-Dist: pyte==0.8.2
|
57
57
|
Requires-Dist: httpx>=0.28.1
|
58
58
|
Requires-Dist: pyyaml>=5.3.1
|
59
|
+
Requires-Dist: ddgs==9.0.2
|
60
|
+
Requires-Dist: beautifulsoup4==4.13.4
|
61
|
+
Requires-Dist: lxml==6.0.0
|
62
|
+
Requires-Dist: langchain
|
63
|
+
Requires-Dist: langchain-community
|
64
|
+
Requires-Dist: langchain-huggingface
|
65
|
+
Requires-Dist: chromadb
|
66
|
+
Requires-Dist: diskcache
|
67
|
+
Requires-Dist: sentence-transformers==2.7.0
|
68
|
+
Requires-Dist: torch>=2.6
|
69
|
+
Requires-Dist: typer
|
70
|
+
Requires-Dist: unstructured[md]
|
71
|
+
Requires-Dist: rank-bm25
|
59
72
|
Provides-Extra: dev
|
60
73
|
Requires-Dist: pytest; extra == "dev"
|
61
74
|
Requires-Dist: black; extra == "dev"
|
@@ -550,7 +563,76 @@ OPENAI_API_BASE: https://api.openai.com/v1
|
|
550
563
|
| search_web | 使用互联网搜索 |
|
551
564
|
| virtual_tty | 控制虚拟终端执行操作 |
|
552
565
|
|
553
|
-
### 2.
|
566
|
+
### 2. 🧠 RAG增强知识库 (`jarvis-rag`)
|
567
|
+
|
568
|
+
`jarvis-rag` 是一个强大的命令行工具,用于构建、管理和查询本地化的RAG(检索增强生成)知识库。它允许您将自己的文档(代码、笔记、文章等)作为外部知识源,让AI能够基于这些具体内容进行回答,而不是仅仅依赖其通用训练数据。
|
569
|
+
|
570
|
+
#### 核心功能
|
571
|
+
|
572
|
+
- **本地化知识库**:所有文档索引和数据都存储在本地,确保数据隐私和安全。
|
573
|
+
- **智能文档加载**:自动识别并加载多种文本文件,无需关心文件后缀。
|
574
|
+
- **灵活的查询**:支持使用项目默认的“思考”模型或动态指定任意已注册的LLM进行查询。
|
575
|
+
- **配置驱动**:通过 `config.toml` 或 `.jarvis/config.yaml` 进行集中配置。
|
576
|
+
|
577
|
+
#### 子命令说明
|
578
|
+
|
579
|
+
##### 2.1 添加文档到知识库 (`add`)
|
580
|
+
|
581
|
+
此命令用于将文件、目录或符合通配符模式的文档添加到知识库中。
|
582
|
+
|
583
|
+
```bash
|
584
|
+
# 基本用法
|
585
|
+
jarvis-rag add <文件路径/目录路径/通配符模式>...
|
586
|
+
|
587
|
+
# 示例
|
588
|
+
# 1. 添加单个文件
|
589
|
+
jarvis-rag add ./docs/my_document.md
|
590
|
+
|
591
|
+
# 2. 添加整个目录(将递归扫描所有文本文件)
|
592
|
+
jarvis-rag add ./src/
|
593
|
+
|
594
|
+
# 3. 使用通配符添加所有Python文件
|
595
|
+
jarvis-rag add 'src/**/*.py'
|
596
|
+
|
597
|
+
# 4. 混合添加
|
598
|
+
jarvis-rag add README.md ./docs/ 'src/jarvis/jarvis_rag/*.py'
|
599
|
+
```
|
600
|
+
|
601
|
+
**参数与选项:**
|
602
|
+
|
603
|
+
| 参数/选项 | 描述 |
|
604
|
+
|---|---|
|
605
|
+
| `paths` | **[必需]** 一个或多个文件路径、目录路径或用引号包裹的通配符模式。 |
|
606
|
+
| `--collection` | 指定知识库的集合名称(默认为 `jarvis_rag_collection`)。 |
|
607
|
+
| `--embedding-mode` | 覆盖全局配置,强制使用特定嵌入模式 (`performance` 或 `accuracy`)。 |
|
608
|
+
| `--db-path` | 覆盖全局配置,指定向量数据库的存储路径。 |
|
609
|
+
|
610
|
+
##### 2.2 查询知识库 (`query`)
|
611
|
+
|
612
|
+
此命令用于向已建立的知识库提出问题。
|
613
|
+
|
614
|
+
```bash
|
615
|
+
# 基本用法
|
616
|
+
jarvis-rag query "你的问题"
|
617
|
+
|
618
|
+
# 示例
|
619
|
+
# 1. 使用默认配置进行查询
|
620
|
+
jarvis-rag query "请总结一下我添加的文档的核心内容"
|
621
|
+
|
622
|
+
# 2. 指定使用Kimi模型进行查询
|
623
|
+
jarvis-rag query "代码中的 'PlatformRegistry' 类是做什么用的?" --platform kimi --model moonshot-v1-8k
|
624
|
+
```
|
625
|
+
|
626
|
+
**参数与选项:**
|
627
|
+
|
628
|
+
| 参数/选项 | 描述 |
|
629
|
+
|---|---|
|
630
|
+
| `question` | **[必需]** 你要向知识库提出的问题。 |
|
631
|
+
| `--collection` | 指定要查询的知识库集合名称。 |
|
632
|
+
| `--platform` | 指定一个平台名称来回答问题,覆盖默认的“思考”模型。 |
|
633
|
+
| `--model` | 指定一个模型名称来回答问题,需要与 `--platform` 同时使用。 |
|
634
|
+
|
635
|
+
### 3. 命令替换功能
|
554
636
|
支持使用特殊标记`'<tag>'`触发命令替换功能:
|
555
637
|
|
556
638
|
| 标记 | 功能 |
|
@@ -565,7 +647,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
|
|
565
647
|
| `'Check'` | 执行静态代码检查,包括错误和风格问题 |
|
566
648
|
| `'SaveSession'` | 保存当前会话并退出 |
|
567
649
|
|
568
|
-
###
|
650
|
+
### 4. 自定义替换配置
|
569
651
|
在`~/.jarvis/config.yaml`中添加:
|
570
652
|
```yaml
|
571
653
|
JARVIS_REPLACE_MAP:
|
@@ -1,13 +1,13 @@
|
|
1
|
-
jarvis/__init__.py,sha256=
|
2
|
-
jarvis/jarvis_agent/__init__.py,sha256=
|
1
|
+
jarvis/__init__.py,sha256=0ON7ERLL2QcDALpdR5gdhdn4WyjDQsqfLGVfq5qjuTU,75
|
2
|
+
jarvis/jarvis_agent/__init__.py,sha256=AfWzPW1TQbfpgTK8P5yIf1pvMfv1dut6iMumRag1B2w,32289
|
3
3
|
jarvis/jarvis_agent/builtin_input_handler.py,sha256=lcw-VBm8-CVcblxEbGU4dVD6IixgXTLz9uBrv9Y6p20,2710
|
4
4
|
jarvis/jarvis_agent/edit_file_handler.py,sha256=vKx26I4yOQwiQHNfkqMJ44Ybf90n37mojTcXNQQy-hw,17382
|
5
5
|
jarvis/jarvis_agent/jarvis.py,sha256=4LBtAh9_AuQcjvqBFInqY19eyEJVJtGH4py32yu8olc,6287
|
6
6
|
jarvis/jarvis_agent/main.py,sha256=c6bQe-8LXvW2-NBn9Rn_yPYdrwnkJ8KQaSFY2cPvkxw,2775
|
7
7
|
jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
|
8
|
-
jarvis/jarvis_agent/shell_input_handler.py,sha256=
|
8
|
+
jarvis/jarvis_agent/shell_input_handler.py,sha256=1IboqdxcJuoIqRpmDU10GugR9fWXUHyCEbVF4nIWbyo,1328
|
9
9
|
jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
-
jarvis/jarvis_code_agent/code_agent.py,sha256=
|
10
|
+
jarvis/jarvis_code_agent/code_agent.py,sha256=JDLEVxT9YIg8crPOjDiYg76kb6v8Igrapj0NBK6Tn6Y,18731
|
11
11
|
jarvis/jarvis_code_agent/lint.py,sha256=LZPsfyZPMo7Wm7LN4osZocuNJwZx1ojacO3MlF870x8,4009
|
12
12
|
jarvis/jarvis_code_analysis/code_review.py,sha256=uCCbGd4Y1RjDzhZoVE8JdN2avlwOfqimSDIrcM-KMew,30456
|
13
13
|
jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
|
@@ -30,12 +30,12 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUA
|
|
30
30
|
jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
|
31
31
|
jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
|
32
32
|
jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
|
33
|
-
jarvis/jarvis_data/config_schema.json,sha256=
|
33
|
+
jarvis/jarvis_data/config_schema.json,sha256=5pkd_5GBUvrsIPbVKb7dE-r67Zcv4EgNJGqKFhssHsI,6861
|
34
34
|
jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
|
35
35
|
jarvis/jarvis_git_details/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
36
|
jarvis/jarvis_git_details/main.py,sha256=MjpUHB4ErR_SKPBx1TLLK_XLkH427RTtsyVn6EUd88Y,8907
|
37
37
|
jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
jarvis/jarvis_git_squash/main.py,sha256=
|
38
|
+
jarvis/jarvis_git_squash/main.py,sha256=2nwX-Ghphn97Ua0SXPJIxix-rgm_Z9KRkrovjpSklUk,2311
|
39
39
|
jarvis/jarvis_git_utils/git_commiter.py,sha256=erZ3wNJuaEgHlKTaYv0UKargG_Yl9OnssTIcErEAdtw,12472
|
40
40
|
jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
|
41
41
|
jarvis/jarvis_mcp/sse_mcp_client.py,sha256=-3Qy1LyqgHswoc6YbadVRG3ias2op7lUp7Ne2-QUKBM,22474
|
@@ -47,16 +47,25 @@ jarvis/jarvis_multi_agent/main.py,sha256=h7VUSwoPrES0XTK8z5kt3XLX1mmcm8UEuFEHQOU
|
|
47
47
|
jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
|
48
48
|
jarvis/jarvis_platform/ai8.py,sha256=yi7xG8ld4Yrf7drz-uu_JT_XCGYRB0obhygt-jKik8o,10871
|
49
49
|
jarvis/jarvis_platform/base.py,sha256=-XegiAS8G_nzwsWPOVEAQ2iTxE33fxu5-TWV4c3Pz-g,8981
|
50
|
-
jarvis/jarvis_platform/human.py,sha256=
|
50
|
+
jarvis/jarvis_platform/human.py,sha256=cSN8Lqf0ts2_pPfS2_v7PaWxQKqcW_3bSmhRTHey7Qo,4674
|
51
51
|
jarvis/jarvis_platform/kimi.py,sha256=OEiRNlC4Ao3PrO_yiogEwgMtTobehoEm_X4CMGT-Aas,15315
|
52
52
|
jarvis/jarvis_platform/openai.py,sha256=ccGqsU2cFfd5324P7SH1tSmFABpvto8fytmxQGkr3BA,6412
|
53
53
|
jarvis/jarvis_platform/oyi.py,sha256=GvVooV8ScRqDb9QxJdINtdZwsx6PUIdo1-bt9k0hmqY,12604
|
54
54
|
jarvis/jarvis_platform/registry.py,sha256=1bMy0YZUa8NLzuZlKfC4CBtpa0iniypTxUZk0Hv6g9Y,8415
|
55
55
|
jarvis/jarvis_platform/tongyi.py,sha256=vSK1b4NhTeHbNhTgGRj4PANXptwCAwitczwK8VXwWwU,22921
|
56
|
-
jarvis/jarvis_platform/yuanbao.py,sha256=
|
56
|
+
jarvis/jarvis_platform/yuanbao.py,sha256=AIGQ0VOD_IAwWLnU9G19OG0XAbHpcJDzVWX2VazsyAI,23092
|
57
57
|
jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
58
|
jarvis/jarvis_platform_manager/main.py,sha256=LxlXSfIfmkYNcajOG_XvvlmwlSWSGb0DmbzIDSHHYOU,18330
|
59
59
|
jarvis/jarvis_platform_manager/service.py,sha256=hQGWQ2qAlzm_C_lNQDuLORQ4rmjR1P1-V3ou7l2Bv0s,13622
|
60
|
+
jarvis/jarvis_rag/__init__.py,sha256=_-uyfhhKbuwfIbyl0OOyq2QdTXu0LB9-ZhxyU8L27kQ,326
|
61
|
+
jarvis/jarvis_rag/cache.py,sha256=e4k3qJxgscqunvIsn5q7AUj_hiMqlvaO5Uznx9KuIbQ,2787
|
62
|
+
jarvis/jarvis_rag/cli.py,sha256=PvRtkbU7BETJ_tLpx6ODQVU3nejIcobB4GIZyi8sZDs,10109
|
63
|
+
jarvis/jarvis_rag/embedding_manager.py,sha256=ldHxm2E-EoHdmQk2oryH7nbtfwkpTE14-lAHkVbYPlM,4035
|
64
|
+
jarvis/jarvis_rag/llm_interface.py,sha256=I4yJOIWO4XdceZBcmRxDFZOj7yGKBNhdrxI7FO2KfRw,4576
|
65
|
+
jarvis/jarvis_rag/query_rewriter.py,sha256=bPYtFlTBai0V9bXSmW3zlJ2IbwUtuVbVniFG1G-l4vE,2246
|
66
|
+
jarvis/jarvis_rag/rag_pipeline.py,sha256=Bhhl6sponge9ylNHYFsRgu0vj-Jb7qwPXwC4sgpcZ_A,6582
|
67
|
+
jarvis/jarvis_rag/reranker.py,sha256=ZwrPxr0NxkGm7KIc5kpsj08AmyyES6TDmnw5AYm4m-Y,1829
|
68
|
+
jarvis/jarvis_rag/retriever.py,sha256=MNPETffQxwj7bOoQKveVhvnHKnCb_-XOQgZZITf66C8,7719
|
60
69
|
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
70
|
jarvis/jarvis_smart_shell/main.py,sha256=DbhRSP1sZfSIaTltP1YWVDSQOTYEsbiOnfO9kSYwcNs,6959
|
62
71
|
jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -71,26 +80,26 @@ jarvis/jarvis_tools/read_code.py,sha256=EnI-R-5HyIQYhMD391nZWXHIuHHBF-OJIRE0QpLc
|
|
71
80
|
jarvis/jarvis_tools/read_webpage.py,sha256=NmDUboVZd4CGHBPRFK6dp3uqVhuGopW1bOi3TcaLDF4,2092
|
72
81
|
jarvis/jarvis_tools/registry.py,sha256=0SdgBi-b1qnd3QX0VvQy7UVU7Pq9BZGYLiAe7t0DjpQ,25690
|
73
82
|
jarvis/jarvis_tools/rewrite_file.py,sha256=eG_WKg6cVAXmuGwUqlWkcuyay5S8DOzEi8vZCmX3O8w,7255
|
74
|
-
jarvis/jarvis_tools/search_web.py,sha256=
|
83
|
+
jarvis/jarvis_tools/search_web.py,sha256=DqBwNGFK3vZleZ7_4Go3q27DzPCp4m0ZeEi1N7UEFc4,5363
|
75
84
|
jarvis/jarvis_tools/virtual_tty.py,sha256=KKr3jpvQWWMPr2o40hlmN6fuXJCN8H4_ma5QU40Citc,16089
|
76
85
|
jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
86
|
jarvis/jarvis_tools/cli/main.py,sha256=Mg6TQDxMdzB1Ua1UrZ2EE-uQWsbaeojWaEGHJp2HimA,6375
|
78
87
|
jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
|
79
88
|
jarvis/jarvis_utils/builtin_replace_map.py,sha256=EI8JnHqr-ZpAhpwocTu48DhHUMHNd8tNUpDNYI47OLE,1717
|
80
|
-
jarvis/jarvis_utils/config.py,sha256=
|
89
|
+
jarvis/jarvis_utils/config.py,sha256=9rPmyggYBeDUoLv7IE8mPeXjn50n_VqUt5NXQtHeMUQ,8357
|
81
90
|
jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
|
82
91
|
jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
|
83
|
-
jarvis/jarvis_utils/git_utils.py,sha256=
|
92
|
+
jarvis/jarvis_utils/git_utils.py,sha256=4mNbEgV0icMnB1UL1RWhE9Nxik3mwam2qcGMpd1ODJM,21707
|
84
93
|
jarvis/jarvis_utils/globals.py,sha256=WzZh_acNfHJj1LDulhyLQ7cojksBy0gdrITe0vH1XA0,3901
|
85
94
|
jarvis/jarvis_utils/http.py,sha256=Uqt1kcz0HWnAfXHHi1fNGwLb2lcVUqpbrG2Uk_-kcIU,4882
|
86
|
-
jarvis/jarvis_utils/input.py,sha256
|
95
|
+
jarvis/jarvis_utils/input.py,sha256=V2w3xV0MO73c4Y4XY_yy9jVNg7MmN76FmAnpKRiJUog,9160
|
87
96
|
jarvis/jarvis_utils/methodology.py,sha256=-cvM6pwgJK7BXCYg2uVjIId_j3v5RUh2z2PBcK_2vj4,8155
|
88
97
|
jarvis/jarvis_utils/output.py,sha256=PRCgudPOB8gMEP3u-g0FGD2c6tBgJhLXUMqNPglfjV8,10813
|
89
98
|
jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
|
90
|
-
jarvis/jarvis_utils/utils.py,sha256=
|
91
|
-
jarvis_ai_assistant-0.1.
|
92
|
-
jarvis_ai_assistant-0.1.
|
93
|
-
jarvis_ai_assistant-0.1.
|
94
|
-
jarvis_ai_assistant-0.1.
|
95
|
-
jarvis_ai_assistant-0.1.
|
96
|
-
jarvis_ai_assistant-0.1.
|
99
|
+
jarvis/jarvis_utils/utils.py,sha256=ojupkZQfFIE6ysTyCy0jUdePucpwpvZlZJSXkGsdyQE,15263
|
100
|
+
jarvis_ai_assistant-0.1.220.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
101
|
+
jarvis_ai_assistant-0.1.220.dist-info/METADATA,sha256=fCmHnmrvl-GuwHSUer0rox7iZNdRjJ-eXqV8lLPC5R4,22619
|
102
|
+
jarvis_ai_assistant-0.1.220.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
103
|
+
jarvis_ai_assistant-0.1.220.dist-info/entry_points.txt,sha256=L-9EE1kKoCdzxY9iMT7dGgBad-ytc3rso4if8C19SQU,915
|
104
|
+
jarvis_ai_assistant-0.1.220.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
105
|
+
jarvis_ai_assistant-0.1.220.dist-info/RECORD,,
|
{jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/entry_points.txt
RENAMED
@@ -9,6 +9,7 @@ jarvis-git-squash = jarvis.jarvis_git_squash.main:main
|
|
9
9
|
jarvis-methodology = jarvis.jarvis_methodology.main:main
|
10
10
|
jarvis-multi-agent = jarvis.jarvis_multi_agent.main:main
|
11
11
|
jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
|
12
|
+
jarvis-rag = jarvis.jarvis_rag.cli:main
|
12
13
|
jarvis-smart-shell = jarvis.jarvis_smart_shell.main:main
|
13
14
|
jarvis-tool = jarvis.jarvis_tools.cli.main:main
|
14
15
|
jca = jarvis.jarvis_code_agent.code_agent:main
|
File without changes
|
{jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
{jarvis_ai_assistant-0.1.218.dist-info → jarvis_ai_assistant-0.1.220.dist-info}/top_level.txt
RENAMED
File without changes
|