jarvis-ai-assistant 0.3.26__py3-none-any.whl → 0.3.28__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 (62) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +303 -177
  3. jarvis/jarvis_agent/agent_manager.py +6 -0
  4. jarvis/jarvis_agent/config.py +92 -0
  5. jarvis/jarvis_agent/config_editor.py +1 -1
  6. jarvis/jarvis_agent/event_bus.py +48 -0
  7. jarvis/jarvis_agent/file_methodology_manager.py +1 -3
  8. jarvis/jarvis_agent/jarvis.py +77 -36
  9. jarvis/jarvis_agent/memory_manager.py +70 -3
  10. jarvis/jarvis_agent/prompt_manager.py +82 -0
  11. jarvis/jarvis_agent/run_loop.py +130 -0
  12. jarvis/jarvis_agent/shell_input_handler.py +1 -1
  13. jarvis/jarvis_agent/task_analyzer.py +89 -11
  14. jarvis/jarvis_agent/task_manager.py +26 -0
  15. jarvis/jarvis_agent/user_interaction.py +42 -0
  16. jarvis/jarvis_code_agent/code_agent.py +18 -3
  17. jarvis/jarvis_code_agent/lint.py +5 -5
  18. jarvis/jarvis_code_analysis/code_review.py +0 -1
  19. jarvis/jarvis_data/config_schema.json +7 -6
  20. jarvis/jarvis_git_squash/main.py +6 -1
  21. jarvis/jarvis_git_utils/git_commiter.py +51 -16
  22. jarvis/jarvis_mcp/stdio_mcp_client.py +1 -1
  23. jarvis/jarvis_memory_organizer/memory_organizer.py +2 -5
  24. jarvis/jarvis_methodology/main.py +0 -2
  25. jarvis/jarvis_multi_agent/__init__.py +3 -3
  26. jarvis/jarvis_platform/base.py +5 -6
  27. jarvis/jarvis_platform/registry.py +1 -1
  28. jarvis/jarvis_platform/yuanbao.py +0 -1
  29. jarvis/jarvis_platform_manager/main.py +28 -11
  30. jarvis/jarvis_platform_manager/service.py +1 -1
  31. jarvis/jarvis_rag/cli.py +1 -1
  32. jarvis/jarvis_rag/embedding_manager.py +0 -1
  33. jarvis/jarvis_rag/llm_interface.py +0 -3
  34. jarvis/jarvis_smart_shell/main.py +0 -1
  35. jarvis/jarvis_stats/cli.py +15 -35
  36. jarvis/jarvis_stats/stats.py +178 -51
  37. jarvis/jarvis_tools/clear_memory.py +1 -3
  38. jarvis/jarvis_tools/cli/main.py +0 -1
  39. jarvis/jarvis_tools/edit_file.py +0 -1
  40. jarvis/jarvis_tools/generate_new_tool.py +3 -5
  41. jarvis/jarvis_tools/registry.py +17 -3
  42. jarvis/jarvis_tools/retrieve_memory.py +2 -3
  43. jarvis/jarvis_tools/save_memory.py +3 -3
  44. jarvis/jarvis_tools/search_web.py +2 -2
  45. jarvis/jarvis_tools/sub_agent.py +114 -85
  46. jarvis/jarvis_tools/sub_code_agent.py +29 -7
  47. jarvis/jarvis_tools/virtual_tty.py +3 -14
  48. jarvis/jarvis_utils/builtin_replace_map.py +4 -4
  49. jarvis/jarvis_utils/config.py +44 -15
  50. jarvis/jarvis_utils/fzf.py +56 -0
  51. jarvis/jarvis_utils/git_utils.py +1 -1
  52. jarvis/jarvis_utils/globals.py +1 -2
  53. jarvis/jarvis_utils/input.py +0 -3
  54. jarvis/jarvis_utils/methodology.py +3 -5
  55. jarvis/jarvis_utils/output.py +1 -1
  56. jarvis/jarvis_utils/utils.py +117 -27
  57. {jarvis_ai_assistant-0.3.26.dist-info → jarvis_ai_assistant-0.3.28.dist-info}/METADATA +2 -3
  58. {jarvis_ai_assistant-0.3.26.dist-info → jarvis_ai_assistant-0.3.28.dist-info}/RECORD +62 -56
  59. {jarvis_ai_assistant-0.3.26.dist-info → jarvis_ai_assistant-0.3.28.dist-info}/WHEEL +0 -0
  60. {jarvis_ai_assistant-0.3.26.dist-info → jarvis_ai_assistant-0.3.28.dist-info}/entry_points.txt +0 -0
  61. {jarvis_ai_assistant-0.3.26.dist-info → jarvis_ai_assistant-0.3.28.dist-info}/licenses/LICENSE +0 -0
  62. {jarvis_ai_assistant-0.3.26.dist-info → jarvis_ai_assistant-0.3.28.dist-info}/top_level.txt +0 -0
@@ -605,9 +605,6 @@ def _get_multiline_input_internal(
605
605
  ("class:bt.key", "Ctrl+O"),
606
606
  ("class:bt.label", " 历史复制 "),
607
607
  ("class:bt.sep", " • "),
608
- ("class:bt.key", "@"),
609
- ("class:bt.label", " FZF文件 "),
610
- ("class:bt.sep", " • "),
611
608
  ("class:bt.key", "Ctrl+T"),
612
609
  ("class:bt.label", " 终端(!SHELL) "),
613
610
  ("class:bt.sep", " • "),
@@ -10,7 +10,6 @@
10
10
  import json
11
11
  import os
12
12
  import tempfile
13
- from pathlib import Path
14
13
  from typing import Any, Dict, List, Optional
15
14
 
16
15
  from jarvis.jarvis_platform.base import BasePlatform
@@ -21,9 +20,8 @@ from jarvis.jarvis_utils.config import (
21
20
  get_central_methodology_repo,
22
21
  get_max_input_token_count,
23
22
  )
24
- from jarvis.jarvis_utils.globals import get_agent, current_agent_name
25
23
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
26
- from jarvis.jarvis_utils.utils import is_context_overflow, daily_check_git_updates
24
+ from jarvis.jarvis_utils.utils import daily_check_git_updates
27
25
  from jarvis.jarvis_utils.embedding import get_context_token_count
28
26
 
29
27
 
@@ -234,7 +232,7 @@ def load_methodology(
234
232
  methodology_titles = list(methodologies.keys())
235
233
 
236
234
  # 步骤2:让大模型选择相关性高的方法论
237
- selection_prompt = f"""以下是所有可用的方法论标题:
235
+ selection_prompt = """以下是所有可用的方法论标题:
238
236
 
239
237
  """
240
238
  for i, title in enumerate(methodology_titles, 1):
@@ -305,7 +303,7 @@ def load_methodology(
305
303
 
306
304
  # 步骤3:将选择出来的方法论内容提供给大模型生成步骤
307
305
  # 首先构建基础提示词部分
308
- base_prompt = f"""以下是与用户需求相关的方法论内容:
306
+ base_prompt = """以下是与用户需求相关的方法论内容:
309
307
 
310
308
  """
311
309
  suffix_prompt = f"""以下是所有可用的工具内容:
@@ -193,7 +193,7 @@ class ConsoleOutputSink(OutputSink):
193
193
  ),
194
194
  }
195
195
 
196
- header = Text(
196
+ Text(
197
197
  PrettyOutput._format(event.output_type, event.timestamp),
198
198
  style=header_styles[event.output_type],
199
199
  )
@@ -2,7 +2,6 @@
2
2
  import hashlib
3
3
  import json
4
4
  import os
5
- import platform
6
5
  import signal
7
6
  import subprocess
8
7
  import sys
@@ -13,10 +12,7 @@ from datetime import datetime, date
13
12
 
14
13
  import yaml # type: ignore
15
14
  from rich.align import Align
16
- from rich.console import Group, RenderableType
17
- from rich.panel import Panel
18
- from rich.table import Table
19
- from rich.text import Text
15
+ from rich.console import RenderableType
20
16
 
21
17
  from jarvis import __version__
22
18
  from jarvis.jarvis_utils.config import (
@@ -121,7 +117,7 @@ def _check_pip_updates() -> bool:
121
117
  """检查pip安装的Jarvis是否有更新
122
118
 
123
119
  返回:
124
- bool: 是否执行了更新(总是返回False,因为pip更新需要用户手动执行)
120
+ bool: 是否执行了更新(成功更新返回True以触发重启)
125
121
  """
126
122
  import urllib.request
127
123
  import urllib.error
@@ -146,7 +142,7 @@ def _check_pip_updates() -> bool:
146
142
  with urllib.request.urlopen(url, timeout=5) as response:
147
143
  data = json.loads(response.read().decode())
148
144
  latest_version = data["info"]["version"]
149
- except (urllib.error.URLError, KeyError, json.JSONDecodeError) as e:
145
+ except (urllib.error.URLError, KeyError, json.JSONDecodeError):
150
146
  return False
151
147
 
152
148
  # 比较版本
@@ -166,6 +162,7 @@ def _check_pip_updates() -> bool:
166
162
 
167
163
  # 检测是否使用uv
168
164
  is_uv_env = False
165
+ uv_executable: Optional[str] = None
169
166
  if in_venv:
170
167
  if sys.platform == "win32":
171
168
  uv_path = Path(sys.prefix) / "Scripts" / "uv.exe"
@@ -173,6 +170,7 @@ def _check_pip_updates() -> bool:
173
170
  uv_path = Path(sys.prefix) / "bin" / "uv"
174
171
  if uv_path.exists():
175
172
  is_uv_env = True
173
+ uv_executable = str(uv_path)
176
174
 
177
175
  # 检测是否安装了 RAG 特性(更精确)
178
176
  from jarvis.jarvis_utils.utils import (
@@ -180,21 +178,60 @@ def _check_pip_updates() -> bool:
180
178
  ) # 延迟导入避免潜在循环依赖
181
179
  rag_installed = _is_rag_installed()
182
180
 
183
- # 提供更新命令
181
+ # 更新命令
184
182
  package_spec = (
185
183
  "jarvis-ai-assistant[rag]" if rag_installed else "jarvis-ai-assistant"
186
184
  )
187
- if is_uv_env:
185
+ if is_uv_env and uv_executable:
186
+ cmd_list = [uv_executable, "pip", "install", "--upgrade", package_spec]
188
187
  update_cmd = f"uv pip install --upgrade {package_spec}"
189
188
  else:
189
+ cmd_list = [
190
+ sys.executable,
191
+ "-m",
192
+ "pip",
193
+ "install",
194
+ "--upgrade",
195
+ package_spec,
196
+ ]
190
197
  update_cmd = f"{sys.executable} -m pip install --upgrade {package_spec}"
191
198
 
192
- PrettyOutput.print(f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO)
199
+ # 自动尝试升级(失败时提供手动命令)
200
+ try:
201
+ PrettyOutput.print("正在自动更新 Jarvis,请稍候...", OutputType.INFO)
202
+ result = subprocess.run(
203
+ cmd_list,
204
+ capture_output=True,
205
+ text=True,
206
+ encoding="utf-8",
207
+ errors="replace",
208
+ timeout=600,
209
+ )
210
+ if result.returncode == 0:
211
+ PrettyOutput.print("更新成功,正在重启以应用新版本...", OutputType.SUCCESS)
212
+ # 更新检查日期,避免重复触发
213
+ last_check_file.write_text(today_str)
214
+ return True
215
+ else:
216
+ err = (result.stderr or result.stdout or "").strip()
217
+ if err:
218
+ PrettyOutput.print(
219
+ f"自动更新失败,错误信息(已截断): {err[:500]}",
220
+ OutputType.WARNING,
221
+ )
222
+ PrettyOutput.print(
223
+ f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO
224
+ )
225
+ except Exception:
226
+ PrettyOutput.print("自动更新出现异常,已切换为手动更新方式。", OutputType.WARNING)
227
+ PrettyOutput.print(
228
+ f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO
229
+ )
193
230
 
194
231
  # 更新检查日期
195
232
  last_check_file.write_text(today_str)
196
233
 
197
- except Exception as e:
234
+ except Exception:
198
235
  # 静默处理错误,不影响正常使用
199
236
  pass
200
237
 
@@ -225,7 +262,6 @@ def _show_usage_stats(welcome_str: str) -> None:
225
262
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
226
263
 
227
264
  try:
228
- from datetime import datetime
229
265
 
230
266
  from rich.console import Console, Group
231
267
  from rich.panel import Panel
@@ -709,7 +745,7 @@ def _interactive_config_setup(config_file_path: Path):
709
745
  guide_lines = ["", "配置获取方法:"]
710
746
  for key in required_keys:
711
747
  if key in config_guide and config_guide[key]:
712
- guide_lines.append(f"")
748
+ guide_lines.append("")
713
749
  guide_lines.append(f"{key} 获取方法:")
714
750
  guide_lines.append(str(config_guide[key]))
715
751
  PrettyOutput.print("\n".join(guide_lines), OutputType.INFO)
@@ -833,8 +869,6 @@ def load_config():
833
869
 
834
870
  from typing import Tuple
835
871
 
836
- from typing import Tuple
837
-
838
872
 
839
873
  def _load_config_file(config_file: str) -> Tuple[str, dict]:
840
874
  """读取并解析YAML格式的配置文件
@@ -1179,6 +1213,49 @@ def _collect_optional_config_interactively(
1179
1213
  or changed
1180
1214
  )
1181
1215
 
1216
+ # Git 校验模式
1217
+ def _ask_git_check_mode() -> bool:
1218
+ try:
1219
+ _key = "JARVIS_GIT_CHECK_MODE"
1220
+ if not ask_all and _key in config_data:
1221
+ return False
1222
+
1223
+ from jarvis.jarvis_utils.input import get_choice
1224
+ from jarvis.jarvis_utils.config import get_git_check_mode
1225
+
1226
+ current_mode = config_data.get(_key, get_git_check_mode())
1227
+ choices = ["strict", "warn"]
1228
+ tip = (
1229
+ "请选择 Git 仓库检查模式 (JARVIS_GIT_CHECK_MODE):\n"
1230
+ "此设置决定了当在 Git 仓库中检测到未提交的更改时,Jarvis应如何处理。\n"
1231
+ "这对于确保代码修改和提交操作在干净的工作区上进行至关重要。\n"
1232
+ " - strict: (推荐) 如果存在未提交的更改,则中断相关操作(如代码修改、自动提交)。\n"
1233
+ " 这可以防止意外覆盖或丢失本地工作。\n"
1234
+ " - warn: 如果存在未提交的更改,仅显示警告信息,然后继续执行操作。\n"
1235
+ " 适用于您希望绕过检查并自行管理仓库状态的场景。"
1236
+ )
1237
+
1238
+ try:
1239
+ # 查找当前模式在选项中的索引
1240
+ default_index = choices.index(current_mode)
1241
+ except ValueError:
1242
+ default_index = 0 # 默认为第一个选项
1243
+
1244
+ new_mode = get_choice(
1245
+ tip,
1246
+ choices,
1247
+ )
1248
+
1249
+ if new_mode == current_mode:
1250
+ return False
1251
+
1252
+ config_data[_key] = new_mode
1253
+ return True
1254
+ except Exception:
1255
+ return False
1256
+
1257
+ changed = _ask_git_check_mode() or changed
1258
+
1182
1259
  # Git 提交提示词(可选)
1183
1260
  changed = (
1184
1261
  _ask_and_set_optional_str(
@@ -1289,7 +1366,6 @@ def _load_and_process_config(jarvis_dir: str, config_file: str) -> None:
1289
1366
  config_file: 配置文件路径
1290
1367
  """
1291
1368
  from jarvis.jarvis_utils.input import user_confirm as get_yes_no
1292
- from jarvis.jarvis_utils.input import get_single_line_input
1293
1369
 
1294
1370
  try:
1295
1371
  content, config_data = _load_config_file(config_file)
@@ -1493,39 +1569,47 @@ def _read_old_config_file(config_file):
1493
1569
  )
1494
1570
  set_global_env_data(config_data)
1495
1571
  PrettyOutput.print(
1496
- f"检测到旧格式配置文件,旧格式以后将不再支持,请尽快迁移到新格式",
1572
+ "检测到旧格式配置文件,旧格式以后将不再支持,请尽快迁移到新格式",
1497
1573
  OutputType.WARNING,
1498
1574
  )
1499
1575
 
1500
1576
 
1501
- def while_success(func: Callable[[], Any], sleep_time: float = 0.1) -> Any:
1577
+ def while_success(func: Callable[[], Any], sleep_time: float = 0.1, max_retries: int = 5) -> Any:
1502
1578
  """循环执行函数直到成功(累计日志后统一打印,避免逐次加框)
1503
1579
 
1504
1580
  参数:
1505
1581
  func -- 要执行的函数
1506
1582
  sleep_time -- 每次失败后的等待时间(秒)
1583
+ max_retries -- 最大重试次数,默认5次
1507
1584
 
1508
1585
  返回:
1509
1586
  函数执行结果
1510
1587
  """
1511
1588
  result: Any = None
1512
- while True:
1589
+ retry_count = 0
1590
+ while retry_count < max_retries:
1513
1591
  try:
1514
1592
  result = func()
1515
1593
  break
1516
1594
  except Exception:
1517
- PrettyOutput.print(f"重试中,等待 {sleep_time}s...", OutputType.WARNING)
1518
- time.sleep(sleep_time)
1595
+ retry_count += 1
1596
+ if retry_count < max_retries:
1597
+ PrettyOutput.print(
1598
+ f"发生异常,重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...",
1599
+ OutputType.WARNING,
1600
+ )
1601
+ time.sleep(sleep_time)
1519
1602
  continue
1520
1603
  return result
1521
1604
 
1522
1605
 
1523
- def while_true(func: Callable[[], bool], sleep_time: float = 0.1) -> Any:
1606
+ def while_true(func: Callable[[], bool], sleep_time: float = 0.1, max_retries: int = 5) -> Any:
1524
1607
  """循环执行函数直到返回True(累计日志后统一打印,避免逐次加框)
1525
1608
 
1526
1609
  参数:
1527
1610
  func: 要执行的函数,必须返回布尔值
1528
1611
  sleep_time: 每次失败后的等待时间(秒)
1612
+ max_retries: 最大重试次数,默认5次
1529
1613
 
1530
1614
  返回:
1531
1615
  函数最终返回的True值
@@ -1535,12 +1619,18 @@ def while_true(func: Callable[[], bool], sleep_time: float = 0.1) -> Any:
1535
1619
  不捕获异常,异常会直接抛出
1536
1620
  """
1537
1621
  ret: bool = False
1538
- while True:
1622
+ retry_count = 0
1623
+ while retry_count < max_retries:
1539
1624
  ret = func()
1540
1625
  if ret:
1541
1626
  break
1542
- PrettyOutput.print(f"重试中,等待 {sleep_time}s...", OutputType.WARNING)
1543
- time.sleep(sleep_time)
1627
+ retry_count += 1
1628
+ if retry_count < max_retries:
1629
+ PrettyOutput.print(
1630
+ f"返回空值,重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...",
1631
+ OutputType.WARNING,
1632
+ )
1633
+ time.sleep(sleep_time)
1544
1634
  return ret
1545
1635
 
1546
1636
 
@@ -1567,7 +1657,7 @@ def get_file_line_count(filename: str) -> int:
1567
1657
  """
1568
1658
  try:
1569
1659
  return len(open(filename, "r", encoding="utf-8", errors="ignore").readlines())
1570
- except Exception as e:
1660
+ except Exception:
1571
1661
  return 0
1572
1662
 
1573
1663
 
@@ -1708,7 +1798,7 @@ def _pull_git_repo(repo_path: Path, repo_type: str):
1708
1798
  return
1709
1799
 
1710
1800
  # 执行 git pull
1711
- pull_result = subprocess.run(
1801
+ subprocess.run(
1712
1802
  ["git", "pull"],
1713
1803
  cwd=repo_path,
1714
1804
  capture_output=True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.26
3
+ Version: 0.3.28
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
@@ -64,8 +64,7 @@ Requires-Dist: plotext==5.2.8
64
64
  Requires-Dist: packaging>=24.2
65
65
  Provides-Extra: dev
66
66
  Requires-Dist: pytest; extra == "dev"
67
- Requires-Dist: black; extra == "dev"
68
- Requires-Dist: isort; extra == "dev"
67
+ Requires-Dist: ruff; extra == "dev"
69
68
  Requires-Dist: mypy; extra == "dev"
70
69
  Requires-Dist: build; extra == "dev"
71
70
  Requires-Dist: twine; extra == "dev"
@@ -1,29 +1,34 @@
1
- jarvis/__init__.py,sha256=iYbIKGj1PIzlv-YretRu86LOVz9abIwPUZ9co3CM1oo,74
2
- jarvis/jarvis_agent/__init__.py,sha256=S62A_Mki77-RIli_9uNJvz27wRlu2LL3EsFuZjKBybw,37702
3
- jarvis/jarvis_agent/agent_manager.py,sha256=mmDe26Wa1Dnyp8CkTKupcKipC-5HSuCnk-oVJseOdTg,2801
1
+ jarvis/__init__.py,sha256=1K9v5i77_4p2eML-QPikTWjE-oPcbpklsA_9cmXVITc,74
2
+ jarvis/jarvis_agent/__init__.py,sha256=eBUO23ysoct4oCZxi3ITuiPsdnEvFR0bKZVdycDRAhw,42606
3
+ jarvis/jarvis_agent/agent_manager.py,sha256=qNcMy5Xc5ZT26JfczBg4b4D5udKVHSFsCFjlpbIdmPo,3076
4
4
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
5
- jarvis/jarvis_agent/config_editor.py,sha256=IHyuwI4SRDrqxz8lO0NNgt2F3uYAw1WEKXMxQV49bYI,1928
5
+ jarvis/jarvis_agent/config.py,sha256=Ni1aTVzmdERJ89A1jsC21Tsys_9MM-TTx1w5XwxyEwA,3130
6
+ jarvis/jarvis_agent/config_editor.py,sha256=hlb9EYxKWcR_qdW2O89CgNDdciR9Isi743JU_1gD8j4,1927
6
7
  jarvis/jarvis_agent/edit_file_handler.py,sha256=5sFz84jqy2gpc0aLOre2bvz8_DitlBoWZs_cQwftWLw,11570
7
- jarvis/jarvis_agent/file_methodology_manager.py,sha256=PwDUQwq7HVIyPInsN8fgWyMXLwi8heIXPrqfBZJhVHs,4260
8
- jarvis/jarvis_agent/jarvis.py,sha256=UNI4PoJpf4L7wp9y8-A6AfMXMQv7ikRk2YXmN5pRKUc,22383
8
+ jarvis/jarvis_agent/event_bus.py,sha256=-QVAGTe3B2Cu3-FGkw78l8XikS4vPZ-D61ajUtplOCU,1515
9
+ jarvis/jarvis_agent/file_methodology_manager.py,sha256=xaxG_TwS_eenYgbTn9tuSc54uZ6ByEQDe0o6sABGYA4,4136
10
+ jarvis/jarvis_agent/jarvis.py,sha256=AEloRaSg2hletd5JhpjbfsNInZCtSCSFmtFqkmjzlvY,24362
9
11
  jarvis/jarvis_agent/main.py,sha256=bFcwXWC6O05jQiXy6ED_bHjdjDo5VwV_i1BoBEAzgP0,3336
10
- jarvis/jarvis_agent/memory_manager.py,sha256=Ckt6wmXOduu97jfyWQbRDmNH6yX11XzLW2nMTeVhFeY,5316
12
+ jarvis/jarvis_agent/memory_manager.py,sha256=BJ1-dEyFV9DcJCWrKdH3mEoe2rrD1T_Zaa_4ja5Tp4k,7958
11
13
  jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
12
14
  jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
13
15
  jarvis/jarvis_agent/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh2lC__p40,1705
16
+ jarvis/jarvis_agent/prompt_manager.py,sha256=_1qLBSA3yn4nT_N3X2npTpW40Cp-pMeyvnzu-pnG0iU,2720
14
17
  jarvis/jarvis_agent/prompts.py,sha256=X6cXa-n0xqBQ8LDTgLsD0kqziAh1s0cNp89i4mxcvHg,9444
15
18
  jarvis/jarvis_agent/protocols.py,sha256=JWnJDikFEuwvFUv7uzXu0ggJ4O9K2FkMnfVCwIJ5REw,873
19
+ jarvis/jarvis_agent/run_loop.py,sha256=MccMT_8lPS4H8QaF7YuatKZR4ucBzy71H-_6mIZliB4,4885
16
20
  jarvis/jarvis_agent/session_manager.py,sha256=5wVcaZGwJ9cEKTQglSbqyxUDJ2fI5KxYN8C8L16UWLw,3024
17
21
  jarvis/jarvis_agent/share_manager.py,sha256=MF2RlomcgPxF8nVUk28DP6IRddZ_tot5l_YRvy0qXSQ,8726
18
- jarvis/jarvis_agent/shell_input_handler.py,sha256=YjzmtcBUqJDYeD1i1cA1betUKaGOcvKNo8biayYEfc8,1860
19
- jarvis/jarvis_agent/task_analyzer.py,sha256=HeGr2_aCNoZpsm5Am05yEXtVNUUk7bE7XIIcJdltiTE,4666
20
- jarvis/jarvis_agent/task_manager.py,sha256=7OpLHLwBmxRFN37CCoVOPCUxjyo3dtE3sJ5ojD28ThA,5033
22
+ jarvis/jarvis_agent/shell_input_handler.py,sha256=ts9XNvRs_LYX9Hh6hdYEinuAsJfj1PsaOgQHDdlldVk,1859
23
+ jarvis/jarvis_agent/task_analyzer.py,sha256=tA9_LX-lyYJqiJBqPWmfQYQZ6fe07ZGTJEWP_zCp2FM,7643
24
+ jarvis/jarvis_agent/task_manager.py,sha256=voR-L8okMWRKxZh79FsER0DaUHk-fKOzijXlDiQzJxs,6399
21
25
  jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
22
26
  jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
27
+ jarvis/jarvis_agent/user_interaction.py,sha256=tifFN49GkO_Q80sqOTVmhxwbNWTazF3K0cr8AnnvzdU,1453
23
28
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- jarvis/jarvis_code_agent/code_agent.py,sha256=7b9bSQxKIYWpKCLqbQUjSxr16GhGbVCzKSIaxpOHptM,31363
25
- jarvis/jarvis_code_agent/lint.py,sha256=LZPsfyZPMo7Wm7LN4osZocuNJwZx1ojacO3MlF870x8,4009
26
- jarvis/jarvis_code_analysis/code_review.py,sha256=99izndiYBDcDJBu-gAXqpUkN9usmFfYroqJkZUw7AwA,34481
29
+ jarvis/jarvis_code_agent/code_agent.py,sha256=mt78h3VLAbTAjTHOwjxNDOllHqfiHwFcAfmvUjiJFQI,32227
30
+ jarvis/jarvis_code_agent/lint.py,sha256=_qLJB_bC3PuoHG-j4EGOnYzNGO26jHlKLbkysfyQW1c,3954
31
+ jarvis/jarvis_code_analysis/code_review.py,sha256=Z0JsvyVPPHPm6rfo4fqaQr7CdZKIllo9jqStzV0i_-o,34470
27
32
  jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
28
33
  jarvis/jarvis_code_analysis/checklists/c_cpp.py,sha256=9t62bMqs6qTkFSio4SKkj88qyb5ZubWrw3MxJBQ4X1A,1317
29
34
  jarvis/jarvis_code_analysis/checklists/csharp.py,sha256=ShPXrl2_UPAnGaCHAG2wLl90COG3HK2XCSr1UK2dxN4,2420
@@ -44,86 +49,87 @@ jarvis/jarvis_code_analysis/checklists/shell.py,sha256=aRFYhQQvTgbYd-uY5pc8UHIUA
44
49
  jarvis/jarvis_code_analysis/checklists/sql.py,sha256=vR0T6qC7b4dURjJVAd7kSVxyvZEQXPG1Jqc2sNTGp5c,2355
45
50
  jarvis/jarvis_code_analysis/checklists/swift.py,sha256=TPx4I6Gupvs6tSerRKmTSKEPQpOLEbH2Y7LXg1uBgxc,2566
46
51
  jarvis/jarvis_code_analysis/checklists/web.py,sha256=25gGD7pDadZQybNFvALYxWvK0VRjGQb1NVJQElwjyk0,3943
47
- jarvis/jarvis_data/config_schema.json,sha256=_O_FQwmEldoGpTJ0EjyDjI6Zc2wkyr_7yVn00WA_Qf4,12575
52
+ jarvis/jarvis_data/config_schema.json,sha256=fXISAybgeJOmXHPK0j3XjBgA25mn6ZHz7Qq8dl1O9wU,12863
48
53
  jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
49
54
  jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- jarvis/jarvis_git_squash/main.py,sha256=6PECdAbTbrsJBRLK1pXBh4hdJ_LADh-XXSic1xJi97E,2255
51
- jarvis/jarvis_git_utils/git_commiter.py,sha256=mtrZpdq42567dnX-Q8OJ6ZtSRaqRDDDQxHAGRMXdej0,14559
55
+ jarvis/jarvis_git_squash/main.py,sha256=BRbsEQVXwseVFKliVqV8_JPh1om6QT6dLTHw0jQ7OE0,2474
56
+ jarvis/jarvis_git_utils/git_commiter.py,sha256=9JoQz6dhzYPyvLrbRBJmcLf28S8_lKFW-TmO-u-hFns,16357
52
57
  jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
53
58
  jarvis/jarvis_mcp/sse_mcp_client.py,sha256=UIDBaFNuuaJE0YiKmtbZTqwZpkDI5SaS0my1DIJj-3g,22831
54
- jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=APYUksYKlMx7AVNODKOLrTkKZPnp4kqTQIYIuNDDKko,11286
59
+ jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=sdVwHgBoXa95WeUTmFIq9ys3eRgEB5Psalfqq5FzMMI,11277
55
60
  jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=BenOeZGNHdUOJT5Z3cc5MhS6aOeKQgqXm1ED-BqsLCY,15511
56
61
  jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=aAMKBZBiLkdyMUq0EzaiP1jJUflb1juhQkUULwPHzwk,26361
58
- jarvis/jarvis_methodology/main.py,sha256=2W57mSYhSoL_jFACrdCax_KIQWZTZsEKQ4obvpm-Y6M,11409
59
- jarvis/jarvis_multi_agent/__init__.py,sha256=Ygp4DBBkmEXCRcQV3nr07zOxo2Tb4149mi4KcQdXR8g,6091
62
+ jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=RQeuQGUDOVXDFws-AptDRjJgUqt4UYSAFRhT1jdZe-M,26295
63
+ jarvis/jarvis_methodology/main.py,sha256=uiNzk5b5O6xdvRhsOuD7ubxdd2tPcDsFFnvmes8uH8I,11370
64
+ jarvis/jarvis_multi_agent/__init__.py,sha256=OD3ZyuxPNPHaqjQqiKiW0HuB0DI_sdv41wFlCISHWIQ,6084
60
65
  jarvis/jarvis_multi_agent/main.py,sha256=b9IThFMeUZCYSlgT-VT8r7xeBdrEE_zNT11awEc8IdY,1853
61
66
  jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
62
67
  jarvis/jarvis_platform/ai8.py,sha256=g8JkqPGs9SEbqstNMCc5rCHO0QcPHX9LNvb7HMWwB-Q,11471
63
- jarvis/jarvis_platform/base.py,sha256=5RLs5d4iYQ6PdSgKXj9idoCkln68Kmrv7-Sh7HBGbyw,13434
68
+ jarvis/jarvis_platform/base.py,sha256=u1XvfE83-S-3W_euMrMaaa8NdXeIHlo7VSxLBbN3K-Y,13504
64
69
  jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
65
70
  jarvis/jarvis_platform/kimi.py,sha256=dLES_E0VmDQ3TwjTZk5vCGdbvdBeSVvvlXR90m6vPfY,15711
66
71
  jarvis/jarvis_platform/openai.py,sha256=0YSeDGHRSPQP2haEzFARx_aZH_d_UZ-HSCsJLh2hW5k,8037
67
- jarvis/jarvis_platform/registry.py,sha256=uwQvivGKuDT2LI-e_jUPvPR8Qyc7KTANkWGZLMEQx3Q,8050
72
+ jarvis/jarvis_platform/registry.py,sha256=YqaFM2LXcHvqMQrTEQ_cVo8V-wQ8HhOeSdC8DdjvC00,8045
68
73
  jarvis/jarvis_platform/tongyi.py,sha256=0UM1VLbBYrlNF5dSRqp2Kefeb0FkXhKhc7PnrsZWqOQ,23456
69
- jarvis/jarvis_platform/yuanbao.py,sha256=W0aIQOZoHt4QGYYBYzRbVWlgwAdhzoCv93xD7v8Lvqc,24004
74
+ jarvis/jarvis_platform/yuanbao.py,sha256=oeoomh7RjF4Y3bOF-ooUv6wE6UU13Cmi2K6NfoCwpi0,23954
70
75
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- jarvis/jarvis_platform_manager/main.py,sha256=tU25oVQzEFPB8aOqPec8SgnxsapCFuHBkYubxiutxqA,19662
72
- jarvis/jarvis_platform_manager/service.py,sha256=WG2r0JRBGfSLGdsKxqYvmaacU_ne3PTn3RkczTzUb_M,14899
76
+ jarvis/jarvis_platform_manager/main.py,sha256=yv7m8cNRBe4nk0Kui1w2PKTUr9Sb3wrQirvmyAUbr5U,20400
77
+ jarvis/jarvis_platform_manager/service.py,sha256=kFIsFTwaMZ1ooQNFAwvUXjB7G2enbAqHExCdO3jskzQ,14892
73
78
  jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
74
79
  jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
75
- jarvis/jarvis_rag/cli.py,sha256=4tcB76I87QNHCSp29JDslETJSH5oWPtNYMlos-6dZu0,17532
76
- jarvis/jarvis_rag/embedding_manager.py,sha256=SF7BW8hoZWzDhDqlOdhnX6XTw42Fx2GKs7Y_RUT1ydo,10400
77
- jarvis/jarvis_rag/llm_interface.py,sha256=DH46Vm3AgzK1o41X7wUUYUbbOOVPgmDCxS5l6djm9eA,4561
80
+ jarvis/jarvis_rag/cli.py,sha256=dUtdxwUzOsIwhAdr_nLnRSw-8q4W7kw5lU_K6VDHzlE,17517
81
+ jarvis/jarvis_rag/embedding_manager.py,sha256=r-S12eW5nz3GJQgbk-7eQ9JVxxZ57-wLAQx_1zSl0po,10330
82
+ jarvis/jarvis_rag/llm_interface.py,sha256=ntZzJtq-74d8ljqm-_flHaFys_RHjMMZRCKcMdwZt-Y,4505
78
83
  jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMWOn-nDE,4072
79
84
  jarvis/jarvis_rag/rag_pipeline.py,sha256=aaTuxiArtVaPemWeySApw64q204JeLNXpOEtq7Adn1I,13797
80
85
  jarvis/jarvis_rag/reranker.py,sha256=7Azc3y5fngwfPKtzZ8tx6iGKNeqC8uDy8yo8VCyLyL4,2670
81
86
  jarvis/jarvis_rag/retriever.py,sha256=BNEFZAgxTbmkxzBP1uy1wz3MX8wJN1wx5EtfsHqakqE,18374
82
87
  jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- jarvis/jarvis_smart_shell/main.py,sha256=JizPfVI-7-GqnYxdg77RHietGet6hZE6xUZoUCwKShE,14971
88
+ jarvis/jarvis_smart_shell/main.py,sha256=lUJPwLR9RlaaVv0lx3ojjjv5dELHOaindlsLDDkpssQ,14960
84
89
  jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
85
- jarvis/jarvis_stats/cli.py,sha256=iWuhA1AQAIOccXVUaO-k87T2b10s08wyeKAY5lUQ4og,12702
86
- jarvis/jarvis_stats/stats.py,sha256=AiQck1ma78YGR4hjT-leab-6GRMIQQmCp7wcG5SRKWw,19379
90
+ jarvis/jarvis_stats/cli.py,sha256=TsX4JQmEKjkFLkO_e81w7_6mXMin-7Mv_It_dols0q8,11477
91
+ jarvis/jarvis_stats/stats.py,sha256=MrVX0nJatCMd-ceijOVuY7jofwMxsf4QYMujyacvgAM,25355
87
92
  jarvis/jarvis_stats/storage.py,sha256=Lo2kPpqM4RDW0llkDWBTlij9B2k1FfmYgo05ekiaqoQ,22079
88
93
  jarvis/jarvis_stats/visualizer.py,sha256=ZIBmGELzs6c7qM01tQql1HF6eFKn6HDGVQfKXRUUIY0,8529
89
94
  jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
95
  jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
91
96
  jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
92
- jarvis/jarvis_tools/clear_memory.py,sha256=_GlwqlCAsoHeB24Y1CnjLdMawRTc6cq55AA8Yi5AZg4,8249
93
- jarvis/jarvis_tools/edit_file.py,sha256=4Q0-ofyUVd3R5TAoQqQfTZCBlE5fgvgD3bf7_6wiZ3I,7139
97
+ jarvis/jarvis_tools/clear_memory.py,sha256=8DOq6dHLemfKTJqu227PWBIp8Iu5K7EXwINzL8DYk8M,8205
98
+ jarvis/jarvis_tools/edit_file.py,sha256=t76zzfHjbAnx_7ZUqu9SvzGxnfMMZQXZxX3tPX7JkdE,7099
94
99
  jarvis/jarvis_tools/execute_script.py,sha256=UeOTv5Vf6KqmPH-gSwFf2xz4pRAADo9KTUUpi6yU138,6221
95
100
  jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
96
- jarvis/jarvis_tools/generate_new_tool.py,sha256=OCHkBOCQflgMZXRP4vgX3blnJOUq-_QkcBFRQFj3sj0,7894
101
+ jarvis/jarvis_tools/generate_new_tool.py,sha256=KBx0uxpdmqqGuK-DjaNrepp-JCTFJbgBh02sfQsVeqw,7792
97
102
  jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
98
103
  jarvis/jarvis_tools/read_code.py,sha256=qeQZ_emyPI5RTFx4HSgLBtWSwh8V5chqMjxu2uKzmfY,6100
99
104
  jarvis/jarvis_tools/read_webpage.py,sha256=YTmoalY8y-jdQuoj9IL6ZjXPOevUj2P_9arJngPhbUY,5317
100
- jarvis/jarvis_tools/registry.py,sha256=BFo5ih929IKvgIKHB3_neXco6JLFqLqQw9FTYpOgcnI,32016
101
- jarvis/jarvis_tools/retrieve_memory.py,sha256=hQ3s4IgBHtmUPzuWFl5Pc2FLEuT2gdi4l4NlUoO9pQM,8640
105
+ jarvis/jarvis_tools/registry.py,sha256=iUzHEia3ufWqfLqlBRJl5KwKCU_0EvqEEiO136NHvRs,32846
106
+ jarvis/jarvis_tools/retrieve_memory.py,sha256=hhhGSr7jebPHICY9oEKICyI8mfqsRtKjh58qZNZApKc,8624
102
107
  jarvis/jarvis_tools/rewrite_file.py,sha256=CuvjWPTbUaPbex9FKSmw_Ru4r6R-CX_3vqTqCTp8nHA,6959
103
- jarvis/jarvis_tools/save_memory.py,sha256=QKj6iYZL2XxPX0NnU9HqvoDOpJZ38mJmatDmHLK2r74,7012
104
- jarvis/jarvis_tools/search_web.py,sha256=8ugOcGBsAEg59pX_WS0WADuu7Klw7XGR6guEMz4OnwI,6181
105
- jarvis/jarvis_tools/sub_agent.py,sha256=GTn6JXIsomHw9M46HTybIYgyFHUc72AFrbI4l9cwUro,7983
106
- jarvis/jarvis_tools/sub_code_agent.py,sha256=JSQKJNBO3zQsCNk3x-CPzqTIRPeOt8rvP4WPC-JQOwI,7848
107
- jarvis/jarvis_tools/virtual_tty.py,sha256=1AYrVNP5QCX1HGo-xi3XEP93cMWZUOkil4ki2gwf7dI,25504
108
+ jarvis/jarvis_tools/save_memory.py,sha256=RQtNxcpU53FFv_EBjH0i0oyQ7jWubm-trD1BHuqaGjI,6985
109
+ jarvis/jarvis_tools/search_web.py,sha256=nkbmyIquGLl2JkgWP6pQ9dPcLlfQCuegwt_RKE0YWU0,6158
110
+ jarvis/jarvis_tools/sub_agent.py,sha256=KLaRjBfSAjnWm5SIvm4_yk0AXcb7ck6C5UBkzqXBEJQ,8899
111
+ jarvis/jarvis_tools/sub_code_agent.py,sha256=K9UaLOIQqV8cXHhNcVZ508a81C-qKNAg_j6wMziZ75s,9447
112
+ jarvis/jarvis_tools/virtual_tty.py,sha256=L7-J00ARQvIa25T45Hhqg2eCBl6W2LFgqDlWMWf-7dk,25275
108
113
  jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
- jarvis/jarvis_tools/cli/main.py,sha256=pyvSz0-hBduOqQShduv76UcB5wrK0v6MLonpub9AuXg,9334
114
+ jarvis/jarvis_tools/cli/main.py,sha256=WL2GNV7WqYl7G1-btRGvCkzDCMk4fPfNvzCrnUFVPxs,9323
110
115
  jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
111
- jarvis/jarvis_utils/builtin_replace_map.py,sha256=4BurljGuiG_I93EBs7mlFlPm9wYC_4CmdTG5tQWpF6g,1712
116
+ jarvis/jarvis_utils/builtin_replace_map.py,sha256=z8iAqsbZUiGFaozxG1xSu128op8udqHOeEw-GxNt4bU,1708
112
117
  jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
113
- jarvis/jarvis_utils/config.py,sha256=44MIH-CLRYpv8ltpirnq5_EccE1fVVGQciCiWRuDYmo,18824
118
+ jarvis/jarvis_utils/config.py,sha256=FjoSL6CHF-i18RwLDKPR7GIEJ2GlORdsjeJw2oXjs0g,20044
114
119
  jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
115
120
  jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
116
- jarvis/jarvis_utils/git_utils.py,sha256=X-j4aopmzmAW8Uv5rs3SDRnsAQYwJRnR6gR8yxXGEWg,23500
117
- jarvis/jarvis_utils/globals.py,sha256=aTrOHcCgPAeZFLFIWMAMiJCYlmr4XhdFZf5gZ745hnE,8900
121
+ jarvis/jarvis_utils/fzf.py,sha256=92u4w5pd6cyxBJlmyw3rXNyxToSAalK79m_aEBmkgV0,1590
122
+ jarvis/jarvis_utils/git_utils.py,sha256=Ed-11luixxuWKw4pT7Nq3vxU1G7DMBBya_CA7Xanzjk,23495
123
+ jarvis/jarvis_utils/globals.py,sha256=7Xvf9HY6jYJL4vSD1F1WCoxHkHCAyltJUYt4V9gGVU4,8865
118
124
  jarvis/jarvis_utils/http.py,sha256=eRhV3-GYuWmQ0ogq9di9WMlQkFcVb1zGCrySnOgT1x0,4392
119
- jarvis/jarvis_utils/input.py,sha256=tGIr3-t46gT3dD-Z6Bcb5xagIifM62cAHRkk3w9p7_Q,36635
120
- jarvis/jarvis_utils/methodology.py,sha256=3PAMHVF85IflBBblV_mMwkYXMelUML0nZYZ8MOAYUJ8,12918
121
- jarvis/jarvis_utils/output.py,sha256=svCHLuXHe3Ta_qfoT5DxO80nyYyMfBFIKgziQS__Nmg,13632
125
+ jarvis/jarvis_utils/input.py,sha256=J4ot3ldeCLbhrJdsoQVdl8L6BHg-dJhcrnP3UYL4vis,36502
126
+ jarvis/jarvis_utils/methodology.py,sha256=z_renvRGgHiC-XTQPuN6rvrJ_ffHlwxK_b1BU_jmNAQ,12800
127
+ jarvis/jarvis_utils/output.py,sha256=y2fVcao_2ZowFl0IxUrJZCi8T6ZM0z-iPzpk8T8eLxc,13623
122
128
  jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
123
- jarvis/jarvis_utils/utils.py,sha256=npqPuSVqCYFmcrIK_J-MqmMlRxZ9oZDbps9bT_tNI-E,63205
124
- jarvis_ai_assistant-0.3.26.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
125
- jarvis_ai_assistant-0.3.26.dist-info/METADATA,sha256=AFxKVvM2rsHE0Y18QCxQ9bddXdJKcmk0t2S1NWKaXw4,18790
126
- jarvis_ai_assistant-0.3.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
127
- jarvis_ai_assistant-0.3.26.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
128
- jarvis_ai_assistant-0.3.26.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
129
- jarvis_ai_assistant-0.3.26.dist-info/RECORD,,
129
+ jarvis/jarvis_utils/utils.py,sha256=CJwytbsM0rZjfWDNnYsW1iLNkFap2_JbjuSg5Yq33W0,67136
130
+ jarvis_ai_assistant-0.3.28.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
131
+ jarvis_ai_assistant-0.3.28.dist-info/METADATA,sha256=DiuU2MhlO7Q5Z7NbFq5RVouUnOeYozBwjF7NtHQ-XTY,18752
132
+ jarvis_ai_assistant-0.3.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
133
+ jarvis_ai_assistant-0.3.28.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
134
+ jarvis_ai_assistant-0.3.28.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
135
+ jarvis_ai_assistant-0.3.28.dist-info/RECORD,,