# FigForge Agent（本机运行环境安装器）

> 当前阶段（v0.1）：把「检测 Docker → 引导安装 → 拉取/构建分析镜像」打成**一个安装体验**。  
> **不需要安装 Python。** 云端任务通道（远程 Agent 连接器）后续版本再接。

## 你需要什么

| 项 | 说明 |
|---|---|
| 系统 | macOS / Windows / Linux |
| Docker | 没有也没关系：脚本会打开官方安装页引导你装 |
| 磁盘 | 建议预留 **10GB+**（镜像与层较大） |
| 权限 | 安装 Docker 时可能需要管理员权限 |

## 一键安装（推荐）

### macOS

1. 解压安装包  
2. 双击 `scripts/Install.command`（一键安装）  
   （若提示无法打开：右键 → 打开，或在终端执行下面的命令）

```bash
cd FigForge/agent   # 或解压后的 agent 目录
chmod +x scripts/setup.sh scripts/Install.command
./scripts/setup.sh
```

### Linux

```bash
cd FigForge/agent   # 或解压后的 agent 目录
chmod +x scripts/setup.sh
./scripts/setup.sh
```

### Windows

1. 解压安装包  
2. 双击 `scripts\Install.bat`（一键安装）  

也可在 PowerShell 中手动执行：

```powershell
cd FigForge\agent   # 或解压后的 agent 目录
.\scripts\setup.ps1
```

向导会：

1. 检测是否已安装并启动 Docker  
2. 若没有 → **打开官方安装页**（需你完成安装并启动 Docker Desktop）  
3. 尝试 `docker pull` 分析镜像；在完整仓库内且 pull 失败时 → 自动 `docker build`  
4. 复检并提示是否就绪  

## 默认镜像

- 名称：`omicsflow-runtime:0.0.1`（可用环境变量 `OMICS_DOCKER_IMAGE` 覆盖）  
- 构建说明：仓库根目录 `runtime/docker/README.md`  

若公网无法 `docker pull` 该私有/本地 tag：

1. 在有仓库的机器上 `docker build` 后 `docker save | gzip` 导出  
2. 客户机 `docker load -i xxx.tar.gz`  
3. 再运行一次 `./scripts/setup.sh`（或 `.\scripts\setup.ps1`）  

内测期也可向学术有途索取镜像包。

## 和官网 / 分析站的关系

```text
官网（介绍 + 申请内测 + 下载本安装器）
        ↓ 邀请码
分析站 Web（云端或本地）
        ↓
本机 Agent 安装器保证：Docker + 分析镜像就绪
        ↓
原始数据仍在本机目录，由本机 Docker 执行分析
```

## 官网下载入口

按平台分别打包：`website/downloads/figforge-agent-{windows,macos,linux}.zip`。  
重新打包：`FigForge/agent/packaging/build-zips.sh`  
上线后用户从官网「下载本地组件」按系统下载。

## 已知限制（诚实说明）

- **不会**静默把 Docker Desktop 塞进安装包（系统权限与体积限制）  
- 用户仍需在官方安装器里点几下、可能重启  
- 首次拉镜像/构建可能要较长时间  
- 真正「云端下发任务到本机 Agent」的长连接协议尚未在本版本启用  

体感目标：用户只跑**一个 setup**，而不是自己摸索 Docker 命令。

---

## 高级：Python 模块（仅开发者可选）

仓库内另有 `figforge_agent` Python 包，方便脚本化调试，**终端用户不必安装 Python**。

```bash
cd FigForge/agent
PYTHONPATH=. python3 -m figforge_agent doctor
PYTHONPATH=. python3 -m figforge_agent setup
```
