jarvis-ai-assistant 0.3.22__py3-none-any.whl → 0.3.24__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 (40) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +96 -13
  3. jarvis/jarvis_agent/agent_manager.py +0 -3
  4. jarvis/jarvis_agent/jarvis.py +2 -17
  5. jarvis/jarvis_agent/main.py +2 -8
  6. jarvis/jarvis_code_agent/code_agent.py +7 -14
  7. jarvis/jarvis_code_analysis/code_review.py +12 -40
  8. jarvis/jarvis_data/config_schema.json +4 -18
  9. jarvis/jarvis_git_utils/git_commiter.py +7 -22
  10. jarvis/jarvis_mcp/sse_mcp_client.py +4 -3
  11. jarvis/jarvis_mcp/streamable_mcp_client.py +9 -8
  12. jarvis/jarvis_memory_organizer/memory_organizer.py +46 -53
  13. jarvis/jarvis_methodology/main.py +4 -2
  14. jarvis/jarvis_platform/base.py +49 -12
  15. jarvis/jarvis_platform/kimi.py +16 -22
  16. jarvis/jarvis_platform/registry.py +7 -14
  17. jarvis/jarvis_platform/tongyi.py +21 -32
  18. jarvis/jarvis_platform/yuanbao.py +15 -17
  19. jarvis/jarvis_platform_manager/main.py +14 -51
  20. jarvis/jarvis_rag/cli.py +14 -13
  21. jarvis/jarvis_rag/embedding_manager.py +18 -6
  22. jarvis/jarvis_rag/llm_interface.py +0 -2
  23. jarvis/jarvis_rag/rag_pipeline.py +26 -15
  24. jarvis/jarvis_rag/retriever.py +33 -25
  25. jarvis/jarvis_tools/cli/main.py +22 -15
  26. jarvis/jarvis_tools/edit_file.py +1 -3
  27. jarvis/jarvis_tools/file_analyzer.py +12 -6
  28. jarvis/jarvis_tools/registry.py +16 -11
  29. jarvis/jarvis_tools/sub_agent.py +1 -1
  30. jarvis/jarvis_tools/sub_code_agent.py +1 -4
  31. jarvis/jarvis_utils/config.py +14 -10
  32. jarvis/jarvis_utils/input.py +6 -3
  33. jarvis/jarvis_utils/methodology.py +11 -6
  34. jarvis/jarvis_utils/utils.py +30 -13
  35. {jarvis_ai_assistant-0.3.22.dist-info → jarvis_ai_assistant-0.3.24.dist-info}/METADATA +10 -3
  36. {jarvis_ai_assistant-0.3.22.dist-info → jarvis_ai_assistant-0.3.24.dist-info}/RECORD +40 -40
  37. {jarvis_ai_assistant-0.3.22.dist-info → jarvis_ai_assistant-0.3.24.dist-info}/WHEEL +0 -0
  38. {jarvis_ai_assistant-0.3.22.dist-info → jarvis_ai_assistant-0.3.24.dist-info}/entry_points.txt +0 -0
  39. {jarvis_ai_assistant-0.3.22.dist-info → jarvis_ai_assistant-0.3.24.dist-info}/licenses/LICENSE +0 -0
  40. {jarvis_ai_assistant-0.3.22.dist-info → jarvis_ai_assistant-0.3.24.dist-info}/top_level.txt +0 -0
@@ -149,8 +149,6 @@ def _get_resolved_model_config(
149
149
  for key in [
150
150
  "JARVIS_PLATFORM",
151
151
  "JARVIS_MODEL",
152
- "JARVIS_THINKING_PLATFORM",
153
- "JARVIS_THINKING_MODEL",
154
152
  "JARVIS_MAX_INPUT_TOKEN_COUNT",
155
153
  ]:
156
154
  if key in GLOBAL_CONFIG_DATA:
@@ -181,7 +179,7 @@ def get_normal_model_name(model_group_override: Optional[str] = None) -> str:
181
179
  return config.get("JARVIS_MODEL", "deep_seek_v3")
182
180
 
183
181
 
184
- def get_thinking_platform_name(model_group_override: Optional[str] = None) -> str:
182
+ def _deprecated_platform_name_v1(model_group_override: Optional[str] = None) -> str:
185
183
  """
186
184
  获取思考操作的平台名称。
187
185
 
@@ -190,12 +188,10 @@ def get_thinking_platform_name(model_group_override: Optional[str] = None) -> st
190
188
  """
191
189
  config = _get_resolved_model_config(model_group_override)
192
190
  # Fallback to normal platform if thinking platform is not specified
193
- return config.get(
194
- "JARVIS_THINKING_PLATFORM", get_normal_platform_name(model_group_override)
195
- )
191
+ return get_normal_platform_name(model_group_override)
196
192
 
197
193
 
198
- def get_thinking_model_name(model_group_override: Optional[str] = None) -> str:
194
+ def _deprecated_model_name_v1(model_group_override: Optional[str] = None) -> str:
199
195
  """
200
196
  获取思考操作的模型名称。
201
197
 
@@ -204,9 +200,7 @@ def get_thinking_model_name(model_group_override: Optional[str] = None) -> str:
204
200
  """
205
201
  config = _get_resolved_model_config(model_group_override)
206
202
  # Fallback to normal model if thinking model is not specified
207
- return config.get(
208
- "JARVIS_THINKING_MODEL", get_normal_model_name(model_group_override)
209
- )
203
+ return get_normal_model_name(model_group_override)
210
204
 
211
205
 
212
206
  def is_execute_tool_confirm() -> bool:
@@ -638,6 +632,16 @@ def get_tool_dont_use_list() -> List[str]:
638
632
  return config.get("dont_use", [])
639
633
 
640
634
 
635
+ def get_tool_filter_threshold() -> int:
636
+ """
637
+ 获取AI工具筛选的阈值。
638
+
639
+ 返回:
640
+ int: 当工具数量超过此阈值时,触发AI筛选。默认为30
641
+ """
642
+ return int(GLOBAL_CONFIG_DATA.get("JARVIS_TOOL_FILTER_THRESHOLD", 30))
643
+
644
+
641
645
  def is_enable_git_repo_jca_switch() -> bool:
642
646
  """
643
647
  是否启用:在初始化环境前检测Git仓库并提示可切换到代码开发模式(jca)
@@ -384,14 +384,17 @@ def _show_history_and_copy():
384
384
  PrettyOutput.print("没有可复制的消息", OutputType.INFO)
385
385
  return
386
386
 
387
- PrettyOutput.print("\n" + "=" * 20 + " 消息历史记录 " + "=" * 20, OutputType.INFO)
387
+ # 为避免 PrettyOutput 在循环中为每行加框,先拼接后统一打印
388
+ lines = []
389
+ lines.append("\n" + "=" * 20 + " 消息历史记录 " + "=" * 20)
388
390
  for i, msg in enumerate(history):
389
391
  cleaned_msg = msg.replace("\n", r"\n")
390
392
  display_msg = (
391
393
  (cleaned_msg[:70] + "...") if len(cleaned_msg) > 70 else cleaned_msg
392
394
  )
393
- PrettyOutput.print(f" {i + 1}: {display_msg.strip()}", OutputType.INFO)
394
- PrettyOutput.print("=" * 58 + "\n", OutputType.INFO)
395
+ lines.append(f" {i + 1}: {display_msg.strip()}")
396
+ lines.append("=" * 58 + "\n")
397
+ PrettyOutput.print("\n".join(lines), OutputType.INFO)
395
398
 
396
399
  while True:
397
400
  try:
@@ -81,11 +81,13 @@ def _load_all_methodologies() -> Dict[str, str]:
81
81
 
82
82
  import glob
83
83
 
84
+ # 收集循环中的提示,统一打印,避免逐条加框
85
+ warn_dirs: List[str] = []
86
+ error_lines: List[str] = []
87
+
84
88
  for directory in set(methodology_dirs): # Use set to avoid duplicates
85
89
  if not os.path.isdir(directory):
86
- PrettyOutput.print(
87
- f"警告: 方法论目录不存在或不是一个目录: {directory}", OutputType.WARNING
88
- )
90
+ warn_dirs.append(f"警告: 方法论目录不存在或不是一个目录: {directory}")
89
91
  continue
90
92
 
91
93
  for filepath in glob.glob(os.path.join(directory, "*.json")):
@@ -100,10 +102,13 @@ def _load_all_methodologies() -> Dict[str, str]:
100
102
  all_methodologies[problem_type] = content
101
103
  except Exception as e:
102
104
  filename = os.path.basename(filepath)
103
- PrettyOutput.print(
104
- f"加载方法论文件 {filename} 失败: {str(e)}", OutputType.WARNING
105
- )
105
+ error_lines.append(f"加载方法论文件 {filename} 失败: {str(e)}")
106
106
 
107
+ # 统一打印目录警告与文件加载失败信息
108
+ if warn_dirs:
109
+ PrettyOutput.print("\n".join(warn_dirs), OutputType.WARNING)
110
+ if error_lines:
111
+ PrettyOutput.print("\n".join(error_lines), OutputType.WARNING)
107
112
  return all_methodologies
108
113
 
109
114
 
@@ -673,13 +673,20 @@ def _interactive_config_setup(config_file_path: Path):
673
673
 
674
674
  # 如果有配置指导,先显示总体说明
675
675
  if config_guide:
676
- PrettyOutput.print(f"\n配置获取方法:", OutputType.INFO)
676
+ # 为避免 PrettyOutput 在循环中为每行加框,先拼接后统一打印
677
+ guide_lines = ["", "配置获取方法:"]
678
+ for key in required_keys:
679
+ if key in config_guide and config_guide[key]:
680
+ guide_lines.append(f"")
681
+ guide_lines.append(f"{key} 获取方法:")
682
+ guide_lines.append(str(config_guide[key]))
683
+ PrettyOutput.print("\n".join(guide_lines), OutputType.INFO)
684
+ else:
685
+ # 若无指导,仍需遍历以保持后续逻辑一致
686
+ pass
677
687
 
678
688
  for key in required_keys:
679
- # 显示该环境变量的配置指导
680
- if key in config_guide and config_guide[key]:
681
- PrettyOutput.print(f"\n{key} 获取方法:", OutputType.INFO)
682
- PrettyOutput.print(config_guide[key], OutputType.INFO)
689
+ # 显示该环境变量的配置指导(上文已统一打印,此处不再逐条打印)
683
690
 
684
691
  default_value = defaults.get(key, "")
685
692
  prompt_text = f" - {key}"
@@ -737,9 +744,7 @@ def _interactive_config_setup(config_file_path: Path):
737
744
  config_data = {
738
745
  "ENV": env_vars,
739
746
  "JARVIS_PLATFORM": platform_name,
740
- "JARVIS_THINKING_PLATFORM": platform_name,
741
747
  "JARVIS_MODEL": model_name,
742
- "JARVIS_THINKING_MODEL": model_name,
743
748
  }
744
749
 
745
750
  if not test_passed:
@@ -1454,7 +1459,7 @@ def _read_old_config_file(config_file):
1454
1459
 
1455
1460
 
1456
1461
  def while_success(func: Callable[[], Any], sleep_time: float = 0.1) -> Any:
1457
- """循环执行函数直到成功
1462
+ """循环执行函数直到成功(累计日志后统一打印,避免逐次加框)
1458
1463
 
1459
1464
  参数:
1460
1465
  func -- 要执行的函数
@@ -1463,17 +1468,25 @@ def while_success(func: Callable[[], Any], sleep_time: float = 0.1) -> Any:
1463
1468
  返回:
1464
1469
  函数执行结果
1465
1470
  """
1471
+ logs: List[str] = []
1472
+ result: Any = None
1473
+ success = False
1466
1474
  while True:
1467
1475
  try:
1468
- return func()
1469
- except Exception as e:
1470
- PrettyOutput.print(f"重试中,等待 {sleep_time}s...", OutputType.WARNING)
1476
+ result = func()
1477
+ success = True
1478
+ break
1479
+ except Exception:
1480
+ logs.append(f"重试中,等待 {sleep_time}s...")
1471
1481
  time.sleep(sleep_time)
1472
1482
  continue
1483
+ if logs:
1484
+ PrettyOutput.print("\n".join(logs), OutputType.WARNING)
1485
+ return result
1473
1486
 
1474
1487
 
1475
1488
  def while_true(func: Callable[[], bool], sleep_time: float = 0.1) -> Any:
1476
- """循环执行函数直到返回True
1489
+ """循环执行函数直到返回True(累计日志后统一打印,避免逐次加框)
1477
1490
 
1478
1491
  参数:
1479
1492
  func: 要执行的函数,必须返回布尔值
@@ -1486,12 +1499,16 @@ def while_true(func: Callable[[], bool], sleep_time: float = 0.1) -> Any:
1486
1499
  与while_success不同,此函数只检查返回是否为True,
1487
1500
  不捕获异常,异常会直接抛出
1488
1501
  """
1502
+ logs: List[str] = []
1503
+ ret: bool = False
1489
1504
  while True:
1490
1505
  ret = func()
1491
1506
  if ret:
1492
1507
  break
1493
- PrettyOutput.print(f"重试中,等待 {sleep_time}s...", OutputType.WARNING)
1508
+ logs.append(f"重试中,等待 {sleep_time}s...")
1494
1509
  time.sleep(sleep_time)
1510
+ if logs:
1511
+ PrettyOutput.print("\n".join(logs), OutputType.WARNING)
1495
1512
  return ret
1496
1513
 
1497
1514
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.22
3
+ Version: 0.3.24
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
@@ -296,8 +296,7 @@ JARVIS_PLATFORM: yuanbao
296
296
  JARVIS_MODEL: deep_seek_v3
297
297
 
298
298
  # 用于“思考”步骤的模型,通常选择能力更强的模型
299
- JARVIS_THINKING_PLATFORM: yuanbao
300
- JARVIS_THINKING_MODEL: deep_seek
299
+
301
300
 
302
301
  # 平台所需的环境变量
303
302
  ENV:
@@ -312,6 +311,14 @@ JARVIS_PRINT_ERROR_TRACEBACK: true
312
311
  ```
313
312
  - 也可以在单次调用时通过传入 `traceback=True` 临时开启回溯打印。
314
313
 
314
+ 提示:AI 工具筛选阈值
315
+ - 当可用工具数量过多时,可能会干扰模型的决策。Jarvis 支持在可用工具数量超过阈值时,先让 AI 自动筛选相关工具再启动,以专注于本次任务。
316
+ - 默认阈值为 30,可在配置中调整:
317
+ ```yaml
318
+ # ~/.jarvis/config.yaml
319
+ JARVIS_TOOL_FILTER_THRESHOLD: 30
320
+ ```
321
+
315
322
  Jarvis 支持多种平台,包括 **Kimi**, **通义千问**, **OpenAI** 等。详细的配置选项、模型组设置以及所有可用参数,请参阅 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
316
323
 
317
324
  > **模型推荐**: 目前效果较好的模型是 `claude-opus-4-20250514`,可以通过国内代理商购买,例如 [FoxiAI](https://foxi-ai.top)。
@@ -1,12 +1,12 @@
1
- jarvis/__init__.py,sha256=QFERakZ0sl8VVVJdU-RAokYHztJs5dDSjfQ0yDBE9s4,74
2
- jarvis/jarvis_agent/__init__.py,sha256=Tahx-vDms17nh0dPIf4BbuyyAzvG6AgEXY28mH0_Nks,34592
3
- jarvis/jarvis_agent/agent_manager.py,sha256=YzpMiF0H2-eyk2kn2o24Bkj3bXsQx7Pv2vfD4gWepo0,2893
1
+ jarvis/__init__.py,sha256=sNrDvwFba715bqcu57BUGzZ7SeFI3Oc-7DTacWo5JxM,74
2
+ jarvis/jarvis_agent/__init__.py,sha256=eLSiwd-Eo6KqG0qLJ5peI-symxWUrTsxWCBnOgEO474,37524
3
+ jarvis/jarvis_agent/agent_manager.py,sha256=mmDe26Wa1Dnyp8CkTKupcKipC-5HSuCnk-oVJseOdTg,2801
4
4
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
5
5
  jarvis/jarvis_agent/config_editor.py,sha256=IHyuwI4SRDrqxz8lO0NNgt2F3uYAw1WEKXMxQV49bYI,1928
6
6
  jarvis/jarvis_agent/edit_file_handler.py,sha256=5sFz84jqy2gpc0aLOre2bvz8_DitlBoWZs_cQwftWLw,11570
7
7
  jarvis/jarvis_agent/file_methodology_manager.py,sha256=PwDUQwq7HVIyPInsN8fgWyMXLwi8heIXPrqfBZJhVHs,4260
8
- jarvis/jarvis_agent/jarvis.py,sha256=JsQFhnHFEwnQmSkvhGN60BIZHqnsb95akaeBpNwfkNc,22837
9
- jarvis/jarvis_agent/main.py,sha256=Hu5u0mq0owuzt965IqaGP6TtVGFXHE4E4Tg1TzCtGYE,3552
8
+ jarvis/jarvis_agent/jarvis.py,sha256=gTqu7-3lXBYGXE8cpmu6ypjc_Jm1GmVhsCsOcoDiXS8,22241
9
+ jarvis/jarvis_agent/main.py,sha256=bFcwXWC6O05jQiXy6ED_bHjdjDo5VwV_i1BoBEAzgP0,3336
10
10
  jarvis/jarvis_agent/memory_manager.py,sha256=Ckt6wmXOduu97jfyWQbRDmNH6yX11XzLW2nMTeVhFeY,5316
11
11
  jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
12
12
  jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
@@ -21,9 +21,9 @@ jarvis/jarvis_agent/task_manager.py,sha256=7OpLHLwBmxRFN37CCoVOPCUxjyo3dtE3sJ5oj
21
21
  jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
22
22
  jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
23
23
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- jarvis/jarvis_code_agent/code_agent.py,sha256=d1LUPTcVBNQVkucFf0hop8EKDrEIWij4mgvi-ri4KFE,31577
24
+ jarvis/jarvis_code_agent/code_agent.py,sha256=7b9bSQxKIYWpKCLqbQUjSxr16GhGbVCzKSIaxpOHptM,31363
25
25
  jarvis/jarvis_code_agent/lint.py,sha256=LZPsfyZPMo7Wm7LN4osZocuNJwZx1ojacO3MlF870x8,4009
26
- jarvis/jarvis_code_analysis/code_review.py,sha256=8Ai5UdptEYem7Hj-VXIk4zXS6ySuFXRzl0GIc6ZKeLc,35798
26
+ jarvis/jarvis_code_analysis/code_review.py,sha256=99izndiYBDcDJBu-gAXqpUkN9usmFfYroqJkZUw7AwA,34481
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
@@ -44,41 +44,41 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUA
44
44
  jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
45
45
  jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
46
46
  jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
47
- jarvis/jarvis_data/config_schema.json,sha256=uNSkluPJyZCZla7lRO4TkwOxsp4L_fNxNSmEbpKA7xI,12853
47
+ jarvis/jarvis_data/config_schema.json,sha256=GIBSroMb9YE1oW0rZQRVjj1ceQOOFPxeYXQ4eTnLoL8,12323
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=8_EraSXil79T0b_8FeZShZF2AXNTuTXpNxZdaaj8aEc,15310
51
+ jarvis/jarvis_git_utils/git_commiter.py,sha256=q9O__HfoGZCV5tSl3lI0Gp2hynHUzXV5jDlRaFYk_6o,14554
52
52
  jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
53
- jarvis/jarvis_mcp/sse_mcp_client.py,sha256=TSTPI4XRx6F-23ukQ0sUcbn1CMnxLpCzcWoKJ5EipLs,22742
53
+ jarvis/jarvis_mcp/sse_mcp_client.py,sha256=UIDBaFNuuaJE0YiKmtbZTqwZpkDI5SaS0my1DIJj-3g,22831
54
54
  jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=APYUksYKlMx7AVNODKOLrTkKZPnp4kqTQIYIuNDDKko,11286
55
- jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=r-CXew4ln3Sks_eY7e299C68OTyUYQxb03hOgLy0d4s,15465
55
+ jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=BenOeZGNHdUOJT5Z3cc5MhS6aOeKQgqXm1ED-BqsLCY,15511
56
56
  jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=rtuHEkwk3nrkp9QvsduW6qqOE4tqaJl8X80kvL1L5N4,26504
58
- jarvis/jarvis_methodology/main.py,sha256=GA0Lskl5fjpjPI7-NvM0n3jFLCBnwnF-z3ale3HcVcI,11311
57
+ jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=aAMKBZBiLkdyMUq0EzaiP1jJUflb1juhQkUULwPHzwk,26361
58
+ jarvis/jarvis_methodology/main.py,sha256=2W57mSYhSoL_jFACrdCax_KIQWZTZsEKQ4obvpm-Y6M,11409
59
59
  jarvis/jarvis_multi_agent/__init__.py,sha256=Ygp4DBBkmEXCRcQV3nr07zOxo2Tb4149mi4KcQdXR8g,6091
60
60
  jarvis/jarvis_multi_agent/main.py,sha256=b9IThFMeUZCYSlgT-VT8r7xeBdrEE_zNT11awEc8IdY,1853
61
61
  jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
62
62
  jarvis/jarvis_platform/ai8.py,sha256=g8JkqPGs9SEbqstNMCc5rCHO0QcPHX9LNvb7HMWwB-Q,11471
63
- jarvis/jarvis_platform/base.py,sha256=-1BC_QpBJ53dZPLXnoD4sLEuSf0S-AqITy8R25uVemw,10122
63
+ jarvis/jarvis_platform/base.py,sha256=dnd3nidsf7mqwimAzmQSV9s_wGviQ7VjRqOLUkRVLYc,12151
64
64
  jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
65
- jarvis/jarvis_platform/kimi.py,sha256=NLcZb8Ms0MwtBhp_wwD0nieU6EJTjqxo7TLLqUdx13g,15820
65
+ jarvis/jarvis_platform/kimi.py,sha256=dLES_E0VmDQ3TwjTZk5vCGdbvdBeSVvvlXR90m6vPfY,15711
66
66
  jarvis/jarvis_platform/openai.py,sha256=0YSeDGHRSPQP2haEzFARx_aZH_d_UZ-HSCsJLh2hW5k,8037
67
- jarvis/jarvis_platform/registry.py,sha256=1bMy0YZUa8NLzuZlKfC4CBtpa0iniypTxUZk0Hv6g9Y,8415
68
- jarvis/jarvis_platform/tongyi.py,sha256=EOwAH55K2TssXau23r3lTd8-48-Gl9VcudggjrHSLg8,23649
69
- jarvis/jarvis_platform/yuanbao.py,sha256=rRZHOaam2_wUc4I3v3fLpcOnLoBdYgwfogYgxNS5f_o,24025
67
+ jarvis/jarvis_platform/registry.py,sha256=uwQvivGKuDT2LI-e_jUPvPR8Qyc7KTANkWGZLMEQx3Q,8050
68
+ jarvis/jarvis_platform/tongyi.py,sha256=0UM1VLbBYrlNF5dSRqp2Kefeb0FkXhKhc7PnrsZWqOQ,23456
69
+ jarvis/jarvis_platform/yuanbao.py,sha256=W0aIQOZoHt4QGYYBYzRbVWlgwAdhzoCv93xD7v8Lvqc,24004
70
70
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- jarvis/jarvis_platform_manager/main.py,sha256=9ODxaJJKcGNauqw6f63ZCh01qguvh9IuEwCaA8hV0vA,21151
71
+ jarvis/jarvis_platform_manager/main.py,sha256=tU25oVQzEFPB8aOqPec8SgnxsapCFuHBkYubxiutxqA,19662
72
72
  jarvis/jarvis_platform_manager/service.py,sha256=WG2r0JRBGfSLGdsKxqYvmaacU_ne3PTn3RkczTzUb_M,14899
73
73
  jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
74
74
  jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
75
- jarvis/jarvis_rag/cli.py,sha256=9TOFchODRnMWcXxFZKgnSE_yNLUfZQ_V3yjQQxEnUZI,17052
76
- jarvis/jarvis_rag/embedding_manager.py,sha256=Rd8q9V8oiXOgeccPskwsFoxMk8u2wZD3eb_1ieYu8y4,3704
77
- jarvis/jarvis_rag/llm_interface.py,sha256=INosZrt4d5Dvc3ePI3up2QOeyraC_p8L3w9j8BjdIj8,4580
75
+ jarvis/jarvis_rag/cli.py,sha256=ZuyySys8sV8Mv2B_-WC2pejr2hAbh0c7qhtz0AEEOxw,17219
76
+ jarvis/jarvis_rag/embedding_manager.py,sha256=7JAylkU0Y22X5x8kv5WiwMAgU-MSJEZG8PmhrWOZH4k,4307
77
+ jarvis/jarvis_rag/llm_interface.py,sha256=DH46Vm3AgzK1o41X7wUUYUbbOOVPgmDCxS5l6djm9eA,4561
78
78
  jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMWOn-nDE,4072
79
- jarvis/jarvis_rag/rag_pipeline.py,sha256=TgPpsUrzZlD07QQuszcrDFnmkFC6YVXOrShVcWzEq78,12775
79
+ jarvis/jarvis_rag/rag_pipeline.py,sha256=sPvCucAshr_luGJLx7WiCfQKVHrrHHpb4-SVdAZdJc8,13085
80
80
  jarvis/jarvis_rag/reranker.py,sha256=Uzn4n1bNj4kWyQu9-z-jK_5dAU6drn5jEugML-kFHg8,1885
81
- jarvis/jarvis_rag/retriever.py,sha256=gFgeSslc-N7TDdD4U7yyYPtqrbbjAHZlFNTctyIeusc,18178
81
+ jarvis/jarvis_rag/retriever.py,sha256=BNEFZAgxTbmkxzBP1uy1wz3MX8wJN1wx5EtfsHqakqE,18374
82
82
  jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
83
  jarvis/jarvis_smart_shell/main.py,sha256=J5O58K5KvUvB_ghbT5XwIi5QGXD3DiBlGDs0wYYvy-w,15197
84
84
  jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
@@ -90,40 +90,40 @@ jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
90
90
  jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
91
91
  jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
92
92
  jarvis/jarvis_tools/clear_memory.py,sha256=_GlwqlCAsoHeB24Y1CnjLdMawRTc6cq55AA8Yi5AZg4,8249
93
- jarvis/jarvis_tools/edit_file.py,sha256=aroyhvPGSwDRYZwm-FsvVxHFE2WAPyviqlMOC1fYETo,7132
93
+ jarvis/jarvis_tools/edit_file.py,sha256=BUz0kfv44kqfNDr3tZKS-7Cn5DDhYl8xhHO7X8x7HQI,7086
94
94
  jarvis/jarvis_tools/execute_script.py,sha256=kASNTShHVGlHm7pZZxUeyEZHzHAYiZ-87AzrYVyORMw,6231
95
- jarvis/jarvis_tools/file_analyzer.py,sha256=uwmcPvRjuAzMznCy5ZqilkQY9dyL6suydMP_zL1ulk8,3914
95
+ jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
96
96
  jarvis/jarvis_tools/generate_new_tool.py,sha256=OCHkBOCQflgMZXRP4vgX3blnJOUq-_QkcBFRQFj3sj0,7894
97
97
  jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
98
98
  jarvis/jarvis_tools/read_code.py,sha256=qeQZ_emyPI5RTFx4HSgLBtWSwh8V5chqMjxu2uKzmfY,6100
99
99
  jarvis/jarvis_tools/read_webpage.py,sha256=YTmoalY8y-jdQuoj9IL6ZjXPOevUj2P_9arJngPhbUY,5317
100
- jarvis/jarvis_tools/registry.py,sha256=oIcHbRLKl62LWmJARMH3KB4aoKNjLGzrIaJarx7GQZU,31859
100
+ jarvis/jarvis_tools/registry.py,sha256=BFo5ih929IKvgIKHB3_neXco6JLFqLqQw9FTYpOgcnI,32016
101
101
  jarvis/jarvis_tools/retrieve_memory.py,sha256=hQ3s4IgBHtmUPzuWFl5Pc2FLEuT2gdi4l4NlUoO9pQM,8640
102
102
  jarvis/jarvis_tools/rewrite_file.py,sha256=CuvjWPTbUaPbex9FKSmw_Ru4r6R-CX_3vqTqCTp8nHA,6959
103
103
  jarvis/jarvis_tools/save_memory.py,sha256=QKj6iYZL2XxPX0NnU9HqvoDOpJZ38mJmatDmHLK2r74,7012
104
104
  jarvis/jarvis_tools/search_web.py,sha256=8ugOcGBsAEg59pX_WS0WADuu7Klw7XGR6guEMz4OnwI,6181
105
- jarvis/jarvis_tools/sub_agent.py,sha256=ZSSx4wpTIFcFOUwv39y9ytUBQKMxlY3hHR9cDXbecYs,8146
106
- jarvis/jarvis_tools/sub_code_agent.py,sha256=kHbmCoaEK_xmqXo4X1ZWm59u8I2_BDrix2lWTQ3Fls8,7868
105
+ jarvis/jarvis_tools/sub_agent.py,sha256=y9SuuFBVPpQQxS0SXO4T1125YG8zfwKuBXLlHiVPrF8,8084
106
+ jarvis/jarvis_tools/sub_code_agent.py,sha256=9YEYK8hbciGhvC44MU3Y5vQc4hYgOAiahiUbUK_w2iI,7696
107
107
  jarvis/jarvis_tools/virtual_tty.py,sha256=1AYrVNP5QCX1HGo-xi3XEP93cMWZUOkil4ki2gwf7dI,25504
108
108
  jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
- jarvis/jarvis_tools/cli/main.py,sha256=pCg7dTa3iL3PHfQZPgL8eb0I8RutnrBjR8lgNvmlOk4,8986
109
+ jarvis/jarvis_tools/cli/main.py,sha256=pyvSz0-hBduOqQShduv76UcB5wrK0v6MLonpub9AuXg,9334
110
110
  jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
111
111
  jarvis/jarvis_utils/builtin_replace_map.py,sha256=4BurljGuiG_I93EBs7mlFlPm9wYC_4CmdTG5tQWpF6g,1712
112
112
  jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
113
- jarvis/jarvis_utils/config.py,sha256=P8K0j6J63dx4-ZccNu5zL1lPj13bk5V_JXlQFd2IL-Q,18336
113
+ jarvis/jarvis_utils/config.py,sha256=6wWqByse15Nsi5ciWvaqlC0AfxvK-7DXy95sUCyraKQ,18427
114
114
  jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
115
115
  jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
116
116
  jarvis/jarvis_utils/git_utils.py,sha256=AkczUiRcGcOnPfz2v3mdLwV1S41IopiAYD2tjeMTDrE,23586
117
117
  jarvis/jarvis_utils/globals.py,sha256=aTrOHcCgPAeZFLFIWMAMiJCYlmr4XhdFZf5gZ745hnE,8900
118
118
  jarvis/jarvis_utils/http.py,sha256=eRhV3-GYuWmQ0ogq9di9WMlQkFcVb1zGCrySnOgT1x0,4392
119
- jarvis/jarvis_utils/input.py,sha256=IQxjlWnOuMSaQFqyOpobmtfM-UQa1IKd0vU_Mz2DQy4,36569
120
- jarvis/jarvis_utils/methodology.py,sha256=fMo8bwd-Iam1yQL8LkPy1gwG4L2uLOTzZHbc0707gho,12662
119
+ jarvis/jarvis_utils/input.py,sha256=iLY6kRm-kjKpsDyQQM49ppnXCZs_6jZVqLbvUWglrls,36657
120
+ jarvis/jarvis_utils/methodology.py,sha256=3PAMHVF85IflBBblV_mMwkYXMelUML0nZYZ8MOAYUJ8,12918
121
121
  jarvis/jarvis_utils/output.py,sha256=svCHLuXHe3Ta_qfoT5DxO80nyYyMfBFIKgziQS__Nmg,13632
122
122
  jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
123
- jarvis/jarvis_utils/utils.py,sha256=TuuwdsTkIyEWsbIILyKCGsEmEgDOfkg235sZscScNJk,61562
124
- jarvis_ai_assistant-0.3.22.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
125
- jarvis_ai_assistant-0.3.22.dist-info/METADATA,sha256=Vlh0jMccrAINzllO6_aqR0VxPB2EicVEOJEmym7l5Vo,18513
126
- jarvis_ai_assistant-0.3.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
127
- jarvis_ai_assistant-0.3.22.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
128
- jarvis_ai_assistant-0.3.22.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
129
- jarvis_ai_assistant-0.3.22.dist-info/RECORD,,
123
+ jarvis/jarvis_utils/utils.py,sha256=KdNXmXkwZZZwfjoFT-UivjGBBaB3feFNUHQ13U_HApo,62210
124
+ jarvis_ai_assistant-0.3.24.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
125
+ jarvis_ai_assistant-0.3.24.dist-info/METADATA,sha256=g1hsQNJc_yGSieqNhztNwmB7KQR6YjCEoqp2c8icNww,18790
126
+ jarvis_ai_assistant-0.3.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
127
+ jarvis_ai_assistant-0.3.24.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
128
+ jarvis_ai_assistant-0.3.24.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
129
+ jarvis_ai_assistant-0.3.24.dist-info/RECORD,,