@tencent-rtc/mcp 1.6.7 → 1.7.0
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/CHANGELOG.md +25 -0
- package/README.md +53 -39
- package/knowledge/build-index.js +31 -4
- package/knowledge/chunker.js +82 -14
- package/knowledge/chunking-policy.js +100 -0
- package/knowledge/content-loader.js +3 -1
- package/knowledge/frontmatter-meta.js +167 -0
- package/knowledge/path-meta.js +28 -6
- package/knowledge/search/exact-lookup.js +9 -227
- package/knowledge/search/filter-pool.js +17 -26
- package/knowledge/search/framework-fallback.js +22 -0
- package/knowledge/search/intent-router.js +13 -0
- package/knowledge/search/query-normalizer.js +129 -0
- package/knowledge/search/search-core.js +391 -0
- package/knowledge/search/search-knowledge.js +351 -323
- package/knowledge/search/search-message.js +87 -0
- package/knowledge/search/search-pass.js +428 -0
- package/knowledge/search/search-types.js +1 -0
- package/knowledge/search/url-row-scorer.js +258 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/_schema/query-normalization.yaml +9 -0
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +3 -14
- package/resource/integration/callkit/preset/flutter/integration.md +1 -12
- package/resource/integration/callkit/preset/ios/integration.md +2 -12
- package/resource/integration/callkit/preset/react/integration.md +1 -14
- package/resource/integration/callkit/preset/vue/integration.md +1 -14
- package/resource/integration/chat/preset/android/integration.md +6 -13
- package/resource/integration/chat/preset/flutter/integration.md +1 -8
- package/resource/integration/chat/preset/ios/integration.md +4 -12
- package/resource/integration/chat/preset/react/integration.md +6 -16
- package/resource/integration/chat/preset/vue/integration.md +0 -9
- package/resource/integration/livekit/preset/live/android/live-audience-integration.md +2 -6
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +1 -11
- package/resource/integration/livekit/preset/live/android/live-list-integration.md +2 -6
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +2 -7
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +2 -7
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +1 -13
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +2 -10
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -8
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +0 -4
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +1 -5
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +2 -7
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +2 -8
- package/resource/integration/roomkit/preset/vue/integration.md +0 -11
- package/resource/knowledge/callkit/best-practice/callkit-miniprogram/uniapp-shrink.md +60 -0
- package/resource/knowledge/callkit/best-practice/common/call-autoplay-blocked.md +77 -0
- package/resource/knowledge/callkit/best-practice/common/call-message-in-chat.md +78 -0
- package/resource/knowledge/callkit/best-practice/common/call-vs-calls.md +110 -0
- package/resource/knowledge/callkit/best-practice/common/callengine-call-flow.md +123 -0
- package/resource/knowledge/callkit/best-practice/common/callengine-log-level.md +67 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-get-engine-instance.md +81 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-get-roomid.md +78 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-limitations.md +37 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-user-register-and-kicked.md +98 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +0 -7
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -8
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +1 -9
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +2 -8
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +2 -8
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -16
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -8
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -8
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -11
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +178 -200
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +195 -217
- package/resource/knowledge/callkit/faq/android.md +4 -14
- package/resource/knowledge/callkit/faq/common.md +0 -2
- package/resource/knowledge/callkit/faq/error-code.md +2 -4
- package/resource/knowledge/callkit/faq/ios.md +1 -4
- package/resource/knowledge/callkit/preset/android/api.md +0 -6
- package/resource/knowledge/callkit/preset/ios/api.md +0 -4
- package/resource/knowledge/callkit/preset/react/api.md +3 -4
- package/resource/knowledge/callkit/preset/vue/api.md +3 -4
- package/resource/knowledge/chat/best-practice/common/avchatroom-message-loss-diagnosis.md +65 -0
- package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md +62 -0
- package/resource/knowledge/chat/best-practice/common/image-message-url-lifecycle.md +59 -0
- package/resource/knowledge/chat/best-practice/common/login-repeat-2025-diagnosis.md +61 -0
- package/resource/knowledge/chat/best-practice/common/message-read-report-and-receipt.md +64 -0
- package/resource/knowledge/chat/best-practice/common/message-receive-event.md +65 -0
- package/resource/knowledge/chat/best-practice/common/message-risk-error-and-render.md +65 -0
- package/resource/knowledge/chat/best-practice/common/message-unread-count.md +71 -0
- package/resource/knowledge/chat/best-practice/miniprogram/audio-message-send.md +113 -0
- package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +63 -0
- package/resource/knowledge/chat/best-practice/miniprogram/media-upload-fail-diagnosis.md +64 -0
- package/resource/knowledge/chat/best-practice/web/audio-message-send.md +118 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +0 -5
- package/resource/knowledge/chat/preset/android/features/contact-list.md +0 -7
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -6
- package/resource/knowledge/chat/preset/android/features/language.md +0 -8
- package/resource/knowledge/chat/preset/android/features/message-input.md +0 -6
- package/resource/knowledge/chat/preset/android/features/message-list.md +0 -8
- package/resource/knowledge/chat/preset/android/features/search.md +0 -7
- package/resource/knowledge/chat/preset/android/features/theme.md +0 -4
- package/resource/knowledge/chat/preset/android-view/integration.md +0 -6
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +0 -4
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +0 -9
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -7
- package/resource/knowledge/chat/preset/flutter/features/language.md +0 -5
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +0 -6
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -8
- package/resource/knowledge/chat/preset/flutter/features/search.md +0 -5
- package/resource/knowledge/chat/preset/flutter/features/theme.md +0 -4
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +0 -5
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +0 -5
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -7
- package/resource/knowledge/chat/preset/ios/features/language.md +1 -8
- package/resource/knowledge/chat/preset/ios/features/message-input.md +0 -6
- package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -8
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -5
- package/resource/knowledge/chat/preset/ios/features/theme.md +0 -4
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +0 -6
- package/resource/knowledge/chat/preset/react/features/contact-list.md +0 -23
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +2 -11
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +4 -26
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +0 -6
- 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/chat/preset/vue/features/contact-list.md +3 -9
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +0 -3
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +2 -13
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +2 -3
- package/resource/knowledge/chat/preset/vue/features/conversation-search.md +1 -0
- package/resource/knowledge/chat/preset/vue/features/search.md +4 -3
- package/resource/knowledge/chat/urls/sdk/web.md +1 -1
- package/resource/knowledge/livekit/best-practice/android/voice-room-anchor-start.md +120 -0
- package/resource/knowledge/livekit/best-practice/common/admin-take-seat.md +73 -0
- package/resource/knowledge/livekit/best-practice/common/audience-leave-live.md +81 -0
- package/resource/knowledge/livekit/best-practice/common/voice-room-no-audio-troubleshoot.md +100 -0
- package/resource/knowledge/livekit/best-practice/common/voice-room-seat-list-change.md +65 -0
- package/resource/knowledge/livekit/best-practice/flutter/voice-room-anchor-start.md +122 -0
- package/resource/knowledge/livekit/best-practice/ios/voice-room-anchor-start.md +126 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/audio-effect.md +2 -3
- package/resource/knowledge/livekit/core-sdk/features/android/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -4
- package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +2 -4
- package/resource/knowledge/livekit/core-sdk/features/flutter/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audio-effect.md +2 -4
- package/resource/knowledge/livekit/core-sdk/features/ios/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -4
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/android/integration.md +1 -4
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -3
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +1 -4
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +0 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +1 -4
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -4
- package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +3 -6
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +1 -4
- package/resource/knowledge/livekit/faq/error-code.md +0 -1
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +3 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +3 -3
- package/resource/knowledge/push/api-reference/android.md +0 -1
- package/resource/knowledge/push/api-reference/harmonyos.md +0 -2
- package/resource/knowledge/push/api-reference/react-native.md +3 -5
- package/resource/knowledge/push/api-reference/uni-app.md +3 -5
- package/resource/knowledge/push/api-reference/unity.md +0 -1
- package/resource/knowledge/push/api-reference/unreal-engine.md +0 -1
- package/resource/knowledge/push/config/android.md +0 -24
- package/resource/knowledge/push/config/harmonyos.md +0 -1
- package/resource/knowledge/push/config/ios.md +0 -3
- package/resource/knowledge/push/config/react-native.md +0 -29
- package/resource/knowledge/push/config/unity.md +1 -24
- package/resource/knowledge/push/config/unreal-engine.md +1 -24
- package/resource/knowledge/push/integration/android.md +0 -14
- package/resource/knowledge/push/integration/flutter.md +0 -19
- package/resource/knowledge/push/integration/harmonyos.md +0 -2
- package/resource/knowledge/push/integration/ios.md +0 -3
- package/resource/knowledge/push/integration/react-native.md +0 -24
- package/resource/knowledge/push/integration/uni-app.md +1 -11
- package/resource/knowledge/push/integration/unity.md +0 -9
- package/resource/knowledge/push/integration/unreal-engine.md +1 -17
- package/resource/knowledge/roomkit/best-practice/common/room-ghost-member.md +70 -0
- package/resource/knowledge/roomkit/best-practice/common/room-limit-and-multi.md +83 -0
- package/resource/knowledge/roomkit/best-practice/common/room-screen-share-preview.md +83 -0
- package/resource/knowledge/roomkit/best-practice/common/room-status-after-all-leave.md +69 -0
- package/resource/knowledge/roomkit/best-practice/vue/room-uikit-vs-atomicx.md +111 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +1 -5
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +1 -5
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -6
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -11
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +1 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +1 -8
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -5
- package/resource/knowledge/roomkit/preset/android/integration.md +0 -4
- package/resource/knowledge/roomkit/preset/flutter/integration.md +1 -13
- package/resource/knowledge/roomkit/preset/ios/integration.md +0 -6
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -16
- package/resource/knowledge/rtcengine/web/api.md +1 -8
- package/resource/knowledge/rtcengine/web/faq.md +3 -5
- package/resource/knowledge/rtcengine/web/how_to_integrated_web_sdk.md +0 -6
- package/resource/knowledge/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/21-advanced-auto-play-policy.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/27-advanced-small-stream.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md +2 -0
- package/resource/knowledge/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -3
- package/resource/knowledge/rtcengine/web/plugin/34-advanced-proxy.md +2 -4
- package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -4
- package/resource/knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +8 -56
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +6 -7
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1 -18
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +0 -14
- package/resource/knowledge/trtc/android/TXDeviceManager.md +0 -1
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +7 -59
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +0 -14
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +0 -4
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1 -19
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +6 -7
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TRTCCloud.md +9 -60
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +6 -7
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1 -19
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +0 -13
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +0 -4
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
- package/server.js +27 -22
- package/tools/common/finalize_answer.js +9 -1
- package/tools/common/search_trtc_knowledge.js +3 -1
- package/tools/definitions/finalize_answer_def.js +2 -2
- package/tools/definitions/integration-boundary.js +2 -1
- package/tools/definitions/search_trtc_knowledge_def.js +2 -1
- package/utils/report-cls-client.js +3 -3
- package/utils/report-es-client.js +1 -1
- package/cursor-setting.png +0 -0
- package/mcp-server-prompt.png +0 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +0 -80
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +0 -24
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +0 -116
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +0 -445
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +0 -465
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +0 -16
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -230
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -797
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +0 -325
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +0 -325
|
@@ -59,7 +59,6 @@ Given that not all phones deliver excellent in-ear monitoring effects, we have b
|
|
|
59
59
|
|enable| `YES:` enable; `NO` : disable|
|
|
60
60
|
|
|
61
61
|
> **Note**
|
|
62
|
-
>
|
|
63
62
|
> In-ear monitoring can be enabled only when earphones are used. Please remind anchors to use wired earphones.
|
|
64
63
|
>
|
|
65
64
|
|
|
@@ -74,7 +73,6 @@ This API is used to set the volume of in-ear monitoring.
|
|
|
74
73
|
|volume|Volume. Value range: [0, 150]; default: 100|
|
|
75
74
|
|
|
76
75
|
> **Note**
|
|
77
|
-
>
|
|
78
76
|
> The volume of the ear monitor is one of the most important factors affecting the user experience. Considering that different users have different sensitivities to volume, it is strongly recommended to provide a ear monitor volume adjustment slider on the UI interface. The recommended adjustment range is between 0 and 150. The gain effect of 100-150 is very helpful for some Android phones with low recording volume.
|
|
79
77
|
>
|
|
80
78
|
|
|
@@ -85,7 +83,6 @@ This API is used to set the volume of in-ear monitoring.
|
|
|
85
83
|
This API is used to set reverb effects for human voice. For the effects supported, please see TXVoiceReverbType.
|
|
86
84
|
|
|
87
85
|
> **Note**
|
|
88
|
-
>
|
|
89
86
|
> Effects become invalid after room exit. If you want to use the same effect after you enter the room again, you need to set the effect again using this API.
|
|
90
87
|
>
|
|
91
88
|
|
|
@@ -96,7 +93,6 @@ This API is used to set reverb effects for human voice. For the effects supporte
|
|
|
96
93
|
This API is used to set voice changing effects. For the effects supported, please see TXVoiceChangeType.
|
|
97
94
|
|
|
98
95
|
> **Note**
|
|
99
|
-
>
|
|
100
96
|
> Effects become invalid after room exit. If you want to use the same effect after you enter the room again, you need to set the effect again using this API.
|
|
101
97
|
>
|
|
102
98
|
|
|
@@ -111,7 +107,6 @@ This API is used to set the volume of speech. It is often used together with the
|
|
|
111
107
|
|volume|Volume. Value range: [0, 150]; default: 100|
|
|
112
108
|
|
|
113
109
|
> **Note**
|
|
114
|
-
>
|
|
115
110
|
> If 100 is still not loud enough for you, you can set the volume to up to 150, but there may be side effects.
|
|
116
111
|
>
|
|
117
112
|
|
|
@@ -139,7 +134,6 @@ You must assign an ID to each music track so that you can start, stop, or set th
|
|
|
139
134
|
|startBlock|Callback of starting music|
|
|
140
135
|
|
|
141
136
|
> **Note**
|
|
142
|
-
>
|
|
143
137
|
> 1. If you play the same music track multiple times, please use the same ID instead of a separate ID for each playback.
|
|
144
138
|
>
|
|
145
139
|
> 2. If you want to play different music tracks at the same time, use different IDs for them.
|
|
@@ -185,7 +179,6 @@ This API is used to set the local and remote playback volume of background music
|
|
|
185
179
|
|volume|Volume. Value range: [0, 150]; default: 60|
|
|
186
180
|
|
|
187
181
|
> **Note**
|
|
188
|
-
>
|
|
189
182
|
> If 100 is still not loud enough for you, you can set the volume to up to 150, but there may be side effects.
|
|
190
183
|
>
|
|
191
184
|
|
|
@@ -201,7 +194,6 @@ This API is used to control the remote playback volume (the volume heard by audi
|
|
|
201
194
|
|volume|Volume. Value range: [0, 150]; default: 60|
|
|
202
195
|
|
|
203
196
|
> **Note**
|
|
204
|
-
>
|
|
205
197
|
> If 100 is still not loud enough for you, you can set the volume to up to 150, but there may be side effects.
|
|
206
198
|
>
|
|
207
199
|
|
|
@@ -217,7 +209,6 @@ This API is used to control the local playback volume (the volume heard by ancho
|
|
|
217
209
|
|volume|Volume. Value range: [0, 150]. default: 60|
|
|
218
210
|
|
|
219
211
|
> **Note**
|
|
220
|
-
>
|
|
221
212
|
> If 100 is still not loud enough for you, you can set the volume to up to 150, but there may be side effects.
|
|
222
213
|
>
|
|
223
214
|
|
|
@@ -271,7 +262,6 @@ The length of the specified music file is returned. -1 indicates failure to get
|
|
|
271
262
|
|pts|Unit: millisecond|
|
|
272
263
|
|
|
273
264
|
> **Note**
|
|
274
|
-
>
|
|
275
265
|
> Do not call this API frequently as the music file may be read and written to each time the API is called, which can be time-consuming.
|
|
276
266
|
>
|
|
277
267
|
> Wait till users finish dragging the progress bar before you call this API.
|
|
@@ -289,7 +279,6 @@ The length of the specified music file is returned. -1 indicates failure to get
|
|
|
289
279
|
|scratchSpeedRate|Scratch disc speed, the default value is 1.0f, the range is: a floating point number between [-12.0 ~ 12.0], the positive/negative speed value indicates the direction is positive/negative, and the absolute value indicates the speed.|
|
|
290
280
|
|
|
291
281
|
> **Note**
|
|
292
|
-
>
|
|
293
282
|
> Precondition preloadMusic succeeds.
|
|
294
283
|
>
|
|
295
284
|
|
|
@@ -304,7 +293,6 @@ You must assign an ID to each music track so that you can start, stop, or set th
|
|
|
304
293
|
|musicParam|Music parameter|
|
|
305
294
|
|
|
306
295
|
> **Note**
|
|
307
|
-
>
|
|
308
296
|
> 1. Preload supports up to 2 preloads with different IDs at the same time, and the preload time does not exceed 10 minutes,you need to call stopPlayMusic API after use, otherwise the memory will not be released.
|
|
309
297
|
>
|
|
310
298
|
> 2. If the music corresponding to the ID is being played, the preloading fails, and stopPlayMusic must be called first.
|
|
@@ -330,7 +318,6 @@ You must assign an ID to each music track so that you can start, stop, or set th
|
|
|
330
318
|
|index|Specify which track to play (the first track is played by default). Value range 0, total number of tracks).|
|
|
331
319
|
|
|
332
320
|
> **Note**
|
|
333
|
-
>
|
|
334
321
|
> The total number of tracks can be obtained through the [getMusicTrackCount interface.
|
|
335
322
|
>
|
|
336
323
|
|
|
@@ -125,7 +125,6 @@ This API can be used to achieve the following:
|
|
|
125
125
|
|position|The spot to focus on. Pass in the coordinates of the spot you want to focus on.|
|
|
126
126
|
|
|
127
127
|
> **Note**
|
|
128
|
-
>
|
|
129
128
|
> Before using this API, you must first disable auto focus using enableCameraAutoFocus.
|
|
130
129
|
>
|
|
131
130
|
|
|
@@ -164,7 +163,6 @@ If the audio route is set to the speaker, the volume is relatively high, and the
|
|
|
164
163
|
|type|Device type. Set it to the type of device you want to get. For details, please see the definition of TXMediaDeviceType.|
|
|
165
164
|
|
|
166
165
|
> **Note**
|
|
167
|
-
>
|
|
168
166
|
> - To ensure that the SDK can manage the lifecycle of the `ITXDeviceCollection` object, after using this API, please call the `release` method to release the resources.
|
|
169
167
|
> - Do not use `delete` to release the Collection object returned as deleting the ITXDeviceCollection* pointer will cause crash.
|
|
170
168
|
> - The valid values of `type` are `TXMediaDeviceTypeMic` , `TXMediaDeviceTypeSpeaker` , and `TXMediaDeviceTypeCamera` .
|
|
@@ -229,7 +227,6 @@ This API is used to set the microphone and speaker types. Camera following the s
|
|
|
229
227
|
**Starting camera testing (for desktop OS).**
|
|
230
228
|
|
|
231
229
|
> **Note**
|
|
232
|
-
>
|
|
233
230
|
> You can use the setCurrentDevice API to switch between cameras during testing.
|
|
234
231
|
>
|
|
235
232
|
|
|
@@ -248,7 +245,6 @@ This API is used to test whether the mic functions properly. The mic volume dete
|
|
|
248
245
|
|interval|Interval of volume callbacks, in milliseconds.|
|
|
249
246
|
|
|
250
247
|
> **Note**
|
|
251
|
-
>
|
|
252
248
|
> When this interface is called, the sound recorded by the microphone will be played back to the speakers by default.
|
|
253
249
|
>
|
|
254
250
|
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
| ERR_UNSUPPORTED_SAMPLERATE | -1306 | Unsupported audio sample rate. |
|
|
49
49
|
| ERR_SYSTEM_LOOPBACK_START_FAILED | -1307 | System audio loopback startup encountered an error. Common error reasons and solutions are: 1. The current system version does not support the include or excluded specified process loopback function, which requires Windows system version 10.0.19042 (20H2) or higher. For x64 specified path loopback function, it also requires Windows system version 10.0.19042 (20H2) or higher. Please check the current system version. 2. Invalid input parameters (including empty parameters, non-existent input paths, non-existent process IDs, and non-existent device names). Please check whether the input parameters are legal. 3. No available speaker device, please check whether it is available. |
|
|
50
50
|
| ERR_SYSTEM_LOOPBACK_THIRD_PARTY_APP_EXIT | -1324 | The third party app loopback capture encountered an error. This error occurred after the third party app loopback was successfully started. During the sound collection process, the specified process or application unexpectedly exited. Please check the status of the specified process or application and try again by re-entering the process number |
|
|
51
|
-
| ERR_TRTC_ENTER_ROOM_FAILED | -3301 | Failed to enter the room. For the reason
|
|
51
|
+
| ERR_TRTC_ENTER_ROOM_FAILED | -3301 | Failed to enter the room. For the reason. |
|
|
52
52
|
| ERR_TRTC_REQUEST_IP_TIMEOUT | -3307 | IP and signature request timed out. Check your network connection and whether your firewall allows UDP.<br>Try visiting the IP address 162.14.22.165:8000 or 162.14.6.105:8000 and the domain default-query.trtc.tencent-cloud.com:8000. |
|
|
53
53
|
| ERR_TRTC_CONNECT_SERVER_TIMEOUT | -3308 | Room entry request timed out. Check your network connection and whether VPN is used. You can also switch to 4G to run a test. |
|
|
54
54
|
| ERR_TRTC_ROOM_PARAM_NULL | -3316 | Empty room entry parameters. Please check whether valid parameters were passed in to the <code>enterRoom:appScene:</code> API. |
|
package/server.js
CHANGED
|
@@ -3,40 +3,45 @@ 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 searching Tencent RTC / Chat(IM) / Push(TIMPush)
|
|
6
|
+
- search_trtc_knowledge: Primary tool for searching Tencent RTC / Chat (IM) / Push (TIMPush) documentation.
|
|
7
7
|
Covers: Chat UIKit, CallKit, LiveKit, RoomKit, TRTC Native SDK, WebRTC/rtcEngine, TIMPush.
|
|
8
|
-
Use this tool FIRST for
|
|
9
|
-
Do NOT use web_search for questions
|
|
8
|
+
Use this tool FIRST for technical docs / FAQ / error codes / integration guide lookups.
|
|
9
|
+
Do NOT use web_search for questions answerable by this knowledge base.
|
|
10
10
|
|
|
11
|
-
**Product routing
|
|
12
|
-
- TIMPush /
|
|
13
|
-
-
|
|
14
|
-
- CallKit /
|
|
15
|
-
- TRTC Web SDK / rtcengine / WebRTC
|
|
16
|
-
- TRTCCloud / Native SDK
|
|
17
|
-
-
|
|
18
|
-
-
|
|
11
|
+
**Product routing (MUST infer product[] before calling search_trtc_knowledge):**
|
|
12
|
+
- TIMPush / push / vendor channel / FCM / APNs / Huawei / Xiaomi / OPPO / vivo -> product=["push"] (independent product; do not misroute to chat)
|
|
13
|
+
- conversation / TUIKit / ChatKit / Chat component / theme customization -> ["chat"]
|
|
14
|
+
- CallKit / call -> ["call"]; live streaming / voice room / LiveKit -> ["live"]; RoomKit / conference -> ["room"]
|
|
15
|
+
- TRTC Web SDK / rtcengine / WebRTC plugin -> ["rtcengine"]
|
|
16
|
+
- TRTCCloud / Native SDK (client side) -> ["native_trtc_sdk"]
|
|
17
|
+
- If both push and Chat are involved -> ["push","chat"]
|
|
18
|
+
- If product cannot be uniquely inferred from prompt -> ask user to clarify first; do NOT hard-search with empty product; do NOT use web_search.
|
|
19
19
|
|
|
20
|
-
**Frameworks
|
|
21
|
-
**When in doubt
|
|
20
|
+
**Frameworks:** If status=needs_framework, MUST call present_framework_choice first. See search_trtc_knowledge tool description decision table.
|
|
21
|
+
**When in doubt:** still prefer search_trtc_knowledge with best-guess product; if status is empty or low_confidence, then clarify or retry.
|
|
22
22
|
|
|
23
|
-
**queryID
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
23
|
+
**queryID passing rules (hard rule; violation breaks CLS trace continuity):**
|
|
24
|
+
- First search_trtc_knowledge call: no queryID required (defaults to empty); response JSON will include server-generated queryID.
|
|
25
|
+
- Every subsequent call to search_trtc_knowledge / finalize_answer / submit_feedback: MUST carry the first returned queryID.
|
|
26
|
+
- Missing queryID means a brand-new consultation (CLS data cannot be linked).
|
|
27
|
+
- For multi-sub-question iterative searches, always reuse the same 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
|
-
3. MUST call finalize_answer with the same prompt + queryID before replying.
|
|
33
|
-
4. Reply with: answer + finalize_answer follow-up text.
|
|
34
|
-
5. After finalize_answer follow-up,
|
|
32
|
+
3. MUST call finalize_answer with the same prompt + queryID before replying (pass an audit digest in "answer", not necessarily full long-form text).
|
|
33
|
+
4. Reply with: full user-visible answer + finalize_answer follow-up text.
|
|
34
|
+
5. After finalize_answer follow-up, inspect the next user reply before any normal response. If it means Yes/resolved/thanks/OK, MUST call submit_feedback(resolved="1") before replying. If it means No/unresolved/still not working, MUST call submit_feedback(resolved="0") before replying. Never claim feedback was submitted unless submit_feedback was actually called.
|
|
35
|
+
|
|
36
|
+
User-visible output rules (MUST):
|
|
37
|
+
- Internal routing/tool decisions are NEVER user-facing text.
|
|
38
|
+
- Before calling any tool, do NOT output prefacing planning text such as “should call... / call ... first / let me search first / this is a consultation task / not codegen”.
|
|
39
|
+
- If a tool call is needed, call it directly and then provide user-visible results only.
|
|
35
40
|
`.trim();
|
|
36
41
|
export function createServer() {
|
|
37
42
|
const server = new McpServer({
|
|
38
43
|
name: "Tencent RTC MCP Server",
|
|
39
|
-
version: "1.
|
|
44
|
+
version: "1.7.0",
|
|
40
45
|
}, {
|
|
41
46
|
instructions: SERVER_INSTRUCTIONS,
|
|
42
47
|
});
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { FINALIZE_ANSWER_DEFINITION, FOLLOWUP_QUESTION } from '../definitions/finalize_answer_def.js';
|
|
3
3
|
import { reportCLSClient } from '../../utils/report-cls-client.js';
|
|
4
|
+
const MAX_RECORDED_ANSWER_CHARS = 12000;
|
|
5
|
+
function sanitizeAnswerForRecord(answer) {
|
|
6
|
+
if (answer.length <= MAX_RECORDED_ANSWER_CHARS)
|
|
7
|
+
return answer;
|
|
8
|
+
const head = answer.slice(0, 9000);
|
|
9
|
+
const tail = answer.slice(-2500);
|
|
10
|
+
return `${head}\n\n[...truncated_for_record:${answer.length - (9000 + 2500)} chars omitted...]\n\n${tail}`;
|
|
11
|
+
}
|
|
4
12
|
const registryFinalizeAnswerTool = (mcpServer) => {
|
|
5
13
|
const { name, description, parameter_descriptions } = FINALIZE_ANSWER_DEFINITION;
|
|
6
14
|
mcpServer.registerTool(name, {
|
|
@@ -16,7 +24,7 @@ const registryFinalizeAnswerTool = (mcpServer) => {
|
|
|
16
24
|
reportCLSClient({
|
|
17
25
|
method: 'record_answer',
|
|
18
26
|
queryID: params.queryID,
|
|
19
|
-
answer: params.answer,
|
|
27
|
+
answer: sanitizeAnswerForRecord(params.answer),
|
|
20
28
|
prompt: params.prompt,
|
|
21
29
|
product: params.product ? params.product.join(',') : '',
|
|
22
30
|
framework: params.framework ?? '',
|
|
@@ -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
|
-
frameworks: z.array(z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut'])).
|
|
13
|
+
frameworks: z.array(z.enum(['react', 'vue', 'web', 'miniprogram', 'android', 'ios', 'flutter', 'c++', 'uni-app', 'harmonyos', 'react-native', 'unity', 'unreal-engine', 'donut'])).default([]).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([
|
|
@@ -19,6 +19,7 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
|
|
|
19
19
|
])).optional().describe(parameter_descriptions.types),
|
|
20
20
|
scenario: z.enum(['live', 'voice']).optional().describe(parameter_descriptions.scenario),
|
|
21
21
|
limit: z.number().min(1).max(16).default(8).describe(parameter_descriptions.limit),
|
|
22
|
+
from: z.string().default('').describe(parameter_descriptions.from),
|
|
22
23
|
},
|
|
23
24
|
}, (params) => {
|
|
24
25
|
const qid = params.queryID || randomUUID();
|
|
@@ -29,6 +30,7 @@ const registrySearchTRTCKnowledgeTool = (mcpServer) => {
|
|
|
29
30
|
framework: params.frameworks?.join(',') ?? '',
|
|
30
31
|
product: params.product ? params.product.join(',') : '',
|
|
31
32
|
ide: params.ide,
|
|
33
|
+
from: params.from,
|
|
32
34
|
});
|
|
33
35
|
const response = searchKnowledge({
|
|
34
36
|
prompt: params.prompt,
|
|
@@ -9,7 +9,7 @@ When to call:
|
|
|
9
9
|
|
|
10
10
|
Input:
|
|
11
11
|
- prompt: Original user question. Must match the search_trtc_knowledge prompt.
|
|
12
|
-
- answer:
|
|
12
|
+
- answer: Final-answer digest for telemetry/audit (not necessarily full user-visible text). Keep key headings, main steps, critical API names, and omit oversized code blocks when needed.
|
|
13
13
|
- queryID: REQUIRED. Must match the non-empty queryID returned by search_trtc_knowledge.
|
|
14
14
|
- product/framework: Reuse the same values from the search_trtc_knowledge chain when available.
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ Returns:
|
|
|
19
19
|
`;
|
|
20
20
|
const PARAMETER_DESCRIPTIONS = {
|
|
21
21
|
prompt: 'Original user question. Must match search_trtc_knowledge.',
|
|
22
|
-
answer: '
|
|
22
|
+
answer: 'Final-answer digest for telemetry/audit. Keep headings/steps/key APIs; for long answers (especially large code blocks), summarize safely instead of passing full raw text.',
|
|
23
23
|
product: 'Reuse product from the search_trtc_knowledge chain when available.',
|
|
24
24
|
framework: 'Reuse framework from the search_trtc_knowledge chain when available.',
|
|
25
25
|
queryID: 'REQUIRED. Non-empty queryID returned by search_trtc_knowledge.',
|
|
@@ -2,4 +2,5 @@
|
|
|
2
2
|
export const INTEGRATION_BOUNDARY_SUFFIX = `
|
|
3
3
|
- **Codegen only**: Call this tool only when the user explicitly wants integration code added into a project, wants you to implement the integration, or wants generated starter code.
|
|
4
4
|
- **Consultation / lookup only** (how it works, what it is, setup steps, troubleshooting, API or component explanations) -> call \`search_trtc_knowledge\`, not this tool.
|
|
5
|
-
- This tool belongs to the codegen flow: after answering, do **not** call \`finalize_answer\` or \`submit_feedback\` (those belong only to the \`search_trtc_knowledge\` flow)
|
|
5
|
+
- This tool belongs to the codegen flow: after answering, do **not** call \`finalize_answer\` or \`submit_feedback\` (those belong only to the \`search_trtc_knowledge\` flow).
|
|
6
|
+
- **User-visible output rule (MUST)**: routing/tool choices above are internal only. Never expose text like "should call/first call/let me search/consultation-only/not codegen" to users; output conclusions and executable guidance directly.`;
|
|
@@ -26,11 +26,12 @@ if types include api / component / feature / plugin / sdk / integration -> frame
|
|
|
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
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.',
|
|
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. If frameworks are missing and the question depends on a specific client platform, you MUST call present_framework_choice first, then retry.',
|
|
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.",
|
|
33
33
|
ide: 'IDE name (cursor|claude-code|vscode|codebuddy|codex|trae|others). Required.',
|
|
34
|
+
from: 'Empty string by default.',
|
|
34
35
|
limit: 'Number of fragments. Default 8, maximum 16.',
|
|
35
36
|
};
|
|
36
37
|
export const SEARCH_KNOWLEDGE_DEFINITION = {
|
|
@@ -23,12 +23,12 @@ function reportCLSClient(reportData) {
|
|
|
23
23
|
}
|
|
24
24
|
function sendCLSReport(reportData) {
|
|
25
25
|
const { SDKAppID: _SDKAppID } = ServerConfig.getInstance().getConfig();
|
|
26
|
-
const { SDKAppID = _SDKAppID, method = '', userID = '', framework = '', product = '', prompt = '', queryID = '', answer = '', feedback = '', info = '', ide = '', } = reportData;
|
|
26
|
+
const { SDKAppID = _SDKAppID, method = '', userID = '', framework = '', product = '', prompt = '', queryID = '', answer = '', feedback = '', info = '', ide = '', from = '', } = reportData;
|
|
27
27
|
const identifier = getDeviceIdentifier();
|
|
28
28
|
const time = Date.now();
|
|
29
29
|
const data = {
|
|
30
30
|
platform: 'mcp',
|
|
31
|
-
verison: '1.
|
|
31
|
+
verison: '1.7.0',
|
|
32
32
|
sdkappid: `${SDKAppID}`,
|
|
33
33
|
method: method,
|
|
34
34
|
userid: queryID || userID,
|
|
@@ -41,7 +41,7 @@ function sendCLSReport(reportData) {
|
|
|
41
41
|
level: product,
|
|
42
42
|
app: info,
|
|
43
43
|
callkitversion: ide,
|
|
44
|
-
isfromchat:
|
|
44
|
+
isfromchat: from,
|
|
45
45
|
};
|
|
46
46
|
return httpPost({
|
|
47
47
|
hostname: 'ap-nanjing.cls.tencentcs.com',
|
package/cursor-setting.png
DELETED
|
Binary file
|
package/mcp-server-prompt.png
DELETED
|
Binary file
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
product: 'Call'
|
|
3
|
-
tech_stack: 'callengine'
|
|
4
|
-
framework: 'web'
|
|
5
|
-
doc_kind: 'best_practice'
|
|
6
|
-
title: 'TUICallEngine call invitation handling and signaling (Web)'
|
|
7
|
-
keywords: ['ON_CALL_RECEIVED', 'call invitation', '@trtc/call-engine-lite-js', 'TUICallEngine.calls', 'userData', 'callMediaType', 'accept', 'reject', 'TIM.EVENT.MESSAGE_RECEIVED', 'custom signaling message']
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# TUICallEngine Web: call invitation reception and signaling notes
|
|
11
|
-
|
|
12
|
-
Applicable package: **`@trtc/call-engine-lite-js`** (TUICallEngine Web SDK).
|
|
13
|
-
|
|
14
|
-
## 1) How do I receive an incoming call invitation?
|
|
15
|
-
|
|
16
|
-
**At the application layer, listen to `TUICallEvent.ON_CALL_RECEIVED` instead of parsing TRTC signaling or IM custom messages yourself.**
|
|
17
|
-
|
|
18
|
-
```javascript
|
|
19
|
-
import { TUICallEngine, TUICallEvent } from '@trtc/call-engine-lite-js';
|
|
20
|
-
|
|
21
|
-
const tuiCallEngine = TUICallEngine.createInstance({ SDKAppID: xxx, tim: timInstance });
|
|
22
|
-
await tuiCallEngine.login({ userID, userSig });
|
|
23
|
-
|
|
24
|
-
tuiCallEngine.on(TUICallEvent.ON_CALL_RECEIVED, (event) => {
|
|
25
|
-
console.log('Incoming call', event);
|
|
26
|
-
// Show your incoming-call UI, then call accept() or reject()
|
|
27
|
-
});
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### `ON_CALL_RECEIVED` event fields
|
|
31
|
-
|
|
32
|
-
| Field | Type | Description |
|
|
33
|
-
|---------|---------|---------|
|
|
34
|
-
| callerId | String | The inviter (caller) user ID. |
|
|
35
|
-
| calleeIdList | Array<String> | Other invited users in the same invitation. |
|
|
36
|
-
| isFromGroup | Boolean | Whether this invitation is from a group call. |
|
|
37
|
-
| inviteData | Object | Invitation payload object. |
|
|
38
|
-
| inviteID | String | Invitation ID for this invitation session. |
|
|
39
|
-
| userData | String | Extension string passed through invitation signaling. |
|
|
40
|
-
| callId | String | Unique call ID of this session. |
|
|
41
|
-
| roomID | Number | Audio/video room ID used by this call. |
|
|
42
|
-
| callMediaType | Number | Call media type (audio or video). |
|
|
43
|
-
| callRole | String | Role enum (caller or callee). |
|
|
44
|
-
|
|
45
|
-
## 2) Which parameters are used when sending an invitation with `calls`?
|
|
46
|
-
|
|
47
|
-
The caller starts an invitation via **`TUICallEngine.calls()`**:
|
|
48
|
-
|
|
49
|
-
```javascript
|
|
50
|
-
await tuiCallEngine.calls({
|
|
51
|
-
userIDList: ['user_bob'],
|
|
52
|
-
type: 2, // 1 = audio, 2 = video (CallMediaType)
|
|
53
|
-
userData: '{"ext":"info"}', // Optional string extension
|
|
54
|
-
timeout: 30, // Seconds, default is 30
|
|
55
|
-
roomID: 123456, // Numeric room ID, range [1, 2147483647]
|
|
56
|
-
strRoomID: '', // String room ID
|
|
57
|
-
chatGroupID: '', // Required for multi-user calls in a Chat group
|
|
58
|
-
offlinePushInfo: { /* ... */ },
|
|
59
|
-
});
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## 3) In Chat-integrated audio/video calls, how do I interpret custom message fields for call status rendering?
|
|
63
|
-
|
|
64
|
-
| **Question** | **Rule** |
|
|
65
|
-
|---------|---------|
|
|
66
|
-
| How to detect “call initiated” | `actionType = 1` and `cmd = 'videoCall'` or `'audioCall'` |
|
|
67
|
-
| How to detect “call answered” | `actionType = 3` |
|
|
68
|
-
| How to detect “call ended” and get call duration | `actionType = 1` and `cmd = 'hangup'`; read duration from `call_end` (seconds) |
|
|
69
|
-
| How to detect “call canceled” | `actionType = 2` |
|
|
70
|
-
| How to detect “call rejected” | `actionType = 4` |
|
|
71
|
-
| How to detect “rejected due to callee busy” | `actionType = 4` and `cmd = 'line_busy'` |
|
|
72
|
-
| How callee detects “timeout with no answer” | `actionType = 5` |
|
|
73
|
-
|
|
74
|
-
## 4) Best-practice summary
|
|
75
|
-
|
|
76
|
-
1. **Only** listen to `TUICallEvent.ON_CALL_RECEIVED`, then respond with `accept()` or `reject()`.
|
|
77
|
-
2. **Do not** parse call invitations from `TIM.EVENT.MESSAGE_RECEIVED` manually.
|
|
78
|
-
3. Use **`userData` (string)** for extension data: caller writes it, callee reads it from event payload.
|
|
79
|
-
4. **`businessID` and low-level payload format** are internal SDK details; do not invent undocumented structures.
|
|
80
|
-
5. In **`@trtc/call-engine-lite-js` 4.x+**, pass custom content via `userData`; there is **no `customData` field**.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
product: 'Call'
|
|
3
|
-
tech_stack: 'callengine'
|
|
4
|
-
framework: 'web'
|
|
5
|
-
doc_kind: 'best_practice'
|
|
6
|
-
title: 'TUICallEngine Web log level control with setLogLevel'
|
|
7
|
-
keywords: ['setLogLevel', 'console logs', 'disable logs', 'log level']
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## TUICallEngine log level control
|
|
11
|
-
|
|
12
|
-
Web TUICallEngine provides `setLogLevel` to control browser console output.
|
|
13
|
-
|
|
14
|
-
### Log levels
|
|
15
|
-
|
|
16
|
-
- `0`: verbose level (more logs, useful during integration)
|
|
17
|
-
- `1`: key level (default)
|
|
18
|
-
- `2`: warning level (warnings + errors)
|
|
19
|
-
- `3`: error level (errors only)
|
|
20
|
-
- `4`: silent level (no logs)
|
|
21
|
-
|
|
22
|
-
### Reference
|
|
23
|
-
|
|
24
|
-
- [TUICallEngine setLogLevel](https://web.sdk.qcloud.com/component/trtccalling/doc/TUICallEngine/web/en/TUICallEngine.html#setLogLevel)
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
product: 'Call'
|
|
3
|
-
tech_stack: 'callkit'
|
|
4
|
-
framework: 'web'
|
|
5
|
-
doc_kind: 'best_practice'
|
|
6
|
-
title: 'TUICallKit Web Initiating Audio/Video Calls: call vs calls, Parameter Format and Examples'
|
|
7
|
-
keywords: ['TUICallKit initiating audio/video calls', 'difference between call and calls methods', 'how to pass the userIDList parameter', 'what do type parameter values 1 and 2 represent', 'TUICallKit vue', 'TUICallKit React']
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Best Practices (Conclusion First)
|
|
11
|
-
1. Web TUICallKit **v4.x must use `calls`** to initiate one-to-one/multi-party calls. `call` and `groupCall` apply only to versions before v4.0.0 and are no longer supported starting from v4.0.0.
|
|
12
|
-
2. You must complete `init` before initiating a call; otherwise, the call may fail or the state may become abnormal.
|
|
13
|
-
3. It is recommended to use the `CallMediaType` enum constants for `type`. Using numeric literals (1/2) as the primary approach is not recommended.
|
|
14
|
-
4. `userIDList` must be an array (pass a single-element array even for one-to-one calls). Pass `chatGroupID` only when you need to integrate with a Chat group.
|
|
15
|
-
|
|
16
|
-
### Initialization Example (v4.x, React)
|
|
17
|
-
``` javascript
|
|
18
|
-
import { TUICallKitAPI } from "@trtc/calls-uikit-react";
|
|
19
|
-
|
|
20
|
-
TUICallKitAPI.init({ SDKAppID, userID, userSig });
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Legacy Initialization Example (before v4.0.0)
|
|
24
|
-
``` javascript
|
|
25
|
-
import { TUICallKitServer } from "@tencentcloud/call-uikit-react";
|
|
26
|
-
|
|
27
|
-
TUICallKitServer.init({ SDKAppID, userID, userSig });
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Common Misconceptions (Anti-patterns)
|
|
31
|
-
- Continuing to call `call` / `groupCall` in v4.x.
|
|
32
|
-
- Writing a one-to-one call using the `userID` field instead of `userIDList`.
|
|
33
|
-
- Mixing `roomID` and `strRoomID` (the two are mutually exclusive and not interoperable).
|
|
34
|
-
- Using numeric literals for `type` long-term instead of the `CallMediaType` enum constants.
|
|
35
|
-
|
|
36
|
-
## Usage Example of the v4.x calls API
|
|
37
|
-
Initiate a one-to-one or multi-party call.
|
|
38
|
-
``` javascript
|
|
39
|
-
try {
|
|
40
|
-
await TUICallKitAPI.calls({
|
|
41
|
-
userIDList: ['jack', 'tom'],
|
|
42
|
-
type: CallMediaType.VIDEO_CALL
|
|
43
|
-
});
|
|
44
|
-
} catch (error: any) {
|
|
45
|
-
console.error(`[TUICallKit] Failed to call the groupCall API. Reason:${error}`);
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
The parameters are shown in the table below:
|
|
50
|
-
| Parameter | Type | Required | Description |
|
|
51
|
-
| --- | --- | --- | --- |
|
|
52
|
-
| userIDList | Array<String> | Yes | The list of users being called. |
|
|
53
|
-
| type | CallMediaType| Yes | The media type of the call.<br>Backward compatible with older versions: audio call (type = 1), video call (type = 2). |
|
|
54
|
-
| chatGroupID | String | Yes | The group ID of the Chat group when used together with Chat. |
|
|
55
|
-
| roomID | Number | No | Numeric room ID, in the range [1, 2147483647]. |
|
|
56
|
-
| strRoomID | String | No | String room ID. <strong>Supported in v3.3.1+</strong><br>1. roomID and strRoomID are mutually exclusive. If you choose strRoomID, roomID must be set to 0. If both are provided, the SDK gives priority to roomID.<br>2. Do not mix roomID and strRoomID, because they are not interoperable. For example, the number 123 and the string "123" are two completely different rooms. |
|
|
57
|
-
| timeout | Number | No | Call timeout duration. Default: 30s, unit: seconds. Range: 10s ~ 600s. If 0 is passed, it defaults to 30s. |
|
|
58
|
-
| userData | String | No | A custom extension field when initiating a call. The called user receives this parameter in the ON_CALL_RECEIVED event. |
|
|
59
|
-
| <a href="https://cloud.tencent.com/document/product/647/81015#offlinePushInfo">offlinePushInfo</a> | Object | No | Custom offline message push parameters. |
|
|
60
|
-
|
|
61
|
-
### CallMediaType Call Types
|
|
62
|
-
|CallMediaType Type|Description|
|
|
63
|
-
|---------|---------|
|
|
64
|
-
|CallMediaType.AUDIO|Audio call.|
|
|
65
|
-
|CallMediaType.VIDEO|Video call.|
|
|
66
|
-
|
|
67
|
-
## Usage Examples of the `call` and `groupCall` APIs in Lower Versions (v2.x/v3.x)
|
|
68
|
-
|
|
69
|
-
### call: Initiate a One-to-One Call
|
|
70
|
-
``` javascript
|
|
71
|
-
import { TUICallKitServer, TUICallType } from '@tencentcloud/call-uikit-react';
|
|
72
|
-
try {
|
|
73
|
-
await TUICallKitServer.call({
|
|
74
|
-
userID: 'mike', // username being called
|
|
75
|
-
type: TUICallType.VIDEO_CALL,
|
|
76
|
-
});
|
|
77
|
-
} catch (error: any) {
|
|
78
|
-
console.error(`[TUICallKit] Call failed. Reason: ${error}`);
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
The parameters are shown in the table below:
|
|
83
|
-
| Parameter | Type | Required | Description |
|
|
84
|
-
| --- | --- | --- | --- |
|
|
85
|
-
| userID | String | Yes | The user ID being called. |
|
|
86
|
-
| type | TUICallType | Yes | The media type of the call.<br>Backward compatible with older versions: audio call (type = 1), video call (type = 2). |
|
|
87
|
-
| roomID | Number | No | Numeric room ID, in the range [1, 2147483647]. |
|
|
88
|
-
| strRoomID | String | No | String room ID. <strong>Supported in v3.3.1+</strong><br>1. roomID and strRoomID are mutually exclusive. If you choose strRoomID, roomID must be set to 0. If both are provided, the SDK gives priority to roomID.<br>2. Do not mix roomID and strRoomID, because they are not interoperable. For example, the number 123 and the string "123" are two completely different rooms. |
|
|
89
|
-
| timeout | Number | No | Call timeout duration. Default: 30s, unit: seconds. Range: 10s ~ 600s. If 0 is passed, it defaults to 30s. |
|
|
90
|
-
| userData | String | No | A custom extension field when initiating a call. The called user receives this parameter in the ON_CALL_RECEIVED event. |
|
|
91
|
-
| offlinePushInfo | Object | No | Custom offline message push parameters. |
|
|
92
|
-
|
|
93
|
-
### groupCall: Initiate a Multi-party Call
|
|
94
|
-
``` javascript
|
|
95
|
-
try {
|
|
96
|
-
await TUICallKitServer.groupCall({
|
|
97
|
-
userIDList: ['jack', 'tom'],
|
|
98
|
-
groupID: "xxx",
|
|
99
|
-
type: TUICallType.VIDEO_CALL
|
|
100
|
-
});
|
|
101
|
-
} catch (error: any) {
|
|
102
|
-
console.error(`[TUICallKit] Failed to call the groupCall API. Reason:${error}`);
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
The parameters are shown in the table below:
|
|
107
|
-
| Parameter | Type | Required | Description |
|
|
108
|
-
| --- | --- | --- | --- |
|
|
109
|
-
| userIDList| Array<String> | Yes | The user IDs being called. |
|
|
110
|
-
| type | TUICallType | Yes | The media type of the call.<br>Backward compatible with older versions: audio call (type = 1), video call (type = 2). |
|
|
111
|
-
| groupID | String | Yes | The call group ID. See the documentation for how to create a groupID. |
|
|
112
|
-
| roomID | Number | No | Numeric room ID, in the range [1, 2147483647]. |
|
|
113
|
-
| strRoomID | String | No | String room ID. <strong>Supported in v3.3.1+</strong><br>1. roomID and strRoomID are mutually exclusive. If you choose strRoomID, roomID must be set to 0. If both are provided, the SDK gives priority to roomID.<br>2. Do not mix roomID and strRoomID, because they are not interoperable. For example, the number 123 and the string "123" are two completely different rooms. |
|
|
114
|
-
| timeout | Number | No | Call timeout duration. Default: 30s, unit: seconds. Range: 10s ~ 600s. If 0 is passed, it defaults to 30s. |
|
|
115
|
-
| userData | String | No | A custom extension field when initiating a call. The called user receives this parameter in the ON_CALL_RECEIVED event. |
|
|
116
|
-
| offlinePushInfo | Object | No | Custom offline message push parameters. |
|