feat: 完成env重新设计

This commit is contained in:
2025-12-14 05:52:59 +08:00
parent e68eeb7e46
commit ca1a5836e1
23 changed files with 1316 additions and 743 deletions

52
aide-program/aide/env/modules/uv.py vendored Normal file
View File

@@ -0,0 +1,52 @@
"""uv 包管理器检测模块。"""
from __future__ import annotations
import subprocess
from pathlib import Path
from typing import Any
from aide.env.modules.base import BaseModule, CheckResult, ModuleInfo
class UvModule(BaseModule):
"""uv 包管理器检测模块类型A无需配置"""
@property
def info(self) -> ModuleInfo:
return ModuleInfo(
name="uv",
description="uv 包管理器",
capabilities=["check"],
requires_config=False,
)
def check(self, config: dict[str, Any], root: Path) -> CheckResult:
"""检测 uv 是否可用。"""
try:
result = subprocess.run(
["uv", "--version"],
check=True,
capture_output=True,
text=True,
)
version = result.stdout.strip()
return CheckResult(
success=True,
version=version,
)
except FileNotFoundError:
return CheckResult(
success=False,
message="未安装,请先安装 uv",
can_ensure=False,
)
except subprocess.CalledProcessError as exc:
return CheckResult(
success=False,
message=f"执行失败: {exc}",
can_ensure=False,
)
module = UvModule()