@tencentcloud/sdk-mcp 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/resource/doc/chatuikit/faq/web_sdk/faq.md +117 -0
- package/resource/doc/chatuikit/flutter/client_api_Flutter.md +100 -179
- package/resource/doc/chatuikit/flutter/faq.md +17 -112
- package/resource/doc/chatuikit/flutter/integrate_tuikit_Flutter.md +272 -1281
- package/resource/doc/livekit/live/android/live-audience-list.md +335 -0
- package/resource/doc/livekit/live/android/live-audio-effect.md +384 -0
- package/resource/doc/livekit/live/android/live-barrage.md +569 -0
- package/resource/doc/livekit/live/android/live-base-beauty.md +265 -0
- package/resource/doc/livekit/live/android/live-co-guest-interaction.md +600 -0
- package/resource/doc/livekit/live/android/live-gift.md +833 -0
- package/resource/doc/livekit/live/android/live-host-interaction.md +810 -0
- package/resource/doc/livekit/live/android/live-integration.md +883 -0
- package/resource/doc/livekit/live/android/live-live-list.md +657 -0
- package/resource/doc/livekit/live/android/workflow.md +189 -0
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +256 -0
- package/resource/doc/roomkit/vue/features/device-detection.md +388 -0
- package/resource/doc/roomkit/vue/features/device-state.md +480 -0
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +238 -0
- package/resource/doc/roomkit/vue/features/room-chat.md +427 -0
- package/resource/doc/roomkit/vue/features/room-participant-state.md +407 -0
- package/resource/doc/roomkit/vue/features/room-state.md +291 -0
- package/resource/doc/roomkit/vue/features/room-view.md +338 -0
- package/resource/doc/roomkit/vue/features/schedule-room.md +349 -0
- package/resource/doc/roomkit/vue/features/screen-share.md +333 -0
- package/resource/doc/roomkit/vue/features/virtual-background.md +281 -0
- package/resource/doc/roomkit/vue/features/workflow.md +553 -0
- package/resource/doc/roomkit/vue/integration.md +479 -0
- package/resource/doc/roomkit/vue/workflow.md +487 -0
- package/resource/doc/tuicallkit/react/api.md +16 -0
- package/resource/doc/tuicallkit/vue/api.md +16 -0
- package/tools/common/record-prompt.js +2 -2
- package/tools/common/record-prompt.js.map +1 -1
- package/tools/definitions/get_native_live_extra_features_def.js +109 -0
- package/tools/definitions/get_native_live_extra_features_def.js.map +1 -0
- package/tools/definitions/get_native_live_interaction_def.js +115 -0
- package/tools/definitions/get_native_live_interaction_def.js.map +1 -0
- package/tools/definitions/get_native_live_uikit_integration_def.js +50 -0
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +1 -0
- package/tools/definitions/get_web_live_uikit_integration_def.js +1 -1
- package/tools/definitions/get_web_room_feature_detail_def.js +95 -0
- package/tools/definitions/get_web_room_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +44 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -0
- package/tools/definitions/record_prompt_def.js +1 -1
- package/tools/definitions/record_prompt_def.js.map +1 -1
- package/tools/index.js +10 -2
- package/tools/index.js.map +1 -1
- package/tools/live/get-native-live-uikit-integration.js +101 -0
- package/tools/live/get-native-live-uikit-integration.js.map +1 -0
- package/tools/live/get-web-live-component-detail.js +1 -1
- package/tools/live/get-web-live-component-detail.js.map +1 -1
- package/tools/live/get-web-live-state-detail.js +1 -1
- package/tools/live/get-web-live-state-detail.js.map +1 -1
- package/tools/live/get-web-live-uikit-integration.js +6 -6
- package/tools/live/get-web-live-uikit-integration.js.map +1 -1
- package/tools/live/get_native_live_extra_features.js +105 -0
- package/tools/live/get_native_live_extra_features.js.map +1 -0
- package/tools/live/get_native_live_interaction.js +101 -0
- package/tools/live/get_native_live_interaction.js.map +1 -0
- package/tools/room/get-web-room-feature-detail.js +68 -0
- package/tools/room/get-web-room-feature-detail.js.map +1 -0
- package/tools/room/get-web-room-integration.js +43 -0
- package/tools/room/get-web-room-integration.js.map +1 -0
- package/utils/generate-structured-result.js +1 -1
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/roomkit/vue/states/device-state.md +0 -316
- package/resource/doc/roomkit/vue/states/login-state.md +0 -51
- package/resource/doc/roomkit/vue/states/room-list-state.md +0 -287
- package/resource/doc/roomkit/vue/states/room-participant-state.md +0 -307
- package/tools/definitions/get_web_room_state_detail_def.js +0 -19
- package/tools/definitions/get_web_room_state_detail_def.js.map +0 -1
- package/tools/room/get-web-room-state-detail.js +0 -31
- package/tools/room/get-web-room-state-detail.js.map +0 -1
- /package/resource/doc/livekit/{vue → live/vue}/components/barrage.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/components/co-guest-panel.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/components/live-audience-list.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/components/live-scene-panel.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/components/live-view.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/components/stream-mixer.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/faq.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/live-list-integration.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/live-player-desk-integration.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/live-player-h5-integration.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/live-pusher-integration.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/states/live-state.md +0 -0
- /package/resource/doc/livekit/{vue → live/vue}/workflow.md +0 -0
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
# Vue TUIRoomKit (Atomicx 版本) 代码生成工作流指令
|
|
2
|
+
|
|
3
|
+
## 📋 指令目的
|
|
4
|
+
|
|
5
|
+
为 Agent 提供实现 Vue TUIRoomKit (Atomicx 版本) **核心功能的代码生成蓝图**,并指导 Agent **优先使用工具实时获取的最新文档内容**,专门针对 PC 端 Vue3 音视频会议应用场景。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🛑 Agent 执行硬性限制 (Guardrails)
|
|
10
|
+
|
|
11
|
+
Agent 在生成代码时必须严格遵守以下指令:
|
|
12
|
+
|
|
13
|
+
### 1. 文档驱动集成
|
|
14
|
+
- 必须严格按照工具返回结果中的 `llm_code_generation_instructions_md` 步骤执行
|
|
15
|
+
- **必须严格按照集成文档中的示例代码生成代码**,不得擅自修改代码结构和实现方式
|
|
16
|
+
- 代码生成时应完全遵循集成文档提供的最佳实践和示例,确保代码的正确性和可运行性
|
|
17
|
+
|
|
18
|
+
### 2. 源码接入方式
|
|
19
|
+
- TUIRoomKit (Atomicx 版本) 采用 **源码接入方式**,需要从 GitHub 克隆并拷贝核心源码文件
|
|
20
|
+
- 必须按照文档指引,将指定的源码文件夹(assets、components、hooks、i18n、utils、config、views)拷贝到用户项目中
|
|
21
|
+
- 拷贝时必须确保与用户项目已有的文件夹进行合并,避免直接覆盖
|
|
22
|
+
|
|
23
|
+
### 3. 静默执行集成
|
|
24
|
+
- 所有代码编写完成后,在最后一步自动安装依赖并启动项目
|
|
25
|
+
- 启动成功后提示用户在浏览器中访问本地开发服务器地址
|
|
26
|
+
|
|
27
|
+
### 4. 零外部配置(测试阶段)
|
|
28
|
+
- 禁止自动创建任何 `.env` 文件用于生产环境配置
|
|
29
|
+
- SDKAppID 和 SDKSecretKey 等关键凭证必须从 MCP 环境变量中读取,并直接配置在 `src/config/basic-info-config.js` 中
|
|
30
|
+
|
|
31
|
+
### 5. 鉴权凭据配置
|
|
32
|
+
- 从 MCP 环境变量中读取 `SDKAppID` 和 `SDKSecretKey`,禁止要求用户手动输入
|
|
33
|
+
- UserID 生成应保持简洁(可使用随机数生成,如 `user_${Math.ceil(Math.random()*999)}`)
|
|
34
|
+
- **⚠️ 重要安全提示**:必须告知用户,客户端生成 UserSig 仅适合本地测试,正式生产环境必须在服务端生成 UserSig
|
|
35
|
+
|
|
36
|
+
### 6. Vue 3 组合式 API
|
|
37
|
+
- 优先使用 `<script setup lang="ts">` 语法(注意启用 TypeScript)
|
|
38
|
+
- 使用 Vue 3 Composition API(ref、reactive、computed、onMounted 等)
|
|
39
|
+
- 正确引入和使用 TUIRoomKit Atomicx 组件
|
|
40
|
+
|
|
41
|
+
### 7. 路由配置
|
|
42
|
+
- 必须配置 Vue Router,将 `home.vue` 映射到主页(路径:`/home`),将 `room.vue` 映射到会议室页面(路径:`/room`)
|
|
43
|
+
- 默认根路径重定向到 `/home`
|
|
44
|
+
|
|
45
|
+
### 8. 环境依赖准备
|
|
46
|
+
- 确保用户项目支持 TypeScript 和 SCSS,如果未安装需自动安装 `typescript` 和 `sass` 开发依赖
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 📦 TUIRoomKit 版本与依赖自动化
|
|
51
|
+
|
|
52
|
+
Agent 生成代码后,必须自动执行以下依赖链:
|
|
53
|
+
|
|
54
|
+
### 1. 核心依赖版本推荐
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"tuikit-atomicx-vue3": "latest", // TUIRoomKit 原子化组件库(包含所有 Hooks 和 UI 组件,会自动安装 tuiroom-engine-js)
|
|
59
|
+
"@tencentcloud/uikit-base-component-vue3": "latest", // 基础 UI 组件库(按钮、输入框等通用组件)
|
|
60
|
+
"@tencentcloud/tuiroom-engine-js": "latest", // TRTC 音视频引擎 SDK(底层能力)
|
|
61
|
+
"vue-router": "^4.0.0" // Vue 路由(用于页面导航)
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**依赖说明**:
|
|
66
|
+
|
|
67
|
+
| 依赖包 | 作用 | 是否必需手动安装 | 说明 |
|
|
68
|
+
|-------|------|----------------|------|
|
|
69
|
+
| **tuikit-atomicx-vue3** | TUIRoomKit 核心包 | ✅ 必须 | 包含所有原子化 Hooks(useLoginState、useRoomState、useDeviceState 等)和原子化 UI 组件(RoomLayoutView、ParticipantViewUI 等)。会自动安装 `@tencentcloud/tuiroom-engine-js` 作为依赖 |
|
|
70
|
+
| **@tencentcloud/uikit-base-component-vue3** | 基础 UI 组件库 | ✅ 必须 | 提供通用的按钮、输入框、弹窗等基础组件,被 TUIRoomKit 原子化组件内部使用 |
|
|
71
|
+
| **@tencentcloud/tuiroom-engine-js** | TRTC 音视频引擎 SDK | ⚠️ 可选 | 提供底层音视频能力(设备管理、音视频采集、推拉流等)。由于 `tuikit-atomicx-vue3` 会自动安装此依赖,通常不需要手动安装。但如果需要确保版本一致性,可以手动指定版本 |
|
|
72
|
+
| **vue-router** | Vue 官方路由库 | ✅ 必须 | 用于实现会议入口页(`/home`)和会议室页面(`/room`)的路由导航 |
|
|
73
|
+
|
|
74
|
+
**依赖关系**:
|
|
75
|
+
```
|
|
76
|
+
用户项目
|
|
77
|
+
├── tuikit-atomicx-vue3(手动安装)
|
|
78
|
+
│ └── @tencentcloud/tuiroom-engine-js(自动安装)
|
|
79
|
+
├── @tencentcloud/uikit-base-component-vue3(手动安装)
|
|
80
|
+
└── vue-router(手动安装)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**最佳实践**:
|
|
84
|
+
- ✅ **推荐做法**:仅手动安装 `tuikit-atomicx-vue3`、`@tencentcloud/uikit-base-component-vue3`、`vue-router`,让 `@tencentcloud/tuiroom-engine-js` 自动安装
|
|
85
|
+
- ⚠️ **可选做法**:如果需要精确控制 `@tencentcloud/tuiroom-engine-js` 版本,可以手动安装并指定版本号
|
|
86
|
+
- ❌ **不推荐**:同时在 `dependencies` 和手动安装中指定不同版本的 `@tencentcloud/tuiroom-engine-js`,可能导致版本冲突
|
|
87
|
+
|
|
88
|
+
### 2. 开发环境依赖(TypeScript 和 SCSS)
|
|
89
|
+
|
|
90
|
+
如果用户项目尚未支持 TypeScript 和 SCSS,Agent 必须自动安装:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"typescript": "latest", // TypeScript 编译器(用于类型检查和编译)
|
|
95
|
+
"sass": "latest" // SCSS 预处理器(用于编译 .scss 样式文件)
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**依赖说明**:
|
|
100
|
+
- **typescript**: TUIRoomKit 源码使用 TypeScript 编写,需要 TypeScript 编译器支持
|
|
101
|
+
- **sass**: TUIRoomKit 样式文件使用 SCSS 编写,需要 sass 预处理器进行编译
|
|
102
|
+
|
|
103
|
+
### 3. 构建环境补丁 (Vite/esbuild)
|
|
104
|
+
|
|
105
|
+
若检测到 Vite 项目,Agent 必须在 `package.json` 自动增加补丁配置以兼容 esbuild-wasm:
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"overrides": {
|
|
110
|
+
"esbuild": "npm:esbuild-wasm@latest" // npm 使用此字段覆盖依赖版本
|
|
111
|
+
},
|
|
112
|
+
"resolutions": {
|
|
113
|
+
"esbuild": "npm:esbuild-wasm@latest" // yarn/pnpm 使用此字段覆盖依赖版本
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**补丁说明**:
|
|
119
|
+
- **为什么需要**:部分环境下 esbuild 原生二进制可能无法正常运行,使用 esbuild-wasm(WebAssembly 版本)可以提供更好的跨平台兼容性
|
|
120
|
+
- **适用场景**:主要针对 Vite 构建工具的项目
|
|
121
|
+
- **作用**:强制将项目中所有依赖的 esbuild 版本替换为 esbuild-wasm 版本
|
|
122
|
+
|
|
123
|
+
**安装命令示例**:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# npm
|
|
127
|
+
npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/tuiroom-engine-js vue-router
|
|
128
|
+
npm install typescript sass -D
|
|
129
|
+
|
|
130
|
+
# pnpm
|
|
131
|
+
pnpm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/tuiroom-engine-js vue-router
|
|
132
|
+
pnpm install typescript sass -D
|
|
133
|
+
|
|
134
|
+
# yarn
|
|
135
|
+
yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/tuiroom-engine-js vue-router
|
|
136
|
+
yarn add typescript sass -D
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 🏗️ 源码文件拷贝结构
|
|
142
|
+
|
|
143
|
+
Agent 必须按照以下结构,从示例项目拷贝核心源码到用户项目:
|
|
144
|
+
|
|
145
|
+
| 源路径 (示例项目) | 目标路径 (用户项目) | 说明 |
|
|
146
|
+
|------------------|-------------------|------|
|
|
147
|
+
| `src/assets/` | `src/assets/` | 包含背景图、图标等静态资源 |
|
|
148
|
+
| `src/components/` | `src/components/` | 包含 TUIRoomKit 所有原子 UI 组件 |
|
|
149
|
+
| `src/hooks/` | `src/hooks/` | 包含 TUIRoomKit 业务逻辑处理 |
|
|
150
|
+
| `src/i18n/` | `src/i18n/` | 包含多语言配置文件 |
|
|
151
|
+
| `src/utils/` | `src/utils/` | 包含通用工具函数 |
|
|
152
|
+
| `src/config/` | `src/config/` | 包含 `basic-info-config.js` 等应用配置信息(首次接入请重点关注此文件) |
|
|
153
|
+
| `src/views/home.vue` | `src/views/home.vue` | 该页面包含了设备检测、房间创建/加入的入口功能 |
|
|
154
|
+
| `src/views/room.vue` | `src/views/room.vue` | 该页面是 TUIRoomKit 的核心会议界面,集成了完整的头部、视频布局、控制栏和侧边面板 |
|
|
155
|
+
|
|
156
|
+
> **重要提示**:拷贝源码文件时,请确保与用户项目已有的文件夹进行**合并**,避免直接覆盖已有的同名文件夹。
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 🎯 TUIRoomKit (Atomicx 版本) 核心组件说明
|
|
161
|
+
|
|
162
|
+
Agent 在生成代码时,必须了解 TUIRoomKit Atomicx 的核心架构:
|
|
163
|
+
|
|
164
|
+
### 原子化组件设计理念
|
|
165
|
+
|
|
166
|
+
TUIRoomKit (Atomicx 版本) 采用原子化组件设计,开发者可以灵活组合这些组件构建个性化的会议界面。
|
|
167
|
+
|
|
168
|
+
### 核心页面组件
|
|
169
|
+
|
|
170
|
+
| 组件名称 | 说明 | 使用场景 |
|
|
171
|
+
|---------|------|---------|
|
|
172
|
+
| `home.vue` | 会议入口页面 | 包含设备检测、房间创建/加入功能 |
|
|
173
|
+
| `room.vue` | 会议室核心页面 | 集成完整的头部、视频布局、控制栏和侧边面板 |
|
|
174
|
+
|
|
175
|
+
### 核心 Hooks
|
|
176
|
+
|
|
177
|
+
| Hook 名称 | 说明 | 主要用途 |
|
|
178
|
+
|---------|------|---------|
|
|
179
|
+
| `useLoginState` | 登录状态管理 | 提供 login、setSelfInfo 等方法 |
|
|
180
|
+
| `useRoomModal` | 房间弹窗管理 | 提供 handleErrorWithModal 错误处理方法 |
|
|
181
|
+
| `useRoomEngine` | 房间引擎管理 | 获取 roomEngine 实例 |
|
|
182
|
+
|
|
183
|
+
### 核心 UI 组件(来自 tuikit-atomicx-vue3)
|
|
184
|
+
|
|
185
|
+
- **RoomLayoutView**: 视频流布局组件(支持九宫格、侧边栏、顶部栏三种布局)
|
|
186
|
+
- **ParticipantViewUI**: 视频流挂件组件(可自定义)
|
|
187
|
+
- **UIKitProvider**: 全局 UI 配置组件(主题、语言)
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 🛠️ 集成步骤详解
|
|
192
|
+
|
|
193
|
+
Agent 必须按照以下步骤执行集成:
|
|
194
|
+
|
|
195
|
+
### 步骤 1:克隆 GitHub 仓库并拷贝源码
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# 克隆 TUIRoomKit 仓库
|
|
199
|
+
git clone https://github.com/Tencent-RTC/TUIRoomKit.git --depth=1
|
|
200
|
+
|
|
201
|
+
# 进入 PC 端 Vue3 Atomicx 示例目录
|
|
202
|
+
cd TUIRoomKit/Web/example/atomicx-vite-vue3-ts
|
|
203
|
+
|
|
204
|
+
# 拷贝核心源码文件到用户项目
|
|
205
|
+
# (注意:需要与用户项目已有文件夹合并,而非直接覆盖)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Agent 执行注意事项**:
|
|
209
|
+
- 如果用户项目中已存在同名文件夹,必须进行智能合并
|
|
210
|
+
- 不得覆盖用户已有的业务代码
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### 步骤 2:安装项目依赖
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# 安装核心依赖
|
|
218
|
+
npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 @tencentcloud/tuiroom-engine-js vue-router
|
|
219
|
+
|
|
220
|
+
# 安装开发环境依赖(如果用户项目尚未支持 TypeScript 和 SCSS)
|
|
221
|
+
npm install typescript sass -S -D
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### 步骤 3:配置页面路由
|
|
227
|
+
|
|
228
|
+
在用户项目中配置或更新 `src/router/index.ts` 文件。
|
|
229
|
+
|
|
230
|
+
**关键配置要点**:
|
|
231
|
+
- 配置 `/home` 路由:映射到 `home.vue` 页面(会议入口)
|
|
232
|
+
- 配置 `/room` 路由:映射到 `room.vue` 页面(会议室)
|
|
233
|
+
- 默认根路径 `/` 重定向到 `/home`
|
|
234
|
+
|
|
235
|
+
**Agent 执行要求**:
|
|
236
|
+
- ⚠️ 必须严格按照集成文档中的路由配置示例生成
|
|
237
|
+
- 如果用户项目中已有 `src/router/index.ts` 文件,需要将路由配置**合并**到已有代码中
|
|
238
|
+
- 如果尚未配置路由,需要新建 `src/router/index.ts` 文件
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### 步骤 4:配置 App.vue 文件
|
|
243
|
+
|
|
244
|
+
将集成文档中提供的配置内容合并到用户项目中的 `App.vue` 文件。
|
|
245
|
+
|
|
246
|
+
**关键配置要点**:
|
|
247
|
+
- 配置全局 `UIKitProvider` 组件(设置主题和语言)
|
|
248
|
+
- 引入页面路由 `<router-view />`
|
|
249
|
+
- 在 `onMounted` 钩子中执行用户登录逻辑(`login` 和 `setSelfInfo`)
|
|
250
|
+
- 配置全局样式,确保会议界面全屏显示
|
|
251
|
+
|
|
252
|
+
**Agent 执行要求**:
|
|
253
|
+
- ⚠️ 必须严格按照集成文档中的 `App.vue` 示例代码生成,不得擅自修改
|
|
254
|
+
- 如果用户项目已有 `App.vue` 文件,需要智能合并而非直接覆盖
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### 步骤 5:配置 src/main.ts 文件
|
|
259
|
+
|
|
260
|
+
将集成文档中提供的路由和多语言配置合并到用户项目中的入口文件 `src/main.ts` 中。
|
|
261
|
+
|
|
262
|
+
**关键配置要点**:
|
|
263
|
+
- 引入并注册 Vue Router
|
|
264
|
+
- 配置多语言资源(中文和英文)
|
|
265
|
+
- 挂载 Vue 应用
|
|
266
|
+
|
|
267
|
+
**Agent 执行要求**:
|
|
268
|
+
- ⚠️ 必须严格按照集成文档中的 `main.ts` 示例代码生成,不得擅自修改
|
|
269
|
+
- 如果用户项目中的入口文件为 `main.js`,需要修改文件后缀为 `main.ts`
|
|
270
|
+
- 如果用户项目已有路由配置,需要智能合并而非直接覆盖
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
### 步骤 6:配置应用信息(src/config/basic-info-config.js)
|
|
275
|
+
|
|
276
|
+
在用户项目目录中找到 `src/config/basic-info-config.js` 配置文件,并进行以下配置:
|
|
277
|
+
|
|
278
|
+
**配置方式**:
|
|
279
|
+
- Agent 必须从 MCP 环境变量中读取 `SDKAppID` 和 `SDKSecretKey`
|
|
280
|
+
- 这些凭证配置在 MCP 环境中,无需通过 `get_usersig` 工具获取
|
|
281
|
+
- 直接将环境变量中的值写入 `basic-info-config.js` 文件
|
|
282
|
+
|
|
283
|
+
**⚠️ 安全警告**:
|
|
284
|
+
- 本文的 Demo 示例中通过在客户端代码中配置 `SDKSecretKey` 进行鉴权,但 `SDKSecretKey` 很容易被反编译逆向破解,一旦密钥泄露,攻击者就可以盗用您的腾讯云流量
|
|
285
|
+
- **该方法仅适合本地跑通 Demo 和功能调试**
|
|
286
|
+
- **在正式的生产环境中**,建议在您的服务端生成 UserSig,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig 来进行鉴权
|
|
287
|
+
|
|
288
|
+
**Agent 必须告知用户**:
|
|
289
|
+
> "⚠️ 当前生成的代码仅适用于本地测试。在正式生产环境中,您必须在服务端生成 UserSig,详见腾讯云文档:https://cloud.tencent.com/document/product/647/17275#formal"
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## 🎨 UI 自定义功能
|
|
294
|
+
|
|
295
|
+
TUIRoomKit (Atomicx 版本) 支持灵活的 UI 自定义,Agent 可根据用户需求提供以下自定义方案:
|
|
296
|
+
|
|
297
|
+
### 1. 主题及语言配置
|
|
298
|
+
|
|
299
|
+
通过配置 `App.vue` 中 `UIKitProvider` 的入参,修改主题及语言的默认值:
|
|
300
|
+
|
|
301
|
+
| UIKitProvider 参数 | 可选值 | 默认值 |
|
|
302
|
+
|-------------------|--------|--------|
|
|
303
|
+
| theme | "light" \| "dark" | "light" |
|
|
304
|
+
| language | "zh-CN" \| "en-US" | "en-US" |
|
|
305
|
+
|
|
306
|
+
```typescript
|
|
307
|
+
<UIKitProvider theme="dark" language="en-US">
|
|
308
|
+
<router-view />
|
|
309
|
+
</UIKitProvider>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
### 2. 房间流布局自定义
|
|
315
|
+
|
|
316
|
+
TUIRoomKit 目前支持三种流布局:
|
|
317
|
+
- **九宫格布局**(默认):`RoomLayoutTemplate.GridLayout`
|
|
318
|
+
- **侧边栏布局**:`RoomLayoutTemplate.SidebarLayout`
|
|
319
|
+
- **顶部栏布局**:`RoomLayoutTemplate.CinemaLayout`
|
|
320
|
+
|
|
321
|
+
在 `src/views/room.vue` 中修改默认布局:
|
|
322
|
+
|
|
323
|
+
```typescript
|
|
324
|
+
// 修改默认视频流布局为侧边栏布局
|
|
325
|
+
const participantViewLayout = ref(RoomLayoutTemplate.SidebarLayout);
|
|
326
|
+
|
|
327
|
+
function handleLayoutUpdate(layout: RoomLayoutTemplate) {
|
|
328
|
+
participantViewLayout.value = layout;
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
### 3. 自定义视频流挂件
|
|
335
|
+
|
|
336
|
+
如需自定义视频流挂件(如用户名显示、音视频状态图标等),可修改以下组件:
|
|
337
|
+
|
|
338
|
+
```
|
|
339
|
+
src/components/RoomLayoutView/ParticipantViewUI/ParticipantViewUI.vue
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
### 4. 配置用户联系人列表
|
|
345
|
+
|
|
346
|
+
TUIRoomKit 预定会议用户选择列表和会中呼叫用户选择列表默认展示用户关系链列表。批量导入用户关系链请参考以下步骤:
|
|
347
|
+
|
|
348
|
+
**步骤 1**:使用 [账号管理 > 导入多个账号](https://cloud.tencent.com/document/product/269/4919) REST API 接口批量导入用户账号
|
|
349
|
+
|
|
350
|
+
**步骤 2**:使用 [好友管理 > 导入好友](https://cloud.tencent.com/document/product/269/8301) REST API 接口批量导入用户关系链
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 🔄 完整自动化流程总结
|
|
355
|
+
|
|
356
|
+
```mermaid
|
|
357
|
+
graph TD
|
|
358
|
+
A[接收用户需求] --> B[克隆 TUIRoomKit GitHub 仓库]
|
|
359
|
+
B --> C[拷贝核心源码文件到用户项目]
|
|
360
|
+
C --> D[安装核心依赖: tuikit-atomicx-vue3 等]
|
|
361
|
+
D --> E{检测 TypeScript 和 SCSS 支持}
|
|
362
|
+
E -->|未安装| F[安装 typescript 和 sass]
|
|
363
|
+
E -->|已安装| G[跳过]
|
|
364
|
+
F --> H[配置 Vue Router 路由]
|
|
365
|
+
G --> H
|
|
366
|
+
H --> I[配置 App.vue: UIKitProvider + 用户登录]
|
|
367
|
+
I --> J[配置 main.ts: 路由 + 多语言]
|
|
368
|
+
J --> K[从 MCP 环境变量读取 SDKAppID 和 SDKSecretKey]
|
|
369
|
+
K --> L[配置 basic-info-config.js: SDKAppID + SDKSecretKey]
|
|
370
|
+
L --> M{用户需要自定义 UI?}
|
|
371
|
+
M -->|是| N[提供 UI 自定义方案: 主题/布局/挂件]
|
|
372
|
+
M -->|否| O[使用默认配置]
|
|
373
|
+
N --> P[record_result 记录集成结果]
|
|
374
|
+
O --> P
|
|
375
|
+
P --> Q[自动启动开发服务器: npm run dev]
|
|
376
|
+
Q --> R[提示用户在浏览器中访问本地开发服务器地址]
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## ✍️ Agent 代码生成示例指令 (Prompts)
|
|
382
|
+
|
|
383
|
+
当 Agent 开始编写代码时,应遵循以下语义逻辑:
|
|
384
|
+
|
|
385
|
+
**基础集成**:
|
|
386
|
+
> "按照 TUIRoomKit (Atomicx 版本) 源码接入方式,为我生成一个 Vue 3 音视频会议应用。请从 GitHub 克隆仓库并拷贝核心源码文件,自动配置路由和多语言,并从 MCP 环境变量中读取 SDKAppID 和 SDKSecretKey 配置到 `basic-info-config.js`。启动后提示我在浏览器中访问调试地址。**请务必告知我:当前生成的代码仅适用于本地测试,正式生产环境必须在服务端生成 UserSig。**"
|
|
387
|
+
|
|
388
|
+
**自定义主题和布局**:
|
|
389
|
+
> "按照 TUIRoomKit (Atomicx 版本) 集成,生成一个 Vue 3 会议应用。要求使用暗色主题(dark)和英文语言(en-US),默认流布局为侧边栏布局(SidebarLayout)。"
|
|
390
|
+
|
|
391
|
+
**自定义视频流挂件**:
|
|
392
|
+
> "按照 TUIRoomKit (Atomicx 版本) 集成,生成一个 Vue 3 会议应用。需要自定义视频流挂件,在视频流上显示自定义的用户信息和状态图标。"
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## 📝 关键要点总结
|
|
397
|
+
|
|
398
|
+
| 类别 | 要求 |
|
|
399
|
+
|------|------|
|
|
400
|
+
| **框架版本** | 专门针对 PC 端 Vue 3 项目(不支持 Vue 2.x 和 H5) |
|
|
401
|
+
| **接入方式** | 源码接入(从 GitHub 克隆并拷贝核心源码文件) |
|
|
402
|
+
| **文档优先** | 严格遵循工具返回的最新文档指令 |
|
|
403
|
+
| **静默集成** | 代码编写完成后自动安装依赖并启动开发服务器 |
|
|
404
|
+
| **凭证注入** | 从 MCP 环境变量读取凭证,配置在 `basic-info-config.js` 中 |
|
|
405
|
+
| **安全提示** | ⚠️ 必须告知用户:客户端生成 UserSig 仅适合测试,生产环境必须在服务端生成 |
|
|
406
|
+
| **依赖管理** | 自动安装核心依赖和开发环境依赖(TypeScript、SCSS) |
|
|
407
|
+
| **路由配置** | 配置 `/home` 和 `/room` 两个核心路由 |
|
|
408
|
+
| **多语言** | 支持中文(zh-CN)和英文(en-US) |
|
|
409
|
+
| **UI 自定义** | 支持主题、布局、视频流挂件等自定义 |
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## 🎯 Agent 执行检查清单
|
|
414
|
+
|
|
415
|
+
在完成代码生成后,Agent 必须确认以下所有项目:
|
|
416
|
+
|
|
417
|
+
### 项目初始化
|
|
418
|
+
- [ ] 已克隆 TUIRoomKit GitHub 仓库(`git clone https://github.com/Tencent-RTC/TUIRoomKit.git --depth=1`)
|
|
419
|
+
- [ ] 已拷贝核心源码文件到用户项目(assets、components、hooks、i18n、utils、config、views)
|
|
420
|
+
- [ ] 已安装核心依赖:`tuikit-atomicx-vue3`、`@tencentcloud/uikit-base-component-vue3`、`@tencentcloud/tuiroom-engine-js`、`vue-router`
|
|
421
|
+
- [ ] 已检测并安装 TypeScript 和 SCSS 开发依赖(如果用户项目未安装)
|
|
422
|
+
|
|
423
|
+
### 代码生成
|
|
424
|
+
- [ ] 已配置 Vue Router:`/home` 和 `/room` 路由
|
|
425
|
+
- [ ] 已配置 `App.vue`:UIKitProvider + 用户登录逻辑
|
|
426
|
+
- [ ] 已配置 `main.ts`:路由 + 多语言资源
|
|
427
|
+
- [ ] 组件使用了 `<script setup lang="ts">` 语法
|
|
428
|
+
|
|
429
|
+
### 凭证与登录
|
|
430
|
+
- [ ] 🔴 已从 MCP 环境变量中读取 SDKAppID 和 SDKSecretKey
|
|
431
|
+
- [ ] 已将 SDKAppID、SDKSecretKey 配置在 `src/config/basic-info-config.js` 中
|
|
432
|
+
- [ ] 已在 `App.vue` 中实现 login() 和 setSelfInfo() 登录逻辑
|
|
433
|
+
- [ ] ⚠️ **已告知用户**:当前生成的代码仅适用于本地测试,正式生产环境必须在服务端生成 UserSig
|
|
434
|
+
|
|
435
|
+
### UI 配置
|
|
436
|
+
- [ ] 已根据用户需求配置主题(light/dark)和语言(zh-CN/en-US)
|
|
437
|
+
- [ ] 已根据用户需求配置流布局(九宫格/侧边栏/顶部栏)
|
|
438
|
+
- [ ] 如果用户需要自定义视频流挂件,已提供自定义方案
|
|
439
|
+
|
|
440
|
+
### 最终检查
|
|
441
|
+
- [ ] 已调用 `record_result` 记录集成结果
|
|
442
|
+
- [ ] 已自动安装依赖(npm install)
|
|
443
|
+
- [ ] 已自动启动开发服务器(npm run dev)
|
|
444
|
+
- [ ] 已提示用户在浏览器中访问本地开发服务器地址
|
|
445
|
+
- [ ] 项目可以正常运行,无报错
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## 🔗 相关工具参考
|
|
450
|
+
|
|
451
|
+
### 必须使用的工具
|
|
452
|
+
|
|
453
|
+
#### MCP 环境变量 - 读取鉴权凭证
|
|
454
|
+
**用途**:从 MCP 环境变量中读取腾讯云应用凭证:
|
|
455
|
+
- `SDKAppID`: 应用标识
|
|
456
|
+
- `SDKSecretKey`: 应用密钥
|
|
457
|
+
|
|
458
|
+
**使用方式**:
|
|
459
|
+
- Agent 直接从 MCP 环境变量中读取凭证
|
|
460
|
+
- 将凭证写入 `src/config/basic-info-config.js` 文件
|
|
461
|
+
- 禁止让用户手动填写或从外部工具获取
|
|
462
|
+
|
|
463
|
+
**使用约束**:
|
|
464
|
+
- ✅ 必须从 MCP 环境变量读取
|
|
465
|
+
- ❌ 禁止让用户手动输入
|
|
466
|
+
- ⚠️ 必须告知用户:客户端生成 UserSig 仅适合测试,生产环境必须在服务端生成
|
|
467
|
+
|
|
468
|
+
#### `record_result` - 记录集成结果
|
|
469
|
+
**用途**:记录集成过程和结果,用于统计和分析
|
|
470
|
+
|
|
471
|
+
**调用时机**:在完成所有集成步骤并成功启动项目后调用
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## 📚 相关资源链接
|
|
476
|
+
|
|
477
|
+
- **TUIRoomKit GitHub 仓库**:https://github.com/Tencent-RTC/TUIRoomKit
|
|
478
|
+
- **腾讯云 TRTC 控制台**:https://console.cloud.tencent.com/trtc
|
|
479
|
+
- **正式运行阶段如何计算 UserSig**:https://cloud.tencent.com/document/product/647/17275#formal
|
|
480
|
+
- **URL 域名及协议限制说明**:https://cloud.tencent.com/document/product/647/17249
|
|
481
|
+
- **应对防火墙受限(内网代理)**:https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-34-advanced-proxy.html
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
**适用框架**: Vue 3 (PC 端)
|
|
486
|
+
**TUIRoomKit 版本**: tuikit-atomicx-vue3 (Atomicx 版本)
|
|
487
|
+
**构建工具**: Vite (推荐)
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## 重要提醒
|
|
2
|
+
**文档内容说明:**
|
|
3
|
+
- 文档涉及到 `TUICallEngine` API 和 `TUICallKit` 含 UI 组件 API 两部分
|
|
4
|
+
- `TUICallEngine` API 文档请参考 **Part One**
|
|
5
|
+
- `TUICallKit`含 UI 组件 API 文档请参考 **Part Two**
|
|
6
|
+
|
|
7
|
+
## Part One
|
|
8
|
+
**TUICallEngine API 文档**
|
|
9
|
+
- TUICallEngine API 涉及到 web 和 小程序。
|
|
10
|
+
- 当用户查询 `TUICallEngine` API 时,必须先查阅 TUICallEngine 的官方 API 文档,然后再给出 API 的正确用法示例, 禁止自己推测 API 的用法。
|
|
11
|
+
- 以下是各平台 API 的文档链接,请直接访问文档链接获取 API 用法:
|
|
12
|
+
- [TUICallEngine Web API 列表文档](https://cloud.tencent.com/document/product/647/78757)
|
|
13
|
+
- [TUICallEngine Web API 使用示例文档](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/zh-cn/TUICallEngine.html)
|
|
14
|
+
- [TUICallEngine 小程序 API 文档](https://cloud.tencent.com/document/product/647/78761)
|
|
15
|
+
|
|
16
|
+
## Part Two
|
|
1
17
|
TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景;更详细的接入步骤,详见:[快速接入 TUICallKit](https://write.woa.com/document/130513425899630592)。
|
|
2
18
|
|
|
3
19
|
> **说明:**
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## 重要提醒
|
|
2
|
+
**文档内容说明:**
|
|
3
|
+
- 文档涉及到 `TUICallEngine` API 和 `TUICallKit` 含 UI 组件 API 两部分。
|
|
4
|
+
- `TUICallEngine` API 文档请参考 **Part One**
|
|
5
|
+
- `TUICallKit`含 UI 组件 API 文档请参考 **Part Two**
|
|
6
|
+
|
|
7
|
+
## Part One
|
|
8
|
+
**TUICallEngine API 文档**
|
|
9
|
+
- TUICallEngine API 涉及到 web 和 小程序。
|
|
10
|
+
- 当用户查询 `TUICallEngine` API 时,必须先查阅 TUICallEngine 的官方 API 文档,然后再给出 API 的正确用法示例, 禁止自己推测 API 的用法。
|
|
11
|
+
- 以下是各平台 API 的文档链接,请直接访问文档链接获取 API 用法:
|
|
12
|
+
- [TUICallEngine Web API 列表文档](https://cloud.tencent.com/document/product/647/78757)
|
|
13
|
+
- [TUICallEngine Web API 使用示例文档](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/zh-cn/TUICallEngine.html)
|
|
14
|
+
- [TUICallEngine 小程序 API 文档](https://cloud.tencent.com/document/product/647/78761)
|
|
15
|
+
|
|
16
|
+
## Part Two
|
|
1
17
|
TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景;更详细的接入步骤,详见:[快速接入 TUICallKit](https://write.woa.com/document/130513425899630592)。
|
|
2
18
|
|
|
3
19
|
> **说明:**
|
|
@@ -4,11 +4,11 @@ import { reportCLSClient } from '../../utils/report-cls-client.js';
|
|
|
4
4
|
const registryRecordPromptTool = (mcpServer) => {
|
|
5
5
|
const { name, description, parameter_descriptions } = RECORD_PROMPT_DEFINITION;
|
|
6
6
|
mcpServer.tool(name, description, {
|
|
7
|
-
|
|
7
|
+
prompt: z.string().describe(parameter_descriptions.prompt),
|
|
8
8
|
}, (params) => {
|
|
9
9
|
reportCLSClient({
|
|
10
10
|
method: 'record_prompt',
|
|
11
|
-
info: params.
|
|
11
|
+
info: params.prompt,
|
|
12
12
|
});
|
|
13
13
|
return {
|
|
14
14
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-prompt.js","sourceRoot":"","sources":["../../../src/tools/common/record-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACxD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,wBAAwB,CAAC;IAC/E,SAAS,CAAC,IAAI,CACZ,IAAI,EACJ,WAAW,EACX;QACE,
|
|
1
|
+
{"version":3,"file":"record-prompt.js","sourceRoot":"","sources":["../../../src/tools/common/record-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACxD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,wBAAwB,CAAC;IAC/E,SAAS,CAAC,IAAI,CACZ,IAAI,EACJ,WAAW,EACX;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC;KAC3D,EAAE,CAAC,MAAM,EAAE,EAAE;QACZ,eAAe,CAAC;YACd,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,MAAM,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,6DAA6D;iBACpE;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
const TOOL_DESCRIPTION = `
|
|
2
|
+
【核心用途】:
|
|
3
|
+
这是一个专业的 Native 直播扩展功能集成助手,专门用于指导 LLM 帮用户在 Android/iOS/Flutter/React Native 平台实现直播场景下的扩展功能,包括:基础美颜、音效控制、弹幕互动、礼物赠送。
|
|
4
|
+
|
|
5
|
+
【关键词】:'AtomicXCore', 'LiveKit', '美颜', '音效', '弹幕', '礼物', 'BaseBeautyStore', 'AudioEffectStore', 'DeviceStore', 'BarrageStore', 'GiftStore', 'Android', 'iOS', 'Flutter', 'React Native'。
|
|
6
|
+
|
|
7
|
+
【行动指令与工作流引导】:
|
|
8
|
+
|
|
9
|
+
Agent 在处理用户需求时,应使用本工具返回的 llm_code_generation_instructions_md 字段。这个字段包含了:
|
|
10
|
+
1. 核心工作流指令(来自 workflow.md,包含调用 get_usersig 工具自动生成测试凭证并注入代码的闭环流程)。
|
|
11
|
+
2. 用户所需功能(Goals)对应的最新、实时获取的官方文档内容。
|
|
12
|
+
|
|
13
|
+
LLM 必须优先且唯一使用本工具返回的实时文档内容生成代码,避免自行访问外部 URL。
|
|
14
|
+
|
|
15
|
+
【⚠️ 重要前置依赖】:
|
|
16
|
+
|
|
17
|
+
**扩展功能依赖于基础直播功能**:
|
|
18
|
+
- 美颜、音效、弹幕、礼物等扩展功能必须在**已实现主播开播和观众观看的项目基础上**才能正常工作
|
|
19
|
+
- 如果用户在空项目中直接请求扩展功能,Agent 必须:
|
|
20
|
+
1. **先调用 'get_native_live_uikit_integration' 工具**实现基础直播功能(主播开播 + 观众观看)
|
|
21
|
+
2. **再调用本工具**实现扩展功能(美颜 / 音效 / 弹幕 / 礼物)
|
|
22
|
+
3. **确保代码包含完整的身份入口选择逻辑**,让用户可以切换主播/观众身份进行测试
|
|
23
|
+
|
|
24
|
+
【功能范围】:
|
|
25
|
+
|
|
26
|
+
1. **基础美颜** (base_beauty):磨皮/美白/红润(0-9 级)、重置美颜
|
|
27
|
+
- 核心 API:BaseBeautyStore.setSmoothLevel()、setWhitenessLevel()、setRuddyLevel()
|
|
28
|
+
|
|
29
|
+
2. **音效控制** (audio_effect):人声音量(0-150)、耳返音量(0-100)、变声、混响
|
|
30
|
+
- 核心 API:AudioEffectStore.setVoiceEarMonitorEnable()、setAudioChangerType()、setAudioReverbType()、DeviceStore.setCaptureVolume()
|
|
31
|
+
- **📖 官方 API 文档地址(如有疑问,必须查阅确认)**:
|
|
32
|
+
* AudioEffectStore: https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-audio-effect-store/index.html
|
|
33
|
+
* AudioEffectState: https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-audio-effect-state/index.html
|
|
34
|
+
* AudioChangerType: https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-audio-changer-type/index.html
|
|
35
|
+
* AudioReverbType: https://tencent-rtc.github.io/TUIKit_Android/-atomic-x%20-core%20-a-p-i/io.trtc.tuikit.atomicxcore.api.device/-audio-reverb-type/index.html
|
|
36
|
+
|
|
37
|
+
3. **弹幕互动** (barrage):接收/发送弹幕、自定义弹幕、禁言管理
|
|
38
|
+
- 核心 API:BarrageStore.sendTextMessage()、sendCustomMessage()、appendLocalTip()
|
|
39
|
+
|
|
40
|
+
4. **礼物赠送** (gift):礼物列表、发送礼物、全屏礼物动画(必选)、弹幕礼物消息(视弹幕模块是否存在而定)
|
|
41
|
+
- 核心 API:GiftStore.refreshUsableGifts()、sendGift()、addGiftListener()
|
|
42
|
+
|
|
43
|
+
【支持平台】:Android, iOS, Flutter, React Native(根据 platform 参数动态返回对应平台文档)。
|
|
44
|
+
|
|
45
|
+
【典型使用场景】:
|
|
46
|
+
|
|
47
|
+
1. 用户需求:"添加直播美颜和音效功能"(未指定平台)→ 先调用 'present_framework_choice' 让用户选择平台
|
|
48
|
+
2. 用户需求:"请使用 AtomicXCore 在 Android 平台实现美颜功能" → 调用本工具,platform='android', goals=['base_beauty']
|
|
49
|
+
3. 用户需求:"请使用 AtomicXCore 在 iOS 平台实现音效控制功能" → 调用本工具,platform='ios', goals=['audio_effect']
|
|
50
|
+
4. 用户需求:"请使用 AtomicXCore 在 Flutter 平台实现弹幕功能" → 调用本工具,platform='flutter', goals=['barrage']
|
|
51
|
+
5. 用户需求:"请使用 AtomicXCore 在 Android 平台实现礼物功能"(无弹幕)→ 调用本工具,platform='android', goals=['gift']
|
|
52
|
+
- **结果**:实现礼物发送/接收 + 全屏礼物动画。(不实现弹幕礼物消息)
|
|
53
|
+
6. 用户需求:"集成弹幕和礼物功能" → 调用本工具,goals=['barrage', 'gift']
|
|
54
|
+
- **结果**:实现礼物发送/接收 + 全屏礼物动画 + 弹幕区域显示礼物文本消息。
|
|
55
|
+
|
|
56
|
+
【强制约束】:
|
|
57
|
+
|
|
58
|
+
1. **平台选择约束**:如果用户未明确指定平台,必须优先调用 'present_framework_choice' 工具让用户选择。
|
|
59
|
+
|
|
60
|
+
2. **必须查看 API 文档确认字段名**:使用数据模型字段时必须访问文档中的 API 链接确认,禁止猜测。
|
|
61
|
+
|
|
62
|
+
3. **参数范围约束**:
|
|
63
|
+
- 美颜强度:0-9(Float),UI 控件通常为 0-100,需映射到 0-9 范围
|
|
64
|
+
- 音量参数:采集音量 0-150(Int)、耳返音量 0-100(Int)
|
|
65
|
+
|
|
66
|
+
4. **单例重置约束**:AudioEffectStore、DeviceStore、BaseBeautyStore 是单例,直播间结束时需调用 reset()。
|
|
67
|
+
|
|
68
|
+
5. **音效 API 约束(严禁猜测)**:
|
|
69
|
+
- AudioChangerType:NONE、CHILD、LITTLE_GIRL、MAN、COLD、ETHEREAL、FATSO、FOREIGNER、HEAVY_MACHINERY、HEAVY_METAL、STRONG_CURRENT、TRAPPED_BEAST
|
|
70
|
+
- AudioReverbType:NONE、KTV、SMALL_ROOM、AUDITORIUM、DEEP、LOUD、METALLIC、MAGNETIC
|
|
71
|
+
|
|
72
|
+
6. **🎯 礼物与弹幕联动逻辑(严格执行)**:
|
|
73
|
+
- **场景 A:goals=['gift'] (无弹幕)**
|
|
74
|
+
- 必须实现:礼物面板、发送逻辑、**全屏礼物动画**。
|
|
75
|
+
- **禁止实现**:弹幕区域的礼物文本消息(因为没有弹幕模块)。
|
|
76
|
+
- **场景 B:goals=['barrage', 'gift'] (有弹幕)**
|
|
77
|
+
- 必须实现:礼物面板、发送逻辑、**全屏礼物动画**。
|
|
78
|
+
- **必须实现**:在弹幕列表中插入“XXX 送出了 YYY”的**礼物文本消息**。
|
|
79
|
+
- **场景 C:用户现有项目已有弹幕,仅请求 goals=['gift']**
|
|
80
|
+
- Agent 需识别现有代码中的弹幕模块,并按照场景 B 执行(补全弹幕礼物消息)。
|
|
81
|
+
|
|
82
|
+
7. **UI 布局约束**:
|
|
83
|
+
- **全屏礼物**:必须覆盖在视频画面层级之上(FrameLayout 顶层)。
|
|
84
|
+
- **弹幕列表**:必须覆盖在视频画面层级之上,禁止上下分割布局。
|
|
85
|
+
- **键盘适配**:键盘弹起时视频画面必须固定(windowSoftInputMode="adjustNothing")。
|
|
86
|
+
- **双端一致性**:全屏礼物动画在主播端和观众端都必须显示(onReceiveGift 事件会广播给所有成员)。
|
|
87
|
+
|
|
88
|
+
8. **结果记录约束**:集成完成且项目启动成功后,必须调用 'record_result' 工具记录集成结果。
|
|
89
|
+
`;
|
|
90
|
+
const PARAMETER_DESCRIPTIONS = {
|
|
91
|
+
platform: `【必填参数】目标平台,支持:'android', 'ios', 'flutter', 'rn'。
|
|
92
|
+
- 如果用户未明确指定平台,必须先调用 'present_framework_choice' 工具让用户选择。`,
|
|
93
|
+
goals: `用户请求实现的扩展功能列表,支持:['base_beauty', 'audio_effect', 'barrage', 'gift']。
|
|
94
|
+
|
|
95
|
+
- 'base_beauty': 基础美颜(磨皮/美白/红润 0-9)
|
|
96
|
+
- 'audio_effect': 音效控制(人声音量/耳返/变声/混响)
|
|
97
|
+
- 'barrage': 弹幕互动(发送/接收/禁言)
|
|
98
|
+
- 'gift': 礼物赠送
|
|
99
|
+
* 若 goals 仅包含 'gift':仅集成礼物发送/接收 + 全屏礼物动画。
|
|
100
|
+
* 若 goals 包含 'gift' 和 'barrage':集成礼物发送/接收 + 全屏礼物动画 + 弹幕礼物文本消息。
|
|
101
|
+
|
|
102
|
+
💡 可组合使用,例如:['base_beauty', 'audio_effect', 'barrage', 'gift'] 实现完整直播扩展场景。`
|
|
103
|
+
};
|
|
104
|
+
export const GET_NATIVE_LIVE_EXTRA_FEATURES_DEFINITION = {
|
|
105
|
+
name: 'get_native_live_extra_features',
|
|
106
|
+
description: TOOL_DESCRIPTION,
|
|
107
|
+
parameter_descriptions: PARAMETER_DESCRIPTIONS,
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=get_native_live_extra_features_def.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_native_live_extra_features_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/get_native_live_extra_features_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFxB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,QAAQ,EAAE;0DAC8C;IAExD,KAAK,EAAE;;;;;;;;;6EASoE;CAC5E,CAAC;AAEF,MAAM,CAAC,MAAM,yCAAyC,GAAG;IACvD,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,gBAAgB;IAC7B,sBAAsB,EAAE,sBAAsB;CAC/C,CAAC"}
|