jarvis-ai-assistant 0.3.27__py3-none-any.whl → 0.3.29__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 (66) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +73 -29
  3. jarvis/jarvis_agent/agent_manager.py +6 -0
  4. jarvis/jarvis_agent/config_editor.py +1 -1
  5. jarvis/jarvis_agent/event_bus.py +2 -2
  6. jarvis/jarvis_agent/events.py +157 -0
  7. jarvis/jarvis_agent/file_methodology_manager.py +18 -7
  8. jarvis/jarvis_agent/jarvis.py +11 -4
  9. jarvis/jarvis_agent/memory_manager.py +4 -4
  10. jarvis/jarvis_agent/prompts.py +2 -2
  11. jarvis/jarvis_agent/protocols.py +4 -1
  12. jarvis/jarvis_agent/run_loop.py +9 -24
  13. jarvis/jarvis_agent/shell_input_handler.py +7 -2
  14. jarvis/jarvis_agent/task_analyzer.py +19 -15
  15. jarvis/jarvis_agent/task_manager.py +6 -4
  16. jarvis/jarvis_agent/user_interaction.py +1 -1
  17. jarvis/jarvis_agent/utils.py +50 -0
  18. jarvis/jarvis_code_agent/code_agent.py +2 -2
  19. jarvis/jarvis_code_analysis/code_review.py +0 -1
  20. jarvis/jarvis_git_utils/git_commiter.py +13 -4
  21. jarvis/jarvis_mcp/sse_mcp_client.py +1 -1
  22. jarvis/jarvis_mcp/stdio_mcp_client.py +1 -1
  23. jarvis/jarvis_memory_organizer/memory_organizer.py +6 -9
  24. jarvis/jarvis_methodology/main.py +0 -2
  25. jarvis/jarvis_multi_agent/__init__.py +3 -3
  26. jarvis/jarvis_platform/base.py +1 -1
  27. jarvis/jarvis_platform/kimi.py +1 -1
  28. jarvis/jarvis_platform/registry.py +1 -1
  29. jarvis/jarvis_platform/tongyi.py +1 -1
  30. jarvis/jarvis_platform/yuanbao.py +1 -2
  31. jarvis/jarvis_platform_manager/service.py +1 -1
  32. jarvis/jarvis_rag/cli.py +1 -1
  33. jarvis/jarvis_rag/embedding_manager.py +0 -1
  34. jarvis/jarvis_rag/llm_interface.py +0 -3
  35. jarvis/jarvis_rag/retriever.py +3 -3
  36. jarvis/jarvis_smart_shell/main.py +0 -1
  37. jarvis/jarvis_stats/cli.py +2 -3
  38. jarvis/jarvis_stats/stats.py +3 -4
  39. jarvis/jarvis_stats/storage.py +3 -3
  40. jarvis/jarvis_tools/clear_memory.py +1 -3
  41. jarvis/jarvis_tools/cli/main.py +0 -1
  42. jarvis/jarvis_tools/edit_file.py +3 -4
  43. jarvis/jarvis_tools/execute_script.py +2 -2
  44. jarvis/jarvis_tools/generate_new_tool.py +3 -5
  45. jarvis/jarvis_tools/registry.py +2 -3
  46. jarvis/jarvis_tools/retrieve_memory.py +2 -3
  47. jarvis/jarvis_tools/save_memory.py +3 -3
  48. jarvis/jarvis_tools/search_web.py +2 -2
  49. jarvis/jarvis_tools/sub_agent.py +21 -2
  50. jarvis/jarvis_tools/sub_code_agent.py +18 -2
  51. jarvis/jarvis_tools/virtual_tty.py +3 -14
  52. jarvis/jarvis_utils/builtin_replace_map.py +4 -4
  53. jarvis/jarvis_utils/config.py +32 -17
  54. jarvis/jarvis_utils/fzf.py +4 -3
  55. jarvis/jarvis_utils/git_utils.py +1 -1
  56. jarvis/jarvis_utils/globals.py +1 -2
  57. jarvis/jarvis_utils/input.py +5 -5
  58. jarvis/jarvis_utils/methodology.py +3 -5
  59. jarvis/jarvis_utils/output.py +1 -1
  60. jarvis/jarvis_utils/utils.py +160 -31
  61. {jarvis_ai_assistant-0.3.27.dist-info → jarvis_ai_assistant-0.3.29.dist-info}/METADATA +1 -1
  62. {jarvis_ai_assistant-0.3.27.dist-info → jarvis_ai_assistant-0.3.29.dist-info}/RECORD +66 -64
  63. {jarvis_ai_assistant-0.3.27.dist-info → jarvis_ai_assistant-0.3.29.dist-info}/WHEEL +0 -0
  64. {jarvis_ai_assistant-0.3.27.dist-info → jarvis_ai_assistant-0.3.29.dist-info}/entry_points.txt +0 -0
  65. {jarvis_ai_assistant-0.3.27.dist-info → jarvis_ai_assistant-0.3.29.dist-info}/licenses/LICENSE +0 -0
  66. {jarvis_ai_assistant-0.3.27.dist-info → jarvis_ai_assistant-0.3.29.dist-info}/top_level.txt +0 -0
@@ -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,21 +2,17 @@
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
9
8
  import time
10
9
  from pathlib import Path
11
- from typing import Any, Callable, Dict, List, Optional
10
+ from typing import Any, Callable, Dict, List, Optional, Tuple
12
11
  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 (
@@ -101,6 +97,98 @@ def is_rag_installed() -> bool:
101
97
  return len(get_missing_rag_modules()) == 0
102
98
 
103
99
 
100
+ def is_editable_install() -> bool:
101
+ """
102
+ 检测当前 Jarvis 是否以可编辑模式安装(pip/uv install -e .)。
103
+
104
+ 判断顺序:
105
+ 1. 读取 PEP 610 的 direct_url.json(dir_info.editable)
106
+ 2. 兼容旧式 .egg-link 安装
107
+ 3. 启发式回退:源码路径上游存在 .git 且不在 site-packages/dist-packages
108
+ """
109
+ # 优先使用 importlib.metadata 读取 distribution 的 direct_url.json
110
+ try:
111
+ import importlib.metadata as metadata # Python 3.8+
112
+ except Exception:
113
+ metadata = None # type: ignore
114
+
115
+ def _check_direct_url() -> Optional[bool]:
116
+ if metadata is None:
117
+ return None
118
+ candidates = ["jarvis-ai-assistant", "jarvis_ai_assistant"]
119
+ for name in candidates:
120
+ try:
121
+ dist = metadata.distribution(name)
122
+ except Exception:
123
+ continue
124
+ try:
125
+ files = dist.files or []
126
+ for f in files:
127
+ try:
128
+ if f.name == "direct_url.json":
129
+ p = Path(str(dist.locate_file(f)))
130
+ if p.exists():
131
+ with open(p, "r", encoding="utf-8", errors="ignore") as fp:
132
+ info = json.load(fp)
133
+ dir_info = info.get("dir_info") or {}
134
+ if isinstance(dir_info, dict) and bool(dir_info.get("editable")):
135
+ return True
136
+ # 兼容部分工具可能写入顶层 editable 字段
137
+ if bool(info.get("editable")):
138
+ return True
139
+ return False # 找到了 direct_url.json 但未标记 editable
140
+ except Exception:
141
+ continue
142
+ except Exception:
143
+ continue
144
+ return None
145
+
146
+ res = _check_direct_url()
147
+ if res is True:
148
+ return True
149
+ if res is False:
150
+ # 明确不是可编辑安装
151
+ return False
152
+
153
+ # 兼容旧式 .egg-link 可编辑安装
154
+ try:
155
+ module_path = Path(__file__).resolve()
156
+ pkg_root = module_path.parent.parent # jarvis 包根目录
157
+ for entry in sys.path:
158
+ try:
159
+ p = Path(entry)
160
+ if not p.exists() or not p.is_dir():
161
+ continue
162
+ for egg in p.glob("*.egg-link"):
163
+ try:
164
+ text = egg.read_text(encoding="utf-8", errors="ignore")
165
+ first_line = (text.strip().splitlines() or [""])[0]
166
+ if not first_line:
167
+ continue
168
+ src_path = Path(first_line).resolve()
169
+ # 当前包根目录在 egg-link 指向的源码路径下,视为可编辑安装
170
+ if str(pkg_root).startswith(str(src_path)):
171
+ return True
172
+ except Exception:
173
+ continue
174
+ except Exception:
175
+ continue
176
+ except Exception:
177
+ pass
178
+
179
+ # 启发式回退:源码仓库路径
180
+ try:
181
+ parents = list(Path(__file__).resolve().parents)
182
+ has_git = any((d / ".git").exists() for d in parents)
183
+ in_site = any(("site-packages" in str(d)) or ("dist-packages" in str(d)) for d in parents)
184
+ if has_git and not in_site:
185
+ return True
186
+ except Exception:
187
+ pass
188
+
189
+ return False
190
+
191
+
104
192
  def _setup_signal_handler() -> None:
105
193
  """设置SIGINT信号处理函数"""
106
194
  original_sigint = signal.getsignal(signal.SIGINT)
@@ -121,14 +209,14 @@ def _check_pip_updates() -> bool:
121
209
  """检查pip安装的Jarvis是否有更新
122
210
 
123
211
  返回:
124
- bool: 是否执行了更新(总是返回False,因为pip更新需要用户手动执行)
212
+ bool: 是否执行了更新(成功更新返回True以触发重启)
125
213
  """
126
214
  import urllib.request
127
215
  import urllib.error
128
216
  from packaging import version
129
217
 
130
218
  # 检查上次检查日期
131
- last_check_file = Path(get_data_dir()) / "last_pip_check"
219
+ last_check_file = Path(str(get_data_dir())) / "last_pip_check"
132
220
  today_str = date.today().strftime("%Y-%m-%d")
133
221
 
134
222
  if last_check_file.exists():
@@ -146,7 +234,7 @@ def _check_pip_updates() -> bool:
146
234
  with urllib.request.urlopen(url, timeout=5) as response:
147
235
  data = json.loads(response.read().decode())
148
236
  latest_version = data["info"]["version"]
149
- except (urllib.error.URLError, KeyError, json.JSONDecodeError) as e:
237
+ except (urllib.error.URLError, KeyError, json.JSONDecodeError):
150
238
  return False
151
239
 
152
240
  # 比较版本
@@ -166,6 +254,7 @@ def _check_pip_updates() -> bool:
166
254
 
167
255
  # 检测是否使用uv
168
256
  is_uv_env = False
257
+ uv_executable: Optional[str] = None
169
258
  if in_venv:
170
259
  if sys.platform == "win32":
171
260
  uv_path = Path(sys.prefix) / "Scripts" / "uv.exe"
@@ -173,6 +262,7 @@ def _check_pip_updates() -> bool:
173
262
  uv_path = Path(sys.prefix) / "bin" / "uv"
174
263
  if uv_path.exists():
175
264
  is_uv_env = True
265
+ uv_executable = str(uv_path)
176
266
 
177
267
  # 检测是否安装了 RAG 特性(更精确)
178
268
  from jarvis.jarvis_utils.utils import (
@@ -180,21 +270,60 @@ def _check_pip_updates() -> bool:
180
270
  ) # 延迟导入避免潜在循环依赖
181
271
  rag_installed = _is_rag_installed()
182
272
 
183
- # 提供更新命令
273
+ # 更新命令
184
274
  package_spec = (
185
275
  "jarvis-ai-assistant[rag]" if rag_installed else "jarvis-ai-assistant"
186
276
  )
187
- if is_uv_env:
277
+ if is_uv_env and uv_executable:
278
+ cmd_list = [uv_executable, "pip", "install", "--upgrade", package_spec]
188
279
  update_cmd = f"uv pip install --upgrade {package_spec}"
189
280
  else:
281
+ cmd_list = [
282
+ sys.executable,
283
+ "-m",
284
+ "pip",
285
+ "install",
286
+ "--upgrade",
287
+ package_spec,
288
+ ]
190
289
  update_cmd = f"{sys.executable} -m pip install --upgrade {package_spec}"
191
290
 
192
- PrettyOutput.print(f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO)
291
+ # 自动尝试升级(失败时提供手动命令)
292
+ try:
293
+ PrettyOutput.print("正在自动更新 Jarvis,请稍候...", OutputType.INFO)
294
+ result = subprocess.run(
295
+ cmd_list,
296
+ capture_output=True,
297
+ text=True,
298
+ encoding="utf-8",
299
+ errors="replace",
300
+ timeout=600,
301
+ )
302
+ if result.returncode == 0:
303
+ PrettyOutput.print("更新成功,正在重启以应用新版本...", OutputType.SUCCESS)
304
+ # 更新检查日期,避免重复触发
305
+ last_check_file.write_text(today_str)
306
+ return True
307
+ else:
308
+ err = (result.stderr or result.stdout or "").strip()
309
+ if err:
310
+ PrettyOutput.print(
311
+ f"自动更新失败,错误信息(已截断): {err[:500]}",
312
+ OutputType.WARNING,
313
+ )
314
+ PrettyOutput.print(
315
+ f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO
316
+ )
317
+ except Exception:
318
+ PrettyOutput.print("自动更新出现异常,已切换为手动更新方式。", OutputType.WARNING)
319
+ PrettyOutput.print(
320
+ f"请手动执行以下命令更新: {update_cmd}", OutputType.INFO
321
+ )
193
322
 
194
323
  # 更新检查日期
195
324
  last_check_file.write_text(today_str)
196
325
 
197
- except Exception as e:
326
+ except Exception:
198
327
  # 静默处理错误,不影响正常使用
199
328
  pass
200
329
 
@@ -225,7 +354,6 @@ def _show_usage_stats(welcome_str: str) -> None:
225
354
  from jarvis.jarvis_utils.output import OutputType, PrettyOutput
226
355
 
227
356
  try:
228
- from datetime import datetime
229
357
 
230
358
  from rich.console import Console, Group
231
359
  from rich.panel import Panel
@@ -709,7 +837,7 @@ def _interactive_config_setup(config_file_path: Path):
709
837
  guide_lines = ["", "配置获取方法:"]
710
838
  for key in required_keys:
711
839
  if key in config_guide and config_guide[key]:
712
- guide_lines.append(f"")
840
+ guide_lines.append("")
713
841
  guide_lines.append(f"{key} 获取方法:")
714
842
  guide_lines.append(str(config_guide[key]))
715
843
  PrettyOutput.print("\n".join(guide_lines), OutputType.INFO)
@@ -831,9 +959,6 @@ def load_config():
831
959
  _load_and_process_config(str(config_file_path.parent), str(config_file_path))
832
960
 
833
961
 
834
- from typing import Tuple
835
-
836
- from typing import Tuple
837
962
 
838
963
 
839
964
  def _load_config_file(config_file: str) -> Tuple[str, dict]:
@@ -1201,13 +1326,12 @@ def _collect_optional_config_interactively(
1201
1326
  " 适用于您希望绕过检查并自行管理仓库状态的场景。"
1202
1327
  )
1203
1328
 
1204
- try:
1205
- # 查找当前模式在选项中的索引
1206
- default_index = choices.index(current_mode)
1207
- except ValueError:
1208
- default_index = 0 # 默认为第一个选项
1209
1329
 
1210
- new_mode = get_choice(tip, choices, default_index)
1330
+
1331
+ new_mode = get_choice(
1332
+ tip,
1333
+ choices,
1334
+ )
1211
1335
 
1212
1336
  if new_mode == current_mode:
1213
1337
  return False
@@ -1329,7 +1453,6 @@ def _load_and_process_config(jarvis_dir: str, config_file: str) -> None:
1329
1453
  config_file: 配置文件路径
1330
1454
  """
1331
1455
  from jarvis.jarvis_utils.input import user_confirm as get_yes_no
1332
- from jarvis.jarvis_utils.input import get_single_line_input
1333
1456
 
1334
1457
  try:
1335
1458
  content, config_data = _load_config_file(config_file)
@@ -1533,7 +1656,7 @@ def _read_old_config_file(config_file):
1533
1656
  )
1534
1657
  set_global_env_data(config_data)
1535
1658
  PrettyOutput.print(
1536
- f"检测到旧格式配置文件,旧格式以后将不再支持,请尽快迁移到新格式",
1659
+ "检测到旧格式配置文件,旧格式以后将不再支持,请尽快迁移到新格式",
1537
1660
  OutputType.WARNING,
1538
1661
  )
1539
1662
 
@@ -1558,7 +1681,10 @@ def while_success(func: Callable[[], Any], sleep_time: float = 0.1, max_retries:
1558
1681
  except Exception:
1559
1682
  retry_count += 1
1560
1683
  if retry_count < max_retries:
1561
- PrettyOutput.print(f"重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...", OutputType.WARNING)
1684
+ PrettyOutput.print(
1685
+ f"发生异常,重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...",
1686
+ OutputType.WARNING,
1687
+ )
1562
1688
  time.sleep(sleep_time)
1563
1689
  continue
1564
1690
  return result
@@ -1587,7 +1713,10 @@ def while_true(func: Callable[[], bool], sleep_time: float = 0.1, max_retries: i
1587
1713
  break
1588
1714
  retry_count += 1
1589
1715
  if retry_count < max_retries:
1590
- PrettyOutput.print(f"重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...", OutputType.WARNING)
1716
+ PrettyOutput.print(
1717
+ f"返回空值,重试中 ({retry_count}/{max_retries}),等待 {sleep_time}s...",
1718
+ OutputType.WARNING,
1719
+ )
1591
1720
  time.sleep(sleep_time)
1592
1721
  return ret
1593
1722
 
@@ -1615,7 +1744,7 @@ def get_file_line_count(filename: str) -> int:
1615
1744
  """
1616
1745
  try:
1617
1746
  return len(open(filename, "r", encoding="utf-8", errors="ignore").readlines())
1618
- except Exception as e:
1747
+ except Exception:
1619
1748
  return 0
1620
1749
 
1621
1750
 
@@ -1756,7 +1885,7 @@ def _pull_git_repo(repo_path: Path, repo_type: str):
1756
1885
  return
1757
1886
 
1758
1887
  # 执行 git pull
1759
- pull_result = subprocess.run(
1888
+ subprocess.run(
1760
1889
  ["git", "pull"],
1761
1890
  cwd=repo_path,
1762
1891
  capture_output=True,
@@ -1806,7 +1935,7 @@ def daily_check_git_updates(repo_dirs: List[str], repo_type: str):
1806
1935
  repo_dirs (List[str]): 需要检查的git仓库目录列表。
1807
1936
  repo_type (str): 仓库的类型名称,例如 "工具" 或 "方法论",用于日志输出。
1808
1937
  """
1809
- data_dir = Path(get_data_dir())
1938
+ data_dir = Path(str(get_data_dir()))
1810
1939
  last_check_file = data_dir / f"{repo_type}_updates_last_check.txt"
1811
1940
  should_check_for_updates = True
1812
1941
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.27
3
+ Version: 0.3.29
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
@@ -1,34 +1,36 @@
1
- jarvis/__init__.py,sha256=DlhBYMC44U1RQMIeyt3Nd2Eh37aTzGgUrvliKlFIIBE,74
2
- jarvis/jarvis_agent/__init__.py,sha256=TjR_LJ56XBYrh4ip1OWF6jYpJdAqTc_zJM2pjxjzYjI,42363
3
- jarvis/jarvis_agent/agent_manager.py,sha256=mmDe26Wa1Dnyp8CkTKupcKipC-5HSuCnk-oVJseOdTg,2801
1
+ jarvis/__init__.py,sha256=X2rzcykWOEzMfehTtOQUab3k08FJV8mLOoW-SHGrKMM,74
2
+ jarvis/jarvis_agent/__init__.py,sha256=egfCOErLtZZ1uGSgFpEOFqR72XGEvAp_e06bgBya2Ww,43625
3
+ jarvis/jarvis_agent/agent_manager.py,sha256=qNcMy5Xc5ZT26JfczBg4b4D5udKVHSFsCFjlpbIdmPo,3076
4
4
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=wS-FqpT3pIXwHn1dfL3SpXonUKWgVThbQueUIeyRc2U,2917
5
5
  jarvis/jarvis_agent/config.py,sha256=Ni1aTVzmdERJ89A1jsC21Tsys_9MM-TTx1w5XwxyEwA,3130
6
- jarvis/jarvis_agent/config_editor.py,sha256=IHyuwI4SRDrqxz8lO0NNgt2F3uYAw1WEKXMxQV49bYI,1928
6
+ jarvis/jarvis_agent/config_editor.py,sha256=hlb9EYxKWcR_qdW2O89CgNDdciR9Isi743JU_1gD8j4,1927
7
7
  jarvis/jarvis_agent/edit_file_handler.py,sha256=5sFz84jqy2gpc0aLOre2bvz8_DitlBoWZs_cQwftWLw,11570
8
- jarvis/jarvis_agent/event_bus.py,sha256=-QVAGTe3B2Cu3-FGkw78l8XikS4vPZ-D61ajUtplOCU,1515
9
- jarvis/jarvis_agent/file_methodology_manager.py,sha256=PwDUQwq7HVIyPInsN8fgWyMXLwi8heIXPrqfBZJhVHs,4260
10
- jarvis/jarvis_agent/jarvis.py,sha256=IAt5QWOR2ZTAsuLGXPf13FZ-rixRZg3hDnk4cAZ9m70,24012
8
+ jarvis/jarvis_agent/event_bus.py,sha256=pRdfk7d0OG18K6yNfWlCvAh_dW5p9sBtT2Yc3jGmzgo,1519
9
+ jarvis/jarvis_agent/events.py,sha256=rmFQ37PasImCh7OCdCzNBvubk-kHwcUiYLgzmL0t0_4,3689
10
+ jarvis/jarvis_agent/file_methodology_manager.py,sha256=LnhgTx5xQXCBK8esjCkFbgFm9iEyFX7TryUlC40Kzpw,4428
11
+ jarvis/jarvis_agent/jarvis.py,sha256=IW3BlErR_B6UxreTdmD9tIMy0C3xb593LOtCUdFChQs,24368
11
12
  jarvis/jarvis_agent/main.py,sha256=bFcwXWC6O05jQiXy6ED_bHjdjDo5VwV_i1BoBEAzgP0,3336
12
- jarvis/jarvis_agent/memory_manager.py,sha256=fOCmH3QDq9D-tsFKauI0GHER-gGfEPhRDo97MqeUBtg,8003
13
+ jarvis/jarvis_agent/memory_manager.py,sha256=WSyUffx9xTmkcj4QrSLEfsjI3sTMUwZmkkC9_N_gTjo,8042
13
14
  jarvis/jarvis_agent/methodology_share_manager.py,sha256=AB_J9BwRgaeENQfL6bH83FOLeLrgHhppMb7psJNevKs,6874
14
15
  jarvis/jarvis_agent/output_handler.py,sha256=P7oWpXBGFfOsWq7cIhS_z9crkQ19ES7qU5pM92KKjAs,1172
15
16
  jarvis/jarvis_agent/prompt_builder.py,sha256=PH1fPDVa8z_RXkoXHJFNDf8PQjUoLNLYwkh2lC__p40,1705
16
17
  jarvis/jarvis_agent/prompt_manager.py,sha256=_1qLBSA3yn4nT_N3X2npTpW40Cp-pMeyvnzu-pnG0iU,2720
17
- jarvis/jarvis_agent/prompts.py,sha256=X6cXa-n0xqBQ8LDTgLsD0kqziAh1s0cNp89i4mxcvHg,9444
18
- jarvis/jarvis_agent/protocols.py,sha256=JWnJDikFEuwvFUv7uzXu0ggJ4O9K2FkMnfVCwIJ5REw,873
19
- jarvis/jarvis_agent/run_loop.py,sha256=MccMT_8lPS4H8QaF7YuatKZR4ucBzy71H-_6mIZliB4,4885
18
+ jarvis/jarvis_agent/prompts.py,sha256=CvbPYx_klEz6OQrxVReZAnC2uQNo53rWkkucmh30uKg,9531
19
+ jarvis/jarvis_agent/protocols.py,sha256=YFJaC9MHi7JfLzmvlyotJDjiCO4Z07XJXy1gKhVdUy4,956
20
+ jarvis/jarvis_agent/run_loop.py,sha256=_TLkup6nhLimJbxgKWnZxRoCTL_x1DxDX5s76q0ns8g,4418
20
21
  jarvis/jarvis_agent/session_manager.py,sha256=5wVcaZGwJ9cEKTQglSbqyxUDJ2fI5KxYN8C8L16UWLw,3024
21
22
  jarvis/jarvis_agent/share_manager.py,sha256=MF2RlomcgPxF8nVUk28DP6IRddZ_tot5l_YRvy0qXSQ,8726
22
- jarvis/jarvis_agent/shell_input_handler.py,sha256=YjzmtcBUqJDYeD1i1cA1betUKaGOcvKNo8biayYEfc8,1860
23
- jarvis/jarvis_agent/task_analyzer.py,sha256=5TcS9nltqcm_gb-6I3wuc0Tc8pOgTrQSiwrJdkGDdSw,7676
24
- jarvis/jarvis_agent/task_manager.py,sha256=voR-L8okMWRKxZh79FsER0DaUHk-fKOzijXlDiQzJxs,6399
23
+ jarvis/jarvis_agent/shell_input_handler.py,sha256=wiAPjB-9uTkcLszbO5dlOUwIfaeR39RgRcZhahIGqoA,2018
24
+ jarvis/jarvis_agent/task_analyzer.py,sha256=JXc-63hnTD7oSX-nIfRcgxqCMhh4fM4QYVc7C1gp--M,7813
25
+ jarvis/jarvis_agent/task_manager.py,sha256=lme_aN8vaF_a4Tvv2kaSEnWATy8RPSjogTxeLnEYZdg,6504
25
26
  jarvis/jarvis_agent/tool_executor.py,sha256=k73cKhZEZpljvui4ZxALlFEIE-iLzJ32Softsmiwzqk,1896
26
27
  jarvis/jarvis_agent/tool_share_manager.py,sha256=Do08FRxis0ynwR2a6iRoa6Yq0qCP8NkuhMbPrimaxMA,5169
27
- jarvis/jarvis_agent/user_interaction.py,sha256=rMQjJoTrabZMmt-SOtg1UPCqxTdPDOaPOhfmCwE773M,1463
28
+ jarvis/jarvis_agent/user_interaction.py,sha256=tifFN49GkO_Q80sqOTVmhxwbNWTazF3K0cr8AnnvzdU,1453
29
+ jarvis/jarvis_agent/utils.py,sha256=ldgfuNTNu4JU7Y1LtystBl85OC6H3A4OMycg0XBt_Cs,1615
28
30
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- jarvis/jarvis_code_agent/code_agent.py,sha256=2er9wAgYeMibaZLgWBq5vDLjO734aWEaxkpKxCsw_XM,32101
31
+ jarvis/jarvis_code_agent/code_agent.py,sha256=mt78h3VLAbTAjTHOwjxNDOllHqfiHwFcAfmvUjiJFQI,32227
30
32
  jarvis/jarvis_code_agent/lint.py,sha256=_qLJB_bC3PuoHG-j4EGOnYzNGO26jHlKLbkysfyQW1c,3954
31
- jarvis/jarvis_code_analysis/code_review.py,sha256=99izndiYBDcDJBu-gAXqpUkN9usmFfYroqJkZUw7AwA,34481
33
+ jarvis/jarvis_code_analysis/code_review.py,sha256=Z0JsvyVPPHPm6rfo4fqaQr7CdZKIllo9jqStzV0i_-o,34470
32
34
  jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=LIXAYa1sW3l7foP6kohLWnE98I_EQ0T7z5bYKHq6rJA,78
33
35
  jarvis/jarvis_code_analysis/checklists/c_cpp.py,sha256=9t62bMqs6qTkFSio4SKkj88qyb5ZubWrw3MxJBQ4X1A,1317
34
36
  jarvis/jarvis_code_analysis/checklists/csharp.py,sha256=ShPXrl2_UPAnGaCHAG2wLl90COG3HK2XCSr1UK2dxN4,2420
@@ -53,83 +55,83 @@ jarvis/jarvis_data/config_schema.json,sha256=fXISAybgeJOmXHPK0j3XjBgA25mn6ZHz7Qq
53
55
  jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
54
56
  jarvis/jarvis_git_squash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
57
  jarvis/jarvis_git_squash/main.py,sha256=BRbsEQVXwseVFKliVqV8_JPh1om6QT6dLTHw0jQ7OE0,2474
56
- jarvis/jarvis_git_utils/git_commiter.py,sha256=mWuP_undXLkrok26gmO83PjBDKc0dPolWEciemXRXos,15790
58
+ jarvis/jarvis_git_utils/git_commiter.py,sha256=9JoQz6dhzYPyvLrbRBJmcLf28S8_lKFW-TmO-u-hFns,16357
57
59
  jarvis/jarvis_mcp/__init__.py,sha256=OPMtjD-uq9xAaKCRIDyKIosaFfBe1GBPu1az-mQ0rVM,2048
58
- jarvis/jarvis_mcp/sse_mcp_client.py,sha256=UIDBaFNuuaJE0YiKmtbZTqwZpkDI5SaS0my1DIJj-3g,22831
59
- jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=APYUksYKlMx7AVNODKOLrTkKZPnp4kqTQIYIuNDDKko,11286
60
+ jarvis/jarvis_mcp/sse_mcp_client.py,sha256=okbuSxmY2HrDoqcuvZv2UWDmDCrB5fb-FAeduYNBpdg,22831
61
+ jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=sdVwHgBoXa95WeUTmFIq9ys3eRgEB5Psalfqq5FzMMI,11277
60
62
  jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=BenOeZGNHdUOJT5Z3cc5MhS6aOeKQgqXm1ED-BqsLCY,15511
61
63
  jarvis/jarvis_memory_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=aAMKBZBiLkdyMUq0EzaiP1jJUflb1juhQkUULwPHzwk,26361
63
- jarvis/jarvis_methodology/main.py,sha256=2W57mSYhSoL_jFACrdCax_KIQWZTZsEKQ4obvpm-Y6M,11409
64
- jarvis/jarvis_multi_agent/__init__.py,sha256=Ygp4DBBkmEXCRcQV3nr07zOxo2Tb4149mi4KcQdXR8g,6091
64
+ jarvis/jarvis_memory_organizer/memory_organizer.py,sha256=CMFL46vvtpcTI6oS3CAlYteR6xAlwCkvVJmMT22uDRw,26295
65
+ jarvis/jarvis_methodology/main.py,sha256=uiNzk5b5O6xdvRhsOuD7ubxdd2tPcDsFFnvmes8uH8I,11370
66
+ jarvis/jarvis_multi_agent/__init__.py,sha256=OD3ZyuxPNPHaqjQqiKiW0HuB0DI_sdv41wFlCISHWIQ,6084
65
67
  jarvis/jarvis_multi_agent/main.py,sha256=b9IThFMeUZCYSlgT-VT8r7xeBdrEE_zNT11awEc8IdY,1853
66
68
  jarvis/jarvis_platform/__init__.py,sha256=WLQHSiE87PPket2M50_hHzjdMIgPIBx2VF8JfB_NNRk,105
67
69
  jarvis/jarvis_platform/ai8.py,sha256=g8JkqPGs9SEbqstNMCc5rCHO0QcPHX9LNvb7HMWwB-Q,11471
68
- jarvis/jarvis_platform/base.py,sha256=wKZJConlNtqpr2w5IGIxu4fNMt8Yr2w8banQJH0wn64,13505
70
+ jarvis/jarvis_platform/base.py,sha256=u1XvfE83-S-3W_euMrMaaa8NdXeIHlo7VSxLBbN3K-Y,13504
69
71
  jarvis/jarvis_platform/human.py,sha256=jWjW8prEag79e6ddqTPV4nz_Gz6zFBfO4a1EbvP8QWA,4908
70
- jarvis/jarvis_platform/kimi.py,sha256=dLES_E0VmDQ3TwjTZk5vCGdbvdBeSVvvlXR90m6vPfY,15711
72
+ jarvis/jarvis_platform/kimi.py,sha256=KLsf9udAsPRMbQ2JkBeiAlXkupCBwdtMaJ-hpH4Jdkc,15711
71
73
  jarvis/jarvis_platform/openai.py,sha256=0YSeDGHRSPQP2haEzFARx_aZH_d_UZ-HSCsJLh2hW5k,8037
72
- jarvis/jarvis_platform/registry.py,sha256=uwQvivGKuDT2LI-e_jUPvPR8Qyc7KTANkWGZLMEQx3Q,8050
73
- jarvis/jarvis_platform/tongyi.py,sha256=0UM1VLbBYrlNF5dSRqp2Kefeb0FkXhKhc7PnrsZWqOQ,23456
74
- jarvis/jarvis_platform/yuanbao.py,sha256=W0aIQOZoHt4QGYYBYzRbVWlgwAdhzoCv93xD7v8Lvqc,24004
74
+ jarvis/jarvis_platform/registry.py,sha256=YqaFM2LXcHvqMQrTEQ_cVo8V-wQ8HhOeSdC8DdjvC00,8045
75
+ jarvis/jarvis_platform/tongyi.py,sha256=QQHDn-kNcb_UH-B49lVIQTlHzYd_O8CFWN7SZqy38S4,23456
76
+ jarvis/jarvis_platform/yuanbao.py,sha256=jlttNWq-Bq9JLxaI6MOsxKZaNEXF1EfVVB7mjtVcYMA,23954
75
77
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
78
  jarvis/jarvis_platform_manager/main.py,sha256=yv7m8cNRBe4nk0Kui1w2PKTUr9Sb3wrQirvmyAUbr5U,20400
77
- jarvis/jarvis_platform_manager/service.py,sha256=WG2r0JRBGfSLGdsKxqYvmaacU_ne3PTn3RkczTzUb_M,14899
79
+ jarvis/jarvis_platform_manager/service.py,sha256=kFIsFTwaMZ1ooQNFAwvUXjB7G2enbAqHExCdO3jskzQ,14892
78
80
  jarvis/jarvis_rag/__init__.py,sha256=HRTXgnQxDuaE9x-e3r6SYqhJ5d4DSI_rrIxy2IGY6qk,320
79
81
  jarvis/jarvis_rag/cache.py,sha256=Tqx_Oe-AhuWlMXHGHUaIuG6OEHoHBVZq7mL3kldtFFU,2723
80
- jarvis/jarvis_rag/cli.py,sha256=4tcB76I87QNHCSp29JDslETJSH5oWPtNYMlos-6dZu0,17532
81
- jarvis/jarvis_rag/embedding_manager.py,sha256=SF7BW8hoZWzDhDqlOdhnX6XTw42Fx2GKs7Y_RUT1ydo,10400
82
- jarvis/jarvis_rag/llm_interface.py,sha256=DH46Vm3AgzK1o41X7wUUYUbbOOVPgmDCxS5l6djm9eA,4561
82
+ jarvis/jarvis_rag/cli.py,sha256=dUtdxwUzOsIwhAdr_nLnRSw-8q4W7kw5lU_K6VDHzlE,17517
83
+ jarvis/jarvis_rag/embedding_manager.py,sha256=r-S12eW5nz3GJQgbk-7eQ9JVxxZ57-wLAQx_1zSl0po,10330
84
+ jarvis/jarvis_rag/llm_interface.py,sha256=ntZzJtq-74d8ljqm-_flHaFys_RHjMMZRCKcMdwZt-Y,4505
83
85
  jarvis/jarvis_rag/query_rewriter.py,sha256=LGAWZ8kwH_dpquuYqc4QWC7IXmHX3SsnPSYMWOn-nDE,4072
84
86
  jarvis/jarvis_rag/rag_pipeline.py,sha256=aaTuxiArtVaPemWeySApw64q204JeLNXpOEtq7Adn1I,13797
85
87
  jarvis/jarvis_rag/reranker.py,sha256=7Azc3y5fngwfPKtzZ8tx6iGKNeqC8uDy8yo8VCyLyL4,2670
86
- jarvis/jarvis_rag/retriever.py,sha256=BNEFZAgxTbmkxzBP1uy1wz3MX8wJN1wx5EtfsHqakqE,18374
88
+ jarvis/jarvis_rag/retriever.py,sha256=J4jO0492yHEwxJz_Cp2WP3vGHRHKj56rDyWZQ2W0XdA,18374
87
89
  jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- jarvis/jarvis_smart_shell/main.py,sha256=JizPfVI-7-GqnYxdg77RHietGet6hZE6xUZoUCwKShE,14971
90
+ jarvis/jarvis_smart_shell/main.py,sha256=lUJPwLR9RlaaVv0lx3ojjjv5dELHOaindlsLDDkpssQ,14960
89
91
  jarvis/jarvis_stats/__init__.py,sha256=jJzgP43nxzLbNGs8Do4Jfta1PNCJMf1Oq9YTPd6EnFM,342
90
- jarvis/jarvis_stats/cli.py,sha256=ngKrJ5Y4fUqZ4ghcCTvk2mDZsKWZw1ZgvTtVWu9p9Ec,11552
91
- jarvis/jarvis_stats/stats.py,sha256=XXBpU5vpi60rTpnTr3Nj7m7-uBQpnvopCj1CwU4rfew,25391
92
- jarvis/jarvis_stats/storage.py,sha256=Lo2kPpqM4RDW0llkDWBTlij9B2k1FfmYgo05ekiaqoQ,22079
92
+ jarvis/jarvis_stats/cli.py,sha256=TsX4JQmEKjkFLkO_e81w7_6mXMin-7Mv_It_dols0q8,11477
93
+ jarvis/jarvis_stats/stats.py,sha256=_z7ZEZHGy8aLbcDJ0qTGrrl9M6bOix_-hveN2Af5GiI,25375
94
+ jarvis/jarvis_stats/storage.py,sha256=ztahlCf5ZaHizcJ3Kijmx6irTbzU_I9UEOgEwHZF84s,22084
93
95
  jarvis/jarvis_stats/visualizer.py,sha256=ZIBmGELzs6c7qM01tQql1HF6eFKn6HDGVQfKXRUUIY0,8529
94
96
  jarvis/jarvis_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
97
  jarvis/jarvis_tools/ask_user.py,sha256=M6DdLNryCE8y1JcdZHEifUgZkPUEPNKc-zDW5p0Mb1k,2029
96
98
  jarvis/jarvis_tools/base.py,sha256=tFZkRlbV_a-pbjM-ci9AYmXVJm__FXuzVWKbQEyz4Ao,1639
97
- jarvis/jarvis_tools/clear_memory.py,sha256=_GlwqlCAsoHeB24Y1CnjLdMawRTc6cq55AA8Yi5AZg4,8249
98
- jarvis/jarvis_tools/edit_file.py,sha256=4Q0-ofyUVd3R5TAoQqQfTZCBlE5fgvgD3bf7_6wiZ3I,7139
99
- jarvis/jarvis_tools/execute_script.py,sha256=UeOTv5Vf6KqmPH-gSwFf2xz4pRAADo9KTUUpi6yU138,6221
99
+ jarvis/jarvis_tools/clear_memory.py,sha256=8DOq6dHLemfKTJqu227PWBIp8Iu5K7EXwINzL8DYk8M,8205
100
+ jarvis/jarvis_tools/edit_file.py,sha256=a6iyeH2MroejGCoaNDkXwGbSfqFikKbh6tG6Woljvi8,7105
101
+ jarvis/jarvis_tools/execute_script.py,sha256=oDOMn8GcV6qKP4d0RFT6xbHGTazRmaOlp-h_e_Wj80c,6227
100
102
  jarvis/jarvis_tools/file_analyzer.py,sha256=jzVb8fAJn3dWwpCiYH-Wuxva4kpHqBB2_V3x3mzY0Gs,4158
101
- jarvis/jarvis_tools/generate_new_tool.py,sha256=OCHkBOCQflgMZXRP4vgX3blnJOUq-_QkcBFRQFj3sj0,7894
103
+ jarvis/jarvis_tools/generate_new_tool.py,sha256=KBx0uxpdmqqGuK-DjaNrepp-JCTFJbgBh02sfQsVeqw,7792
102
104
  jarvis/jarvis_tools/methodology.py,sha256=_K4GIDUodGEma3SvNRo7Qs5rliijgNespVLyAPN35JU,5233
103
105
  jarvis/jarvis_tools/read_code.py,sha256=qeQZ_emyPI5RTFx4HSgLBtWSwh8V5chqMjxu2uKzmfY,6100
104
106
  jarvis/jarvis_tools/read_webpage.py,sha256=YTmoalY8y-jdQuoj9IL6ZjXPOevUj2P_9arJngPhbUY,5317
105
- jarvis/jarvis_tools/registry.py,sha256=xjlOvyWM8xzT6WJs80G4AQN7ICMgXoPmOgKIKYPIn5U,32909
106
- jarvis/jarvis_tools/retrieve_memory.py,sha256=hQ3s4IgBHtmUPzuWFl5Pc2FLEuT2gdi4l4NlUoO9pQM,8640
107
+ jarvis/jarvis_tools/registry.py,sha256=iUzHEia3ufWqfLqlBRJl5KwKCU_0EvqEEiO136NHvRs,32846
108
+ jarvis/jarvis_tools/retrieve_memory.py,sha256=hhhGSr7jebPHICY9oEKICyI8mfqsRtKjh58qZNZApKc,8624
107
109
  jarvis/jarvis_tools/rewrite_file.py,sha256=CuvjWPTbUaPbex9FKSmw_Ru4r6R-CX_3vqTqCTp8nHA,6959
108
- jarvis/jarvis_tools/save_memory.py,sha256=QKj6iYZL2XxPX0NnU9HqvoDOpJZ38mJmatDmHLK2r74,7012
109
- jarvis/jarvis_tools/search_web.py,sha256=8ugOcGBsAEg59pX_WS0WADuu7Klw7XGR6guEMz4OnwI,6181
110
- jarvis/jarvis_tools/sub_agent.py,sha256=r1RRZwqIp0qiix-EAH8gJA_xECVLpenoCvcqD0a-qEM,7784
111
- jarvis/jarvis_tools/sub_code_agent.py,sha256=FzsZPSgevDToLBUXnJECIjNDhMn4st6IiRLLWjoYLQw,8149
112
- jarvis/jarvis_tools/virtual_tty.py,sha256=1AYrVNP5QCX1HGo-xi3XEP93cMWZUOkil4ki2gwf7dI,25504
110
+ jarvis/jarvis_tools/save_memory.py,sha256=RQtNxcpU53FFv_EBjH0i0oyQ7jWubm-trD1BHuqaGjI,6985
111
+ jarvis/jarvis_tools/search_web.py,sha256=nkbmyIquGLl2JkgWP6pQ9dPcLlfQCuegwt_RKE0YWU0,6158
112
+ jarvis/jarvis_tools/sub_agent.py,sha256=kjMZBXQE3OUgm5eO9lNkOuBnugWQGZbCpVP0HNW5W2s,8905
113
+ jarvis/jarvis_tools/sub_code_agent.py,sha256=vVPcGKfgyhbZzl8vp2HHbgR1oQzC0TlS0G3THoZgU5Q,9453
114
+ jarvis/jarvis_tools/virtual_tty.py,sha256=L7-J00ARQvIa25T45Hhqg2eCBl6W2LFgqDlWMWf-7dk,25275
113
115
  jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
- jarvis/jarvis_tools/cli/main.py,sha256=pyvSz0-hBduOqQShduv76UcB5wrK0v6MLonpub9AuXg,9334
116
+ jarvis/jarvis_tools/cli/main.py,sha256=WL2GNV7WqYl7G1-btRGvCkzDCMk4fPfNvzCrnUFVPxs,9323
115
117
  jarvis/jarvis_utils/__init__.py,sha256=67h0ldisGlh3oK4DAeNEL2Bl_VsI3tSmfclasyVlueM,850
116
- jarvis/jarvis_utils/builtin_replace_map.py,sha256=4BurljGuiG_I93EBs7mlFlPm9wYC_4CmdTG5tQWpF6g,1712
118
+ jarvis/jarvis_utils/builtin_replace_map.py,sha256=z8iAqsbZUiGFaozxG1xSu128op8udqHOeEw-GxNt4bU,1708
117
119
  jarvis/jarvis_utils/clipboard.py,sha256=D3wzQeqg_yiH7Axs4d6MRxyNa9XxdnenH-ND2uj2WVQ,2967
118
- jarvis/jarvis_utils/config.py,sha256=F_sjwrO5_vyZIfev8EzgtBtSYFTMdIanQ1cLrH-9txk,19120
120
+ jarvis/jarvis_utils/config.py,sha256=Gvb58S0Ax2Y_FvHs02w6kd9ENJvAQyQa6hLPRcneQU4,20045
119
121
  jarvis/jarvis_utils/embedding.py,sha256=oEOEM2qf16DMYwPsQe6srET9BknyjOdY2ef0jsp3Or8,2714
120
122
  jarvis/jarvis_utils/file_processors.py,sha256=XiM248SHS7lLgQDCbORVFWqinbVDUawYxWDOsLXDxP8,3043
121
- jarvis/jarvis_utils/fzf.py,sha256=92u4w5pd6cyxBJlmyw3rXNyxToSAalK79m_aEBmkgV0,1590
122
- jarvis/jarvis_utils/git_utils.py,sha256=X-j4aopmzmAW8Uv5rs3SDRnsAQYwJRnR6gR8yxXGEWg,23500
123
- jarvis/jarvis_utils/globals.py,sha256=aTrOHcCgPAeZFLFIWMAMiJCYlmr4XhdFZf5gZ745hnE,8900
123
+ jarvis/jarvis_utils/fzf.py,sha256=vCs0Uh5dUqGbWzXn2JCtLLCOYE2B39ZNdNveR9PK4DA,1681
124
+ jarvis/jarvis_utils/git_utils.py,sha256=Ed-11luixxuWKw4pT7Nq3vxU1G7DMBBya_CA7Xanzjk,23495
125
+ jarvis/jarvis_utils/globals.py,sha256=7Xvf9HY6jYJL4vSD1F1WCoxHkHCAyltJUYt4V9gGVU4,8865
124
126
  jarvis/jarvis_utils/http.py,sha256=eRhV3-GYuWmQ0ogq9di9WMlQkFcVb1zGCrySnOgT1x0,4392
125
- jarvis/jarvis_utils/input.py,sha256=J4ot3ldeCLbhrJdsoQVdl8L6BHg-dJhcrnP3UYL4vis,36502
126
- jarvis/jarvis_utils/methodology.py,sha256=3PAMHVF85IflBBblV_mMwkYXMelUML0nZYZ8MOAYUJ8,12918
127
- jarvis/jarvis_utils/output.py,sha256=svCHLuXHe3Ta_qfoT5DxO80nyYyMfBFIKgziQS__Nmg,13632
127
+ jarvis/jarvis_utils/input.py,sha256=EBdjPopkxVpG4JsnP9gtTSJ10u_scagujyKyOMhatLQ,36524
128
+ jarvis/jarvis_utils/methodology.py,sha256=z_renvRGgHiC-XTQPuN6rvrJ_ffHlwxK_b1BU_jmNAQ,12800
129
+ jarvis/jarvis_utils/output.py,sha256=y2fVcao_2ZowFl0IxUrJZCi8T6ZM0z-iPzpk8T8eLxc,13623
128
130
  jarvis/jarvis_utils/tag.py,sha256=f211opbbbTcSyzCDwuIK_oCnKhXPNK-RknYyGzY1yD0,431
129
- jarvis/jarvis_utils/utils.py,sha256=CBEr4CeA8npCX7HQT0z2rpr1FmuehrtjWz1dpUW2Uk8,65391
130
- jarvis_ai_assistant-0.3.27.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
131
- jarvis_ai_assistant-0.3.27.dist-info/METADATA,sha256=7hKr_nyMqxJ1qysd1ihzY44fdDinvJ18UoJ2gQlDjCc,18752
132
- jarvis_ai_assistant-0.3.27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
133
- jarvis_ai_assistant-0.3.27.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
134
- jarvis_ai_assistant-0.3.27.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
135
- jarvis_ai_assistant-0.3.27.dist-info/RECORD,,
131
+ jarvis/jarvis_utils/utils.py,sha256=mHX9KGCyAmxaghzxphGnmw_S7vKek7DfgxjfirsBxNY,70483
132
+ jarvis_ai_assistant-0.3.29.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
133
+ jarvis_ai_assistant-0.3.29.dist-info/METADATA,sha256=tiPkNoo2aWDFS7c1S4zExPPMy5GpW_509Xs6AMM9v0M,18752
134
+ jarvis_ai_assistant-0.3.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
135
+ jarvis_ai_assistant-0.3.29.dist-info/entry_points.txt,sha256=4GcWKFxRJD-QU14gw_3ZaW4KuEVxOcZK9i270rwPdjA,1395
136
+ jarvis_ai_assistant-0.3.29.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
137
+ jarvis_ai_assistant-0.3.29.dist-info/RECORD,,