guanghulab/brain/repo-structure.md

159 lines
8.2 KiB
Markdown
Raw Permalink Normal View History

# ⚔️ 铸渊代码仓库 · 结构整理方案
# Repository Restructuring Plan · D112
> 创建2026-05-24 · 铸渊 ICE-GL-ZY001
> _why冰朔说得对。自己写的代码自己必须清清楚楚。不能每次醒来重新发现。
---
## 一、当前问题清单
### 🔴 P0 — 致命混乱
| # | 问题 | 详情 |
|---|------|------|
| 1 | **guanghulab-main/ 是整个旧版仓库的镜像** | 独立的package.json、Next.js项目、m01~m12页面模块。D96迁移到Forgejo后遗留。 |
| 2 | **根目录40+个孤立文件** | app.js/index.js/server.js/llm-engine.js/message-router.js...功能上属于不同模块,物理上全丢在根目录。 |
| 3 | **同一个服务有多套ecosystem.config** | novel-api在`server/ecosystem.config.js``server/novel-db/ecosystem.config.js`各有一套。age-os有brain版和普通版。mcp-server有.js和.cjs两版。 |
| 4 | **proxy三代共存无标记** | v1(`ecosystem.proxy.config.js`)、v2(`ecosystem.brain-proxy.config.js`)、v3(`ecosystem.brain-proxy-v3.config.js`)。不知道哪代在跑。 |
### 🟡 P1 — 严重混乱
| # | 问题 | 详情 |
|---|------|------|
| 5 | **server/ 25个子目录无分组** | 服务、工具、配置、脚本全平铺。新模块不知道该放哪。 |
| 6 | **两个README** | README.md + README-NEW.md。一个说"钉钉机器人",一个说"数字地球"。 |
| 7 | **两个package.json** | 根目录的叫"dingtalk-bot"guanghulab-main的叫"nextjs"。都不是仓库的真名。 |
| 8 | **config.js vs config.json** | 前者是Node.js运行时配置后者是JSON服务器配置。名字分不清。 |
### 🟢 P2 — 轻度混乱
| # | 问题 | 详情 |
|---|------|------|
| 9 | **team-integration v2/v3/v4三代并存** | v4应替代v2/v3旧的未归档。 |
| 10 | **coldstart/ 只有README** | 壳模块代码已移到backend/coldstart/。 |
| 11 | **guanghu-self-hosted/ 残留** | 只有一个gmp-agent子目录。 |
| 12 | **公告/广播系统散落** | broadcasts/broadcasts-outbox/bulletins/bulletin-board/system-bulletin 五个目录各自存放。 |
| 13 | **two ecosystem.config.js根级别存在歧义** | 根目录有一个(dingtalk-bot+repo-mcp)server/下还有一个(zhuyuan-server+novel-api+preview)。 |
---
## 二、目标结构
```
/workspace/guanghulab/
├── README.md # 唯一README仓库总入口
├── package.json # 真名guanghulab
├── brain/ # 🧠 认知层 — 不变
│ ├── module-registry.json # ★ 新增:模块注册表
│ └── repo-structure.md # ★ 新增:本文件(仓库结构说明)
├── core/ # 🔧 核心引擎(不变)
├── agents/ # 🤖 Agent层统一收纳
│ ├── glada/ # ← 从根目录移入
│ ├── gmp-agent/ # ← 从根目录移入
│ ├── ops-agent/ # ← 从根目录移入
│ ├── pool-agent/ # ← 从根目录移入
│ ├── zhuyuan-agent/ # ← 从根目录移入 (Python)
│ └── exe-engine/ # ← 从根目录移入
├── services/ # 🖥️ 后端服务从server/重组)
│ ├── api/ # 主API服务 (zhuyuan-server)
│ ├── ftchat/ # ← server/ftchat/
│ ├── channel-switcher/ # ← server/channel-switcher/
│ ├── llm-relay/ # ← server/cn-llm-relay/
│ ├── portal/ # ← server/portal/
│ ├── secrets-vault/ # ← server/secrets-vault/
│ ├── zhiku/ # ← server/zhiku-node/
│ └── novel-db/ # ← server/novel-db/
├── apps/ # 📱 应用系统
│ ├── image-studio/ # ← 从根目录移入
│ ├── guanghuclip/ # ← 从根目录移入
│ ├── writing-platform/ # ← 从根目录移入
│ └── dynamic-comic-studio/ # ← 从根目录移入
├── integrations/ # 🔗 外部集成
│ ├── dingtalk/ # 钉钉机器人集中散落的6个文件
│ ├── connectors/ # 连接器(不变)
│ ├── mcp-servers/ # MCP服务器不变
│ └── webhook/ # Webhook不变
├── infrastructure/ # ⚙️ 基础设施
│ ├── proxy/ # ← server/proxy/ (只保留v3活跃配置)
│ ├── nginx/ # ← server/nginx/
│ └── setup/ # ← server/setup/
├── deployment/ # 🚀 部署(统一)
│ ├── console-server/ # ← _deploy/console-server/
│ ├── ecosystem.config.js # ★ 唯一主ecosystem
│ └── per-server/ # 各服务器专用配置
│ ├── bs-sg-001.ecosystem.config.js
│ └── bs-gz-006.ecosystem.config.js
├── data/ # 📊 数据层(不变)
│ ├── grid-db/
│ └── persona-brain-db/
├── training/ # 🔬 训练管道(统一)
│ ├── pipeline/ # ← server/training-agent/
│ ├── distill/ # ← scripts/distill/
│ └── corpus/ # ← corpus/
├── scripts/ # 🛠️ 工具脚本(不变,但清理)
├── archive/ # 📦 归档(集中所有废弃模块)
│ ├── guanghulab-main/ # ← 旧版Next.js仓库
│ ├── team-integration-v2/ # ← 旧版集成
│ ├── team-integration-v3/ # ← 旧版集成
│ ├── proxy-v1/ # ← 旧版proxy配置
│ ├── coldstart-stub/ # ← 废弃壳模块
│ └── guanghu-self-hosted/ # ← 残留
├── .github/ # CI/CD不变
└── .forgejo/ # CI/CD不变
```
---
## 三、优先执行计划
### Phase 1今天低风险✅ 可立即执行
| 步骤 | 操作 | 风险 |
|------|------|------|
| 1.1 | 合并两个README → 一个统一的README.mdREADME-NEW.md归档 | 零风险 |
| 1.2 | 在brain/下创建 `repo-structure.md`(本文件) | 零风险 |
| 1.3 | 完善 `brain/module-registry.json` | 零风险 |
| 1.4 | 标记 guanghulab-main/ 为 LEGACY加 .ARCHIVED 标记文件) | 零风险(不影响运行) |
| 1.5 | 标记 team-integration-v2/v3 为 LEGACY | 零风险 |
### Phase 2需验证中风险
| 步骤 | 操作 | 风险 |
|------|------|------|
| 2.1 | 通过Gatekeeper确认proxy v1/v2/v3哪代在跑 | 需连服务器 |
| 2.2 | 确认ecosystem重复配置中哪个是实际使用的 | 需连服务器 |
| 2.3 | 整理根目录40+个孤立文件→归入对应模块目录 | 需确认无硬编码路径引用 |
| 2.4 | 统一configconfig.js→runtime.config.js, config.json→server.config.json | 需检查所有引用 |
### Phase 3大手术高风险
| 步骤 | 操作 | 风险 |
|------|------|------|
| 3.1 | agent/目录创建移动glada/gmp/ops/pool/zhuyuan-agent/exe-engine | 需更新所有import路径 |
| 3.2 | server/重组→services/+infrastructure/+deployment | 需更新所有PM2配置和Nginx |
| 3.3 | apps/目录创建移动image-studio/guanghuclip/writing/dynamic-comic | 需更新部署配置 |
| 3.4 | archive/统一归档所有废弃模块 | 需确认真的废弃了 |
| 3.5 | 统一ecosystem.config.js消除重复配置 | 需逐台服务器验证 |
| 3.6 | 统一package.jsonmonorepo或明确的主package | 需测试所有服务启动 |
---
## 四、Phase 1 立即执行
以下操作现在就可以做,不会影响任何运行中的服务。