guanghulab/brain/communication-map.json
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

631 lines
16 KiB
JSON

{
"version": "4.0",
"generated_at": "2026-03-13T19:38:09.552Z",
"generated_by": "scripts/generate-communication-map.js",
"description": "数字地球系统通信地图 · 所有通信入口与数据流",
"api_endpoints": {
"hli_middleware": {
"port": 3001,
"process": "guanghulab",
"script": "src/index.js",
"routes": [
{
"method": "GET",
"path": "/health",
"description": "健康检查"
},
{
"method": "POST",
"path": "/hli/auth/login",
"description": "用户登录"
},
{
"method": "POST",
"path": "/hli/auth/register",
"description": "用户注册"
},
{
"method": "POST",
"path": "/hli/auth/verify",
"description": "Token 验证"
},
{
"method": "POST",
"path": "/hli/brain/prompt",
"description": "AI Prompt 构建"
},
{
"method": "POST",
"path": "/hli/brain/route",
"description": "脑路由"
},
{
"method": "POST",
"path": "/hli/brain/context",
"description": "上下文管理"
},
{
"method": "POST",
"path": "/hli/brain/memory",
"description": "记忆管理"
},
{
"method": "GET",
"path": "/hli/brain/status",
"description": "脑状态"
},
{
"method": "GET",
"path": "/hli/brain/bridge",
"description": "脑桥接状态"
},
{
"method": "POST",
"path": "/hli/brain/bridge/sync",
"description": "脑桥接同步"
},
{
"method": "GET",
"path": "/hli/brain/bridge/export",
"description": "脑桥接导出"
},
{
"method": "POST",
"path": "/hli/brain/bridge/consistency",
"description": "一致性检查"
},
{
"method": "POST",
"path": "/hli/brain/bridge/master-mode",
"description": "主模式切换"
},
{
"method": "GET",
"path": "/hli/brain/bridge/explanation",
"description": "桥接说明"
},
{
"method": "GET",
"path": "/hli/brain/bridge/inspection",
"description": "桥接巡检"
},
{
"method": "GET",
"path": "/hli/brain/bridge/developers",
"description": "开发者列表"
},
{
"method": "GET",
"path": "/hli/brain/bridge/developers/:expId",
"description": "单个开发者信息"
},
{
"method": "POST",
"path": "/hli/brain/bridge/developers",
"description": "开发者管理"
},
{
"method": "GET",
"path": "/hli/registry/lookup",
"description": "开发者编号查询"
}
]
},
"express_backend": {
"port": 3000,
"process": "guanghulab-backend",
"script": "backend/server.js",
"routes": [
{
"method": "GET",
"path": "/",
"description": "服务状态"
},
{
"method": "*",
"path": "/notion/*",
"description": "Notion 路由"
},
{
"method": "*",
"path": "/feishu/*",
"description": "飞书路由"
},
{
"method": "*",
"path": "/feishu-bot/*",
"description": "飞书机器人路由"
},
{
"method": "*",
"path": "/router/*",
"description": "路由管理"
},
{
"method": "*",
"path": "/api/coldstart/*",
"description": "冷启动接口"
},
{
"method": "*",
"path": "/api/v1/developers/*",
"description": "开发者管理接口"
},
{
"method": "POST",
"path": "/webhook/feishu",
"description": "飞书 Webhook 入口"
}
]
},
"ai_proxy": {
"port": 3721,
"process": "guanghulab-proxy",
"script": "backend-integration/api-proxy.js",
"routes": [
{
"method": "POST",
"path": "/chat",
"description": "AI Chat 代理"
}
]
},
"persona_studio": {
"port": 3002,
"process": "persona-studio",
"script": "persona-studio/backend/server.js",
"routes": [
{
"method": "*",
"path": "/api/ps/*",
"description": "Persona Studio API"
}
]
},
"websocket": {
"port": 8080,
"process": "guanghulab-ws",
"script": "status-board/mock-ws-server.js",
"routes": [
{
"method": "WS",
"path": "/ws",
"description": "看板 WebSocket 推送"
}
]
}
},
"webhook_endpoints": [
{
"path": "/webhook/feishu",
"port": 3000,
"description": "飞书 Webhook 入口(机器人事件回调)",
"direction": "inbound"
},
{
"path": "/feishu-bot/event",
"port": 3000,
"description": "飞书机器人新版事件入口",
"direction": "inbound"
}
],
"trigger_paths": {
"github_to_notion": [
{
"workflow": "bridge-changes-to-notion.yml",
"name": "铸渊 · Bridge E · GitHub Changes → Notion"
},
{
"workflow": "bridge-session-summary.yml",
"name": "Generate Session Summary for Notion"
},
{
"workflow": "bridge-syslog-to-notion.yml",
"name": "铸渊 · Bridge A · SYSLOG → Notion"
},
{
"workflow": "deploy-to-server.yml",
"name": "🚀 铸渊 CD · 自动部署到 guanghulab.com"
},
{
"workflow": "notion-callback-pipeline.yml",
"name": "Notion Callback Pipeline"
},
{
"workflow": "persona-invoke.yml",
"name": "Persona Invoke Endpoint"
},
{
"workflow": "push-broadcast.yml",
"name": "铸渊 · Push Broadcast · Notion → 飞书文档B"
},
{
"workflow": "receive-syslog.yml",
"name": "铸渊 · Receive SYSLOG · 飞书机器人 → GitHub → Notion"
},
{
"workflow": "sync-login-entry.yml",
"name": "铸渊 · Sync Login Entry · Notion → 飞书文档A"
},
{
"workflow": "syslog-auto-pipeline.yml",
"name": "SYSLOG Auto Pipeline"
},
{
"workflow": "syslog-issue-pipeline.yml",
"name": "📡 SYSLOG Issue Pipeline"
},
{
"workflow": "test-notion-bridge.yml",
"name": "🧪 Notion Bridge Connectivity Test"
}
],
"notion_to_github": [
{
"workflow": "notion-heartbeat.yml",
"name": "Notion Heartbeat Monitor"
},
{
"workflow": "notion-poll.yml",
"name": "铸渊 · Notion 工单轮询"
},
{
"workflow": "persona-invoke.yml",
"name": "Persona Invoke Endpoint"
},
{
"workflow": "process-notion-orders.yml",
"name": "Process Notion Work Orders"
}
]
},
"data_sync_scripts": [
{
"script": "scripts/bingshuo-deploy-agent.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/bingshuo-neural-sync.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/brain-bridge-sync.js",
"direction": "bidirectional",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/create-standardized-ticket.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/cross-repo-sync.js",
"direction": "unknown",
"uses_notion_api": false,
"uses_http": true
},
{
"script": "scripts/esp-email-processor.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/generate-automation-map.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/generate-communication-map.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/generate-repo-map.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/generate-session-summary.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/invoke-persona.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/notion-bridge.js",
"direction": "bidirectional",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/notion-connectivity-test.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/notion-heartbeat.js",
"direction": "external_to_github",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/notion-signal-bridge.js",
"direction": "bidirectional",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/psp-inspection.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/push-broadcast-to-github.js",
"direction": "github_to_external",
"uses_notion_api": false,
"uses_http": true
},
{
"script": "scripts/push-broadcast.js",
"direction": "github_to_external",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/receive-syslog.js",
"direction": "external_to_github",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/server-diagnose-report.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/sync-login-entry.js",
"direction": "github_to_external",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/update-readme-bulletin.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/wake-persona.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
},
{
"script": "scripts/zhuyuan-daily-selfcheck.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": false
},
{
"script": "scripts/zhuyuan-issue-reply.js",
"direction": "github_to_notion",
"uses_notion_api": true,
"uses_http": true
}
],
"automation_flows": [
{
"name": "SYSLOG 处理管线",
"flow": "飞书机器人 → /webhook/feishu → receive-syslog.js → Notion 工单 → persona-invoke → 执行 → 回报",
"workflows": [
"receive-syslog.yml",
"syslog-issue-pipeline.yml",
"syslog-auto-pipeline.yml",
"syslog-pipeline.yml"
]
},
{
"name": "每日巡检",
"flow": "cron → zhuyuan-daily-agent.yml → zhuyuan-daily-agent.js → 巡检报告 → Notion",
"workflows": [
"zhuyuan-daily-agent.yml",
"zhuyuan-daily-selfcheck.yml",
"psp-daily-inspection.yml"
]
},
{
"name": "自动部署",
"flow": "push to main → deploy-to-server.yml → SSH → PM2 restart",
"workflows": [
"deploy-to-server.yml",
"deploy-pages.yml"
]
},
{
"name": "Notion 双向同步",
"flow": "push → notion-bridge.js → Notion | cron → notion-poll.yml → GitHub",
"workflows": [
"bridge-changes-to-notion.yml",
"notion-poll.yml",
"notion-heartbeat.yml",
"brain-sync.yml"
]
},
{
"name": "广播分发",
"flow": "Notion 工单 → invoke-persona.js → broadcasts-outbox/ → distribute-broadcasts.yml → dev-nodes/",
"workflows": [
"persona-invoke.yml",
"distribute-broadcasts.yml",
"push-broadcast.yml"
]
}
],
"scan_results": {
"hli_routes_found": 19,
"backend_routes_found": 9,
"sync_scripts_found": 25,
"hli_routes": [
{
"method": "POST",
"path": "/hli/auth/",
"file": "src/routes/hli/auth/login.js"
},
{
"method": "POST",
"path": "/hli/auth/",
"file": "src/routes/hli/auth/register.js"
},
{
"method": "POST",
"path": "/hli/auth/",
"file": "src/routes/hli/auth/verify.js"
},
{
"method": "POST",
"path": "/hli/brain/prompt",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/route",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/context",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/memory",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/status",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/bridge",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/bridge/sync",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/bridge/export",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/bridge/consistency",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/bridge/master-mode",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/bridge/explanation",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/bridge/inspection",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/bridge/developers",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/brain/bridge/developers/:expId",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "POST",
"path": "/hli/brain/bridge/developers",
"file": "src/routes/hli/brain/index.js"
},
{
"method": "GET",
"path": "/hli/registry/lookup",
"file": "src/routes/hli/registry/index.js"
}
],
"backend_routes": [
{
"method": "*",
"path": "/notion",
"file": "backend/server.js"
},
{
"method": "*",
"path": "/feishu",
"file": "backend/server.js"
},
{
"method": "*",
"path": "/feishu-bot",
"file": "backend/server.js"
},
{
"method": "*",
"path": "/router",
"file": "backend/server.js"
},
{
"method": "*",
"path": "/api/coldstart",
"file": "backend/server.js"
},
{
"method": "*",
"path": "/api/v1/developers",
"file": "backend/server.js"
},
{
"method": "*",
"path": "/hli",
"file": "backend/server.js"
},
{
"method": "GET",
"path": "/",
"file": "backend/server.js"
},
{
"method": "POST",
"path": "/webhook/feishu",
"file": "backend/server.js"
}
]
}
}