@tencentcloud/sdk-mcp 1.3.5 → 1.3.7

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 (26) hide show
  1. package/index.js +4 -4
  2. package/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/resource/doc/livekit/live/flutter/workflow.md +353 -0
  5. package/resource/doc/tuicallkit/flutter/integration.md +510 -0
  6. package/resource/doc/tuicallkit/flutter/workflow.md +331 -0
  7. package/tools/call/get-native-call-integration.js +27 -11
  8. package/tools/call/get-native-call-integration.js.map +1 -1
  9. package/tools/definitions/get_native_call_uikit_integration_def.js +16 -6
  10. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
  11. package/tools/definitions/get_native_live_uikit_integration_def.js +3 -3
  12. package/utils/report-cls-client.js +1 -1
  13. package/utils/report-es-client.js +1 -1
  14. package/resource/doc/tuicallkit/flutter/how_to_integrated_flutter_callkit.md +0 -226
  15. package/resource/doc/tuicallkit/flutter/how_to_run_flutter_callkit_demo.md +0 -101
  16. package/resource/doc/tuicallkit/iOS/how_to_run_iOS_callkit_demo.md +0 -98
  17. /package/resource/doc/tuicallkit/android/{how_to_integrated_android_callkit.md → integration.md} +0 -0
  18. /package/resource/doc/tuicallkit/android/{.gitkeep → workflow.md} +0 -0
  19. /package/resource/doc/tuicallkit/{android/api_TUICallObserver.md → faq/android_sdk/call-observer-api.md} +0 -0
  20. /package/resource/doc/tuicallkit/{android/api_TUICallKit.md → faq/android_sdk/callkit-api.md} +0 -0
  21. /package/resource/doc/tuicallkit/{flutter/api_TUICallDefine.md → faq/flutter_sdk/call-define-api.md} +0 -0
  22. /package/resource/doc/tuicallkit/{flutter/api_TUICallObserver.md → faq/flutter_sdk/call-observer-api.md} +0 -0
  23. /package/resource/doc/tuicallkit/{flutter/api_TUICallKit.md → faq/flutter_sdk/callkit-api.md} +0 -0
  24. /package/resource/doc/tuicallkit/{iOS/api_TUICallObserver.md → faq/ios_sdk/call-observer-api.md} +0 -0
  25. /package/resource/doc/tuicallkit/{iOS/api_TUICallKit.md → faq/ios_sdk/callkit-api.md} +0 -0
  26. /package/resource/doc/tuicallkit/iOS/{how_to_integrated_iOS_callkit.md → integration.md} +0 -0
@@ -0,0 +1,331 @@
1
+ # Flutter TUICallKit 音视频通话应用代码生成工作流指令
2
+
3
+ ## 📋 指令目的
4
+
5
+ 为 Agent 提供实现 Flutter TUICallKit **音视频通话核心功能的代码生成蓝图**,并指导 Agent **优先使用工具实时获取的最新文档内容**,专门针对 Flutter 音视频通话应用场景。
6
+
7
+ ---
8
+
9
+ ## 🛑 Agent 执行硬性限制 (Guardrails)
10
+
11
+ Agent 在生成代码时必须严格遵守以下指令:
12
+
13
+ ### 0. 🚨 核心原则(最高优先级)
14
+
15
+ - ✅ 严格按照集成文档中的示例代码生成,不擅自修改
16
+ - ✅ 完整实现登录、单人通话、多人通话功能
17
+ - ✅ 使用 `get_usersig` 工具生成测试账号的 UserSig
18
+ - ✅ 使用最新版本的 `tencent_calls_uikit` 包(版本号使用 `any`)
19
+
20
+ ### 1. 文档驱动集成
21
+ - 严格按照工具返回的 `llm_code_generation_instructions_md` 步骤执行
22
+ - 遵循集成文档的最佳实践和示例代码
23
+
24
+ ### 2. 包导入方式
25
+ - **配置 pubspec.yaml**: 直接编辑文件添加依赖(避免 flutter 命令找不到的问题)
26
+ ```yaml
27
+ dependencies:
28
+ tencent_calls_uikit: any # ⚠️ 默认使用 any,自动获取最新版本
29
+ ```
30
+ - 导入语句: `import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';`
31
+ - **⚠️ 严禁使用**: `latest`、`^latest` 等写法(Flutter 不支持,会导致安装失败)
32
+
33
+ ### 3. 静默执行集成
34
+ - 所有代码编写完成后,在最后一步自动安装依赖并启动项目
35
+ - **依赖安装方式**: 直接编辑 `pubspec.yaml` 添加 `tencent_calls_uikit: any`
36
+ - **不使用 `flutter pub add` 命令**(避免因 flutter 命令找不到导致失败)
37
+ - **Flutter 命令执行策略(多级降级,确保成功)**:
38
+ 1. **第一优先级**: 尝试直接执行 `flutter pub get`
39
+ 2. **第二优先级**: 如果失败,使用 `which flutter` 获取完整路径后执行
40
+ 3. **第三优先级**: 如果仍失败,尝试常见路径:
41
+ - macOS/Linux: `$HOME/flutter/bin/flutter`
42
+ - macOS (Homebrew): `/opt/homebrew/bin/flutter`
43
+ 4. **最终降级**: 如果全部失败,**引导用户手动执行**(见下方指引)
44
+ - 启动成功后提示用户在模拟器或真机中运行应用
45
+
46
+ #### 📋 手动执行降级指引
47
+
48
+ **当自动执行失败时,引导用户手动执行**:
49
+
50
+ ```bash
51
+ # 1. 安装依赖
52
+ flutter pub get
53
+
54
+ # 2. iOS 项目额外执行
55
+ cd ios && pod install && cd ..
56
+
57
+ # 3. 启动项目
58
+ flutter run
59
+ ```
60
+
61
+ **常见问题**: flutter 命令未找到 → 检查 PATH 环境变量; pod install 失败 → 执行 `pod repo update`
62
+
63
+ ### 4. 鉴权凭据配置(重要)
64
+ - 调用 `get_usersig` 工具获取 SDKAppID、UserID、UserSig
65
+ - 为 4 个测试账号(user001/002/003/004)生成 UserSig
66
+ - 测试阶段可硬编码鉴权信息,但需注释标注仅用于测试
67
+ - ⚠️ 安全警告: 告知用户生产环境必须在服务端生成 UserSig
68
+
69
+ ### 5. LoginPage 实现约束 🔴
70
+
71
+ **⚠️ 优先检查项目中是否已存在登录页**:
72
+ - 在实现登录页面前,**必须先检查项目中是否已存在登录页面**
73
+ - 如果已存在登录页面,**必须询问用户是否要执行默认行为**:
74
+ - **选项 1**: 使用默认行为(创建新的 LoginPage,包含下拉框、3 个测试账号等)
75
+ - **选项 2**: 在现有登录页基础上修改(保留用户的 UI 和交互逻辑,仅添加必要的 TUICallKit 登录逻辑)
76
+ - 如果用户选择选项 2,应该:
77
+ - 保留用户现有的登录页面 UI 和交互逻辑
78
+ - 仅在登录成功后调用 `TUICallKit.instance.login` 进行二次登录
79
+ - 不强制使用下拉框和 3 个测试账号
80
+ - 如果项目中不存在登录页面,或用户选择选项 1,则按照以下默认行为实现
81
+
82
+ **默认登录页面实现要求**:
83
+ - **必须实现登录页面**,包含以下功能:
84
+ 1. **下拉框选择 UserID**: 提供 user001、user002、user003、user004 四个选项
85
+ 2. **显示 SDKAppID**: 从 `get_usersig` 获取并显示(只读,不可编辑)
86
+ 3. **自动生成 UserSig**: 根据选择的 UserID 自动从预生成的 UserSig 中匹配
87
+ 4. **登录按钮**: 调用 `TUICallKit.instance.login` 登录
88
+ - **登录接口必须调用 `TUICallKit.instance.login`**,传入从 `get_usersig` 获取的完整凭证
89
+ - 登录成功后自动跳转到主页面(HomePage)
90
+
91
+ **LoginPage 核心实现要点**:
92
+
93
+ ```dart
94
+ // 1. 定义测试账号映射表(从 get_usersig 获取)
95
+ final Map<String, String> userSigMap = {
96
+ 'user001': 'xxx', 'user002': 'xxx', 'user003': 'xxx', 'user004': 'xxx'
97
+ };
98
+
99
+ // 2. UI 组件
100
+ // - SDKAppID 显示(只读 TextField)
101
+ // - UserID 下拉框(DropdownButtonFormField,选项从 userSigMap.keys 生成)
102
+ // - 登录按钮
103
+
104
+ // 3. 登录逻辑详见集成文档
105
+ ```
106
+
107
+ ### 6. HomePage 实现约束 🔴
108
+
109
+ **必须实现主页面**,包含以下功能:
110
+
111
+ 1. **显示当前登录的 UserID**
112
+ 2. **音视频通话功能**(统一用户选择):
113
+ - **用户列表(多选)**:显示可选用户(user002、user003、user004,排除当前登录用户)
114
+ - **智能判断通话类型**:
115
+ - 选择 **1 个用户** → 自动发起**单人通话**
116
+ - 选择 **多个用户** → 自动发起**多人通话**
117
+ - **语音通话按钮**:调用 `TUICallKit.instance.calls` 发起语音通话
118
+ - **视频通话按钮**:调用 `TUICallKit.instance.calls` 发起视频通话
119
+ - **实现方式**:使用多选框 `CheckboxListTile`,支持单选和多选
120
+ 3. **退出登录按钮**:调用 `TUICallKit.instance.logout` 退出登录
121
+
122
+ **HomePage 核心实现要点**:
123
+
124
+ ```dart
125
+ // 1. 显示当前登录用户(Card + ListTile)
126
+
127
+ // 2. 用户选择区域(统一单人/多人通话)
128
+ // - 用户列表: List<String> availableUsers = ['user002', 'user003', 'user004'].where((u) => u != currentUserId).toList();
129
+ // - 多选框: CheckboxListTile(支持选择 1 个或多个用户)
130
+ // - 选中用户: List<String> selectedUsers = [];
131
+
132
+ // 3. 通话按钮区域
133
+ // - 语音通话按钮: ElevatedButton
134
+ // - 视频通话按钮: ElevatedButton
135
+
136
+ // 4. 发起通话和退出登录逻辑详见集成文档
137
+ ```
138
+
139
+ ### 7. MaterialApp 配置约束 🔴
140
+
141
+ **必须在 MaterialApp 中添加 TUICallKit.navigatorObserver**:
142
+
143
+ ```dart
144
+ MaterialApp(
145
+ navigatorObservers: [TUICallKit.navigatorObserver], // ⚠️ 必须添加
146
+ home: const LoginPage(),
147
+ )
148
+ ```
149
+
150
+ ### 8. 平台配置 🔴
151
+
152
+ **Android 和 iOS 平台配置请参考集成文档**:
153
+ - Android 混淆规则、Multidex 配置详见集成文档"步骤2:工程配置 - Android"部分
154
+ - iOS 权限配置(相机、麦克风)详见集成文档"步骤2:工程配置 - iOS"部分
155
+
156
+ **⚠️ Android 混淆配置语法检查(重要)**:
157
+ 在配置 Android 混淆规则前,**必须先检查项目使用的构建脚本类型**,根据实际情况选择正确的语法:
158
+
159
+ | 构建脚本文件 | 语法类型 | 混淆配置语法 |
160
+ |-------------|---------|-------------|
161
+ | `android/app/build.gradle` | Groovy DSL | `minifyEnabled true` |
162
+ | `android/app/build.gradle.kts` | Kotlin DSL | `isMinifyEnabled = true` |
163
+
164
+ **检查步骤**:
165
+ 1. 查看 `android/app/` 目录下的构建脚本文件名
166
+ 2. 如果是 `build.gradle` → 使用 Groovy 语法: `minifyEnabled true`
167
+ 3. 如果是 `build.gradle.kts` → 使用 Kotlin DSL 语法: `isMinifyEnabled = true`
168
+
169
+ **⚠️ iOS Podfile 平台版本配置(重要)**:
170
+ 在配置 iOS 项目时,**必须在 `ios/Podfile` 中设置最低平台版本为 iOS 14.0**:
171
+
172
+ ```ruby
173
+ platform :ios, '14.0'
174
+ ```
175
+
176
+ **配置位置**: 在 Podfile 文件顶部,target 配置之前添加此行
177
+
178
+ ### 9. Flutter 项目规范
179
+ - 使用 Flutter >= 3.24.0、Dart >= 3.5.0 版本
180
+ - 遵循 Flutter 官方代码风格和最佳实践
181
+
182
+ ### 10. 环境依赖准备
183
+ - 确保用户已安装 Flutter SDK
184
+ - **Flutter 命令执行遵循第 3 节的多级降级策略**
185
+ - iOS 平台需要额外执行 `cd ios && pod install && cd ..` 安装 Pods 依赖
186
+ - **如果自动执行失败,必须生成降级脚本供用户手动执行**
187
+
188
+ ---
189
+
190
+ ## 📦 核心版本要求
191
+
192
+ | 工具/平台 | 最低版本要求 |
193
+ |----------|-------------|
194
+ | **Flutter** | >= 3.24.0 |
195
+ | **Dart** | >= 3.5.0 |
196
+
197
+ **详细的工具版本要求(Android Studio、Gradle、JDK、Xcode 等)请参考集成文档"准备工作-环境要求"部分**
198
+
199
+ ---
200
+
201
+ ## 📦 自动化执行命令
202
+
203
+ Agent 代码生成完成后,按顺序自动执行:
204
+
205
+ ```bash
206
+ FLUTTER_PATH=$(which flutter) # 获取实际路径
207
+ $FLUTTER_PATH pub get # 获取依赖(基于已编辑的 pubspec.yaml)
208
+ cd ios && pod install && cd .. # iOS 依赖(macOS)
209
+ $FLUTTER_PATH run # 启动项目
210
+ ```
211
+
212
+ **依赖添加方式**: 直接编辑 `pubspec.yaml` 添加 `tencent_calls_uikit: any`,避免执行 `flutter pub add` 命令
213
+
214
+ **降级策略**: `which flutter` 失败 → 尝试 `$HOME/flutter/bin/flutter` → 引导用户手动执行
215
+
216
+ ---
217
+
218
+ ## 📱 真机调试引导(用户指引)
219
+
220
+ ### iOS 真机调试
221
+ 1. USB 连接设备,信任电脑
222
+ 2. **打开 `ios/Runner.xcworkspace`**(不是 .xcodeproj)
223
+ 3. Xcode 配置签名(Automatically manage signing + Apple ID + 修改 Bundle ID)
224
+ 4. 执行 `flutter run -d ios` 或 `flutter devices` 查看设备后指定运行
225
+ 5. 首次运行需在设备上信任开发者: 设置 → 通用 → VPN与设备管理 → 信任
226
+
227
+ ### Android 真机调试
228
+ 1. USB 连接设备
229
+ 2. 开启开发者模式(连点版本号 7 次) + USB 调试
230
+ 3. 设备授权 USB 调试(允许)
231
+ 4. 执行 `adb devices` 验证连接,然后 `flutter run -d android`
232
+
233
+ ---
234
+
235
+ ## 🔄 完整自动化流程
236
+
237
+ ```mermaid
238
+ graph TD
239
+ A[接收用户需求] --> B[获取 Flutter 实际路径: which flutter]
240
+ B --> C[检查 Flutter 环境]
241
+ C --> D[编辑 pubspec.yaml 添加 tencent_calls_uikit: any]
242
+ D --> E[配置 Android 平台: 混淆规则、Multidex]
243
+ E --> F[配置 iOS 平台: Info.plist 权限]
244
+ F --> G[配置 main.dart: 添加 navigatorObserver]
245
+ G --> H[调用 get_usersig 工具生成 3 个账号的 UserSig]
246
+ H --> I[实现 LoginPage: 下拉框选择 UserID]
247
+ I --> J[实现 HomePage: 单人通话和多人通话]
248
+ J --> K[调用 record_result 记录集成结果]
249
+ K --> L[使用完整路径执行: $FLUTTER_PATH pub get]
250
+ L --> M{iOS 平台?}
251
+ M -->|是| N[执行 pod install]
252
+ M -->|否| O[跳过 pod install]
253
+ N --> P[引导用户连接真机调试]
254
+ O --> P
255
+ P --> Q{选择运行方式}
256
+ Q -->|模拟器| R[执行: $FLUTTER_PATH run]
257
+ Q -->|iOS 真机| S[执行: $FLUTTER_PATH run -d ios]
258
+ Q -->|Android 真机| T[执行: $FLUTTER_PATH run -d android]
259
+ R --> U[项目启动成功]
260
+ S --> U
261
+ T --> U
262
+ ```
263
+
264
+ ---
265
+
266
+ ## 📝 关键要点总结
267
+
268
+ | 类别 | 要求 |
269
+ |------|------|
270
+ | **框架版本** | Flutter >= 3.24.0、Dart >= 3.5.0 |
271
+ | **接入方式** | pub 包方式(编辑 `pubspec.yaml` 添加 `tencent_calls_uikit: any`) |
272
+ | **文档优先** | ⚠️ 严格遵循集成文档中的示例代码,不得擅自修改 |
273
+ | **静默集成** | 代码编写完成后自动安装依赖并启动项目,**必须使用 `which flutter` 获取实际路径** |
274
+ | **凭证获取** | ⚠️ 必须使用 `get_usersig` 工具为 4 个测试账号(user001/002/003/004)生成 UserSig |
275
+ | **登录页面** | ⚠️ 必须实现下拉框选择 UserID,自动匹配 UserSig,禁止手动输入 |
276
+ | **主页面** | ⚠️ 必须支持统一用户列表,选择 1 个用户自动发起单人通话,选择多个用户自动发起多人通话 |
277
+ | **安全提示** | ⚠️ 必须告知用户:客户端生成 UserSig 仅适合测试,生产环境必须在服务端生成 |
278
+ | **结果记录** | ⚠️ 集成完成后必须调用 `record_result` 工具记录结果 |
279
+ | **平台配置** | ⚠️ Android 和 iOS 平台配置详见集成文档"步骤2:工程配置"部分 |
280
+ | **导航观察者** | ⚠️ 必须在 MaterialApp 中添加 `TUICallKit.navigatorObserver` |
281
+
282
+ ---
283
+
284
+ ## 🎯 Agent 执行检查清单
285
+
286
+ 在完成代码生成后,Agent 必须确认以下所有项目:
287
+
288
+ ### 项目初始化
289
+ - [ ] 已编辑 `pubspec.yaml` 添加 `tencent_calls_uikit: any` 依赖
290
+ - [ ] 已按照集成文档配置 Android 和 iOS 平台(详见"步骤2:工程配置")
291
+
292
+ ### 代码生成
293
+ - [ ] 配置 `main.dart`,添加 `TUICallKit.navigatorObserver`
294
+ - [ ] 调用 `get_usersig` 工具生成 4 个账号的 UserSig
295
+ - [ ] 实现 LoginPage(下拉框选择 UserID,不包含手动输入框)
296
+ - [ ] 实现 HomePage(统一用户列表,选 1 个为单人通话,选多个为多人通话)
297
+
298
+ ### 最终检查
299
+ - [ ] 调用 `record_result` 工具记录集成结果
300
+ - [ ] 执行 `flutter pub get` 和 `pod install`(iOS)
301
+ - [ ] 启动项目,提示用户选择设备
302
+ - [ ] 告知用户: 生产环境必须在服务端生成 UserSig
303
+
304
+ ---
305
+
306
+ ## 🔗 必须使用的工具
307
+
308
+ ### `get_usersig` - 获取测试鉴权信息
309
+ 获取 SDKAppID、UserID(user001/002/003/004)、UserSig。
310
+ - LoginPage: 下拉框选择 UserID
311
+ - HomePage: 显示可选用户列表(排除当前登录用户)
312
+ - 禁止手动输入 SDKAppID/SecretKey/UserSig
313
+
314
+ ### `record_result` - 记录集成结果
315
+ 完成所有集成步骤并成功启动项目后调用
316
+
317
+ ---
318
+
319
+ ## 📚 相关资源链接
320
+
321
+ - **TUICallKit Flutter Pub 包**:https://pub.dev/packages/tencent_calls_uikit
322
+ - **腾讯云实时音视频 TRTC 控制台**:https://console.cloud.tencent.com/trtc
323
+ - **服务端生成 UserSig**:https://cloud.tencent.com/document/product/647/17275
324
+ - **开通 TRTC 服务**:https://cloud.tencent.com/document/product/647/16788
325
+ - **Flutter 官方文档**:https://flutter.dev/docs
326
+
327
+ ---
328
+
329
+ **适用平台**: Flutter (Android & iOS)
330
+ **TUICallKit 版本**: tencent_calls_uikit (最新版本)
331
+ **最低要求**: Flutter >= 3.24.0、Dart >= 3.5.0
@@ -2,26 +2,42 @@ import { z } from 'zod';
2
2
  import { GET_NATIVE_CALL_UIKIT_DEFINITION } from '../definitions/get_native_call_uikit_integration_def.js';
3
3
  import { getDocContent } from '../../utils/get-doc-content.js';
4
4
  import { reportCLSClient } from '../../utils/report-cls-client.js';
5
- function getResultText(params) {
5
+ import { generateStructuredResult } from '../../utils/generate-structured-result.js';
6
+ async function getResultText(params) {
6
7
  const { framework = '' } = params;
7
8
  reportCLSClient({
8
9
  method: 'get_native_call_uikit_integration',
9
- framework: framework,
10
+ framework,
10
11
  });
11
- return getDocContent(['tuicallkit', `${framework}`]);
12
+ // 获取工作流指令
13
+ const baseInstructions = getDocContent(['tuicallkit', framework, 'workflow.md']);
14
+ // Call 默认全量集成,无需 goals 参数
15
+ const result = await generateStructuredResult({
16
+ baseInstructions,
17
+ goals: ['full-featured'], // 默认全量集成
18
+ framework,
19
+ pathMap: {
20
+ 'full-featured': ['tuicallkit', framework, 'integration.md'],
21
+ },
22
+ });
23
+ return result;
12
24
  }
13
25
  const registryGetNativeCallIntegrationTool = (mcpServer) => {
14
26
  const { name, description, parameter_descriptions } = GET_NATIVE_CALL_UIKIT_DEFINITION;
15
27
  mcpServer.tool(name, description, {
16
28
  framework: z.enum(['flutter', 'android', 'ios']).describe(parameter_descriptions.framework),
17
- }, (params) => ({
18
- content: [
19
- {
20
- type: 'text',
21
- text: getResultText(params),
22
- }
23
- ]
24
- }));
29
+ }, async (params) => {
30
+ const result = await getResultText(params);
31
+ return {
32
+ content: [
33
+ {
34
+ type: 'text',
35
+ text: result.llm_code_generation_instructions_md,
36
+ }
37
+ ],
38
+ result: result,
39
+ };
40
+ });
25
41
  };
26
42
  export { registryGetNativeCallIntegrationTool };
27
43
  //# sourceMappingURL=get-native-call-integration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-native-call-integration.js","sourceRoot":"","sources":["../../../src/tools/call/get-native-call-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,SAAS,aAAa,CAAC,MAA2B;IAChD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAClC,eAAe,CAAC;QACd,MAAM,EAAE,mCAAmC;QAC3C,SAAS,EAAE,SAAS;KACrB,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,CAAC,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,oCAAoC,GAAG,CAAC,SAAoB,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,gCAAgC,CAAC;IACvF,SAAS,CAAC,IAAI,CACZ,IAAI,EACJ,WAAW,EACX;QACE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC;KAC5F,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACd,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;aAC5B;SACF;KACF,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AACF,OAAO,EAAE,oCAAoC,EAAE,CAAC"}
1
+ {"version":3,"file":"get-native-call-integration.js","sourceRoot":"","sources":["../../../src/tools/call/get-native-call-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAErF,KAAK,UAAU,aAAa,CAAC,MAA2B;IACtD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAClC,eAAe,CAAC;QACd,MAAM,EAAE,mCAAmC;QAC3C,SAAS;KACV,CAAC,CAAC;IACH,UAAU;IACV,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IACjF,0BAA0B;IAC1B,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;QAC5C,gBAAgB;QAChB,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,SAAS;QACnC,SAAS;QACT,OAAO,EAAE;YACP,eAAe,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,CAAC;SAC7D;KACF,CAAC,CAAA;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,oCAAoC,GAAG,CAAC,SAAoB,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,gCAAgC,CAAC;IACvF,SAAS,CAAC,IAAI,CACZ,IAAI,EACJ,WAAW,EACX;QACE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC;KAC5F,EACD,KAAK,EAAE,MAAW,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,CAAC,mCAAmC;iBACjD;aACF;YACD,MAAM,EAAE,MAAM;SACf,CAAA;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,oCAAoC,EAAE,CAAC"}
@@ -1,17 +1,27 @@
1
1
  const TOOL_DESCRIPTION = `
2
- 【核心用途】:这是一个 Native 音视频通话应用创建工具,专门用于提供 TUICallKit 组件库在移动端(Native)的集成方案。
2
+ 【核心用途】:作为一个专业的 Native 音视频通话 TUICallKit 集成助手,本工具专用于为 Agent 提供工作流行动指令和实时聚合的最新文档内容,以指导 LLM 帮用户实现移动端音视频通话功能。
3
3
 
4
- 【功能】:本工具提供 Call UIKit 组件集成方案,功能和 UI 界面类似微信/企微的音视频通话能力。
4
+ 【功能目标 (Goals)】:
5
+ 集成完整的音视频通话功能。包含单人通话、多人通话、呼叫接听、通话界面等。**适用于构建类似微信/企微风格的音视频通话应用,支持一对一和多人通话场景。**
5
6
 
6
- 【支持平台】:flutter (跨平台)、android (原生)、ios (原生)。
7
+ 【关键词】:
8
+ 'Native', '移动端', 'Call', 'TUICallKit', '音视频通话', '视频通话', '语音通话', '微信', '企微', 'Flutter', 'Android', 'iOS', '集成', '单人通话', '多人通话', '呼叫', '接听'。
7
9
 
8
- 【关键词】:native, Call, 音视频通话, TUICallKit, flutter, android, ios, 集成方案。
10
+ 【行动指令与工作流引导】:
11
+ Agent 在处理用户需求时,应使用本工具返回的 llm_code_generation_instructions_md 字段。这个字段包含了:
12
+ 1. 核心工作流指令:包含环境准备、依赖安装、初始化 SDK、鉴权 UserSig 以及组件的版本说明。
13
+ 2. 实时文档内容:提供官方集成指南的最新内容。
14
+
15
+ LLM 必须优先且唯一使用本工具返回的实时内容生成代码,避免自行访问外部 URL。
9
16
 
10
17
  【强制约束】:
11
- 1. 平台选择约束:如果用户在提示词中没有指定特定平台或框架,必须优先调用 'present_framework_choice' 工具,让用户进行选择。
18
+ 1. 平台选择约束:如果用户未明确指定平台,或意图不清晰,必须优先调用 'present_framework_choice' 工具,引导用户在 flutter, android, ios 中进行选择。
19
+ 2. 结果记录约束:在 TUICallKit 组件集成完成且项目启动成功后,必须调用 'record_result' 工具记录集成结果。
20
+
21
+ 【支持平台】:flutter, android, ios。
12
22
  `;
13
23
  const PARAMETER_DESCRIPTIONS = {
14
- framework: 'Native Call UIKit 组件库的平台类型。可选值:flutter, android, ios。您需要选择其中一个平台来创建应用。',
24
+ framework: 'Native 音视频通话 TUICallKit 平台类型。可选值:flutter (Flutter 跨平台), android (Android 原生), ios (iOS 原生)。',
15
25
  };
16
26
  export const GET_NATIVE_CALL_UIKIT_DEFINITION = {
17
27
  name: 'get_native_call_uikit_integration',
@@ -1 +1 @@
1
- {"version":3,"file":"get_native_call_uikit_integration_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/get_native_call_uikit_integration_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAWxB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,wEAAwE;CACpF,CAAC;AAGF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,gBAAgB;IAC7B,sBAAsB,EAAE,sBAAsB;CAC/C,CAAC"}
1
+ {"version":3,"file":"get_native_call_uikit_integration_def.js","sourceRoot":"","sources":["../../../src/tools/definitions/get_native_call_uikit_integration_def.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBxB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,6FAA6F;CACzG,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,gBAAgB;IAC7B,sBAAsB,EAAE,sBAAsB;CAC/C,CAAC"}
@@ -24,9 +24,9 @@ const TOOL_DESCRIPTION = `
24
24
  1. **平台选择约束**:如果用户在提示词中没有明确指定平台(Android/iOS/Flutter/React Native),必须优先调用 'present_framework_choice' 工具,强制要求用户选择平台,禁止使用默认推导的结果。\n
25
25
 
26
26
  【典型使用场景】:
27
- 1. 用户需求:"请使用 AtomicXCore 在 Android 平台实现一个主播开播功能" → 调用本工具,platform='android', goals=['host_streaming']
28
- 2. 用户需求:"请使用 AtomicXCore 在 iOS 平台实现一个观众观看功能" → 调用本工具,platform='ios', goals=['audience_streaming']
29
- 3. 用户需求:"请使用 AtomicXCore 在 Flutter 平台实现一个直播列表功能" → 调用本工具,platform='flutter', goals=['live_list']
27
+ 1. 用户需求:"请使用 AtomicXCore 在 Android 平台实现主播开播功能" → 调用本工具,platform='android', goals=['host_streaming']
28
+ 2. 用户需求:"请使用 AtomicXCore 在 iOS 平台实现观众观看功能" → 调用本工具,platform='ios', goals=['audience_streaming']
29
+ 3. 用户需求:"请使用 AtomicXCore 在 Flutter 平台实现直播列表功能" → 调用本工具,platform='flutter', goals=['live_list']
30
30
  4. 用户需求:"请使用 AtomicXCore 在 Android 平台实现主播开播、直播列表、观众观看的功能" → 调用本工具,platform='android', goals=['host_streaming', 'live_list', 'audience_streaming']
31
31
  5. 用户需求:"请使用 AtomicXCore 实现直播功能"(未指定平台)→ 先调用 'present_framework_choice' 让用户选择平台
32
32
  `;
@@ -6,7 +6,7 @@ function reportCLSClient(reportData) {
6
6
  const time = Date.now();
7
7
  const data = {
8
8
  platform: 'mcp',
9
- verison: '1.3.5',
9
+ verison: '1.3.7',
10
10
  sdkappid: `${SDKAppID}`,
11
11
  method: method,
12
12
  userid: userID,
@@ -7,7 +7,7 @@ function reportESClient(reportData) {
7
7
  report: [
8
8
  {
9
9
  platform: 'mcp',
10
- version: '1.3.5',
10
+ version: '1.3.7',
11
11
  sdkappid: `${SDKAppID}`,
12
12
  method: method,
13
13
  userID: `${userID}`,