@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.
Files changed (307) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +53 -39
  3. package/knowledge/build-index.js +31 -4
  4. package/knowledge/chunker.js +82 -14
  5. package/knowledge/chunking-policy.js +100 -0
  6. package/knowledge/content-loader.js +3 -1
  7. package/knowledge/frontmatter-meta.js +167 -0
  8. package/knowledge/path-meta.js +28 -6
  9. package/knowledge/search/exact-lookup.js +9 -227
  10. package/knowledge/search/filter-pool.js +17 -26
  11. package/knowledge/search/framework-fallback.js +22 -0
  12. package/knowledge/search/intent-router.js +13 -0
  13. package/knowledge/search/query-normalizer.js +129 -0
  14. package/knowledge/search/search-core.js +391 -0
  15. package/knowledge/search/search-knowledge.js +351 -323
  16. package/knowledge/search/search-message.js +87 -0
  17. package/knowledge/search/search-pass.js +428 -0
  18. package/knowledge/search/search-types.js +1 -0
  19. package/knowledge/search/url-row-scorer.js +258 -0
  20. package/package.json +1 -1
  21. package/resource/_schema/feature-aliases.yaml +1 -0
  22. package/resource/_schema/query-normalization.yaml +9 -0
  23. package/resource/index/manifest.json +1 -1
  24. package/resource/integration/callkit/preset/android/integration.md +3 -14
  25. package/resource/integration/callkit/preset/flutter/integration.md +1 -12
  26. package/resource/integration/callkit/preset/ios/integration.md +2 -12
  27. package/resource/integration/callkit/preset/react/integration.md +1 -14
  28. package/resource/integration/callkit/preset/vue/integration.md +1 -14
  29. package/resource/integration/chat/preset/android/integration.md +6 -13
  30. package/resource/integration/chat/preset/flutter/integration.md +1 -8
  31. package/resource/integration/chat/preset/ios/integration.md +4 -12
  32. package/resource/integration/chat/preset/react/integration.md +6 -16
  33. package/resource/integration/chat/preset/vue/integration.md +0 -9
  34. package/resource/integration/livekit/preset/live/android/live-audience-integration.md +2 -6
  35. package/resource/integration/livekit/preset/live/android/live-host-integration.md +1 -11
  36. package/resource/integration/livekit/preset/live/android/live-list-integration.md +2 -6
  37. package/resource/integration/livekit/preset/live/android/prepare-integration.md +2 -7
  38. package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +2 -7
  39. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +1 -13
  40. package/resource/integration/livekit/preset/live/ios/live-list-integration.md +2 -10
  41. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -8
  42. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +0 -4
  43. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +1 -5
  44. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +2 -7
  45. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +2 -8
  46. package/resource/integration/roomkit/preset/vue/integration.md +0 -11
  47. package/resource/knowledge/callkit/best-practice/callkit-miniprogram/uniapp-shrink.md +60 -0
  48. package/resource/knowledge/callkit/best-practice/common/call-autoplay-blocked.md +77 -0
  49. package/resource/knowledge/callkit/best-practice/common/call-message-in-chat.md +78 -0
  50. package/resource/knowledge/callkit/best-practice/common/call-vs-calls.md +110 -0
  51. package/resource/knowledge/callkit/best-practice/common/callengine-call-flow.md +123 -0
  52. package/resource/knowledge/callkit/best-practice/common/callengine-log-level.md +67 -0
  53. package/resource/knowledge/callkit/best-practice/common/callkit-get-engine-instance.md +81 -0
  54. package/resource/knowledge/callkit/best-practice/common/callkit-get-roomid.md +78 -0
  55. package/resource/knowledge/callkit/best-practice/common/callkit-limitations.md +37 -0
  56. package/resource/knowledge/callkit/best-practice/common/callkit-user-register-and-kicked.md +98 -0
  57. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +0 -7
  58. package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -8
  59. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +1 -9
  60. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +2 -8
  61. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +2 -8
  62. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -16
  63. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -8
  64. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -8
  65. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -11
  66. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +178 -200
  67. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +195 -217
  68. package/resource/knowledge/callkit/faq/android.md +4 -14
  69. package/resource/knowledge/callkit/faq/common.md +0 -2
  70. package/resource/knowledge/callkit/faq/error-code.md +2 -4
  71. package/resource/knowledge/callkit/faq/ios.md +1 -4
  72. package/resource/knowledge/callkit/preset/android/api.md +0 -6
  73. package/resource/knowledge/callkit/preset/ios/api.md +0 -4
  74. package/resource/knowledge/callkit/preset/react/api.md +3 -4
  75. package/resource/knowledge/callkit/preset/vue/api.md +3 -4
  76. package/resource/knowledge/chat/best-practice/common/avchatroom-message-loss-diagnosis.md +65 -0
  77. package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md +62 -0
  78. package/resource/knowledge/chat/best-practice/common/image-message-url-lifecycle.md +59 -0
  79. package/resource/knowledge/chat/best-practice/common/login-repeat-2025-diagnosis.md +61 -0
  80. package/resource/knowledge/chat/best-practice/common/message-read-report-and-receipt.md +64 -0
  81. package/resource/knowledge/chat/best-practice/common/message-receive-event.md +65 -0
  82. package/resource/knowledge/chat/best-practice/common/message-risk-error-and-render.md +65 -0
  83. package/resource/knowledge/chat/best-practice/common/message-unread-count.md +71 -0
  84. package/resource/knowledge/chat/best-practice/miniprogram/audio-message-send.md +113 -0
  85. package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +63 -0
  86. package/resource/knowledge/chat/best-practice/miniprogram/media-upload-fail-diagnosis.md +64 -0
  87. package/resource/knowledge/chat/best-practice/web/audio-message-send.md +118 -0
  88. package/resource/knowledge/chat/preset/android/features/chat-setting.md +0 -5
  89. package/resource/knowledge/chat/preset/android/features/contact-list.md +0 -7
  90. package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -6
  91. package/resource/knowledge/chat/preset/android/features/language.md +0 -8
  92. package/resource/knowledge/chat/preset/android/features/message-input.md +0 -6
  93. package/resource/knowledge/chat/preset/android/features/message-list.md +0 -8
  94. package/resource/knowledge/chat/preset/android/features/search.md +0 -7
  95. package/resource/knowledge/chat/preset/android/features/theme.md +0 -4
  96. package/resource/knowledge/chat/preset/android-view/integration.md +0 -6
  97. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +0 -4
  98. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +0 -9
  99. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -7
  100. package/resource/knowledge/chat/preset/flutter/features/language.md +0 -5
  101. package/resource/knowledge/chat/preset/flutter/features/message-input.md +0 -6
  102. package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -8
  103. package/resource/knowledge/chat/preset/flutter/features/search.md +0 -5
  104. package/resource/knowledge/chat/preset/flutter/features/theme.md +0 -4
  105. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +0 -5
  106. package/resource/knowledge/chat/preset/ios/features/contact-list.md +0 -5
  107. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -7
  108. package/resource/knowledge/chat/preset/ios/features/language.md +1 -8
  109. package/resource/knowledge/chat/preset/ios/features/message-input.md +0 -6
  110. package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -8
  111. package/resource/knowledge/chat/preset/ios/features/search.md +0 -5
  112. package/resource/knowledge/chat/preset/ios/features/theme.md +0 -4
  113. package/resource/knowledge/chat/preset/ios-uikit/integration.md +0 -6
  114. package/resource/knowledge/chat/preset/react/features/contact-list.md +0 -23
  115. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +2 -11
  116. package/resource/knowledge/chat/preset/react/features/conversation-list.md +4 -26
  117. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +0 -6
  118. package/resource/knowledge/chat/preset/react/features/search.md +0 -1
  119. package/resource/knowledge/chat/preset/react/features/theme.md +0 -1
  120. package/resource/knowledge/chat/preset/vue/features/contact-list.md +3 -9
  121. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +0 -3
  122. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +2 -13
  123. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +2 -3
  124. package/resource/knowledge/chat/preset/vue/features/conversation-search.md +1 -0
  125. package/resource/knowledge/chat/preset/vue/features/search.md +4 -3
  126. package/resource/knowledge/chat/urls/sdk/web.md +1 -1
  127. package/resource/knowledge/livekit/best-practice/android/voice-room-anchor-start.md +120 -0
  128. package/resource/knowledge/livekit/best-practice/common/admin-take-seat.md +73 -0
  129. package/resource/knowledge/livekit/best-practice/common/audience-leave-live.md +81 -0
  130. package/resource/knowledge/livekit/best-practice/common/voice-room-no-audio-troubleshoot.md +100 -0
  131. package/resource/knowledge/livekit/best-practice/common/voice-room-seat-list-change.md +65 -0
  132. package/resource/knowledge/livekit/best-practice/flutter/voice-room-anchor-start.md +122 -0
  133. package/resource/knowledge/livekit/best-practice/ios/voice-room-anchor-start.md +126 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
  135. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +0 -3
  136. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +0 -3
  137. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
  138. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
  139. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
  140. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
  141. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +0 -2
  142. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
  143. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
  144. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
  145. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +0 -2
  146. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +0 -2
  147. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
  148. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +0 -3
  149. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
  150. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +0 -3
  151. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
  152. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
  153. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
  154. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +0 -2
  155. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
  156. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
  157. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
  158. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +0 -2
  159. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
  160. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
  161. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +0 -3
  162. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
  163. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +0 -3
  164. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
  165. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
  166. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
  167. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +0 -2
  168. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
  169. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
  170. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
  171. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +0 -2
  172. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +0 -2
  173. package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +2 -2
  174. package/resource/knowledge/livekit/core-sdk/features/android/audio-effect.md +2 -3
  175. package/resource/knowledge/livekit/core-sdk/features/android/barrage.md +2 -2
  176. package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +2 -2
  177. package/resource/knowledge/livekit/core-sdk/features/android/gift.md +2 -7
  178. package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -4
  179. package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +2 -2
  180. package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +2 -4
  181. package/resource/knowledge/livekit/core-sdk/features/flutter/barrage.md +2 -2
  182. package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
  183. package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +2 -7
  184. package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -2
  185. package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +2 -2
  186. package/resource/knowledge/livekit/core-sdk/features/ios/audio-effect.md +2 -4
  187. package/resource/knowledge/livekit/core-sdk/features/ios/barrage.md +2 -2
  188. package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +2 -2
  189. package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +2 -7
  190. package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -4
  191. package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -3
  192. package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -4
  193. package/resource/knowledge/livekit/core-sdk/live/android/integration.md +1 -4
  194. package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -3
  195. package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -1
  196. package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -4
  197. package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -3
  198. package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -3
  199. package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +1 -4
  200. package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +0 -2
  201. package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +0 -5
  202. package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +1 -4
  203. package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -4
  204. package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +3 -6
  205. package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
  206. package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +0 -4
  207. package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +1 -4
  208. package/resource/knowledge/livekit/faq/error-code.md +0 -1
  209. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
  210. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +3 -3
  211. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +3 -3
  212. package/resource/knowledge/push/api-reference/android.md +0 -1
  213. package/resource/knowledge/push/api-reference/harmonyos.md +0 -2
  214. package/resource/knowledge/push/api-reference/react-native.md +3 -5
  215. package/resource/knowledge/push/api-reference/uni-app.md +3 -5
  216. package/resource/knowledge/push/api-reference/unity.md +0 -1
  217. package/resource/knowledge/push/api-reference/unreal-engine.md +0 -1
  218. package/resource/knowledge/push/config/android.md +0 -24
  219. package/resource/knowledge/push/config/harmonyos.md +0 -1
  220. package/resource/knowledge/push/config/ios.md +0 -3
  221. package/resource/knowledge/push/config/react-native.md +0 -29
  222. package/resource/knowledge/push/config/unity.md +1 -24
  223. package/resource/knowledge/push/config/unreal-engine.md +1 -24
  224. package/resource/knowledge/push/integration/android.md +0 -14
  225. package/resource/knowledge/push/integration/flutter.md +0 -19
  226. package/resource/knowledge/push/integration/harmonyos.md +0 -2
  227. package/resource/knowledge/push/integration/ios.md +0 -3
  228. package/resource/knowledge/push/integration/react-native.md +0 -24
  229. package/resource/knowledge/push/integration/uni-app.md +1 -11
  230. package/resource/knowledge/push/integration/unity.md +0 -9
  231. package/resource/knowledge/push/integration/unreal-engine.md +1 -17
  232. package/resource/knowledge/roomkit/best-practice/common/room-ghost-member.md +70 -0
  233. package/resource/knowledge/roomkit/best-practice/common/room-limit-and-multi.md +83 -0
  234. package/resource/knowledge/roomkit/best-practice/common/room-screen-share-preview.md +83 -0
  235. package/resource/knowledge/roomkit/best-practice/common/room-status-after-all-leave.md +69 -0
  236. package/resource/knowledge/roomkit/best-practice/vue/room-uikit-vs-atomicx.md +111 -0
  237. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -4
  238. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -4
  239. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +0 -4
  240. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +1 -5
  241. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -4
  242. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -4
  243. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +0 -4
  244. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +1 -5
  245. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
  246. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -6
  247. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
  248. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -11
  249. package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +1 -5
  250. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +1 -8
  251. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -3
  252. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +0 -3
  253. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -5
  254. package/resource/knowledge/roomkit/preset/android/integration.md +0 -4
  255. package/resource/knowledge/roomkit/preset/flutter/integration.md +1 -13
  256. package/resource/knowledge/roomkit/preset/ios/integration.md +0 -6
  257. package/resource/knowledge/roomkit/preset/react/integration.md +0 -16
  258. package/resource/knowledge/rtcengine/web/api.md +1 -8
  259. package/resource/knowledge/rtcengine/web/faq.md +3 -5
  260. package/resource/knowledge/rtcengine/web/how_to_integrated_web_sdk.md +0 -6
  261. package/resource/knowledge/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -1
  262. package/resource/knowledge/rtcengine/web/plugin/21-advanced-auto-play-policy.md +1 -1
  263. package/resource/knowledge/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +1 -1
  264. package/resource/knowledge/rtcengine/web/plugin/27-advanced-small-stream.md +1 -1
  265. package/resource/knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md +2 -0
  266. package/resource/knowledge/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -3
  267. package/resource/knowledge/rtcengine/web/plugin/34-advanced-proxy.md +2 -4
  268. package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -4
  269. package/resource/knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -1
  270. package/resource/knowledge/trtc/android/TRTCCloud.md +8 -56
  271. package/resource/knowledge/trtc/android/TRTCCloudDef.md +6 -7
  272. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1 -18
  273. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +0 -14
  274. package/resource/knowledge/trtc/android/TXDeviceManager.md +0 -1
  275. package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
  276. package/resource/knowledge/trtc/c++/ITRTCCloud.md +7 -59
  277. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +0 -14
  278. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +0 -4
  279. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1 -19
  280. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +6 -7
  281. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
  282. package/resource/knowledge/trtc/ios/TRTCCloud.md +9 -60
  283. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +6 -7
  284. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1 -19
  285. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +0 -13
  286. package/resource/knowledge/trtc/ios/TXDeviceManager.md +0 -4
  287. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
  288. package/server.js +27 -22
  289. package/tools/common/finalize_answer.js +9 -1
  290. package/tools/common/search_trtc_knowledge.js +3 -1
  291. package/tools/definitions/finalize_answer_def.js +2 -2
  292. package/tools/definitions/integration-boundary.js +2 -1
  293. package/tools/definitions/search_trtc_knowledge_def.js +2 -1
  294. package/utils/report-cls-client.js +3 -3
  295. package/utils/report-es-client.js +1 -1
  296. package/cursor-setting.png +0 -0
  297. package/mcp-server-prompt.png +0 -0
  298. package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +0 -80
  299. package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +0 -24
  300. package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +0 -116
  301. package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +0 -445
  302. package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +0 -465
  303. package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +0 -16
  304. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -230
  305. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -797
  306. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +0 -325
  307. 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, refer to the error message for -3301 in <code>onError</code> . |
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) product documentation.
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 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.
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(调用 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
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**:返回 needs_framework 时 MUST 先 present_framework_choice;详见 search_trtc_knowledge 工具 description 决策表。
21
- **When in doubt**:仍优先调用 search_trtc_knowledge(带最佳猜测 product);status=empty 或 low_confidence 时再澄清或重搜。
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 传递规则(硬规则,违反会导致 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
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, 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.
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.6.6",
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'])).min(1).optional().describe(parameter_descriptions.frameworks),
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: Complete final answer text, excluding the follow-up text. Do not summarize or truncate.
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: 'Complete final answer text, excluding the follow-up text. Do not summarize or truncate.',
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.6.7',
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',
@@ -7,7 +7,7 @@ function reportESClient(reportData) {
7
7
  report: [
8
8
  {
9
9
  platform: 'mcp',
10
- version: '1.6.7',
10
+ version: '1.7.0',
11
11
  sdkappid: `${SDKAppID}`,
12
12
  method: method,
13
13
  userID: `${userID}`,
Binary file
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. |