jarvis-ai-assistant 0.1.219__py3-none-any.whl → 0.1.221__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.
Files changed (28) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +98 -440
  3. jarvis/jarvis_agent/edit_file_handler.py +32 -185
  4. jarvis/jarvis_agent/prompt_builder.py +57 -0
  5. jarvis/jarvis_agent/prompts.py +188 -0
  6. jarvis/jarvis_agent/protocols.py +30 -0
  7. jarvis/jarvis_agent/session_manager.py +84 -0
  8. jarvis/jarvis_agent/tool_executor.py +49 -0
  9. jarvis/jarvis_code_agent/code_agent.py +4 -4
  10. jarvis/jarvis_data/config_schema.json +20 -0
  11. jarvis/jarvis_platform/yuanbao.py +3 -1
  12. jarvis/jarvis_rag/__init__.py +11 -0
  13. jarvis/jarvis_rag/cache.py +85 -0
  14. jarvis/jarvis_rag/cli.py +386 -0
  15. jarvis/jarvis_rag/embedding_manager.py +95 -0
  16. jarvis/jarvis_rag/llm_interface.py +128 -0
  17. jarvis/jarvis_rag/query_rewriter.py +62 -0
  18. jarvis/jarvis_rag/rag_pipeline.py +174 -0
  19. jarvis/jarvis_rag/reranker.py +56 -0
  20. jarvis/jarvis_rag/retriever.py +201 -0
  21. jarvis/jarvis_tools/edit_file.py +11 -36
  22. jarvis/jarvis_utils/config.py +56 -0
  23. {jarvis_ai_assistant-0.1.219.dist-info → jarvis_ai_assistant-0.1.221.dist-info}/METADATA +90 -8
  24. {jarvis_ai_assistant-0.1.219.dist-info → jarvis_ai_assistant-0.1.221.dist-info}/RECORD +28 -14
  25. {jarvis_ai_assistant-0.1.219.dist-info → jarvis_ai_assistant-0.1.221.dist-info}/entry_points.txt +1 -0
  26. {jarvis_ai_assistant-0.1.219.dist-info → jarvis_ai_assistant-0.1.221.dist-info}/WHEEL +0 -0
  27. {jarvis_ai_assistant-0.1.219.dist-info → jarvis_ai_assistant-0.1.221.dist-info}/licenses/LICENSE +0 -0
  28. {jarvis_ai_assistant-0.1.219.dist-info → jarvis_ai_assistant-0.1.221.dist-info}/top_level.txt +0 -0
@@ -7,15 +7,12 @@
7
7
  2. 支持单个文件的编辑操作,包括创建新文件
8
8
  3. 实现原子操作:所有修改要么全部成功,要么全部回滚
9
9
  4. 严格匹配控制:每个搜索文本必须且只能匹配一次
10
- 5. 支持两种编辑模式:快速编辑(fast_edit)和AI辅助编辑(slow_edit)
11
10
 
12
11
  核心特性:
13
12
  - 支持不存在的文件和空文件处理
14
13
  - 自动创建所需目录结构
15
14
  - 完善的错误处理和回滚机制
16
15
  - 严格的格式保持要求
17
- - 支持大文件处理(自动上传到模型平台)
18
- - 提供3次重试机制确保操作可靠性
19
16
  """
20
17
  from typing import Any, Dict
21
18
 
@@ -134,7 +131,6 @@ class FileSearchReplaceTool:
134
131
  for file_info in args["files"]:
135
132
  file_path = os.path.abspath(file_info["path"])
136
133
  changes = file_info["changes"]
137
- agent = args.get("agent", None)
138
134
 
139
135
  # 创建已处理文件变量,用于失败时回滚
140
136
  original_content = None
@@ -152,44 +148,23 @@ class FileSearchReplaceTool:
152
148
  content = f.read()
153
149
  original_content = content
154
150
 
155
- if file_exists and agent:
156
- files = agent.get_user_data("files")
157
- if not files or file_path not in files:
158
- file_results.append(
159
- {
160
- "file": file_path,
161
- "success": False,
162
- "stdout": "",
163
- "stderr": f"请先读取文件 {file_path} 的内容后再编辑",
164
- }
165
- )
166
- continue
167
-
168
151
  print(f"⚙️ 正在处理文件 {file_path}...")
169
- # 首先尝试fast_edit模式
170
152
  success, temp_content = EditFileHandler._fast_edit(
171
153
  file_path, changes
172
154
  )
173
155
  if not success:
174
- # 如果fast_edit失败,尝试slow_edit模式
175
- success, temp_content = EditFileHandler._slow_edit(
176
- file_path, changes, agent
156
+ print(f"❌ 文件 {file_path} 处理失败")
157
+ file_results.append(
158
+ {
159
+ "file": file_path,
160
+ "success": False,
161
+ "stdout": "",
162
+ "stderr": temp_content,
163
+ }
177
164
  )
178
- if not success:
179
- print(f"❌ 文件 {file_path} 处理失败")
180
- file_results.append(
181
- {
182
- "file": file_path,
183
- "success": False,
184
- "stdout": "",
185
- "stderr": temp_content,
186
- }
187
- )
188
- continue
189
- else:
190
- print(f"✅ 文件 {file_path} 内容生成完成")
191
- else:
192
- print(f"✅ 文件 {file_path} 内容生成完成")
165
+ continue
166
+
167
+ print(f"✅ 文件 {file_path} 内容生成完成")
193
168
 
194
169
  # 只有当所有替换操作都成功时,才写回文件
195
170
  if success and (
@@ -3,6 +3,7 @@ import os
3
3
  from functools import lru_cache
4
4
  from typing import Any, Dict, List
5
5
 
6
+ import torch
6
7
  import yaml # type: ignore
7
8
 
8
9
  from jarvis.jarvis_utils.builtin_replace_map import BUILTIN_REPLACE_MAP
@@ -248,3 +249,58 @@ def get_mcp_config() -> List[Dict[str, Any]]:
248
249
  List[Dict[str, Any]]: MCP配置项列表,如果未配置则返回空列表
249
250
  """
250
251
  return GLOBAL_CONFIG_DATA.get("JARVIS_MCP", [])
252
+
253
+
254
+ # ==============================================================================
255
+ # RAG Framework Configuration
256
+ # ==============================================================================
257
+
258
+
259
+ def get_rag_config() -> Dict[str, Any]:
260
+ """
261
+ 获取RAG框架的配置。
262
+
263
+ 返回:
264
+ Dict[str, Any]: RAG配置字典
265
+ """
266
+ return GLOBAL_CONFIG_DATA.get("JARVIS_RAG", {})
267
+
268
+
269
+ def get_rag_embedding_model() -> str:
270
+ """
271
+ 获取RAG嵌入模型的名称。
272
+
273
+ 返回:
274
+ str: 嵌入模型的名称
275
+ """
276
+ return get_rag_config().get("embedding_model", "BAAI/bge-base-zh-v1.5")
277
+
278
+
279
+ def get_rag_rerank_model() -> str:
280
+ """
281
+ 获取RAG rerank模型的名称。
282
+
283
+ 返回:
284
+ str: rerank模型的名称
285
+ """
286
+ return get_rag_config().get("rerank_model", "BAAI/bge-reranker-base")
287
+
288
+
289
+ def get_rag_embedding_cache_path() -> str:
290
+ """
291
+ 获取RAG嵌入缓存的路径。
292
+
293
+ 返回:
294
+ str: 缓存路径
295
+ """
296
+ return ".jarvis/rag/embeddings"
297
+
298
+
299
+ def get_rag_vector_db_path() -> str:
300
+ """
301
+ 获取RAG向量数据库的路径。
302
+
303
+ 返回:
304
+ str: 数据库路径
305
+ """
306
+ return ".jarvis/rag/vectordb"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.219
3
+ Version: 0.1.221
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
- Requires-Python: >=3.8
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,9 +56,9 @@ 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==6.1.8
60
- Requires-Dist: beautifulsoup4==4.12.3
61
- Requires-Dist: lxml==5.2.2
59
+ Requires-Dist: ddgs==9.0.2
60
+ Requires-Dist: beautifulsoup4==4.13.4
61
+ Requires-Dist: lxml==6.0.0
62
62
  Provides-Extra: dev
63
63
  Requires-Dist: pytest; extra == "dev"
64
64
  Requires-Dist: black; extra == "dev"
@@ -66,6 +66,17 @@ Requires-Dist: isort; extra == "dev"
66
66
  Requires-Dist: mypy; extra == "dev"
67
67
  Requires-Dist: build; extra == "dev"
68
68
  Requires-Dist: twine; extra == "dev"
69
+ Provides-Extra: rag
70
+ Requires-Dist: langchain; extra == "rag"
71
+ Requires-Dist: langchain-community; extra == "rag"
72
+ Requires-Dist: langchain-huggingface; extra == "rag"
73
+ Requires-Dist: chromadb; extra == "rag"
74
+ Requires-Dist: diskcache; extra == "rag"
75
+ Requires-Dist: sentence-transformers==2.7.0; extra == "rag"
76
+ Requires-Dist: torch>=2.6; extra == "rag"
77
+ Requires-Dist: typer; extra == "rag"
78
+ Requires-Dist: unstructured[md]; extra == "rag"
79
+ Requires-Dist: rank-bm25; extra == "rag"
69
80
  Dynamic: author
70
81
  Dynamic: home-page
71
82
  Dynamic: license-file
@@ -536,6 +547,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
536
547
  | `JARVIS_USE_METHODOLOGY` | true | 是否启用方法论功能 |
537
548
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
538
549
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
550
+ | `JARVIS_RAG` | `{"embedding_model": "BAAI/bge-base-zh-v1.5"}` | RAG框架的配置 |
539
551
 
540
552
  ## 🛠️ 工具说明 <a id="tools"></a>
541
553
 
@@ -553,7 +565,77 @@ OPENAI_API_BASE: https://api.openai.com/v1
553
565
  | search_web | 使用互联网搜索 |
554
566
  | virtual_tty | 控制虚拟终端执行操作 |
555
567
 
556
- ### 2. 命令替换功能
568
+ ### 2. 🧠 RAG增强知识库 (`jarvis-rag`)
569
+
570
+ `jarvis-rag` 是一个强大的命令行工具,用于构建、管理和查询本地化的RAG(检索增强生成)知识库。它允许您将自己的文档(代码、笔记、文章等)作为外部知识源,让AI能够基于这些具体内容进行回答,而不是仅仅依赖其通用训练数据。
571
+
572
+ #### 核心功能
573
+
574
+ - **本地化知识库**:所有文档索引和数据都存储在本地,确保数据隐私和安全。
575
+ - **智能文档加载**:自动识别并加载多种文本文件,无需关心文件后缀。
576
+ - **灵活的查询**:支持使用项目默认的“思考”模型或动态指定任意已注册的LLM进行查询。
577
+ - **配置驱动**:通过 `config.toml` 或 `.jarvis/config.yaml` 进行集中配置。
578
+
579
+ #### 子命令说明
580
+
581
+ ##### 2.1 添加文档到知识库 (`add`)
582
+
583
+ 此命令用于将文件、目录或符合通配符模式的文档添加到知识库中。
584
+
585
+ ```bash
586
+ # 基本用法
587
+ jarvis-rag add <文件路径/目录路径/通配符模式>...
588
+
589
+ # 示例
590
+ # 1. 添加单个文件
591
+ jarvis-rag add ./docs/my_document.md
592
+
593
+ # 2. 添加整个目录(将递归扫描所有文本文件)
594
+ jarvis-rag add ./src/
595
+
596
+ # 3. 使用通配符添加所有Python文件
597
+ jarvis-rag add 'src/**/*.py'
598
+
599
+ # 4. 混合添加
600
+ jarvis-rag add README.md ./docs/ 'src/jarvis/jarvis_rag/*.py'
601
+ ```
602
+
603
+ **参数与选项:**
604
+
605
+ | 参数/选项 | 描述 |
606
+ |---|---|
607
+ | `paths` | **[必需]** 一个或多个文件路径、目录路径或用引号包裹的通配符模式。 |
608
+ | `--collection` | 指定知识库的集合名称(默认为 `jarvis_rag_collection`)。 |
609
+ | `--embedding-model` | 覆盖全局配置,强制使用特定的嵌入模型名称。 |
610
+ | `--db-path` | 覆盖全局配置,指定向量数据库的存储路径。 |
611
+
612
+ ##### 2.2 查询知识库 (`query`)
613
+
614
+ 此命令用于向已建立的知识库提出问题。
615
+
616
+ ```bash
617
+ # 基本用法
618
+ jarvis-rag query "你的问题"
619
+
620
+ # 示例
621
+ # 1. 使用默认配置进行查询
622
+ jarvis-rag query "请总结一下我添加的文档的核心内容"
623
+
624
+ # 2. 指定使用Kimi模型进行查询
625
+ jarvis-rag query "代码中的 'PlatformRegistry' 类是做什么用的?" --platform kimi --model moonshot-v1-8k
626
+ ```
627
+
628
+ **参数与选项:**
629
+
630
+ | 参数/选项 | 描述 |
631
+ |---|---|
632
+ | `question` | **[必需]** 你要向知识库提出的问题。 |
633
+ | `--collection` | 指定要查询的知识库集合名称。 |
634
+ | `--platform` | 指定一个平台名称来回答问题,覆盖默认的“思考”模型。 |
635
+ | `--model` | 指定一个模型名称来回答问题,需要与 `--platform` 同时使用。 |
636
+ | `--embedding-model` | 覆盖全局配置,强制使用特定的嵌入模型名称。 |
637
+
638
+ ### 3. 命令替换功能
557
639
  支持使用特殊标记`'<tag>'`触发命令替换功能:
558
640
 
559
641
  | 标记 | 功能 |
@@ -568,7 +650,7 @@ OPENAI_API_BASE: https://api.openai.com/v1
568
650
  | `'Check'` | 执行静态代码检查,包括错误和风格问题 |
569
651
  | `'SaveSession'` | 保存当前会话并退出 |
570
652
 
571
- ### 3. 自定义替换配置
653
+ ### 4. 自定义替换配置
572
654
  在`~/.jarvis/config.yaml`中添加:
573
655
  ```yaml
574
656
  JARVIS_REPLACE_MAP:
@@ -1,13 +1,18 @@
1
- jarvis/__init__.py,sha256=x-8iFMYvuXxwrK7rGOft1XoFsZ5u3LFR6I6NWuFOq0s,75
2
- jarvis/jarvis_agent/__init__.py,sha256=9R4dx4Y-DJRNiRPhzp16ih3Jkkc6VIFmyWg_AloW6KU,33198
1
+ jarvis/__init__.py,sha256=TgbmsIAvNeODBETy0s6gdVjK6p08SbEz7rEqI5VYYmw,75
2
+ jarvis/jarvis_agent/__init__.py,sha256=gjN3tUhHMmX3oAaAyAid4pkCW2R3zDnWLwF_qqRnix4,21443
3
3
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=lcw-VBm8-CVcblxEbGU4dVD6IixgXTLz9uBrv9Y6p20,2710
4
- jarvis/jarvis_agent/edit_file_handler.py,sha256=vKx26I4yOQwiQHNfkqMJ44Ybf90n37mojTcXNQQy-hw,17382
4
+ jarvis/jarvis_agent/edit_file_handler.py,sha256=ml1o-BE2Ca1-ybPlKuhstLQYwdJag39o0_-PXTUvFaE,11646
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/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh2lC__p40,1705
9
+ jarvis/jarvis_agent/prompts.py,sha256=e8i-3kaGr96mlzL3UUhQUHFDfbJSoE4xiF9TDksNDm4,7720
10
+ jarvis/jarvis_agent/protocols.py,sha256=JWnJDikFEuwvFUv7uzXu0ggJ4O9K2FkMnfVCwIJ5REw,873
11
+ jarvis/jarvis_agent/session_manager.py,sha256=DnvI9rWkVmkyO1XfKZyo9lTn4ajg4ccwzEkoRHFPOJM,2925
8
12
  jarvis/jarvis_agent/shell_input_handler.py,sha256=1IboqdxcJuoIqRpmDU10GugR9fWXUHyCEbVF4nIWbyo,1328
13
+ jarvis/jarvis_agent/tool_executor.py,sha256=nIq-sPNgrtimtM-IHpN09cWmId8jDzWRdCFoRzXnnoo,1721
9
14
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- jarvis/jarvis_code_agent/code_agent.py,sha256=JDLEVxT9YIg8crPOjDiYg76kb6v8Igrapj0NBK6Tn6Y,18731
15
+ jarvis/jarvis_code_agent/code_agent.py,sha256=MnIQMuSpBM-0u8gmXthpRhPQGCBOmK7nK9OCpTwoq6c,18763
11
16
  jarvis/jarvis_code_agent/lint.py,sha256=LZPsfyZPMo7Wm7LN4osZocuNJwZx1ojacO3MlF870x8,4009
12
17
  jarvis/jarvis_code_analysis/code_review.py,sha256=uCCbGd4Y1RjDzhZoVE8JdN2avlwOfqimSDIrcM-KMew,30456
13
18
  jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
@@ -30,7 +35,7 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUA
30
35
  jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
31
36
  jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
32
37
  jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
33
- jarvis/jarvis_data/config_schema.json,sha256=BeaihTD2eYRZq65-tbmCIx7lBdS5U0V1FOQGIc6XCq0,5849
38
+ jarvis/jarvis_data/config_schema.json,sha256=RvK4XCVRGRVokguob_3-43BHRAyVFfb8tleU3QxLO1M,6520
34
39
  jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
35
40
  jarvis/jarvis_git_details/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
41
  jarvis/jarvis_git_details/main.py,sha256=MjpUHB4ErR_SKPBx1TLLK_XLkH427RTtsyVn6EUd88Y,8907
@@ -53,16 +58,25 @@ jarvis/jarvis_platform/openai.py,sha256=ccGqsU2cFfd5324P7SH1tSmFABpvto8fytmxQGkr
53
58
  jarvis/jarvis_platform/oyi.py,sha256=GvVooV8ScRqDb9QxJdINtdZwsx6PUIdo1-bt9k0hmqY,12604
54
59
  jarvis/jarvis_platform/registry.py,sha256=1bMy0YZUa8NLzuZlKfC4CBtpa0iniypTxUZk0Hv6g9Y,8415
55
60
  jarvis/jarvis_platform/tongyi.py,sha256=vSK1b4NhTeHbNhTgGRj4PANXptwCAwitczwK8VXwWwU,22921
56
- jarvis/jarvis_platform/yuanbao.py,sha256=W4yEsjkxnwi681UnAX0hV8vVPuNRmn6lRGZ3G-d74nw,23007
61
+ jarvis/jarvis_platform/yuanbao.py,sha256=AIGQ0VOD_IAwWLnU9G19OG0XAbHpcJDzVWX2VazsyAI,23092
57
62
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
63
  jarvis/jarvis_platform_manager/main.py,sha256=LxlXSfIfmkYNcajOG_XvvlmwlSWSGb0DmbzIDSHHYOU,18330
59
64
  jarvis/jarvis_platform_manager/service.py,sha256=hQGWQ2qAlzm_C_lNQDuLORQ4rmjR1P1-V3ou7l2Bv0s,13622
65
+ jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
66
+ jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
67
+ jarvis/jarvis_rag/cli.py,sha256=iR26y7ZLj4HECl3zveY4fxwn-mhMnQ__IxHQo2NAwD0,13143
68
+ jarvis/jarvis_rag/embedding_manager.py,sha256=BoV6Vr_3F4zbjBAOQ1FdEBnJXGPwBkv1IEkdRP9CgFw,3338
69
+ jarvis/jarvis_rag/llm_interface.py,sha256=44Uu04v2_MxweLmMdR0YWbnxlfchAPAzLBEQmJdLjeU,4368
70
+ jarvis/jarvis_rag/query_rewriter.py,sha256=JM1Q23zZISze77BleRgTPgNAtLUtLAXkEo3G70kaTK8,2190
71
+ jarvis/jarvis_rag/rag_pipeline.py,sha256=9yeNRv6qOS2zo7o0b0u3gFmiW_XSivesvPKVJ8e5DlE,6209
72
+ jarvis/jarvis_rag/reranker.py,sha256=wYUDIMHQL8_tFcQ7GFn_zYHTE1AbKk4a9TRoN2lKtA8,1767
73
+ jarvis/jarvis_rag/retriever.py,sha256=B6oq1SAh7QAE9G5o0sXyNtLjFodukd8p-Was2QJZXg0,7637
60
74
  jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
75
  jarvis/jarvis_smart_shell/main.py,sha256=DbhRSP1sZfSIaTltP1YWVDSQOTYEsbiOnfO9kSYwcNs,6959
62
76
  jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
77
  jarvis/jarvis_tools/ask_user.py,sha256=iz2PTGx66IRL8e4DOpj3XhEGHFWeKQl0ggEOl_zOwQ0,1972
64
78
  jarvis/jarvis_tools/base.py,sha256=tFVmK6ppsImW2BzHZmrNmMRiOJdW-4aZP6Me3VxdYcA,1194
65
- jarvis/jarvis_tools/edit_file.py,sha256=AG-u6oT_r9FBu9wIr272uLhRWYllombxseSQXtU3bcM,11757
79
+ jarvis/jarvis_tools/edit_file.py,sha256=hM345E9rxS-EkqCZpwwizL6fmPdTadtB798tEO5Ce3g,10417
66
80
  jarvis/jarvis_tools/execute_script.py,sha256=gMarE5yCCSPU6Dp6HlcL2KT-2xCzR-1p-oQNlYOJK58,6157
67
81
  jarvis/jarvis_tools/file_analyzer.py,sha256=aVe1jBSp0YmlypihxrGADJpYrU_7CxDETxGUNySuSlI,4044
68
82
  jarvis/jarvis_tools/generate_new_tool.py,sha256=2YAs8DC7fJnxOkjSmhmSAwqSpBlicVhYc06WZ8YVBls,7679
@@ -77,7 +91,7 @@ jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
77
91
  jarvis/jarvis_tools/cli/main.py,sha256=Mg6TQDxMdzB1Ua1UrZ2EE-uQWsbaeojWaEGHJp2HimA,6375
78
92
  jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
79
93
  jarvis/jarvis_utils/builtin_replace_map.py,sha256=EI8JnHqr-ZpAhpwocTu48DhHUMHNd8tNUpDNYI47OLE,1717
80
- jarvis/jarvis_utils/config.py,sha256=MO2-1z_7f3KkSrv7heGK1650Zb0SjnljO2hzLE2jA5c,6598
94
+ jarvis/jarvis_utils/config.py,sha256=h7H2CRix-A6-25al3EpudmipdSq1CiIoqM2Wp8rdgqU,7778
81
95
  jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
82
96
  jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
83
97
  jarvis/jarvis_utils/git_utils.py,sha256=4mNbEgV0icMnB1UL1RWhE9Nxik3mwam2qcGMpd1ODJM,21707
@@ -88,9 +102,9 @@ jarvis/jarvis_utils/methodology.py,sha256=-cvM6pwgJK7BXCYg2uVjIId_j3v5RUh2z2PBcK
88
102
  jarvis/jarvis_utils/output.py,sha256=PRCgudPOB8gMEP3u-g0FGD2c6tBgJhLXUMqNPglfjV8,10813
89
103
  jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
90
104
  jarvis/jarvis_utils/utils.py,sha256=ojupkZQfFIE6ysTyCy0jUdePucpwpvZlZJSXkGsdyQE,15263
91
- jarvis_ai_assistant-0.1.219.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
92
- jarvis_ai_assistant-0.1.219.dist-info/METADATA,sha256=Dn-M7q32tMW3ATjIl1ZhI42MDnBPsAkAytgwef8abzM,19706
93
- jarvis_ai_assistant-0.1.219.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
94
- jarvis_ai_assistant-0.1.219.dist-info/entry_points.txt,sha256=SF46ViTZcQVZEfbqzJDKKVc9TrN1x-P1mQ6wup7u2HY,875
95
- jarvis_ai_assistant-0.1.219.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
96
- jarvis_ai_assistant-0.1.219.dist-info/RECORD,,
105
+ jarvis_ai_assistant-0.1.221.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
106
+ jarvis_ai_assistant-0.1.221.dist-info/METADATA,sha256=az-ngvUTXWE8ZtSHG9mxhe69Dn7PIrmpcCi6QdloSGg,22955
107
+ jarvis_ai_assistant-0.1.221.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
108
+ jarvis_ai_assistant-0.1.221.dist-info/entry_points.txt,sha256=L-9EE1kKoCdzxY9iMT7dGgBad-ytc3rso4if8C19SQU,915
109
+ jarvis_ai_assistant-0.1.221.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
110
+ jarvis_ai_assistant-0.1.221.dist-info/RECORD,,
@@ -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