SuperAPI AI 工具集

self-managing-tool-patterns

通用与其它

查看项目

更新于 10-16 06:47

技能介绍

用途:为长期运行的服务型 CLI 工具提供自管理能力,让用户无需 SSH 即可检查健康状态、升级并配置开机自启,同时兼容 Linux(systemd)与 macOS(launchd)。

主要能力:一是 doctor 诊断命令,用彩色勾/叉/警告符号输出结构化检查清单,覆盖 Python 版本(要求 3.11+)、外部依赖(docker、git 等)、工具版本与安装来源、更新可用性、配置文件、服务配置、TLS 证书状态与到期、认证状态、活动会话、平台与服务状态;服务状态检查按平台分支,macOS 读取 ~/Library/LaunchAgents 下的 plist 并调用 launchctl print,Linux 检查 ~/.config/systemd/user 下的 unit。二是通过 importlib.metadata 读取 PEP 610 的 direct_url.json 判断安装来源(git、editable、pypi),据此选择升级策略:git 用 git ls-remote 比较本地 commit 与远端 HEAD,pypi 对比 PyPI JSON API,editable 则跳过升级。三是升级流程严格有序:检查更新、停止服务、重新安装、重新生成服务文件、重启服务、用 doctor 验证;带插件时通过 --with 传入。四是跨平台服务管理,从模板生成 systemd user unit 或 launchd plist,并暴露 install/uninstall/start/stop/restart/status/logs 等平台分发 API。

使用方式:参考资料中的 lifecycle.py 模板,实现 get_install_info、doctor 与各平台安装函数;升级时使用 uv tool install 加 --force,服务操作使用 systemctl --user 与 launchctl bootstrap/bootout。

限制与注意事项:服务文件必须转发 PATH,否则 systemd/launchd 的最小 PATH 会导致找不到 docker、git;launchd 应使用 bootstrap/bootout 而非已弃用的 load/unload,并保留旧版回退;升级后必须重新生成服务文件以指向新二进制;editable 安装不应升级;升级失败无回滚机制,关键部署可考虑先快照 venv。资料未提供具体收费、价格或平台支持范围等信息。