# GMP-Agent 守护进程

> 工单编号: GH-GMP-004 | 开发者: 培园A04 (5TH-LE-HK-A04)

## 架构定位

HLDP-ARCH-001 分发层[D-1] 执行体。GMP三层架构中的L2层:
- L1: GMP协议 (manifest.yaml) — 由译典A05定义
- **L2: GMP-Agent (本模块)** — 服务器常驻守护进程
- L3: MCP接口层 — 人格体调用

## 模块组成

| 文件 | 职责 |
|------|------|
| `app.js` | 核心框架骨架 · Express服务 · 路由注册 · 生命周期管理 · 优雅停机 |
| `webhook.js` | GitHub Webhook监听器 · 签名验证 · push/PR事件处理 · 自动部署触发 |
| `installer.js` | 模块安装器 · 克隆仓库 · 验证manifest · 安装依赖 · 自检 · 部署 |
| `uninstaller.js` | 模块卸载器 · 停止进程 · 备份数据 · 移除文件 · 注销注册 |
| `lib/config.js` | 配置加载器 · 环境变量驱动 · 零硬编码 |
| `lib/logger.js` | 结构化日志 · 控制台+文件双输出 |

## 快速启动

```bash
cd guanghu-self-hosted/gmp-agent
npm install
npm start
```

服务默认监听 `http://localhost:9800`

## 环境变量

| 变量 | 默认值 | 说明 |
|------|--------|------|
| `GMP_PORT` | 9800 | 服务端口（统一标准 · ZY-SVR-TPL-2026-0426-001）|
| `GMP_MODULES_DIR` | ./modules | 已安装模块目录 |
| `GMP_LOGS_DIR` | ./logs | 日志目录 |
| `GMP_TEMP_DIR` | ./tmp | 临时目录 |
| `GMP_REPO_URL` | guanghulab仓库 | 默认克隆源 |
| `GMP_TARGET_BRANCH` | main | Webhook监听的目标分支 |
| `GMP_WEBHOOK_SECRET` | (空) | GitHub Webhook密钥 |
| `GMP_DEBUG` | false | 开启debug日志 |

## API端点

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/health` | 健康检查 |
| GET | `/api/modules` | 已安装模块列表 |
| GET | `/api/modules/:name` | 模块详情 |
| POST | `/api/modules/install` | 安装模块 |
| POST | `/api/modules/uninstall` | 卸载模块 |
| POST | `/webhook/github` | GitHub Webhook接收 |
| GET | `/webhook/status` | Webhook状态 |
| GET | `/api/system` | 系统信息 |

## 自动部署流程

```
Notion Agent写代码 → GitHub MCP推到仓库 → GitHub发送Webhook
→ GMP-Agent接收push事件 → 解析变更模块 → 自动安装/更新
```

## 协作分工 (GH-GMP-004)

- **培园A04**: 核心框架 (app.js) + Webhook (webhook.js) + 安装器 (installer.js) + 卸载器 (uninstaller.js) ✅
- **译典A05**: MCP工具集 + manifest自举 (待开发)
- **录册A02**: 测试报告生成器 + 日志收集 + 自测脚本 (待开发)
