myagent-ai 1.15.38 → 1.15.40

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.
@@ -140,6 +140,11 @@ def _get_pip_index_args() -> List[str]:
140
140
  return []
141
141
 
142
142
 
143
+ def _is_skip_deps() -> bool:
144
+ """检查是否设置了跳过依赖安装的环境变量"""
145
+ return os.environ.get("MYAGENT_SKIP_DEPS") == "1"
146
+
147
+
143
148
  def _pip_install(pip_names: List[str], category: str = "") -> Tuple[bool, str]:
144
149
  """
145
150
  使用当前 Python 解释器执行 pip install。
@@ -147,6 +152,11 @@ def _pip_install(pip_names: List[str], category: str = "") -> Tuple[bool, str]:
147
152
  Returns:
148
153
  (success, message)
149
154
  """
155
+ # --skip-deps 时完全跳过任何 pip 安装
156
+ if _is_skip_deps():
157
+ packages = " ".join(pip_names)
158
+ logger.debug(f"跳过依赖安装(--skip-deps): {packages}")
159
+ return True, f"已跳过: {packages}"
150
160
  python = _get_python_executable()
151
161
  packages = " ".join(pip_names)
152
162
 
@@ -267,6 +277,9 @@ def check_and_install_deps(
267
277
  "browser": str, # ChromeDev MCP 状态
268
278
  }
269
279
  """
280
+ # --skip-deps 安全网:即使调用方忘记检查,也不会执行安装
281
+ skip_deps = _is_skip_deps()
282
+
270
283
  stats = {
271
284
  "checked": 0,
272
285
  "available": 0,
@@ -322,7 +335,9 @@ def check_and_install_deps(
322
335
  if not silent:
323
336
  logger.info(f"依赖缺失: {dep.import_name} (pip: {dep.pip_name}, 分类: {dep.category})")
324
337
 
325
- if not auto_fix or stats["missing"] == 0:
338
+ if not auto_fix or stats["missing"] == 0 or skip_deps:
339
+ if skip_deps and stats["missing"] > 0 and not silent:
340
+ logger.info(f"跳过 {stats['missing']} 个缺失依赖的安装(--skip-deps)")
326
341
  return stats
327
342
 
328
343
  # 第二遍:批量安装缺失的依赖(按分类分批)
@@ -377,6 +392,11 @@ def ensure_skill_deps(skill_category: str) -> bool:
377
392
  Returns:
378
393
  True 如果所有依赖已就绪(包括刚安装的)
379
394
  """
395
+ # --skip-deps 时跳过懒加载依赖安装
396
+ if _is_skip_deps():
397
+ logger.debug(f"跳过技能依赖检查(--skip-deps): {skill_category}")
398
+ return True
399
+
380
400
  category_map = {
381
401
  "browser": {"browser"},
382
402
  "gui": {"gui"},
package/main.py CHANGED
@@ -692,6 +692,9 @@ def create_tray_icon(app: MyAgentApp, web_port: int = 8767):
692
692
  from PIL import Image, ImageDraw, ImageFont
693
693
  except Exception:
694
694
  # pystray 可能因缺少 GUI 环境 (X11/Wayland) 或未安装而失败
695
+ if os.environ.get('MYAGENT_SKIP_DEPS') == '1':
696
+ logger.info("pystray/PIL 未安装,跳过自动安装(--skip-deps)")
697
+ return None
695
698
  try:
696
699
  from core.deps_checker import _pip_install
697
700
  logger.info("pystray/PIL 未安装,正在自动安装...")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.15.38",
3
+ "version": "1.15.40",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {
@@ -65,4 +65,4 @@
65
65
  "departments/",
66
66
  "web/"
67
67
  ]
68
- }
68
+ }