# SentAI 阶段1工程骨架

当前仓库已切换为面向服务端数据库的实现，不再使用 SQLite。

## 当前技术基线

- `apps/web`: Next.js 前端控制台
- `apps/api`: NestJS API + TypeORM
- `packages/shared`: 共享类型
- `docs/phase1-implementation-plan.md`: 阶段 1 落地方案

## 数据库支持

当前代码按两类数据库接入：

- `MariaDB 10.4.34`
- `人大金仓 V8R6`

配置方式：

- `DB_CLIENT=mariadb` 时，TypeORM 使用 `mariadb` 驱动
- `DB_CLIENT=kingbase` 时，TypeORM 使用 `postgres` 兼容模式

## 已实现

- 演示登录接口 `POST /api/auth/login`
- 首页汇总接口 `GET /api/dashboard/summary`
- 巡检任务列表/创建接口 `GET/POST /api/tasks`
- 手动执行接口 `POST /api/runs/execute/:taskId`
- 执行记录列表接口 `GET /api/runs`
- 执行详情接口 `GET /api/runs/:runId`
- Playwright 真实巡检执行
- 截图证据与步骤日志
- 预置案例站点
  - `http://www.huhhot.gov.cn/`
  - `http://www.tmtyq.gov.cn/`

## 环境变量

### MariaDB 示例

```env
DB_CLIENT="mariadb"
DB_HOST="127.0.0.1"
DB_PORT="3306"
DB_USERNAME="sentai"
DB_PASSWORD="sentai123"
DB_DATABASE="sentai"
DB_SYNCHRONIZE="true"
```

### 人大金仓示例

```env
DB_CLIENT="kingbase"
DB_HOST="127.0.0.1"
DB_PORT="54321"
DB_USERNAME="system"
DB_PASSWORD="123456"
DB_DATABASE="sentai"
DB_SYNCHRONIZE="true"
```

## 本地启动

1. 安装依赖

```bash
npm.cmd install
```

2. 初始化数据库结构

```bash
npm.cmd run db:init
```

3. 导入种子任务

```bash
npm.cmd run db:seed
```

4. 安装 Playwright 浏览器

```bash
npm.cmd run install:browsers
```

5. 启动后端

```bash
npm.cmd run dev:api
```

6. 启动前端

```bash
npm.cmd run dev:web
```

## 默认账号

- 用户名：`admin`
- 密码：`admin123`

## 当前边界

当前已完成：

- `S1` 基础骨架
- `S2` 任务与执行
- `S3` 异常证据基础版

尚未完成：

- 定时调度器
- 内网上下文补证据
- 安全推送
- AI 归因
- 日报页
