swain-helm 用于管理 swain-helm 桥接系统:启动看门狗守护进程、注册项目、监控健康状态并干净地拆除。看门狗是常驻进程,负责将期望状态对齐,确保项目桥接器与 opencode serve 持续运行。
定位 CLI:REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)";HELM="$REPO_ROOT/bin/swain-helm"。若该路径不存在,则按 **/bin/swain-helm 查找。
运行时文件:~/.config/swain-helm/run/watchdog.pid 为看门狗 PID;~/.config/swain-helm/run/bridges/<name>.pid 为各项目桥接 PID;~/.config/swain-helm/run/opencode-instances.json 跟踪发现的 opencode serve 实例;~/.config/swain-helm/helm.config.json 为全局配置;~/.config/swain-helm/projects/<name>.json 为各项目期望状态。
主要命令:
- host up:启动看门狗守护进程,启动时解析 1Password 凭据(需生物解锁),如 swain-helm host up;调试可用 --foreground。若 1Password 锁定则报错。
- host down:停止看门狗及全部桥接,如 swain-helm host down;--project <name> 仅停单个桥接。
- host status:报告看门狗 PID、各桥接 PID 与健康、opencode serve 端口/健康/认证状态。
- host provision:一次性设置,注册 Zulip 机器人、创建 stream、写 helm.config.json。
- project add:注册项目,如 swain-helm project add ./(无 .git/ 则拒绝)或绝对路径;写入项目配置,看门狗每 30 秒同步周期拾取。
- project remove --project <name>;project list:查看已注册项目及运行状态。
- 日志:tail -50 /tmp/swain-helm.log;持续查看可让操作者执行 tail -f /tmp/swain-helm.log。
- 重启:swain-helm host down && swain-helm host up。
启动后应向操作者展示:桥接状态、如何连接(opencode attach http://127.0.0.1:<PORT>)、用于发送提示的 Zulip stream、监控日志路径 /tmp/swain-helm.log。
错误处理:找不到 bin/swain-helm 时提示 untethered 包可能未安装并指向 RUNBOOK-004;1Password 锁定时明确提示“Unlock 1Password and retry.”;opencode serve 健康检查失败时显示 /tmp/opencode-serve.log 最后 20 行。绝不静默失败,始终报告尝试内容与失败原因。具体收费、价格或平台支持等信息暂未提供。