@tencent-rtc/mcp 1.6.4 → 1.6.5
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/knowledge/chunker.js +83 -54
- package/knowledge/path-meta.js +179 -26
- package/knowledge/search/exact-lookup.js +153 -0
- package/knowledge/search/filter-pool.js +73 -19
- package/knowledge/search/product-scope-intent.js +2 -2
- package/knowledge/search/requires-framework.js +2 -2
- package/knowledge/search/search-knowledge.js +235 -58
- package/package.json +1 -1
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +2 -4
- package/resource/integration/callkit/preset/flutter/integration.md +4 -5
- package/resource/integration/callkit/preset/ios/integration.md +1 -4
- package/resource/integration/callkit/preset/react/integration.md +13 -20
- package/resource/integration/callkit/preset/vue/integration.md +14 -21
- package/resource/integration/chat/preset/android/integration.md +6 -9
- package/resource/integration/chat/preset/flutter/integration.md +9 -12
- package/resource/integration/chat/preset/ios/integration.md +2 -4
- package/resource/integration/chat/preset/react/integration.md +0 -10
- package/resource/integration/livekit/preset/live/android/live-audience-integration.md +129 -0
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +219 -0
- package/resource/integration/livekit/preset/live/android/live-list-integration.md +261 -0
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +254 -0
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +202 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +369 -0
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +229 -0
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +204 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +0 -3
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -5
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -6
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +5 -10
- package/resource/integration/roomkit/preset/vue/integration.md +0 -4
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +24 -0
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +7 -8
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -7
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +3 -5
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +2 -6
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +2 -6
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +4 -9
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -4
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +8 -11
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +17 -23
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +33 -0
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +327 -0
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +33 -0
- package/resource/knowledge/callkit/faq/android.md +0 -2
- package/resource/knowledge/callkit/faq/error-code.md +0 -2
- package/resource/knowledge/callkit/faq/flutter.md +2 -2
- package/resource/knowledge/callkit/faq/ios.md +3 -5
- package/resource/knowledge/callkit/faq/web.md +2 -3
- package/resource/knowledge/callkit/preset/android/api.md +2 -5
- package/resource/knowledge/callkit/preset/ios/api.md +0 -2
- package/resource/knowledge/callkit/preset/react/api.md +445 -0
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +445 -0
- package/resource/knowledge/callkit/preset/vue/api.md +465 -0
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +465 -0
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -1
- package/resource/knowledge/chat/preset/android/features/language.md +0 -1
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
- package/resource/knowledge/chat/preset/android/features/message-list.md +2 -3
- package/resource/knowledge/chat/preset/android/features/search.md +0 -1
- package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +3 -11
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/flutter/features/search.md +5 -6
- package/resource/knowledge/chat/preset/flutter/features/theme.md +2 -2
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -2
- package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +13 -15
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +5 -5
- package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/react/features/theme.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +7 -14
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +5 -8
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +15 -18
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +15 -20
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +10 -13
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +8 -10
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +5 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +7 -14
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +6 -9
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +15 -18
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +15 -20
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +10 -13
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +8 -10
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +3 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +7 -14
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +5 -8
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +6 -9
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +5 -10
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +1 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +3 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +24 -24
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +1 -2
- package/resource/knowledge/livekit/core-sdk/{live/android/live-gift.md → features/android/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-room-list.md → features/android/live-list.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-gift.md → features/flutter/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -2
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-gift.md → features/ios/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-room-list.md → features/ios/live-list.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +5 -7
- package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +3 -6
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +2 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +3 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +3 -6
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +1 -2
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +6 -9
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +4 -6
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -2
- package/resource/knowledge/push/api-reference/android.md +123 -0
- package/resource/knowledge/push/api-reference/flutter.md +176 -0
- package/resource/knowledge/push/api-reference/harmonyos.md +138 -0
- package/resource/knowledge/push/api-reference/ios.md +176 -0
- package/resource/knowledge/push/api-reference/react-native.md +147 -0
- package/resource/knowledge/push/api-reference/uni-app.md +147 -0
- package/resource/knowledge/push/api-reference/unity.md +119 -0
- package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
- package/resource/knowledge/push/config/android.md +4 -7
- package/resource/knowledge/push/config/harmonyos.md +0 -3
- package/resource/knowledge/push/config/ios.md +12 -20
- package/resource/knowledge/push/config/react-native.md +18 -26
- package/resource/knowledge/push/config/unity.md +20 -28
- package/resource/knowledge/push/config/unreal-engine.md +21 -29
- package/resource/knowledge/push/integration/android.md +6 -8
- package/resource/knowledge/push/integration/flutter.md +6 -9
- package/resource/knowledge/push/integration/harmonyos.md +1 -0
- package/resource/knowledge/push/integration/ios.md +7 -9
- package/resource/knowledge/push/integration/react-native.md +9 -13
- package/resource/knowledge/push/integration/uni-app.md +7 -7
- package/resource/knowledge/push/integration/unity.md +10 -13
- package/resource/knowledge/push/integration/unreal-engine.md +6 -9
- package/resource/knowledge/push/overview/prepare.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +6 -6
- package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +79 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +79 -0
- package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +79 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +5 -7
- package/resource/knowledge/roomkit/preset/flutter/integration.md +2 -7
- package/resource/knowledge/roomkit/preset/ios/integration.md +3 -9
- package/resource/knowledge/roomkit/preset/react/integration.md +12 -16
- package/resource/knowledge/trtc/android/TRTCCloud.md +154 -238
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +133 -134
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +86 -120
- package/resource/knowledge/trtc/android/TRTCStatistics.md +10 -10
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +10 -30
- package/resource/knowledge/trtc/android/TXBeautyManager.md +25 -25
- package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +12 -12
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +166 -261
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +12 -12
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +10 -30
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +9 -11
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +96 -130
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +122 -123
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +12 -12
- package/resource/knowledge/trtc/ios/TRTCCloud.md +168 -255
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +124 -125
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +89 -124
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +10 -10
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +9 -28
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +25 -25
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +9 -11
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +12 -12
- package/server.js +21 -21
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +2 -2
- package/tools/common/search_trtc_knowledge.js +3 -3
- package/tools/common/submit_feedback.js +1 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +61 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +3 -3
- package/tools/definitions/present_framework_choice_def.js +2 -2
- package/tools/definitions/search_trtc_knowledge_def.js +5 -5
- package/tools/index.js +2 -0
- package/tools/live/get_native_live_uikit_integration.js +69 -0
- package/tools/live/get_native_livekit_core_integration.js +6 -6
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/knowledge/callkit/preset/web/api.md +0 -83
- package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -226
- package/resource/knowledge/livekit/core-sdk/live/android/live-live-list.md +0 -438
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -490
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -264
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -216
- package/resource/knowledge/livekit/core-sdk/live/ios/live-gift.md +0 -407
- package/resource/knowledge/livekit/core-sdk/live/ios/live-live-list.md +0 -349
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -269
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -456
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-gift.md +0 -455
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -260
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -598
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +0 -424
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-barrage.md +0 -408
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/ios/live-barrage.md → features/ios/barrage.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -0
package/server.js
CHANGED
|
@@ -3,40 +3,40 @@ import { registryTools } from './tools/index.js';
|
|
|
3
3
|
const SERVER_INSTRUCTIONS = `
|
|
4
4
|
You are using Tencent RTC MCP Server for SDK documentation retrieval.
|
|
5
5
|
|
|
6
|
-
- search_trtc_knowledge: Primary tool for Tencent RTC / Chat(IM) / Push(TIMPush) documentation
|
|
7
|
-
Covers: Chat UIKit, CallKit, LiveKit, RoomKit, TRTC Native SDK, WebRTC
|
|
8
|
-
Use this tool
|
|
9
|
-
Do
|
|
6
|
+
- search_trtc_knowledge: Primary tool for searching Tencent RTC / Chat(IM) / Push(TIMPush) product documentation.
|
|
7
|
+
Covers: Chat UIKit, CallKit, LiveKit, RoomKit, TRTC Native SDK, WebRTC/rtcEngine, TIMPush.
|
|
8
|
+
Use this tool FIRST for all technical documentation / FAQ / error code / integration guide lookups.
|
|
9
|
+
Do NOT use web_search for questions that can be answered via this knowledge base.
|
|
10
10
|
|
|
11
|
-
**Product routing
|
|
12
|
-
- TIMPush /
|
|
13
|
-
-
|
|
14
|
-
- CallKit /
|
|
15
|
-
- TRTC Web SDK / rtcengine / WebRTC
|
|
16
|
-
- TRTCCloud /
|
|
17
|
-
-
|
|
18
|
-
-
|
|
11
|
+
**Product routing(调用 search_trtc_knowledge 前 MUST 推断 product 数组)**:
|
|
12
|
+
- TIMPush / 推送 / 厂商通道 / FCM / APNs / 华为 / 小米 / OPPO / vivo → product=["push"](独立产品,禁止误归 chat)
|
|
13
|
+
- 会话 / TUIKit / ChatKit / IM 组件 / 主题定制 → ["chat"]
|
|
14
|
+
- CallKit / 通话 → ["call"];直播 / 语聊房 / LiveKit → ["live"];RoomKit / 会议 → ["room"]
|
|
15
|
+
- TRTC Web SDK / rtcengine / WebRTC 插件 → ["rtcengine"]
|
|
16
|
+
- TRTCCloud / Native SDK(客户端)→ ["native_trtc_sdk"]
|
|
17
|
+
- 推送 + IM 同时涉及 → 可传 ["push","chat"]
|
|
18
|
+
- 无法从 prompt 唯一判断 product → 先向用户确认,不要无 product 硬搜,也不要 web_search
|
|
19
19
|
|
|
20
|
-
**
|
|
21
|
-
**When in doubt
|
|
20
|
+
**Frameworks**:返回 needs_framework 时 MUST 先 present_framework_choice;详见 search_trtc_knowledge 工具 description 决策表。
|
|
21
|
+
**When in doubt**:仍优先调用 search_trtc_knowledge(带最佳猜测 product);status=empty 或 low_confidence 时再澄清或重搜。
|
|
22
22
|
|
|
23
|
-
**queryID
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
23
|
+
**queryID 传递规则(硬规则,违反会导致 CLS 数据断裂)**:
|
|
24
|
+
- 首次调用 search_trtc_knowledge:无需传 queryID(默认空串),响应 JSON 中会有 server 生成的 queryID 字段
|
|
25
|
+
- 后续每一次 search_trtc_knowledge / finalize_answer / submit_feedback 调用:**MUST** 携带首次响应中的 queryID
|
|
26
|
+
- 不传 queryID = 视为全新咨询(CLS 数据无法串联)
|
|
27
|
+
- 多 sub-question 迭代搜索时,每次都要带相同的 queryID
|
|
28
28
|
|
|
29
29
|
Workflow:
|
|
30
30
|
1. Call search_trtc_knowledge. Reuse the same queryID for all retries/searches in this consultation.
|
|
31
31
|
2. Draft the final answer from fragments. Include References from meta.references/doc_urls when available.
|
|
32
32
|
3. MUST call finalize_answer with the same prompt + queryID before replying.
|
|
33
33
|
4. Reply with: answer + finalize_answer follow-up text.
|
|
34
|
-
5. After finalize_answer follow-up, check the next user reply before any normal response. If it means Yes
|
|
34
|
+
5. After finalize_answer follow-up, check the next user reply before any normal response. If it means Yes/已解决/thanks/OK, MUST call submit_feedback(resolved="1") before replying. If it means No/未解决/still not working, MUST call submit_feedback(resolved="0") before replying. Never say feedback was submitted unless submit_feedback was called.
|
|
35
35
|
`.trim();
|
|
36
36
|
export function createServer() {
|
|
37
37
|
const server = new McpServer({
|
|
38
38
|
name: "Tencent RTC MCP Server",
|
|
39
|
-
version: "1.6.
|
|
39
|
+
version: "1.6.5",
|
|
40
40
|
}, {
|
|
41
41
|
instructions: SERVER_INSTRUCTIONS,
|
|
42
42
|
});
|
|
@@ -9,7 +9,7 @@ const registryFinalizeAnswerTool = (mcpServer) => {
|
|
|
9
9
|
prompt: z.string().describe(parameter_descriptions.prompt),
|
|
10
10
|
answer: z.string().describe(parameter_descriptions.answer),
|
|
11
11
|
product: z.array(z.enum(['chat', 'call', 'live', 'room', 'push', 'rtcengine', 'native_trtc_sdk'])).min(1).max(4).optional().describe(parameter_descriptions.product),
|
|
12
|
-
framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
|
|
12
|
+
framework: z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
|
|
13
13
|
queryID: z.string().describe(parameter_descriptions.queryID),
|
|
14
14
|
},
|
|
15
15
|
}, (params) => {
|
|
@@ -7,7 +7,7 @@ const PRODUCT_OPTIONS_MAP = {
|
|
|
7
7
|
},
|
|
8
8
|
call: {
|
|
9
9
|
title: 'Supported Call / CallKit platforms or frameworks',
|
|
10
|
-
options: ['react', 'vue', 'flutter', 'android', 'ios', 'uni-app'],
|
|
10
|
+
options: ['web', 'miniprogram', 'react', 'vue', 'flutter', 'android', 'ios', 'uni-app'],
|
|
11
11
|
},
|
|
12
12
|
live: {
|
|
13
13
|
title: 'Supported Live / LiveKit platforms or frameworks',
|
|
@@ -44,7 +44,7 @@ ${config.title}:
|
|
|
44
44
|
${options}
|
|
45
45
|
|
|
46
46
|
After the user replies (hard rule — do not skip):
|
|
47
|
-
- **Consultation / docs / API / component / feature lookup** → MUST call \`search_trtc_knowledge\` with **product +
|
|
47
|
+
- **Consultation / docs / API / component / feature lookup** → MUST call \`search_trtc_knowledge\` with **product + frameworks**
|
|
48
48
|
- **Write integration code into a project** → MUST call the matching \`get_*_integration\` tool`;
|
|
49
49
|
}
|
|
50
50
|
const registryPresentFrameworkChoiceTool = (mcpServer) => {
|
|
@@ -10,7 +10,7 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
|
|
|
10
10
|
inputSchema: {
|
|
11
11
|
prompt: z.string().describe(parameter_descriptions.prompt),
|
|
12
12
|
product: z.array(z.enum(['chat', 'call', 'live', 'room', 'push', 'rtcengine', 'native_trtc_sdk'])).min(1).max(4).optional().describe(parameter_descriptions.product),
|
|
13
|
-
|
|
13
|
+
frameworks: z.array(z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut'])).min(1).optional().describe(parameter_descriptions.frameworks),
|
|
14
14
|
queryID: z.string().describe(parameter_descriptions.queryID),
|
|
15
15
|
ide: z.string().describe(parameter_descriptions.ide),
|
|
16
16
|
types: z.array(z.enum([
|
|
@@ -26,14 +26,14 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
|
|
|
26
26
|
method: 'search_trtc_knowledge',
|
|
27
27
|
queryID: qid,
|
|
28
28
|
prompt: params.prompt,
|
|
29
|
-
framework: params.
|
|
29
|
+
framework: params.frameworks?.join(',') ?? '',
|
|
30
30
|
product: params.product ? params.product.join(',') : '',
|
|
31
31
|
ide: params.ide,
|
|
32
32
|
});
|
|
33
33
|
const response = searchKnowledge({
|
|
34
34
|
prompt: params.prompt,
|
|
35
35
|
product: params.product,
|
|
36
|
-
|
|
36
|
+
frameworks: params.frameworks,
|
|
37
37
|
types: params.types,
|
|
38
38
|
scenario: params.scenario,
|
|
39
39
|
limit: params.limit,
|
|
@@ -7,7 +7,7 @@ const registrySubmitFeedbackTool = (mcpServer) => {
|
|
|
7
7
|
description,
|
|
8
8
|
inputSchema: {
|
|
9
9
|
prompt: z.string().describe(parameter_descriptions.prompt),
|
|
10
|
-
framework: z.enum(['react', 'vue', 'web', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
|
|
10
|
+
framework: z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut']).optional().describe(parameter_descriptions.framework),
|
|
11
11
|
queryID: z.string().describe(parameter_descriptions.queryID),
|
|
12
12
|
resolved: z.enum(['0', '1']).describe(parameter_descriptions.resolved),
|
|
13
13
|
},
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { INTEGRATION_BOUNDARY_SUFFIX } from './integration-boundary.js';
|
|
2
|
+
const TOOL_DESCRIPTION = `
|
|
3
|
+
Purpose:
|
|
4
|
+
Return Native video live streaming integration docs based on TUILiveKit's preset UI components, for AI to complete out-of-the-box mobile (Android / iOS) video live streaming integration and code generation. Covers the live list page (audience entry), host streaming page, and audience watching page — all preset components with complete interactive UI and business logic (e.g. AnchorPrepareView, live list waterfall view, etc.).
|
|
5
|
+
|
|
6
|
+
Typical use cases (shared trigger words, may also match the 'get_native_livekit_core_integration' Core tool):
|
|
7
|
+
integrate LiveKit, TUILiveKit, video live streaming, live broadcast, host streaming, audience watching, live list, host page, watch page, live room list, Android, iOS
|
|
8
|
+
When a shared trigger word is matched, **proactively ask the user first**: "Would you like to quickly integrate with the default live streaming UI (TUILiveKit preset), or build a custom UI on top of Core SDK / AtomicXCore?" Call this tool only after the user chooses "default/preset"; call 'get_native_livekit_core_integration' if they choose "custom/Core".
|
|
9
|
+
|
|
10
|
+
Typical use cases (preset-only trigger words, match this tool exclusively, call directly without asking):
|
|
11
|
+
TUILiveKit, Native TUILiveKit, Native Live UIKit, preset, preset integration, preset UI, preset host page, preset watch page, preset live list, default live streaming UI, out-of-the-box live streaming UI, ready-made streaming page, already have a live streaming UI, TUILiveKit Android, TUILiveKit iOS, AnchorPrepareView
|
|
12
|
+
|
|
13
|
+
Input:
|
|
14
|
+
- framework: android | ios
|
|
15
|
+
- goals: feature module list (multi-select; results are organized in the order live_list → host_streaming → audience_streaming)
|
|
16
|
+
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
|
|
17
|
+
|
|
18
|
+
Returns:
|
|
19
|
+
- content: [{ type: 'text', text: documentation body (common environment setup / dependency integration for all platforms, plus integration steps and code for the selected feature pages) }]
|
|
20
|
+
|
|
21
|
+
Boundaries:
|
|
22
|
+
- This tool is for **video live streaming (live)** scenarios only. Voice room (voice / audio room / seat) is **out of scope** — for that use 'get_native_livekit_core_integration' instead, or inform the user preset UI is not yet supported for voice room
|
|
23
|
+
- framework only supports android | ios (TUILiveKit video live streaming preset UI has no flutter / uni-app docs yet — for that use 'get_native_livekit_core_integration' instead, or inform the user it is not supported)
|
|
24
|
+
- If the user has not specified a platform, call 'present_framework_choice' first
|
|
25
|
+
- If the user has explicitly indicated Core-specific trigger words such as "custom UI", "Core SDK", "AtomicXCore", "LiveCoreView", or "build my own live page", call 'get_native_livekit_core_integration' directly instead of this tool
|
|
26
|
+
- Covers full page integration for host streaming / audience watching / live list only. Not responsible for co-guest, PK, gifts, barrage, beauty, or audio effects extensions (use 'search_trtc_knowledge' for those)
|
|
27
|
+
${INTEGRATION_BOUNDARY_SUFFIX}
|
|
28
|
+
`;
|
|
29
|
+
const PARAMETER_DESCRIPTIONS = {
|
|
30
|
+
framework: 'Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios.',
|
|
31
|
+
goals: 'Feature list (multi-select). Allowed values: live_list (live list page, audience entry) | host_streaming (host streaming page) | audience_streaming (audience watching page). A complete mobile live streaming app usually needs live_list + host_streaming + audience_streaming.',
|
|
32
|
+
prompt: "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.",
|
|
33
|
+
};
|
|
34
|
+
export const GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION = {
|
|
35
|
+
name: 'get_native_live_uikit_integration',
|
|
36
|
+
description: TOOL_DESCRIPTION,
|
|
37
|
+
parameter_descriptions: PARAMETER_DESCRIPTIONS,
|
|
38
|
+
};
|
|
39
|
+
// UI text shown to the AI (headings / sections / not-found hints).
|
|
40
|
+
// The tool implementation (get_native_live_uikit_integration.ts) stays byte-identical between
|
|
41
|
+
// zh/en and is auto-synced by sync-tools.js; this UI_TEXT block is the only per-locale text
|
|
42
|
+
// that must be maintained separately for en.
|
|
43
|
+
export const GET_NATIVE_LIVE_UIKIT_INTEGRATION_UI_TEXT = {
|
|
44
|
+
goalTitles: {
|
|
45
|
+
live_list: 'Live List Page (TUILiveKit Preset UI)',
|
|
46
|
+
host_streaming: 'Host Streaming Page (TUILiveKit Preset UI)',
|
|
47
|
+
audience_streaming: 'Audience Watching Page (TUILiveKit Preset UI)',
|
|
48
|
+
},
|
|
49
|
+
headerTitle: '# TUILiveKit Video Live Streaming (Native Preset UI) Integration Guide',
|
|
50
|
+
platformLabel: 'Platform',
|
|
51
|
+
selectedFeaturesLabel: 'Selected Features',
|
|
52
|
+
labelSeparator: ': ',
|
|
53
|
+
listSeparator: ', ',
|
|
54
|
+
headerNotes: [
|
|
55
|
+
'The environment setup and dependency integration steps common to all platforms are given below first, followed by the integration code for each selected feature page.',
|
|
56
|
+
'Strictly follow the class names, package names, and import paths in the documentation when generating code. Do not fabricate APIs.',
|
|
57
|
+
],
|
|
58
|
+
prepareSectionTitle: (framework) => `Environment Setup and Code Integration (${framework} prerequisites)`,
|
|
59
|
+
prepareSectionFallback: '## Environment Setup and Code Integration\n\n> No preparation documentation found for this platform.',
|
|
60
|
+
goalNotFound: (framework) => `No integration documentation found for this feature on the ${framework} platform. Please confirm whether the goal and platform are supported, or use search_trtc_knowledge instead.`,
|
|
61
|
+
};
|
|
@@ -4,11 +4,11 @@ Purpose:
|
|
|
4
4
|
Return Native LiveKit Core base-integration docs based on AtomicXCore SDK for publishing, viewing, and room-list flows in live streaming or voice room apps.
|
|
5
5
|
|
|
6
6
|
Typical use cases:
|
|
7
|
-
Native LiveKit Core, AtomicXCore, no-UI SDK, core SDK, live streaming, voice room, publish, watch, room list, Android, iOS, Flutter,
|
|
7
|
+
Native LiveKit Core, AtomicXCore, no-UI SDK, core SDK, live streaming, voice room, publish, watch, room list, Android, iOS, Flutter, live, voice, set up the base live flow, set up the base voice room flow
|
|
8
8
|
|
|
9
9
|
Input:
|
|
10
10
|
- scenario: live | voice
|
|
11
|
-
- framework: android | ios | flutter
|
|
11
|
+
- framework: android | ios | flutter
|
|
12
12
|
- goals: feature module list
|
|
13
13
|
- prompt: The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.
|
|
14
14
|
|
|
@@ -23,7 +23,7 @@ ${INTEGRATION_BOUNDARY_SUFFIX}
|
|
|
23
23
|
`;
|
|
24
24
|
const PARAMETER_DESCRIPTIONS = {
|
|
25
25
|
scenario: 'Scenario type. Allowed values: live | voice. Use integration for publishing, viewing, or room list. Use search_trtc_knowledge for co-guest, PK, member list, beauty, audio effects, barrage, or gifts.',
|
|
26
|
-
framework: 'Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios | flutter
|
|
26
|
+
framework: 'Target platform. The parameter name must be framework. Do not use platform. Allowed values: android | ios | flutter.',
|
|
27
27
|
goals: 'Feature list. Allowed values: host_streaming (host publish) | audience_streaming (audience watch) | live_list (room list).',
|
|
28
28
|
prompt: "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.",
|
|
29
29
|
};
|
|
@@ -3,7 +3,7 @@ Purpose:
|
|
|
3
3
|
Guide the user to pick a supported platform or framework when the request does not clearly specify one, before continuing with search_trtc_knowledge or an integration tool.
|
|
4
4
|
|
|
5
5
|
Typical use cases:
|
|
6
|
-
platform choice, framework choice, pick a platform first, pick a framework first, platform not specified, framework not specified, integration guide, setup docs, quick start, API lookup, component lookup, feature lookup, how to configure, Chat UIKit integration, Call UIKit integration, Live UIKit integration, Room UIKit integration, CallKit API, LiveKit API, WebRTC SDK integration, Native TRTC SDK integration, react, vue, uni-app, flutter, android, ios, webrtc
|
|
6
|
+
platform choice, framework choice, pick a platform first, pick a framework first, platform not specified, framework not specified, integration guide, setup docs, quick start, API lookup, component lookup, feature lookup, how to configure, Chat UIKit integration, Call UIKit integration, Live UIKit integration, Room UIKit integration, CallKit API, LiveKit API, WebRTC SDK integration, Native TRTC SDK integration, react, vue, web, miniprogram, uni-app, flutter, android, ios, webrtc
|
|
7
7
|
|
|
8
8
|
Trigger examples:
|
|
9
9
|
- Get the Chat UIKit integration guide (React/Vue not specified)
|
|
@@ -19,7 +19,7 @@ Returns:
|
|
|
19
19
|
|
|
20
20
|
Boundaries:
|
|
21
21
|
- This tool only collects the platform or framework choice. It does not return documentation content.
|
|
22
|
-
- **Consultation chain (hard rule)**: API / component / feature / client troubleshooting / integration lookup without a platform -> MUST call this tool first, then search_trtc_knowledge with **product +
|
|
22
|
+
- **Consultation chain (hard rule)**: API / component / feature / client troubleshooting / integration lookup without a platform -> MUST call this tool first, then search_trtc_knowledge with **product + frameworks**; do not skip.
|
|
23
23
|
- **Codegen chain (hard rule)**: user wants integration code in a project but platform is unclear -> MUST call this tool first, then the matching get_*_integration tool.
|
|
24
24
|
- Cross-platform general questions (billing, server REST, UserSig principles) unrelated to a single client -> search_trtc_knowledge directly without this tool (product still MUST be inferred from the prompt).
|
|
25
25
|
`;
|
|
@@ -5,9 +5,9 @@ For Tencent RTC documentation lookup (Chat / Call / Live / Room / Push / Web TRT
|
|
|
5
5
|
push: TIMPush / push / vendor channel / FCM / Huawei / Xiaomi / OPPO (not chat) | chat: conversation / TUIKit / IM / theme
|
|
6
6
|
call: CallKit | live: LiveKit | room: RoomKit / meeting | rtcengine: Web TRTC | native_trtc_sdk: TRTCCloud | cross-domain: ["push","chat"]
|
|
7
7
|
|
|
8
|
-
**
|
|
8
|
+
**frameworks** (same decision order as requires-framework.ts):
|
|
9
9
|
If provided -> search. If response is needs_framework -> call present_framework_choice, then retry.
|
|
10
|
-
chat + error code / ERR_ -> ask platform first | native_trtc_sdk -> MUST
|
|
10
|
+
chat + error code / ERR_ -> ask platform first | native_trtc_sdk -> MUST include one of android / ios / c++ | rtcengine -> implicit web
|
|
11
11
|
push: vendor name alone is not a platform (framework optional); enablement / console / vendor config may omit framework; if android / ios / flutter etc. appear -> MUST pass framework
|
|
12
12
|
billing / REST / Webhook / UserSig -> framework optional | if types only contain server_api / webhook / product -> framework optional
|
|
13
13
|
console / product capability config (multi-device login, login policy, message storage, console settings) -> types=["product"], not feature; even if Agent passes feature, runtime treats as cross-platform product config
|
|
@@ -19,14 +19,14 @@ if types include api / component / feature / plugin / sdk / integration -> frame
|
|
|
19
19
|
|
|
20
20
|
**L0/L1**: For local fragments, answer only from the returned text. For chat/urls/ results, fetch the official URL before stating facts. Never invent content.
|
|
21
21
|
|
|
22
|
-
**Returns**: status, confidence, fragments(doc_urls), meta.references/exact_hits, top_score/second_score, queryID, message.
|
|
22
|
+
**Returns**: status, confidence, fragments(doc_urls), meta.references/exact_hits, top_score/second_score, queryID, message, meta.answer_contract. The answer MUST strictly follow answer_contract (conclusion first, user-actionable, make unconfirmed points explicit); do not spell out the evidence chain in the body, and never output system jargon such as "matched fragments / search results / confidence", but keep a "References" section at the end listing references/doc_urls.
|
|
23
23
|
|
|
24
24
|
**Post-answer workflow**: After the final answer is drafted, MUST call \`finalize_answer\` with the same prompt + queryID before replying. Append its follow-up text. On explicit follow-up feedback, call \`submit_feedback\`.
|
|
25
25
|
`;
|
|
26
26
|
const PARAMETER_DESCRIPTIONS = {
|
|
27
27
|
prompt: "The user's original question in full. Keep the full context. Do not compress it into keywords or a short summary.",
|
|
28
|
-
product: 'Product array: chat | call | live | room | push | rtcengine | native_trtc_sdk. If inferable, MUST pass it. Push takes priority for TIMPush / push topics and must not be misrouted to chat. If uncertain, ask the user first.',
|
|
29
|
-
|
|
28
|
+
product: 'Product array: chat | call | live | room | push | rtcengine | native_trtc_sdk. If inferable, MUST pass it. Push takes priority for TIMPush / push topics and must not be misrouted to chat. Common live keywords: LiveKit / live streaming / voice room / TUILiveKit / AtomicXCore / host streaming / watch live. If uncertain, ask the user first.',
|
|
29
|
+
frameworks: 'Platform array: react | vue | web | miniprogram | android | ios | flutter | c++ | uni-app | harmonyos | react-native | unity | unreal-engine | donut. Multiple platforms can be passed for cross-platform lookup. For CallKit, TUICallKit is best searched separately by react/vue, while TUICallEngine/TUICallEvent still map to web; use miniprogram for Mini Program. harmonyos / react-native / unity / unreal-engine / donut are only valid for push.',
|
|
30
30
|
types: 'Usually omit. Allowed values: integration | component | feature | api | plugin | sdk | faq | error_code | product | server_api | webhook. component and feature are equivalent (match both). Discovery/listing questions ("what components are available") MUST omit types. Console/billing/product-capability config -> product (not feature). Do not proactively over-narrow.',
|
|
31
31
|
scenario: 'live | voice. Only valid for the live product.',
|
|
32
32
|
queryID: "First call: ''. Follow-up calls in the same consultation MUST pass through the original queryID returned by the server.",
|
package/tools/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { registryGetNativeCallKitCoreIntegrationTool } from './call/get_native_c
|
|
|
14
14
|
// live
|
|
15
15
|
import { registryGetWebLiveUIKitIntegrationTool } from './live/get_web_live_uikit_integration.js';
|
|
16
16
|
import { registryGetNativeLiveKitCoreIntegrationTool } from './live/get_native_livekit_core_integration.js';
|
|
17
|
+
import { registryGetNativeLiveUIKitIntegrationTool } from './live/get_native_live_uikit_integration.js';
|
|
17
18
|
// room
|
|
18
19
|
import { registryGetWebRoomUIKitIntegrationTool } from './room/get_web_room_uikit_integration.js';
|
|
19
20
|
import { registryGetWebRoomCoreIntegrationTool } from './room/get_web_room_core_integration.js';
|
|
@@ -33,6 +34,7 @@ function registryTools(mcpServer) {
|
|
|
33
34
|
// live
|
|
34
35
|
registryGetWebLiveUIKitIntegrationTool(mcpServer);
|
|
35
36
|
registryGetNativeLiveKitCoreIntegrationTool(mcpServer);
|
|
37
|
+
registryGetNativeLiveUIKitIntegrationTool(mcpServer);
|
|
36
38
|
// room
|
|
37
39
|
registryGetWebRoomUIKitIntegrationTool(mcpServer);
|
|
38
40
|
registryGetWebRoomCoreIntegrationTool(mcpServer);
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION, GET_NATIVE_LIVE_UIKIT_INTEGRATION_UI_TEXT as UI_TEXT, } from '../definitions/get_native_live_uikit_integration_def.js';
|
|
3
|
+
import { getIntegrationContent } from '../../utils/get-doc-content.js';
|
|
4
|
+
import { reportCLSClient } from '../../utils/report-cls-client.js';
|
|
5
|
+
// goal → 直播列表/开播/观看对应的 preset 文档文件名(均在 livekit/preset/live/{framework}/ 下)
|
|
6
|
+
// 展示文案(title)统一从 UI_TEXT.goalTitles 取,做到 zh/en 按 locale 差异化。
|
|
7
|
+
const GOAL_FILE = {
|
|
8
|
+
host_streaming: 'live-host-integration.md',
|
|
9
|
+
audience_streaming: 'live-audience-integration.md',
|
|
10
|
+
live_list: 'live-list-integration.md',
|
|
11
|
+
};
|
|
12
|
+
// 观众进直播间需要先有列表入口;固定的推荐阅读顺序,保证多 goal 时输出结构稳定
|
|
13
|
+
const GOAL_ORDER = ['live_list', 'host_streaming', 'audience_streaming'];
|
|
14
|
+
const DOC_NOT_FOUND = 'Not found relevant documents';
|
|
15
|
+
function getResultText(params) {
|
|
16
|
+
const { framework = '', goals = [], prompt = '' } = params;
|
|
17
|
+
// 去重 + 稳定排序,避免同一 goal 传多次导致重复正文
|
|
18
|
+
const uniqueGoals = GOAL_ORDER.filter((goal) => goals.includes(goal));
|
|
19
|
+
reportCLSClient({
|
|
20
|
+
method: 'get_native_live_uikit_integration',
|
|
21
|
+
prompt,
|
|
22
|
+
framework,
|
|
23
|
+
info: `live:${uniqueGoals.join(',')}`,
|
|
24
|
+
});
|
|
25
|
+
const prepareContent = getIntegrationContent(['livekit', 'preset', 'live', framework, 'prepare-integration.md']);
|
|
26
|
+
const sections = uniqueGoals.map((goal) => {
|
|
27
|
+
const title = UI_TEXT.goalTitles[goal];
|
|
28
|
+
const file = GOAL_FILE[goal];
|
|
29
|
+
const content = getIntegrationContent(['livekit', 'preset', 'live', framework, file]);
|
|
30
|
+
if (!content || content === DOC_NOT_FOUND) {
|
|
31
|
+
return `## ${title}\n\n> ${UI_TEXT.goalNotFound(framework)}`;
|
|
32
|
+
}
|
|
33
|
+
return `## ${title}\n\n${content}`;
|
|
34
|
+
});
|
|
35
|
+
const header = [
|
|
36
|
+
UI_TEXT.headerTitle,
|
|
37
|
+
`- ${UI_TEXT.platformLabel}${UI_TEXT.labelSeparator}${framework}`,
|
|
38
|
+
`- ${UI_TEXT.selectedFeaturesLabel}${UI_TEXT.labelSeparator}${uniqueGoals.map((g) => UI_TEXT.goalTitles[g]).join(UI_TEXT.listSeparator)}`,
|
|
39
|
+
...UI_TEXT.headerNotes.map((note) => `- ${note}`),
|
|
40
|
+
].join('\n');
|
|
41
|
+
const prepareSection = (!prepareContent || prepareContent === DOC_NOT_FOUND)
|
|
42
|
+
? UI_TEXT.prepareSectionFallback
|
|
43
|
+
: `## ${UI_TEXT.prepareSectionTitle(framework)}\n\n${prepareContent}`;
|
|
44
|
+
return [header, prepareSection, '---', ...sections].join('\n\n');
|
|
45
|
+
}
|
|
46
|
+
const registryGetNativeLiveUIKitIntegrationTool = (mcpServer) => {
|
|
47
|
+
const { name, description, parameter_descriptions } = GET_NATIVE_LIVE_UIKIT_INTEGRATION_DEFINITION;
|
|
48
|
+
mcpServer.registerTool(name, {
|
|
49
|
+
description,
|
|
50
|
+
inputSchema: {
|
|
51
|
+
framework: z.enum(['android', 'ios']).describe(parameter_descriptions.framework),
|
|
52
|
+
goals: z
|
|
53
|
+
.array(z.enum(['live_list', 'host_streaming', 'audience_streaming']))
|
|
54
|
+
.min(1)
|
|
55
|
+
.describe(parameter_descriptions.goals),
|
|
56
|
+
prompt: z.string().describe(parameter_descriptions.prompt),
|
|
57
|
+
},
|
|
58
|
+
}, (params) => {
|
|
59
|
+
return {
|
|
60
|
+
content: [
|
|
61
|
+
{
|
|
62
|
+
type: 'text',
|
|
63
|
+
text: getResultText(params),
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
export { registryGetNativeLiveUIKitIntegrationTool };
|
|
@@ -5,15 +5,15 @@ import { reportCLSClient } from '../../utils/report-cls-client.js';
|
|
|
5
5
|
function generatePathMap(scenario, framework) {
|
|
6
6
|
if (scenario === 'live') {
|
|
7
7
|
return {
|
|
8
|
-
'host_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, '
|
|
9
|
-
'audience_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, '
|
|
10
|
-
'live_list': ['livekit', 'core-sdk', '
|
|
8
|
+
'host_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'integration.md'],
|
|
9
|
+
'audience_streaming': ['livekit', 'core-sdk', 'live', `${framework}`, 'integration.md'],
|
|
10
|
+
'live_list': ['livekit', 'core-sdk', 'features', `${framework}`, 'live-list.md']
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
return {
|
|
14
|
-
'host_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, '
|
|
15
|
-
'audience_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, '
|
|
16
|
-
'live_list': ['livekit', 'core-sdk', '
|
|
14
|
+
'host_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'integration.md'],
|
|
15
|
+
'audience_streaming': ['livekit', 'core-sdk', 'voice', `${framework}`, 'integration.md'],
|
|
16
|
+
'live_list': ['livekit', 'core-sdk', 'features', `${framework}`, 'live-list.md']
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
async function getResultText(params) {
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
## TUICallKit (Includes UI Components)
|
|
2
|
-
|
|
3
|
-
TUICallKit is an audio and video call component that **includes a UI component**. You can quickly implement a WhatsApp-like audio and video calling scenario with this component.
|
|
4
|
-
|
|
5
|
-
|API|Description|
|
|
6
|
-
|---------|---------|
|
|
7
|
-
|[init](https://www.tencentcloud.com/document/product/647/51015#init)|Initialize TUICallKit.|
|
|
8
|
-
|[calls](https://www.tencentcloud.com/document/product/647/51015#calls)|Initiate a one-to-one or multi-person call.|
|
|
9
|
-
|[join](https://www.tencentcloud.com/document/product/647/51015#join)|Proactively join a call.|
|
|
10
|
-
|[setCallingBell](https://www.tencentcloud.com/document/product/647/51015#setCallingBell)|Customize user's ringtone.|
|
|
11
|
-
|[setSelfInfo](https://www.tencentcloud.com/document/product/647/51015#setSelfInfo)|Set your own nickname and avatar.|
|
|
12
|
-
|[enableMuteMode](https://www.tencentcloud.com/document/product/647/51015#enableMuteMode)|Turn on/off ringtone.|
|
|
13
|
-
|[enableFloatWindow](https://www.tencentcloud.com/document/product/647/51015#enableFloatWindow)|Turn on/off the floating window function.|
|
|
14
|
-
|[enableVirtualBackground](https://www.tencentcloud.com/document/product/647/51015#enableVirtualBackground)|Turn on/off the blurred background function button.|
|
|
15
|
-
|[setLanguage](https://www.tencentcloud.com/document/product/647/51015#setLanguage)|Set the call language for the TUICallKit component.|
|
|
16
|
-
|[hideFeatureButton](https://www.tencentcloud.com/document/product/647/51015#hideFeatureButton)|Hidden Button.|
|
|
17
|
-
|[setLocalViewBackgroundImage](https://www.tencentcloud.com/document/product/647/51015#setLocalViewBackgroundImage)|Set the background image for the local user's call interface.|
|
|
18
|
-
|[setRemoteViewBackgroundImage](https://www.tencentcloud.com/document/product/647/51015#setRemoteViewBackgroundImage)|Set the background image for the remote user's call interface.|
|
|
19
|
-
|[setLayoutMode](https://www.tencentcloud.com/document/product/647/51015#setLayoutMode)|Set the call interface layout mode.|
|
|
20
|
-
|[setCameraDefaultState](https://www.tencentcloud.com/document/product/647/51015#setCameraDefaultState)|Set whether the camera is opened by default.|
|
|
21
|
-
|[destroyed](https://www.tencentcloud.com/document/product/647/51015#destroyed)|Destroy TUICallKit.|
|
|
22
|
-
|[getTUICallEngineInstance](https://www.tencentcloud.com/document/product/647/51015#getTUICallEngineInstance)|Get TUICallEngine instance.|
|
|
23
|
-
|
|
24
|
-
## TUICallEngine (No UI)
|
|
25
|
-
|
|
26
|
-
TUICallEngine API is an audio and video call component that **offers a No UI interface**. You can use this set of APIs to custom encapsulate according to your business needs.
|
|
27
|
-
|
|
28
|
-
|API|Description|
|
|
29
|
-
|---------|---------|
|
|
30
|
-
|[createInstance](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#.createInstance)|Creating a TUICallEngine Instance (Singleton Pattern)|
|
|
31
|
-
|[destroyInstance](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#destroyInstance)|Terminating a TUICallEngine Instance (Singleton Pattern)|
|
|
32
|
-
|[on](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#on)|Listening on events|
|
|
33
|
-
|[off](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#off)|Canceling Event Listening|
|
|
34
|
-
|[login](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#login)|Sign in Interface|
|
|
35
|
-
|[logout](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#logout)|Logout Interface|
|
|
36
|
-
|[setSelfInfo](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setSelfInfo)|Configure the user's nickname and profile photo|
|
|
37
|
-
|[calls](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#calls)|Initiate a one-on-one call|
|
|
38
|
-
|[join](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#join)|Proactively join a call.|
|
|
39
|
-
|[accept](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#accept)|Answer Calls|
|
|
40
|
-
|[reject](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#reject)|Decline Call|
|
|
41
|
-
|[hangup](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#hangup)|End Calls|
|
|
42
|
-
|[startRemoteView](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#startRemoteView)|Initiate Remote Screen Rendering|
|
|
43
|
-
|[stopRemoteView](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#stopRemoteView)|Stop Remote Screen Rendering|
|
|
44
|
-
|[openCamera](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#openCamera)|Enable the camera|
|
|
45
|
-
|[closeCamera](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#closeCamera)|Turn Off Camera|
|
|
46
|
-
|[switchCamera](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#switchCamera)|Switch between front and rear cameras, note: only supported on mobile devices.|
|
|
47
|
-
|[openMicrophone](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#openMicrophone)|Enable Microphone|
|
|
48
|
-
|[closeMicrophone](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#closeMicrophone)|Turn off the microphone|
|
|
49
|
-
|[setVideoQuality](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setVideoQuality)|Set video quality|
|
|
50
|
-
|[getDeviceList](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#getDeviceList)|Access device list|
|
|
51
|
-
|[switchDevice](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#switchDevice)|Switch camera or microphone devices|
|
|
52
|
-
|[enableMultiDeviceAbility](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#enableMultiDeviceAbility)|Turn on/off the multi-device login mode of TUICallEngine.|
|
|
53
|
-
|[setBlurBackground](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setBlurBackground)|Switch/set background blur|
|
|
54
|
-
|[setVirtualBackground](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setVirtualBackground)|Switch/set image background blur|
|
|
55
|
-
|
|
56
|
-
## Event Types
|
|
57
|
-
|
|
58
|
-
TUICallEvent is the callback event class corresponding to TUICallEngine. Through this callback, you can listen to the callback events of interest.
|
|
59
|
-
|
|
60
|
-
|EVENT|Description|
|
|
61
|
-
|---------|---------|
|
|
62
|
-
|[TUICallEvent.ERROR](https://www.tencentcloud.com/document/product/647/51017#error)|An error occurred during the call.|
|
|
63
|
-
|[TUICallEvent.KICKED_OUT](https://www.tencentcloud.com/document/product/647/51017#kicked_out)|Receiving this event after a duplicate sign-in indicates that the user has been removed from the room|
|
|
64
|
-
|[TUICallEvent.USER_ACCEPT](https://www.tencentcloud.com/document/product/647/51017#user_accept)|If a user answers, this event will be received.** v4.x.x is deprecated**|
|
|
65
|
-
|[TUICallEvent.USER_ENTER](https://www.tencentcloud.com/document/product/647/51017#user_enter)|A user joined the call.|
|
|
66
|
-
|[TUICallEvent.USER_LEAVE](https://www.tencentcloud.com/document/product/647/51017#user_leave)|A user left the call.|
|
|
67
|
-
|[TUICallEvent.REJECT](https://www.tencentcloud.com/document/product/647/51017#reject)|A user declined the call.|
|
|
68
|
-
|[TUICallEvent.NO_RESP](https://www.tencentcloud.com/document/product/647/51017#no_resp)|A user didn't respond.|
|
|
69
|
-
|[TUICallEvent.LINE_BUSY](https://www.tencentcloud.com/document/product/647/51017#line_busy)|A user was busy.|
|
|
70
|
-
|[TUICallEvent.USER_VIDEO_AVAILABLE](https://www.tencentcloud.com/document/product/647/51017#user_video_available)|Whether a user has a video stream.|
|
|
71
|
-
|[TUICallEvent.USER_AUDIO_AVAILABLE](https://www.tencentcloud.com/document/product/647/51017#user_audio_available)|Whether a user has an audio stream.|
|
|
72
|
-
|[TUICallEvent.USER_VOICE_VOLUME](https://www.tencentcloud.com/document/product/647/51017#user_voice_volume)|The volume levels of all users.|
|
|
73
|
-
|TUICallEvent.ON_CALL_BEGIN|Call connected event|
|
|
74
|
-
|TUICallEvent.ON_CALL_RECEIVED|Call request event|
|
|
75
|
-
|TUICallEvent.ON_CALL_CONNECTED|Call not connected event|
|
|
76
|
-
|TUICallEvent.ON_CALL_END|The call ended.|
|
|
77
|
-
|[TUICallEvent.DEVICED_UPDATED](https://www.tencentcloud.com/document/product/647/51017#deviced_updated)|Device list update, this event will be received|
|
|
78
|
-
|TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED|All user network quality events|
|
|
79
|
-
|
|
80
|
-
## Document Link
|
|
81
|
-
- [TUICallEngine](https://www.tencentcloud.com/document/product/647/51016)
|
|
82
|
-
|
|
83
|
-
- [TUICallEvent](https://www.tencentcloud.com/document/product/647/51017)
|