@tencentcloud/sdk-mcp 1.3.7 → 1.3.9

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.
Files changed (77) hide show
  1. package/package.json +2 -1
  2. package/resource/doc/chatuikit/android/integration.md +466 -484
  3. package/resource/doc/chatuikit/android/workflow.md +713 -0
  4. package/resource/doc/livekit/live/flutter/live-integration.md +208 -167
  5. package/resource/doc/livekit/voice/android/voice-audience-list.md +335 -0
  6. package/resource/doc/livekit/voice/android/voice-audio-effect.md +384 -0
  7. package/resource/doc/livekit/voice/android/voice-barrage.md +569 -0
  8. package/resource/doc/livekit/voice/android/voice-co-guest-interaction.md +748 -0
  9. package/resource/doc/livekit/voice/android/voice-gift.md +833 -0
  10. package/resource/doc/livekit/voice/android/voice-host-interaction.md +728 -0
  11. package/resource/doc/livekit/voice/android/voice-integration.md +886 -0
  12. package/resource/doc/livekit/voice/android/voice-room-list.md +493 -0
  13. package/resource/doc/livekit/voice/android/workflow.md +333 -0
  14. package/resource/doc/livekit/voice/flutter/voice-audience-list.md +337 -0
  15. package/resource/doc/livekit/voice/flutter/voice-audio-effect.md +739 -0
  16. package/resource/doc/livekit/voice/flutter/voice-barrage.md +578 -0
  17. package/resource/doc/livekit/voice/flutter/voice-co-guest-interaction.md +673 -0
  18. package/resource/doc/livekit/voice/flutter/voice-gift.md +812 -0
  19. package/resource/doc/livekit/voice/flutter/voice-integration.md +925 -0
  20. package/resource/doc/livekit/voice/flutter/voice-room-list.md +842 -0
  21. package/resource/doc/livekit/voice/flutter/workflow.md +359 -0
  22. package/resource/doc/livekit/voice/ios/voice-audience-list.md +335 -0
  23. package/resource/doc/livekit/voice/ios/voice-audio-effect.md +373 -0
  24. package/resource/doc/livekit/voice/ios/voice-barrage.md +529 -0
  25. package/resource/doc/livekit/voice/ios/voice-co-guest-interaction.md +701 -0
  26. package/resource/doc/livekit/voice/ios/voice-gift.md +785 -0
  27. package/resource/doc/livekit/voice/ios/voice-host-interaction.md +820 -0
  28. package/resource/doc/livekit/voice/ios/voice-integration.md +853 -0
  29. package/resource/doc/livekit/voice/ios/voice-room-list.md +467 -0
  30. package/resource/doc/livekit/voice/ios/workflow.md +358 -0
  31. package/resource/doc/livekit/voice/uni-app/voice-audience-list.md +264 -0
  32. package/resource/doc/livekit/voice/uni-app/voice-audio-effect.md +332 -0
  33. package/resource/doc/livekit/voice/uni-app/voice-barrage.md +482 -0
  34. package/resource/doc/livekit/voice/uni-app/voice-co-guest-interaction.md +944 -0
  35. package/resource/doc/livekit/voice/uni-app/voice-gift.md +716 -0
  36. package/resource/doc/livekit/voice/uni-app/voice-integration.md +613 -0
  37. package/resource/doc/livekit/voice/uni-app/voice-room-list.md +562 -0
  38. package/resource/doc/livekit/voice/uni-app/workflow.md +369 -0
  39. package/resource/doc/roomkit/vue/integration.md +119 -224
  40. package/resource/doc/roomkit/vue/workflow.md +472 -226
  41. package/resource/doc/tuicallkit/android/integration.md +675 -90
  42. package/resource/doc/tuicallkit/android/workflow.md +432 -0
  43. package/tools/common/present-scenario-choice.js +16 -0
  44. package/tools/common/present-scenario-choice.js.map +1 -0
  45. package/tools/common/record-prompt.js +31 -0
  46. package/tools/common/record-prompt.js.map +1 -1
  47. package/tools/common/record-result.js +32 -0
  48. package/tools/common/record-result.js.map +1 -1
  49. package/tools/definitions/get_native_call_uikit_integration_def.js +18 -2
  50. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
  51. package/tools/definitions/get_native_chat_uikit_integration_def.js +29 -7
  52. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  53. package/tools/definitions/get_native_live_uikit_integration_def.js +65 -40
  54. package/tools/definitions/get_native_live_uikit_integration_def.js.map +1 -1
  55. package/tools/definitions/get_native_live_uikit_interaction_def.js +42 -94
  56. package/tools/definitions/get_native_live_uikit_interaction_def.js.map +1 -1
  57. package/tools/definitions/get_web_room_feature_detail_def.js +29 -32
  58. package/tools/definitions/get_web_room_feature_detail_def.js.map +1 -1
  59. package/tools/definitions/get_web_room_uikit_integration_def.js +25 -9
  60. package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
  61. package/tools/definitions/present_scenario_choice_def.js +53 -0
  62. package/tools/definitions/present_scenario_choice_def.js.map +1 -0
  63. package/tools/definitions/record_prompt_def.js +6 -1
  64. package/tools/definitions/record_prompt_def.js.map +1 -1
  65. package/tools/definitions/record_result_def.js +34 -10
  66. package/tools/definitions/record_result_def.js.map +1 -1
  67. package/tools/index.js +2 -0
  68. package/tools/index.js.map +1 -1
  69. package/tools/live/get-native-live-uikit-integration.js +110 -34
  70. package/tools/live/get-native-live-uikit-integration.js.map +1 -1
  71. package/tools/live/get_native_live_uikit_interaction.js +128 -35
  72. package/tools/live/get_native_live_uikit_interaction.js.map +1 -1
  73. package/utils/get-device-identifier.js +58 -0
  74. package/utils/get-device-identifier.js.map +1 -0
  75. package/utils/report-cls-client.js +4 -2
  76. package/utils/report-cls-client.js.map +1 -1
  77. package/utils/report-es-client.js +1 -1
@@ -0,0 +1,713 @@
1
+ # Android TUIKit Compose 聊天应用代码生成工作流指令
2
+
3
+ ## 📋 指令目的
4
+
5
+ 为 Agent 提供实现 Android TUIKit Compose Chat **核心功能的代码生成蓝图**,并指导 Agent **优先使用工具实时获取的最新文档内容**,专门针对 Android 即时通信聊天应用场景。
6
+
7
+
8
+ ---
9
+
10
+ ## 🛑 Agent 执行硬性限制 (Guardrails)
11
+
12
+ Agent 在生成代码时必须严格遵守以下指令:
13
+
14
+ ### 0. 🔴 环境检查与配置替换 (集成前的第一步 - 最高优先级)
15
+ **⚠️ 严格按照文档提供的配置代码进行替换**
16
+
17
+ **核心原则**: 必须使用文档提供的精确配置代码替换用户项目的配置文件,确保配置的统一性和兼容性
18
+
19
+ **🚨 强制性环境要求**:
20
+ - ✅ **Android Studio**: Ladybug | 2024.2.1 及以上版本
21
+ - ✅ **Android 系统**: Android 5.0 (API 21) 及以上版本
22
+ - ✅ **Gradle**: 8.9 及以上版本
23
+ - ✅ **Android Gradle Plugin**: 8.6 及以上版本
24
+ - ✅ **JDK**: 17 及以上版本
25
+ - ✅ **Kotlin**: 1.9.0 及以上版本
26
+
27
+ ### 1. 🔴 配置文件替换原则 (最高优先级)
28
+
29
+ **核心要求**: 项目中的所有配置必须严格按照文档提供的代码进行替换,编译时如果出现配置冲突或依赖缺失问题时,直接把错误信息提供给 AI 进行解决。
30
+
31
+ **✅ 强制执行要求**:
32
+ 1. **必须使用文档提供的精确配置代码**:
33
+ - 所有配置代码必须来源于集成文档中明确提供的代码块
34
+ - **gradle/libs.versions.toml 配置必须通过 MCP 工具从集成文档实时读取**
35
+ - 每个配置项必须与集成文档中的示例完全一致
36
+ - 禁止修改、简化或优化集成文档提供的配置代码
37
+
38
+ 2. **必须进行完整的配置替换**:
39
+ - 用户项目的配置文件必须被文档提供的配置完全替换
40
+ - 不得保留用户项目原有的冲突配置
41
+ - 确保配置的统一性和兼容性
42
+
43
+ 3. **配置文件替换清单**:
44
+ - `app/build.gradle.kts`: 必须按照文档提供的完整配置替换
45
+ - `AndroidManifest.xml`: 必须按照文档提供的配置替换
46
+ - `proguard-rules.pro`: 必须按照文档提供的配置替换
47
+ - `gradle/libs.versions.toml`: **必须从集成文档中读取完整配置**
48
+ - `settings.gradle.kts`: 必须按照文档提供的配置替换
49
+
50
+ **🔍 执行验证机制**:
51
+ 在生成每个配置文件前,Agent 必须自问:
52
+ - [ ] 我是否调用了 MCP 工具获取最新文档?
53
+ - [ ] 我是否完整复制了文档中的配置代码?
54
+ - [ ] 我是否避免了使用记忆中的配置?
55
+ - [ ] 我是否确保配置与文档示例完全一致?
56
+
57
+ **📋 配置替换检查清单**:
58
+ - [ ] 是否严格按照文档提供的代码进行配置?
59
+ - [ ] 是否避免了从 atomicx 同步任何配置文件?
60
+ - [ ] 所有配置项是否与文档示例完全一致?
61
+ - [ ] 是否进行了完整的配置替换而非部分修改?
62
+ - [ ] 配置文件是否保持了统一性和兼容性?
63
+
64
+ ### 2. 🚨 核心页面代码来源(最高优先级)
65
+ **这是最容易违反的约束,必须放在首位强调!**
66
+
67
+ **绝对禁止行为**:
68
+ - ❌ **严禁自己编写任何核心页面代码**(ConversationsPage、ChatPage、ContactsPage)
69
+ - ❌ **严禁简化实现**,例如只写几十行代码的"简化版"页面
70
+ - ❌ **严禁跳过页面代码生成**,直接让用户"参考官方示例"
71
+
72
+ **强制执行要求**:
73
+ - ✅ **必须直接使用以下官方页面文件**:
74
+ - `TUIKit_Android_Compose/chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ConversationsPage.kt`
75
+ - `TUIKit_Android_Compose/chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ChatActivity.kt`
76
+ - `TUIKit_Android_Compose/chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ContactsPage.kt`
77
+ - ✅ **必须从官方 `TUIKit_Android_Compose/chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/` 目录完整复制上述文件**
78
+ - ✅ **必须包含完整的 Activity/Composable、UI 组件树、业务逻辑**
79
+ - ✅ **必须复制所有依赖的组件和工具类**,保持文件结构完整
80
+
81
+ **验证标准**:生成的核心页面代码应与官方源码一致,功能完整
82
+
83
+ ### 3. 文档驱动集成
84
+ - 必须严格按照工具返回结果中的 `llm_code_generation_instructions_md` 步骤执行
85
+ - **必须严格按照集成文档中的示例代码生成代码**,不得擅自修改代码结构和实现方式
86
+ - 代码生成时应完全遵循集成文档提供的最佳实践和示例,确保代码的正确性和可运行性
87
+
88
+ ### 4. 源码接入方式
89
+ - TUIKit Android Compose 采用 **源码接入方式**,需要从 GitHub 克隆并拷贝核心源码文件
90
+ - **必须将源码克隆到用户项目的同级目录下**(即 `../TUIKit_Android_Compose/`)
91
+ - 必须按照集成文档指引,将指定的源码文件夹(`atomicx`、`chat/uikit`)拷贝到用户项目中
92
+ - 拷贝时必须确保与用户项目已有的文件夹进行合并,避免直接覆盖
93
+
94
+ ### 5. 静默执行集成
95
+ - 所有代码编写完成后,在最后一步提示用户执行 Gradle Sync 并启动项目
96
+ - **Android 项目配置规范**:
97
+ 1. **第一优先级**:提示用户在 Android Studio 中点击 "File > Sync Project with Gradle Files"
98
+ 2. **第二优先级**:等待 Gradle 同步完成,如果出现错误立即分析并修复
99
+ 3. **第三优先级**:引导用户点击 Run 按钮启动项目
100
+ 4. **最终降级**:如果同步失败,提供详细的错误排查指引
101
+
102
+ #### 📋 手动执行 Gradle 同步指引
103
+
104
+ **当自动 Gradle 同步失败时,请引导用户按以下步骤操作**:
105
+
106
+ **步骤 1: 在 Android Studio 中手动同步**
107
+ - 点击菜单栏 **File** → **Sync Project with Gradle Files**
108
+ - 或点击工具栏的 **Sync** 图标(双箭头循环图标)
109
+
110
+ **步骤 2: 检查同步状态**
111
+ - 查看底部的 **Build** 窗口,等待同步完成
112
+ - 如果出现红色错误信息,记录完整错误日志
113
+
114
+ **步骤 3: 常见错误处理**
115
+ ```bash
116
+ # 清理项目缓存
117
+ ./gradlew clean
118
+
119
+ # 重新下载依赖
120
+ ./gradlew --refresh-dependencies
121
+ ```
122
+
123
+ **💡 常见问题排查**
124
+
125
+ | 错误现象 | 可能原因 | 解决方案 |
126
+ |---------|---------|---------|
127
+ | `Project 'atomicx' not found` | settings.gradle.kts 配置错误 | 检查同级目录引用路径 |
128
+ | `Unresolved reference: Material3` | 依赖配置缺失 | 检查 libs.versions.toml 配置 |
129
+ | `Duplicate class found` | 依赖版本冲突 | 统一依赖版本号 |
130
+ | `AGP version requires Java 17` | JDK 版本过低 | 升级到 JDK 17+ |
131
+
132
+ **⚠️ 提示用户**:
133
+ 1. 确保 Android Studio 版本 >= Ladybug | 2024.2.1
134
+ 2. 确保 JDK 版本 >= 17
135
+ 3. 确保网络可访问 `maven.google.com` 和 `mavenCentral()`
136
+ 4. 如果在中国大陆,建议配置镜像:
137
+ ```kotlin
138
+ // 在 settings.gradle.kts 中添加
139
+ dependencyResolutionManagement {
140
+ repositories {
141
+ maven { url = uri("https://maven.aliyun.com/repository/google") }
142
+ maven { url = uri("https://maven.aliyun.com/repository/central") }
143
+ google()
144
+ mavenCentral()
145
+ }
146
+ }
147
+ ```
148
+
149
+ ### 6. 鉴权凭据配置(重要)
150
+ - **必须调用 `get_usersig` 工具获取测试用的 SDKAppID、UserID、UserSig**
151
+ - UserID 格式:`userXXX`(XXX 为数字),例如 `user123`
152
+ - 测试阶段可在代码中硬编码鉴权信息,但必须在注释中明确标注仅用于测试
153
+ - **禁止创建 `.env` 文件**用于生产环境配置
154
+ - **⚠️ 安全警告**:必须告知用户,客户端生成 UserSig 仅适合本地测试,正式生产环境必须在服务端生成 UserSig
155
+
156
+ ### 7. LoginPage 实现约束 🔴
157
+ - **必须参考 `TUIKit_Android_Compose/chat/demo/app/src/main/java/io/trtc/tuikit/chat/login/LoginPage.kt` 实现登录页面**
158
+ - **SDKAppID、UserID、UserSig 必须直接使用 `get_usersig` 工具返回的信息**
159
+ - **禁止在 UI 中添加 UserID 输入框**,不允许用户主动输入 UserID
160
+ - **禁止在 UI 中添加 SDKAppID 和 UserSig 输入框**
161
+ - **登录接口必须调用 `LoginStore.shared.login`**,传入从 `get_usersig` 获取的完整凭证
162
+ - 登录成功后自动跳转到主页面(ConversationsPage 或 ChatActivity)
163
+
164
+ ### 8. chat-only 模式功能限制(⚠️ 默认约束 + 用户主动要求时的例外)
165
+
166
+ **默认行为**:
167
+ 当用户选择 chat-only 模式时,Agent **默认排除**以下扩展功能:
168
+ - **默认不集成 ConversationsPage**(会话列表页面)
169
+ - **默认不集成 ContactsPage**(联系人页面)
170
+ - **默认仅保留核心聊天页面**:`ChatActivity`
171
+
172
+ **例外处理**:
173
+ 如果用户**明确要求**添加某些扩展功能(如"需要 ConversationsPage"、"要集成联系人"等),Agent **应该允许并执行**:
174
+ - ✅ 在核心聊天页面基础上,额外集成用户明确要求的功能
175
+ - ✅ 只添加用户明确要求的功能,不擅自扩展其他功能
176
+ - ✅ 按照集成文档的规范正确集成所需页面
177
+
178
+ **判断标准**:
179
+ - 用户需求中包含明确的功能关键词(如"ConversationsPage"、"联系人"、"搜索"、"会话列表"等)
180
+ - 用户明确说明需要某个扩展功能
181
+
182
+ ### 9. Import 路径约束 🔴
183
+ - **正确的包路径必须严格按照官方示例代码中的使用方式**
184
+ - **禁止推测任何包路径**:
185
+ - ❌ `io.trtc.tuikit.core.xxx`(推测的错误路径)
186
+ - ❌ 任何通配符 import
187
+ - **禁止自己推测包名**,必须严格按照集成文档中的示例代码使用
188
+ - 所有 import 语句必须使用正确的包名路径
189
+
190
+ ### 10. Android 项目规范
191
+ - 使用 Android Studio >= Ladybug | 2024.2.1、JDK >= 17、Kotlin >= 1.9.0 版本
192
+ - 遵循 Android 官方代码风格和最佳实践
193
+ - 按照集成文档配置 Android 平台的权限和依赖
194
+ - **必须配置 Compose 和主题系统**(强制要求):
195
+
196
+ **完整的 Activity 结构示例**:
197
+ ```kotlin
198
+ import android.os.Bundle
199
+ import androidx.activity.ComponentActivity
200
+ import androidx.activity.compose.setContent
201
+ import androidx.compose.foundation.layout.fillMaxSize
202
+ import androidx.compose.material3.MaterialTheme
203
+ import androidx.compose.material3.Surface
204
+ import androidx.compose.ui.Modifier
205
+ import io.trtc.tuikit.atomicx.theme.LocalTheme
206
+
207
+ class MainActivity : ComponentActivity() {
208
+ override fun onCreate(savedInstanceState: Bundle?) {
209
+ super.onCreate(savedInstanceState)
210
+ setContent {
211
+ MaterialTheme {
212
+ Surface(
213
+ modifier = Modifier.fillMaxSize(),
214
+ color = LocalTheme.current.colors.background
215
+ ) {
216
+ // 你的主页面内容
217
+ HomePage()
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ ```
224
+
225
+ **⚠️ 关键要点**:
226
+ 1. **必须使用 `LocalTheme.current.colors` 获取主题颜色**
227
+ 2. **直接在 `setContent` 中使用 Compose 内容**
228
+ 3. **可选使用 `MaterialTheme` 和 `Surface` 提供背景色**
229
+ 4. **参考官方 demo 示例中的实现**
230
+
231
+ **📋 官方 MainActivity 参考实现**:
232
+ - **必须参考官方示例**:`TUIKit_Android_Compose/chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt`
233
+ - **页面回调实现**:参考官方示例中的页面跳转和回调处理逻辑
234
+ - **底部导航结构**:遵循官方 demo 中的导航栏设计模式
235
+ - **事件处理机制**:复制官方示例中的点击事件和页面切换逻辑
236
+
237
+ ### 11. 环境依赖准备
238
+ - 确保用户已安装 Android Studio、JDK 17+
239
+ - **Gradle 同步遵循第 3 节的多级降级策略**
240
+ - **如果自动同步失败,必须生成降级指引供用户手动执行**
241
+
242
+ ---
243
+
244
+ ## 🛠️ 集成模式分发 (Goals)
245
+
246
+ 根据用户的需求,Agent 必须选择对应的执行路径:
247
+
248
+ ### 1. 全量功能集成 (full-featured)
249
+
250
+ **目标**: 实现类似微信的完整 IM 应用
251
+
252
+ **核心页面**:
253
+ - `ConversationsPage` (会话列表)
254
+ - `ChatActivity` (聊天页面)
255
+ - `ContactsPage` (联系人)
256
+
257
+ **执行参考**:
258
+ - 参考工具返回结果中实时获取的 `integration.md` 指令
259
+
260
+ **适用场景**:
261
+ - 构建独立的聊天应用
262
+ - 需要完整的会话管理、通讯录、群组管理功能
263
+ - 作为移动应用的核心功能模块
264
+
265
+ **MainActivity 和底部导航实现要求**(🔴 强制要求):
266
+
267
+ 如果项目中没有底部导航,**必须创建 MainActivity 作为主页面**,包含以下要求:
268
+
269
+ 1. **必须实现底部导航栏**:
270
+ - 默认包含两个 Tab:**消息**(ConversationsPage)和 **联系人**(ContactsPage)
271
+ - 使用 Compose Navigation 或 Scaffold 的 bottomBar
272
+
273
+ 2. **Tab 点击必须能跳转到真实页面**:
274
+ - 点击"消息" Tab → 显示 `ConversationsPage`(会话列表)
275
+ - 点击"联系人" Tab → 显示 `ContactsPage`(联系人列表)
276
+ - 使用 Compose Navigation 或状态管理实现页面切换
277
+
278
+ 3. **MainActivity 实现要求**:
279
+ - **直接参考官方源码**:`TUIKit_Android_Compose/chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt`
280
+ - **完整复制官方实现逻辑**:包括页面结构、回调处理、导航逻辑等
281
+ - **保持与官方示例一致**:确保功能完整性和最佳实践
282
+
283
+ **🔴 官方 MainActivity 参考要求**:
284
+ - **强制参考**:`TUIKit_Android_Compose/chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt`
285
+ - **页面回调必须完整实现**:
286
+ - `ConversationsPage` 的 `onConversationClick` 回调 → 跳转到 `ChatActivity`
287
+ - `ContactsPage` 的 `onGroupClick` 和 `onContactClick` 回调 → 跳转到 `ChatSettingActivity`
288
+ - **回调参数传递**:严格按照官方示例传递 `conversationID`、`contactID` 等参数
289
+ - **Intent 启动方式**:使用官方示例中的 `Intent` 和 `putExtra` 方式
290
+
291
+ 4. **登录成功后跳转到 MainActivity**:
292
+ ```kotlin
293
+ // LoginPage.kt
294
+ LoginStore.shared.login(...) { success ->
295
+ if (success) {
296
+ val intent = Intent(context, MainActivity::class.java)
297
+ context.startActivity(intent)
298
+ (context as Activity).finish() // 关闭登录页
299
+ }
300
+ }
301
+ ```
302
+
303
+ 5. **禁止行为**:
304
+ - ❌ 登录后直接跳转到单个页面(如 ConversationsPage)而没有底部导航
305
+ - ❌ 创建空的 MainActivity 但没有实际的页面切换逻辑
306
+ - ❌ 底部导航只有一个 Tab(必须至少有"消息"和"联系人")
307
+
308
+ ---
309
+
310
+ ### 2. 仅集成聊天页面 (chat-only)
311
+
312
+ **目标**: 适用于客服、问诊、详情页私聊等纯对话场景
313
+
314
+ **核心页面**:
315
+ - `ChatActivity` (聊天页面)
316
+
317
+ **执行参考**:
318
+ - 参考工具返回结果中实时获取的 `integration.md` 指令
319
+
320
+ **适用场景**:
321
+ - 客服咨询场景(用户点击咨询按钮进入聊天页面)
322
+ - 医疗在线问诊(患者与医生一对一沟通)
323
+ - 订单详情页私聊(买家与卖家沟通)
324
+ - 社交应用中的私信功能
325
+
326
+ **💡 登录成功后的页面跳转(chat-only 模式指引)**:
327
+
328
+ **默认行为**:如果用户没有特别说明,登录成功后直接跳转到 `ChatActivity`,打开与 `administrator` 的单聊会话。
329
+
330
+ **灵活调整**:如果用户有其他诉求(如特定时机打开聊天页、指定其他会话对象),需按用户引导确认跳转时机和目标会话。
331
+
332
+ **默认实现示例**:
333
+
334
+ ```kotlin
335
+ // ✅ 登录成功,直接进入聊天页面
336
+ val intent = Intent(context, ChatActivity::class.java).apply {
337
+ putExtra("conversationID", "c2c_administrator") // 默认与 administrator 单聊
338
+ }
339
+ context.startActivity(intent)
340
+ (context as Activity).finish() // 关闭登录页
341
+ ```
342
+
343
+ **⚠️ 关键要点**:
344
+ 1. **使用 `Intent` 传递 conversationID**(避免硬编码)
345
+ 2. **conversationID 格式**:单聊 `'c2c_<userID>'`,群聊 `'group_<groupID>'`
346
+ 3. **默认会话 ID**:`'c2c_administrator'`(可根据用户需求调整为其他 userID 或 groupID)
347
+ 4. **跳转时机**:默认在登录成功回调中立即跳转,如用户有特殊需求(如点击按钮后跳转),需按用户指引调整
348
+
349
+ **🔴 默认排除功能(Agent 必须遵守)**:
350
+
351
+ Agent 在生成 chat-only 模式代码时,**默认排除**以下功能和页面:
352
+
353
+ 1. **默认不集成 ConversationsPage(会话列表)**
354
+ - 默认不生成会话列表页面
355
+ - 默认不引入会话切换功能
356
+ - 聊天页面默认应该是独立的、直达的纯聊天界面
357
+
358
+ 2. **默认不集成 ContactsPage(联系人)**
359
+ - 默认不生成通讯录页面
360
+ - 默认不引入联系人管理功能
361
+
362
+ 3. **默认不集成底部导航栏(TabBar)**
363
+ - chat-only 模式下,用户通过外部路由/参数指定会话 ID
364
+ - 默认不需要页面切换功能
365
+
366
+ ---
367
+
368
+ **⚠️ 用户主动要求时的例外处理**:
369
+
370
+ 如果用户在 chat-only 模式下**明确要求**添加某些扩展功能,Agent **应该允许并执行**:
371
+
372
+ **触发条件**(满足任一即可):
373
+ - 用户明确说明:"需要 ConversationsPage"、"要集成会话列表"、"添加会话切换功能"
374
+ - 用户明确说明:"需要 ContactsPage"、"要添加联系人"、"集成通讯录"
375
+ - 用户明确提出其他扩展功能需求
376
+
377
+ **Agent 执行流程**:
378
+ 1. ✅ **确认用户需求**:识别到用户主动要求添加扩展功能
379
+ 2. ✅ **允许集成**:在 chat-only 模式基础上,额外集成用户要求的页面
380
+ 3. ✅ **保持克制**:只添加用户明确要求的功能,不擅自扩展其他功能
381
+ 4. ✅ **遵循文档**:按照集成文档的规范正确集成所需页面
382
+
383
+ ---
384
+
385
+ ## 📦 核心版本要求
386
+
387
+ | 工具/平台 | 最低版本要求 |
388
+ |----------|-------------|
389
+ | **Android Studio** | Ladybug \| 2024.2.1 及以上 |
390
+ | **Android 系统** | >= 5.0 (API 21) |
391
+ | **Gradle** | >= 8.9 |
392
+ | **Android Gradle Plugin** | >= 8.6 |
393
+ | **JDK** | >= 17 |
394
+ | **Kotlin** | >= 1.9.0 |
395
+
396
+ ---
397
+
398
+ ## 📦 安装命令示例
399
+ Agent 执行完成代码生成后,必须引导用户按顺序执行以下步骤:
400
+
401
+ **⚠️ 重要:Android 项目配置规范**
402
+ - Android 项目配置完成后,**必须执行 Gradle Sync**
403
+ - 不需要手动执行命令行操作
404
+ - IDE 会自动下载依赖并构建项目
405
+
406
+ ### 🔴 步骤 1: 环境检查与配置文件替换(集成前必须执行 - 最高优先级)
407
+
408
+ **⚠️ 在执行任何集成操作前,Agent 必须首先执行环境检查和配置文件替换**:
409
+
410
+ #### 1.1 强制性环境检查
411
+ **Agent 必须首先验证以下环境要求**:
412
+ - ✅ **Android Studio**: Ladybug | 2024.2.1 及以上版本
413
+ - ✅ **Android 系统**: Android 5.0 (API 21) 及以上版本
414
+ - ✅ **Gradle**: 8.9 及以上版本
415
+ - ✅ **Android Gradle Plugin**: 8.6 及以上版本
416
+ - ✅ **JDK**: 17 及以上版本
417
+ - ✅ **Kotlin**: 1.9.0 及以上版本
418
+
419
+ **如果环境不满足要求,Agent 必须**:
420
+ 1. 明确告知用户当前环境的不足
421
+ 2. 提供详细的环境升级指导
422
+ 3. 暂停集成操作直到环境满足要求
423
+
424
+ #### 1.2 配置文件完整替换(强制执行)
425
+ **Agent 必须按照以下顺序执行配置文件替换**:
426
+
427
+ 1. **调用 MCP 工具获取最新集成文档**
428
+ 2. **完整替换以下配置文件**:
429
+ - `gradle/libs.versions.toml` - **必须从集成文档实时读取**
430
+ - `app/build.gradle.kts` - 使用文档提供的完整配置
431
+ - `AndroidManifest.xml` - 使用文档提供的配置
432
+ - `proguard-rules.pro` - 使用文档提供的配置
433
+ - `settings.gradle.kts` - 使用文档提供的配置
434
+
435
+ 3. **执行验证检查**:
436
+ - [ ] 是否调用了 MCP 工具获取最新文档?
437
+ - [ ] 是否完整复制了文档中的配置代码?
438
+ - [ ] 是否避免了使用记忆中的配置?
439
+ - [ ] 是否确保配置与文档示例完全一致?
440
+
441
+ **⚠️ 只有完成环境检查和配置文件替换后,才能继续执行后续步骤**
442
+
443
+ ### 🔴 步骤 2: 依赖完整性检查(第二优先级)
444
+
445
+ **在完成环境检查和配置文件替换后,Agent 必须执行以下检查**:
446
+
447
+ 1. **自动扫描生成的代码中的所有 import 语句**:
448
+ - 使用 `search_content` 工具搜索所有生成的 `.kt` 文件
449
+ - 提取所有 `import` 语句中的包名
450
+
451
+ 2. **验证依赖配置完整性**:
452
+ - 检查 `build.gradle.kts` 或 `build.gradle` 中的 `dependencies` 块
453
+ - 验证所有代码中使用的库是否都已在依赖中声明
454
+
455
+ 3. **必须检查的关键依赖**:
456
+ - **从集成文档中读取完整的依赖配置**
457
+ - **严格按照 gradle/libs.versions.toml 中的版本配置**
458
+ - **确保所有依赖与集成文档完全一致**
459
+
460
+ 4. **发现缺失依赖时的处理**:
461
+ - **参考集成文档中的完整配置**
462
+ - **按照集成文档补充缺失的依赖到 gradle/libs.versions.toml**
463
+ - **向用户说明**添加了哪些依赖以及原因
464
+ - **不要等待用户确认**,直接修复
465
+
466
+ **示例检查流程**:
467
+ - Agent 扫描生成代码中的所有 import 语句
468
+ - 对比集成文档中的依赖配置
469
+ - 确保项目配置与集成文档完全一致
470
+
471
+ ### 🔴 步骤 3: Gradle 同步与编译验证
472
+
473
+ **Agent 配置文件替换完成后,必须引导用户执行 Gradle 同步**:
474
+
475
+ **推荐执行方式**:
476
+ - Agent 必须明确告知用户在 Android Studio 中点击 "File > Sync Project with Gradle Files"
477
+ - 等待 Gradle 同步完成
478
+ - 如果出现编译错误,立即告知 Agent 错误信息
479
+ - Agent 会根据错误信息补充缺失的依赖或修复代码
480
+
481
+ **常见编译错误及处理**:
482
+ | 错误类型 | 错误信息示例 | Agent 处理方式 |
483
+ |---------|------------|--------------|
484
+ | 缺失依赖 | `Unresolved reference: Material3` | 检查 libs.versions.toml 配置 |
485
+ | 缺失模块 | `Project 'atomicx' not found` | 检查 `settings.gradle.kts` 配置 |
486
+ | 版本冲突 | `Duplicate class found` | 检查依赖版本并统一 |
487
+ | Import 错误 | `Unresolved reference: LoginStore` | 检查 import 路径,参考官方示例 |
488
+
489
+ **降级策略**:
490
+ - 如果 IDE 同步失败,提示用户检查网络连接
491
+ - 如果依赖下载失败,建议配置国内镜像
492
+ - 如果构建错误,**立即读取错误日志**,分析缺失的依赖或 import 问题
493
+ - **不要让用户自己修复**,Agent 应主动分析并修复
494
+
495
+ ---
496
+
497
+ ## 📱 真机调试引导
498
+
499
+ ### Android 真机调试步骤
500
+
501
+ #### 1. 硬件准备
502
+ - 使用 USB 数据线连接 Android 设备到电脑
503
+ - 确保设备已开启开发者选项和 USB 调试模式
504
+
505
+ #### 2. 开启开发者选项
506
+ 在 Android 设备上:
507
+ - 进入 **设置** → **关于手机**
508
+ - 连续点击 **版本号** 7 次,直到显示"您现在是开发者"
509
+ - 返回设置主页,进入 **开发者选项**
510
+ - 开启 **USB 调试**
511
+
512
+ #### 3. 查看已连接设备
513
+ ```bash
514
+ # 方式 1: 使用 adb 命令
515
+ adb devices
516
+
517
+ # 输出示例:
518
+ # List of devices attached
519
+ # XXXXXXXX device
520
+
521
+ # 方式 2: 在 Android Studio 中查看
522
+ # 工具栏 → Device Manager → Physical
523
+ ```
524
+
525
+ #### 4. 在 Android Studio 中运行
526
+ - 点击工具栏的 **Run** 按钮(绿色三角形)
527
+ - 在设备选择对话框中选择已连接的 Android 设备
528
+ - 等待应用安装并启动
529
+
530
+ ---
531
+
532
+ ## 🚀 多设备同时调试
533
+
534
+ ### 同时连接多个设备
535
+ ```bash
536
+ # 查看所有设备
537
+ adb devices
538
+
539
+ # 指定某个设备运行(在 Android Studio 中选择对应设备)
540
+ # 示例:同时运行在不同的 Android 设备上
541
+ ```
542
+
543
+ ---
544
+
545
+ ## 📊 调试建议
546
+
547
+ ### 日志查看
548
+ ```bash
549
+ # Android 日志
550
+ adb logcat | grep "TUIKit"
551
+
552
+ # 启动性能分析
553
+ # 在 Android Studio 中使用 Profiler 工具
554
+ ```
555
+
556
+ ### 常见问题排查
557
+ - **设备未识别**:检查 USB 驱动和调试模式
558
+ - **应用安装失败**:检查设备存储空间和权限
559
+ - **网络连接问题**:确保设备网络正常
560
+
561
+ ---
562
+
563
+ ## 🔄 完整自动化流程
564
+
565
+ ```mermaid
566
+ graph TD
567
+ A[接收用户需求] --> B[检查 Android 环境配置]
568
+ B --> C[进入项目父目录并克隆 TUIKit_Android_Compose]
569
+ C --> D[按照集成文档配置 settings.gradle.kts]
570
+ D --> E[按照集成文档配置 app/build.gradle.kts]
571
+ E --> F[按照集成文档配置 AndroidManifest.xml]
572
+ F --> G[按照集成文档配置 libs.versions.toml]
573
+ G --> H[调用 get_usersig 工具获取鉴权信息]
574
+ H --> I[按照集成文档实现登录逻辑]
575
+ I --> J[按照集成文档实现核心页面]
576
+ J --> K[调用 record_result 记录集成结果]
577
+ K --> L[引导用户执行 Gradle Sync]
578
+ L --> M{Sync 成功?}
579
+ M -->|是| N[引导用户连接真机调试]
580
+ M -->|否| O[提供错误排查指引]
581
+ N --> P[引导用户点击 Run 启动项目]
582
+ O --> P
583
+ P --> Q[项目启动成功]
584
+ ```
585
+
586
+ ---
587
+
588
+ ## 📝 关键要点总结
589
+
590
+ | 类别 | 要求 |
591
+ |------|------|
592
+ | **框架版本** | Android Studio >= Ladybug \| 2024.2.1、JDK >= 17、Kotlin >= 1.9.0 |
593
+ | **接入方式** | 源码接入(从 GitHub 克隆并通过本地路径引用) |
594
+ | **文档优先** | ⚠️ 严格遵循集成文档中的示例代码,不得擅自修改 |
595
+ | **核心页面来源** | 🚨 **严禁自己编写核心页面代码**,必须从官方 demo 目录完整复制页面文件 |
596
+ | **页面完整性验证** | ⚠️ 核心页面代码必须包含完整的 Activity/Composable、UI 组件树、业务逻辑 |
597
+ | **静默集成** | 代码编写完成后引导用户执行 Gradle Sync 并启动项目 |
598
+ | **凭证获取** | ⚠️ 必须使用 `get_usersig` 工具获取测试鉴权信息 |
599
+ | **安全提示** | ⚠️ 必须告知用户:客户端生成 UserSig 仅适合测试,生产环境必须在服务端生成 |
600
+ | **结果记录** | ⚠️ 集成完成后必须调用 `record_result` 工具记录结果 |
601
+ | **集成模式** | 支持 full-featured(全量)和 chat-only(仅聊天)两种模式 |
602
+ | **chat-only 限制** | ⚠️ 默认排除 ConversationsPage、ContactsPage;用户主动要求时允许集成 |
603
+ | **Import 约束** | ⚠️ 必须严格按照官方示例代码的包路径,禁止推测任何路径 |
604
+
605
+ ---
606
+
607
+ ## 🎯 Agent 执行检查清单
608
+
609
+ 在完成代码生成后,Agent 必须确认以下所有项目:
610
+
611
+ ### MCP 工具调用验证
612
+ - [ ] ✅ **已调用 `get_native_chat_uikit_integration` 获取最新集成文档**
613
+ - [ ] ✅ **已从集成文档中提取所有配置代码**
614
+ - [ ] ✅ **已调用 `get_usersig` 获取测试鉴权信息**
615
+ - [ ] ❌ **严禁使用记忆中的任何配置代码**
616
+
617
+ ### 配置文件完整性验证
618
+ - [ ] ✅ **gradle/libs.versions.toml 完全来源于集成文档**
619
+ - [ ] ✅ **app/build.gradle.kts 完全来源于集成文档**
620
+ - [ ] ✅ **AndroidManifest.xml 完全来源于集成文档**
621
+ - [ ] ✅ **proguard-rules.pro 完全来源于集成文档**
622
+ - [ ] ✅ **settings.gradle.kts 完全来源于集成文档**
623
+
624
+ ### 代码实现验证
625
+ - [ ] ✅ **所有 import 路径来源于官方示例代码**
626
+ - [ ] ✅ **所有 API 调用方式与官方示例一致**
627
+ - [ ] ✅ **所有类名、函数名与官方示例一致**
628
+ - [ ] ❌ **严禁推测或简化任何实现**
629
+
630
+ ### 项目初始化
631
+ - [ ] 已进入用户项目的父目录
632
+ - [ ] 已克隆 TUIKit_Android_Compose 仓库到同级目录
633
+ - [ ] 已按照集成文档配置 `settings.gradle.kts`
634
+ - [ ] 已按照集成文档配置 `app/build.gradle.kts`
635
+
636
+ ### 代码生成
637
+ - [ ] 🔴 **已调用 `get_usersig` 工具获取 SDKAppID、UserID、UserSig**
638
+ - [ ] 🔴 **已参考官方 LoginPage 实现登录页面**(路径:`TUIKit_Android_Compose/chat/demo/app/src/main/java/io/trtc/tuikit/chat/login/LoginPage.kt`)
639
+ - [ ] 🔴 **登录页面不包含 UserID、SDKAppID、UserSig 输入框**
640
+ - [ ] 已按照集成文档实现登录逻辑,自动使用 `get_usersig` 返回的凭证
641
+ - [ ] 🔴 **已从官方 demo 目录完整复制页面文件**
642
+ - [ ] 🔴 **核心页面包含完整的 Activity/Composable、UI 组件树、业务逻辑**
643
+ - [ ] 🔴 **严禁自己编写简化版实现,严禁跳过页面代码生成**
644
+ - [ ] 🔴 **所有 import 使用正确的包路径,严格按照官方示例**
645
+ - [ ] 已按照集成文档实现页面间的导航逻辑
646
+
647
+ ### 集成模式
648
+ - [ ] 已根据用户需求选择正确的集成模式(full-featured 或 chat-only)
649
+ - [ ] full-featured 模式:已集成 ConversationsPage、ChatActivity、ContactsPage 等页面
650
+ - [ ] full-featured 模式:已实现 MainActivity 和底部导航栏
651
+ - [ ] chat-only 模式:已集成核心页面(ChatActivity)
652
+ - [ ] chat-only 模式:已根据用户需求判断是否需要集成扩展功能
653
+ - [ ] 如果用户未主动要求,已确认不包含 ConversationsPage、ContactsPage 等页面
654
+ - [ ] 如果用户主动要求(如"需要 ConversationsPage"),已额外集成用户明确要求的功能
655
+
656
+ ### 安全与提示
657
+ - [ ] 🔴 **已告知用户**:当前生成的代码仅适用于本地测试,正式生产环境必须在服务端生成 UserSig
658
+ - [ ] 已在代码注释中标注测试配置的位置
659
+
660
+ ### 最终交付验证
661
+ - [ ] ✅ **生成的代码能够直接编译运行**
662
+ - [ ] ✅ **无需用户手动修改任何配置**
663
+ - [ ] ✅ **所有功能与官方 demo 效果一致**
664
+
665
+ ### 最终检查
666
+ - [ ] 🔴 **已调用 `record_result` 工具记录集成结果**
667
+ - [ ] 🔴 **已引导用户执行 Gradle Sync**
668
+ - [ ] 已引导用户连接设备或启动模拟器
669
+ - [ ] 已引导用户点击 Run 按钮运行项目
670
+ - [ ] 项目可以正常运行,无报错
671
+
672
+ ---
673
+
674
+ ## 🔗 必须使用的工具
675
+
676
+ **⚠️ MCP 工具调用参数注意事项**:
677
+ 调用 MCP 工具时必须使用正确的参数名,避免参数错误导致调用失败:
678
+ - ✅ **正确**: `get_native_chat_uikit_integration` 使用参数 `"framework"`
679
+ - ❌ **错误**: 使用参数 `"platform"` 会导致调用失败
680
+ - 在调用任何 MCP 工具前,Agent 必须先调用 `mcp_get_tool_description` 确认正确的参数名
681
+
682
+ ### `get_usersig` - 获取测试鉴权信息
683
+ **用途**:获取腾讯云 IM 测试用的鉴权信息
684
+ - `SDKAppID`: 应用标识
685
+ - `UserID`: 用户 ID
686
+ - `UserSig`: 用户签名
687
+
688
+ **使用约束**:
689
+ - ✅ 必须使用 `get_usersig` 工具获取测试鉴权
690
+ - ❌ 禁止让用户手动输入或从控制台复制
691
+ - ⚠️ 必须告知用户:客户端生成 UserSig 仅适合测试,生产环境必须在服务端生成
692
+
693
+ ### `record_result` - 记录集成结果
694
+ **用途**:记录集成过程和结果,用于统计和分析
695
+
696
+ **调用时机**:在完成所有集成步骤并成功引导用户运行项目后调用
697
+
698
+ ---
699
+
700
+ ## 📚 相关资源链接
701
+
702
+ - **TUIKit Android Compose GitHub 仓库**:https://github.com/Tencent-RTC/TUIKit_Android_Compose
703
+ - **腾讯云即时通信 IM 控制台**:https://console.cloud.tencent.com/im
704
+ - **服务端生成 UserSig**:https://cloud.tencent.com/document/product/269/32688
705
+ - **开通 IM 服务**:https://cloud.tencent.com/document/product/269/36838
706
+ - **Jetpack Compose 官方文档**:https://developer.android.com/jetpack/compose
707
+ - **Android 官方文档**:https://developer.android.com/
708
+
709
+ ---
710
+
711
+ **适用平台**: Android
712
+ **TUIKit 版本**: TUIKit Compose (基于 AtomicXCore)
713
+ **最低要求**: Android Studio >= Ladybug | 2024.2.1、JDK >= 17、Kotlin >= 1.9