- docs/design:四张表字段设计 · 交互设计(方向层 + 细节层)· API 契约 · 同步引擎设计 - docs/upstream:sk-key 接口实证(430 行)· 接口范围(9 个接口) - README(全景入口)· AGENTS.md(AI 协作者指引) - 废弃旧稿已删除(不随仓库留存)
2.9 KiB
2.9 KiB
AGENTS.md
给 AI 协作者的仓库指引。开始任何工作前,先读 README.md——它是全景入口:项目是什么、为什么长这样、走到哪了。
协作约定(长期有效)
- Git:仅当项目作者明确说"提交 / commit"时才执行提交;
git push永远由项目作者手工执行,AI 绝不推送 - 命名:需求 / 设计 / 交互 / 技术方案 / 计划等文档名用中文(
README/AGENTS/LICENSE等约定俗成除外)、目录用英文;新文档按性质放入docs/design/(我们定的方案与决策)或docs/upstream/(NewAPI 的实证事实,不做设计决策),并同步更新 README 的「文档地图」;docs/deprecated/只归档已废弃文档——勿引用、勿作依据 - 文档状态:头部表格标「状态」(草案 → 讨论中 → 待审阅 → 定稿(日期) → 已实现);设计文档定稿后不搬家、只改状态;被取代时删除(git 历史即考古),尚未入库的历史文档移入
docs/deprecated/ - 部署:项目作者不接触服务器,一切部署由实例运营方执行;交付物需保证「一条命令链」可跑
项目速览(速记)
- 针对 NewAPI 平台的 key 用量统计工具;只有 sk-key,没有管理员账号,一切数据走 key 级接口
- 上游没有任何时间过滤接口 → 轮询
/api/log/token+request_id去重攒本地库,任一时段用量 = 本地聚合 - 数据模型四张表:
api_keys·usage_logs·purchases·qpu_history(四张表设计均已定稿);四张表各有一篇独立表字段设计文档(docs/design/) - 脚手架已落地:前后端独立部署、后端单进程(API + 同步引擎同进程、单实例)
命令
monorepo(Bun workspaces:apps/web · apps/server · packages/shared)——根目录执行:
bun install # 安装全部依赖(一次搞定)
bun run dev # 并行起前端(Vite :5173)与后端(Hono :3000)
bun run dev:web # 只起前端
bun run dev:server # 只起后端(--hot 热重载)
bun run build # 构建前端产物(apps/web/dist)
bun run test # 前端单测(Vitest)
bun run lint # 前端 lint(oxlint + eslint)
bun run type-check # 类型检查(vue-tsc + tsc)
bun run db:generate # 生成 Drizzle 迁移(apps/server/drizzle)
bun run db:migrate # 执行迁移
bun run db:push # 直接推 schema(开发期)
- 环境变量:复制
.env.example为.env并填值(DATABASE_URL/MANAGE_TOKEN/KEYS_MASTER_KEY/NEWAPI_BASE) - 目录速记:前端
apps/web/src/{api,router,views}· 后端apps/server/src/{db,routes,sync,lib}· 契约类型在packages/shared - 开发期前端
/api由 Vite 代理到 :3000(apps/web/vite.config.ts);生产由同域反代承担(见 README 工程注记)