aps-agent/aps/README.md

60 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# APS(独立业务系统 · 开发期同仓形态)
> 本目录是 APS 的开发期落点,形态由 ADR-0010 规定:**同仓库、不同目录、独立系统**。
## 现状
APS 现在还在 `main` 分支里与平台混装(`server/aps_domain` 39,212 行、`server/engines` 7,551 行、`server/state`、`server/importers`,以及早期原型 `aps-frontend/`)。B0–B7 负责把它拆到这里并补齐独立运行所需的能力。
B0.1 已完成:`src/aps/` 子包骨架、`pyproject.toml`、`uv.lock` 与独立 CI job 就位;平台侧的 lint / typecheck / test 与 APS 的 ruff / pytest 互不阻塞。
## 工具链(B0.1)
| 项 | 值 |
| --- | --- |
| Python | 3.11+ |
| 依赖与锁定 | `uv`;`uv.lock` 入库,CI 用 `uv sync --locked` |
| 代码检查 | `ruff`(配置在 `pyproject.toml`) |
| 测试 | `pytest`(`tests/`) |
| 包结构 | `src/aps/`,子包对应 B 线的搬迁目标 |
```bash
cd aps
uv sync # 建 .venv 并按 uv.lock 安装(含 dev 依赖)
uv run ruff check .
uv run pytest -q
```
依赖取舍:依赖清单以 `main` 分支的 `requirements.txt` 为准,按 B 线边界做了两处增删——**去掉** LLM 与对话智能体相关依赖(D12:APS 不内置对话智能体),**保留**求解引擎(ortools / scipy)、文档与图纸解析(openpyxl / pdfplumber / python-docx / lxml / ezdxf)与持久层(sqlalchemy / alembic / pymysql)——它们都归 APS。
## 边界规则
| 规则 | 说明 |
| --- | --- |
| 工具链独立 | Python;不共享平台的 Node 依赖 |
| 不互相引用 | 平台代码不得引用 `aps/`;APS 不得引用平台 TS 代码 |
| 唯一界面 | Provider 契约(HTTP);平台通过 `providers/aps` 的适配器调用 APS |
| 数据库独立 | APS 库归 APS(ADR-0008):独立账号、独立 database |
| 交付独立 | APS 单独部署与升级(ADR-0009) |
| CI 分流 | 平台 job 与 APS job 互不阻塞 |
## 要搬进来的东西
| 来源(`main`) | 内容 | 对应任务 |
| --- | --- | --- |
| `server/aps_domain` | 业务主体:排产、主数据、订单、柔性、闭环运行时、报告 | B1–B4 |
| `server/engines` | 求解引擎:CP-SAT / GA / NSGA2 / 池 / 规则 + 求解进程隔离 | B1 |
| `server/state` | 世界状态、检查点、分支、数据包 | B1 |
| `server/importers` | Excel / SQL / MOM 导入与 profile | B1 |
| `aps-frontend` 页面清单 | 界面外壳的范围参照(代码不搬) | B6 |
## 文档
| 文档 | 内容 |
| --- | --- |
| [docs/boundary.md](./docs/boundary.md) | 边界清单(B0.2):带走 / 留下 / 丢弃、反向依赖清单、客户硬编码处置 |
| [docs/contract-draft.md](./docs/contract-draft.md) | 对平台的契约草案(B0.2 → B5 输入):传输形状、只读能力清单、错误映射 |
## 迁出条件(ADR-0010)
满足任一条即迁出独立仓库:APS 需要独立发版节奏、APS 由独立团队维护、平台包发布流程需要隔离权限。