Explorar o código

feat: update TG Live Game documentation and workspace configuration

- Modified workspace.json to reflect changes in active files and updated titles for clarity.
- Added new architecture.canvas file detailing the system structure and project components.
- Created CLAUDE.md files for both tg-live-game-hono and tg-live-game-web, outlining project information, technology stack, and development commands.
- Updated existing CLAUDE.md to ensure consistency in documentation across the project.
yb hai 3 semanas
pai
achega
ccc8c7e4d7

+ 8 - 8
.obsidian/workspace.json

@@ -13,12 +13,12 @@
             "state": {
               "type": "markdown",
               "state": {
-                "file": "workflow.md",
+                "file": "tg-live-game/tg-live-game-web/CLAUDE.md",
                 "mode": "source",
                 "source": false
               },
               "icon": "lucide-file",
-              "title": "workflow"
+              "title": "CLAUDE"
             }
           }
         ]
@@ -185,9 +185,13 @@
   },
   "active": "18265060efc4f04b",
   "lastOpenFiles": [
+    "tg-live-game/tg-live-game-web/_project.md",
+    "workflow.md",
+    "tg-live-game/tg-live-game-web/CLAUDE.md",
+    "tg-live-game/tg-live-game-hono/CLAUDE.md",
+    "tg-live-game/architecture.canvas",
     "yshop/yshop-drink-vue/CLAUDE.md.tmp.63721.1767679619494",
     "tg-live-game/workflow.md",
-    "workflow.md",
     "tg-live-game/_project.md",
     "tg-live-game/architecture-v1.canvas",
     "tg-live-game/CLAUDE.md",
@@ -214,7 +218,6 @@
     "yshop/yshop-drink-vue/CLAUDE.md",
     "yshop/yshop-drink-vue/src/views/infra/demo/demo03/inner/components/Demo03GradeList.vue",
     "yshop/yshop-drink-vue/src/views/infra/demo/demo03/normal/components/Demo03GradeForm.vue",
-    "yshop/yshop-drink-vue/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue",
     "yshop/yshop-drink-vue/public/UEditor22/third-party/video-js/font/vjs.svg",
     "yshop/yshop-drink-vue/public/UEditor22/themes/default/images/wordpaste.png",
     "yshop/yshop-drink-vue/public/UEditor22/themes/default/images/word.gif",
@@ -235,11 +238,8 @@
     "yshop/yshop-drink-uniapp/uni_modules/uv-upload/changelog.md",
     "yshop/yshop-drink-uniapp/uni_modules/uv-ui-tools/readme.md",
     "yshop/yshop-drink-uniapp/uni_modules/uv-ui-tools/changelog.md",
-    "yshop/yshop-drink-uniapp/uni_modules/uv-ui/readme.md",
-    "yshop/yshop-drink-uniapp/uni_modules/uv-ui/changelog.md",
     "pwtk-admin-web/architecture-v1.canvas",
     "askyi/askyi-h5/pages.canvas",
-    "askyi/askyi-taro/pages.canvas",
-    "askyi/askyi-h5/architecture.canvas"
+    "askyi/askyi-taro/pages.canvas"
   ]
 }

+ 4 - 4
tg-live-game/CLAUDE.md

@@ -118,7 +118,7 @@ npm run build     # 构建生产版本
 
 | 文档 | 位置 | 内容 |
 |------|------|------|
-| 整体架构 | Obsidian: `architecture-v1.canvas` | 系统架构图 |
-| 后端架构 | Obsidian: `tg-live-game-hono/architecture.canvas` | API 架构 |
-| 数据库设计 | Obsidian: `tg-live-game-hono/d1-database.canvas` | D1 表结构 |
-| 认证系统 | Obsidian: `tg-live-game-hono/auth-system.canvas` | JWT + RBAC |
+| 整体架构 | `architecture.canvas` | 系统架构图 |
+| 后端架构 | `tg-live-game-hono/architecture.canvas` | API 架构 |
+| 数据库设计 | `tg-live-game-hono/d1-database.canvas` | D1 表结构 |
+| 认证系统 | `tg-live-game-hono/auth-system.canvas` | JWT + RBAC |

+ 10 - 10
tg-live-game/architecture-v1.canvas → tg-live-game/architecture.canvas

@@ -1,16 +1,16 @@
 {
 	"nodes":[
-		{"id":"hono_backend","type":"text","text":"**tg-live-game-hono**\n后端API服务\n\n技术栈:Hono + Cloudflare Workers + D1\n\n功能:\n- 认证系统 (JWT) ✅\n- 用户管理 (RBAC) ✅\n- 摄像头管理 CRUD ✅\n- 会话管理 ✅\n- 观看统计 ✅\n- 审计日志 ✅\n- Stream API 封装 ✅\n\n端口:localhost:8787","x":-1190,"y":-658,"width":300,"height":280,"color":"4"},
-		{"id":"d1_database","type":"text","text":"**Cloudflare D1**\n数据库\n\n表结构:\n- users (用户)\n- user_permissions (权限)\n- cameras (摄像头)\n- live_sessions (会话)\n- videos (视频)\n- view_stats (统计)\n- audit_logs (日志)\n\n状态:✅ 已部署","x":-1190,"y":-300,"width":300,"height":260,"color":"4"},
-		{"id":"java_service","type":"text","text":"**Java进程管理**\n(待开发)\n\n功能:\n- FFmpeg进程管理\n- 多路流管理\n- Cloudflare API调用\n\n状态:❌ 待实现","x":-402,"y":200,"width":405,"height":240,"color":"1"},
+		{"id":"title","type":"text","text":"# TG Live Game 架构 v1\n\n**日期**: 2026-01-06\n**状态**: v1 功能完成\n\n✅ Mac摄像头 → RTMPS → Cloudflare → Web播放\n✅ 用户认证 + 权限管理 (RBAC)\n✅ 摄像头/视频/直播 CRUD\n✅ 观看统计 + 审计日志","x":-870,"y":-1380,"width":450,"height":380,"color":"1"},
+		{"id":"todo_list","type":"text","text":"## 待办事项\n\n### v1.1 优化\n- [ ] 仪表盘统计\n- [ ] 观看统计展示\n- [ ] 审计日志查看\n\n### v2 目标\n- [ ] RTSP输入支持\n- [ ] WHIP输出支持\n- [ ] Java进程管理\n\n### v3 目标\n- [ ] 多路流管理\n- [ ] 自动重连\n- [ ] 监控告警","x":-340,"y":-1380,"width":415,"height":380,"color":"3"},
+		{"id":"hono_backend","type":"text","text":"**tg-live-game-hono**\n后端API服务\n\n技术栈:Hono + Cloudflare Workers + D1\n\n功能:\n- 认证系统 (JWT) ✅\n- 用户管理 (RBAC) ✅\n- 摄像头管理 CRUD ✅\n- 会话管理 ✅\n- 观看统计 ✅\n- 审计日志 ✅\n- Stream API 封装 ✅\n\n端口:localhost:8787","x":-1190,"y":-658,"width":300,"height":280,"color":"6"},
+		{"id":"d1_database","type":"text","text":"**Cloudflare D1**\n数据库\n\n表结构:\n- users (用户)\n- user_permissions (权限)\n- cameras (摄像头)\n- live_sessions (会话)\n- videos (视频)\n- view_stats (统计)\n- audit_logs (日志)\n\n状态:✅ 已部署","x":-1190,"y":-300,"width":300,"height":260,"color":"2"},
+		{"id":"java_service","type":"text","text":"**Java进程管理**\n(待开发)\n\n功能:\n- FFmpeg进程管理\n- 多路流管理\n- Cloudflare API调用\n\n状态:❌ 待实现","x":-402,"y":200,"width":405,"height":240,"color":"6"},
 		{"id":"mac_camera","type":"text","text":"**Mac摄像头**\n\nFaceTime HD Camera\n分辨率:1280x720\n帧率:30fps\n\n状态:✅ 已验证","x":-730,"y":-898,"width":200,"height":140,"color":"3"},
 		{"id":"stream_service","type":"text","text":"**tg-live-game-stream-service**\n推流服务\n\n技术栈:Bash + FFmpeg\n\n功能:\n- Mac摄像头推流 ✅\n- Mac屏幕推流 ✅\n- RTSP输入 ❌ 待实现\n- WHIP输出 ❌ 待实现\n\n协议:RTMPS","x":-340,"y":-928,"width":280,"height":200,"color":"2"},
-		{"id":"cloudflare_stream","type":"text","text":"**Cloudflare Stream**\n云端视频服务\n\n功能:\n- RTMPS/SRT/WHIP 接收\n- 实时转码\n- HLS/DASH/WHEP 分发\n- 全球CDN\n- 自动录制\n\n账户:5544eac7cfb260d4fec9467d49513cea","x":-340,"y":-320,"width":280,"height":200,"color":"1"},
-		{"id":"ip_camera","type":"text","text":"**IP摄像头**\n(ONVIF)\n\n协议:RTSP\n\n状态:❌ 待接入","x":-1050,"y":200,"width":350,"height":250,"color":"1"},
-		{"id":"live_input","type":"text","text":"**当前Live Input**\n\nID: 3c1ae1949e76f200feef94b8f7d093ca\n名称: weathered-limit-6442\n\nRTMPS: rtmps://live.cloudflare.com:443/live\nHLS: customer-pj89kn2ke2tcuh19...","x":260,"y":50,"width":410,"height":220,"color":"4"},
-		{"id":"browser","type":"text","text":"**浏览器播放**\n\n播放方式:\n- Cloudflare iframe ✅\n- HLS.js ✅\n- Jessibuca ✅\n- WebRTC/WHEP\n\n延迟:2-5秒 (HLS)","x":260,"y":-340,"width":410,"height":250,"color":"3"},
-		{"id":"todo_list","type":"text","text":"## 待办事项\n\n### v1.1 优化\n- [ ] 仪表盘统计\n- [ ] 观看统计展示\n- [ ] 审计日志查看\n\n### v2 目标\n- [ ] RTSP输入支持\n- [ ] WHIP输出支持\n- [ ] Java进程管理\n\n### v3 目标\n- [ ] 多路流管理\n- [ ] 自动重连\n- [ ] 监控告警","x":-340,"y":-1380,"width":415,"height":380,"color":"1"},
-		{"id":"title","type":"text","text":"# TG Live Game 架构 v1\n\n**日期**: 2026-01-06\n**状态**: v1 功能完成\n\n✅ Mac摄像头 → RTMPS → Cloudflare → Web播放\n✅ 用户认证 + 权限管理 (RBAC)\n✅ 摄像头/视频/直播 CRUD\n✅ 观看统计 + 审计日志","x":-870,"y":-1380,"width":450,"height":380,"color":"6"},
+		{"id":"cloudflare_stream","type":"text","text":"**Cloudflare Stream**\n云端视频服务\n\n功能:\n- RTMPS/SRT/WHIP 接收\n- 实时转码\n- HLS/DASH/WHEP 分发\n- 全球CDN\n- 自动录制\n\n账户:5544eac7cfb260d4fec9467d49513cea","x":-340,"y":-320,"width":280,"height":200,"color":"2"},
+		{"id":"ip_camera","type":"text","text":"**IP摄像头**\n(ONVIF)\n\n协议:RTSP\n\n状态:❌ 待接入","x":-1050,"y":200,"width":350,"height":250,"color":"2"},
+		{"id":"live_input","type":"text","text":"**当前Live Input**\n\nID: 3c1ae1949e76f200feef94b8f7d093ca\n名称: weathered-limit-6442\n\nRTMPS: rtmps://live.cloudflare.com:443/live\nHLS: customer-pj89kn2ke2tcuh19...","x":260,"y":50,"width":410,"height":220,"color":"2"},
+		{"id":"browser","type":"text","text":"**浏览器播放**\n\n播放方式:\n- Cloudflare iframe ✅\n- HLS.js ✅\n- Jessibuca ✅\n- WebRTC/WHEP\n\n延迟:2-5秒 (HLS)","x":260,"y":-340,"width":410,"height":250,"color":"4"},
 		{"id":"web_frontend","type":"text","text":"**tg-live-game-web**\n前端应用\n\n技术栈:Vue 3 + TypeScript + Vite + Element Plus\n\n功能:\n- 登录认证 ✅\n- 摄像头管理 ✅\n- 视频管理 ✅\n- 直播管理 ✅\n- 用户管理 (RBAC) ✅\n- Stream配置 ✅\n- Stream测试页 ✅\n\n端口:localhost:3001","x":260,"y":-960,"width":410,"height":413,"color":"5"}
 	],
 	"edges":[
@@ -25,4 +25,4 @@
 		{"id":"edge_java_cf","fromNode":"java_service","fromSide":"top","toNode":"cloudflare_stream","toSide":"bottom","color":"1","label":"WHIP (待实现)"},
 		{"id":"edge_cf_live","fromNode":"cloudflare_stream","fromSide":"right","toNode":"live_input","toSide":"left","label":"实例"}
 	]
-}
+}

+ 114 - 0
tg-live-game/tg-live-game-hono/CLAUDE.md

@@ -0,0 +1,114 @@
+# TG Live Game Hono 后端 - Claude Code 配置
+
+> 2级子项目配置 | 继承自 tg-live-game (1级)
+
+## 项目信息
+
+| 属性 | 值 |
+|------|-----|
+| 项目名称 | tg-live-game-hono |
+| 所属项目 | tg-live-game |
+| 项目类型 | backend (后端 API) |
+| 框架 | Hono 4.x |
+| 运行时 | Cloudflare Workers |
+| 数据库 | Cloudflare D1 (SQLite) |
+
+## 技术栈
+
+| 类别 | 技术 | 版本 |
+|------|------|------|
+| 框架 | Hono | 4.11.1 |
+| 运行时 | Cloudflare Workers | - |
+| 数据库 | Cloudflare D1 | - |
+| 验证 | Zod | 4.3.5 |
+| 语言 | TypeScript | 5.9.3 |
+| 测试 | Vitest | 3.2.4 |
+| Lint | Biome | 2.3.11 |
+| 部署 | Wrangler | 4.56.0 |
+
+## 项目结构
+
+```
+src/
+├── index.ts              # 应用入口
+├── node.ts               # Node.js 本地开发入口
+├── middleware/           # 中间件
+│   └── auth.ts          # JWT 认证 + RBAC 权限
+├── routes/              # API 路由
+│   ├── auth.ts         # 认证接口
+│   ├── user.ts         # 用户管理 (admin only)
+│   ├── cameras.ts      # 摄像头管理
+│   ├── sessions.ts     # 会话管理
+│   ├── stats.ts        # 观看统计
+│   ├── stream.ts       # Cloudflare Stream
+│   └── audit.ts        # 审计日志
+├── services/            # 业务服务
+├── types/               # TypeScript 类型
+└── utils/               # 工具函数
+```
+
+## API 路由
+
+### 公开接口
+| 方法 | 路由 | 描述 |
+|------|------|------|
+| POST | `/api/auth/login` | 用户登录 |
+| POST | `/api/auth/refresh` | 刷新 Token |
+
+### 认证接口
+| 方法 | 路由 | 描述 |
+|------|------|------|
+| GET | `/api/auth/me` | 获取当前用户 |
+| POST | `/api/auth/logout` | 退出登录 |
+| GET/POST/PUT/DELETE | `/api/users/*` | 用户管理 (admin) |
+| GET/POST/PUT/DELETE | `/api/cameras/*` | 摄像头管理 |
+| GET/POST/DELETE | `/api/stream/*` | Stream 管理 |
+| GET | `/api/stats/*` | 观看统计 |
+| GET | `/api/audit/*` | 审计日志 |
+
+## RBAC 角色
+
+| 角色 | 权限 |
+|------|------|
+| admin | 所有权限 |
+| operator | 摄像头/视频/直播管理 |
+| viewer | 只读访问 |
+
+## 部署信息
+
+| 属性 | 值 |
+|------|------|
+| Worker 名称 | tg-live-game-api |
+| 域名 | https://tg-live-game-api.ifoodme.com |
+| D1 Database ID | 970f081e-42c8-46bb-b385-b7c1ab2ceaa5 |
+
+## 开发命令
+
+```bash
+pnpm install          # 安装依赖
+pnpm dev              # 本地开发 (使用本地 D1)
+pnpm dev:remote       # 远程开发 (使用远程 D1)
+pnpm typecheck        # 类型检查
+pnpm test             # 运行测试
+pnpm lint             # 代码检查
+pnpm deploy           # 部署
+```
+
+### D1 数据库操作
+
+```bash
+# 本地执行 SQL
+npx wrangler d1 execute tg_live_game --command "SELECT * FROM users;"
+
+# 远程执行 SQL
+npx wrangler d1 execute tg_live_game --remote --command "SELECT * FROM users;"
+```
+
+## 核心文档
+
+| 文档 | 位置 | 内容 |
+|------|------|------|
+| 子系统架构 | `architecture.canvas` | API 架构图 |
+| 数据库设计 | `d1-database.canvas` | D1 表结构 |
+| 认证系统 | `auth-system.canvas` | JWT + RBAC |
+| 整体架构 | `../architecture.canvas` | 系统架构图 |

+ 102 - 0
tg-live-game/tg-live-game-web/CLAUDE.md

@@ -0,0 +1,102 @@
+# TG Live Game Web 前端 - Claude Code 配置
+
+> 2级子项目配置 | 继承自 tg-live-game (1级)
+
+## 项目信息
+
+| 属性 | 值 |
+|------|-----|
+| 项目名称 | tg-live-game-web |
+| 所属项目 | tg-live-game |
+| 项目类型 | frontend (管理后台) |
+| 框架 | Vue 3 |
+| 构建工具 | Vite |
+
+## 技术栈
+
+| 类别 | 技术 | 版本 |
+|------|------|------|
+| 框架 | Vue | 3.5.24 |
+| 语言 | TypeScript | 5.9.3 |
+| 构建工具 | Vite | 7.2.4 |
+| UI 组件库 | Element Plus | 2.13.0 |
+| 状态管理 | Pinia | 3.0.4 |
+| 路由 | Vue Router | 4.6.4 |
+| HTTP 客户端 | Axios | 1.13.2 |
+| 视频播放 | HLS.js | 1.6.15 |
+
+## 项目结构
+
+```
+src/
+├── api/                    # API 接口
+│   ├── login.ts           # 认证接口
+│   ├── user.ts            # 用户管理接口
+│   ├── camera.ts          # 摄像头接口
+│   ├── stream.ts          # 直播/视频接口
+│   └── cloudflare-stream.ts # Cloudflare Stream API
+├── assets/                 # 静态资源
+├── components/            # 公共组件
+├── composables/           # 组合式函数
+├── layout/                # 布局组件
+├── router/                # 路由配置
+├── store/                 # Pinia 状态管理
+├── types/                 # TypeScript 类型
+├── utils/                 # 工具函数
+│   ├── auth.ts           # Token 管理
+│   └── request.ts        # Axios 封装
+├── views/                 # 页面组件
+│   ├── login/            # 登录页
+│   ├── camera/           # 摄像头管理
+│   ├── stream/           # 直播/视频管理
+│   └── user/             # 用户管理
+├── App.vue
+└── main.ts
+```
+
+## 功能模块
+
+| 模块 | 功能 | 路由 | 状态 |
+|------|------|------|------|
+| 登录认证 | JWT 登录、Token 刷新 | `/login` | ✅ |
+| 摄像头管理 | CRUD、通道管理、视频播放 | `/camera` | ✅ |
+| Stream 测试 | Cloudflare Stream 播放测试 | `/stream-test` | ✅ |
+| 视频管理 | 视频列表、上传、删除 | `/stream/videos` | ✅ |
+| 直播管理 | Live Input 管理、推流配置 | `/stream/live` | ✅ |
+| Stream 配置 | Cloudflare 账户配置 | `/stream/config` | ✅ |
+| 用户管理 | RBAC 用户 CRUD | `/user` | ✅ |
+
+## API 配置
+
+### 开发环境代理
+
+```typescript
+// vite.config.ts
+proxy: {
+  '/api': {
+    target: 'https://tg-live-game-api.ifoodme.com',
+    changeOrigin: true,
+    secure: true
+  }
+}
+```
+
+### 后端服务
+- **地址**: https://tg-live-game-api.ifoodme.com
+- **认证**: JWT Bearer Token
+
+## 开发命令
+
+```bash
+pnpm install          # 安装依赖
+pnpm dev              # 开发服务器 (localhost:3000)
+pnpm build            # 类型检查 + 构建
+pnpm preview          # 预览构建产物
+```
+
+## 核心文档
+
+| 文档 | 位置 | 内容 |
+|------|------|------|
+| 整体架构 | `../architecture.canvas` | 系统架构图 |
+| 后端 API | tg-live-game-hono | API 文档 |