@tencent-rtc/trtc-agent-skills 0.1.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 (205) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +172 -0
  3. package/README.zh.md +173 -0
  4. package/bin/cli.js +434 -0
  5. package/knowledge-base/index.yaml +454 -0
  6. package/knowledge-base/platform-slice-template.md +233 -0
  7. package/knowledge-base/scenario-spec.md +350 -0
  8. package/knowledge-base/scenarios/conference/base/general-conference.md +365 -0
  9. package/knowledge-base/scenarios/conference/base/webinar-conference.md +130 -0
  10. package/knowledge-base/scenarios/conference/medical/1v1-video-consultation.md +145 -0
  11. package/knowledge-base/scenarios/conference/medical/medical-multidoctor-consultation.md +113 -0
  12. package/knowledge-base/scenarios/live/entertainment-live-room.md +118 -0
  13. package/knowledge-base/slice-spec.md +546 -0
  14. package/knowledge-base/slices/conference/web/ai-tools.md +225 -0
  15. package/knowledge-base/slices/conference/web/beauty-effects.md +188 -0
  16. package/knowledge-base/slices/conference/web/device-control.md +338 -0
  17. package/knowledge-base/slices/conference/web/login-auth.md +261 -0
  18. package/knowledge-base/slices/conference/web/network-quality.md +190 -0
  19. package/knowledge-base/slices/conference/web/official-roomkit-api.md +298 -0
  20. package/knowledge-base/slices/conference/web/official-roomkit-login-ui.md +246 -0
  21. package/knowledge-base/slices/conference/web/participant-list.md +238 -0
  22. package/knowledge-base/slices/conference/web/participant-management.md +718 -0
  23. package/knowledge-base/slices/conference/web/prejoin-check.md +293 -0
  24. package/knowledge-base/slices/conference/web/room-call.md +213 -0
  25. package/knowledge-base/slices/conference/web/room-chat.md +426 -0
  26. package/knowledge-base/slices/conference/web/room-lifecycle.md +534 -0
  27. package/knowledge-base/slices/conference/web/room-schedule.md +281 -0
  28. package/knowledge-base/slices/conference/web/screen-share.md +211 -0
  29. package/knowledge-base/slices/conference/web/video-layout.md +675 -0
  30. package/knowledge-base/slices/conference/web/virtual-background.md +197 -0
  31. package/knowledge-base/slices/conference/web/webinar-interaction.md +206 -0
  32. package/knowledge-base/slices/live/anchor-lifecycle.md +122 -0
  33. package/knowledge-base/slices/live/anchor-preview.md +90 -0
  34. package/knowledge-base/slices/live/anchor-room-config.md +104 -0
  35. package/knowledge-base/slices/live/audience-list.md +86 -0
  36. package/knowledge-base/slices/live/audience-manage.md +92 -0
  37. package/knowledge-base/slices/live/audience-watch.md +85 -0
  38. package/knowledge-base/slices/live/audio.md +116 -0
  39. package/knowledge-base/slices/live/barrage.md +88 -0
  40. package/knowledge-base/slices/live/beauty.md +99 -0
  41. package/knowledge-base/slices/live/coguest-apply.md +105 -0
  42. package/knowledge-base/slices/live/device-control.md +91 -0
  43. package/knowledge-base/slices/live/error-codes.md +167 -0
  44. package/knowledge-base/slices/live/gift.md +84 -0
  45. package/knowledge-base/slices/live/ios/.gitkeep +0 -0
  46. package/knowledge-base/slices/live/ios/anchor-lifecycle.md +313 -0
  47. package/knowledge-base/slices/live/ios/anchor-preview.md +228 -0
  48. package/knowledge-base/slices/live/ios/anchor-room-config.md +257 -0
  49. package/knowledge-base/slices/live/ios/audience-list.md +353 -0
  50. package/knowledge-base/slices/live/ios/audience-manage.md +381 -0
  51. package/knowledge-base/slices/live/ios/audience-watch.md +286 -0
  52. package/knowledge-base/slices/live/ios/audio.md +373 -0
  53. package/knowledge-base/slices/live/ios/barrage.md +285 -0
  54. package/knowledge-base/slices/live/ios/beauty.md +323 -0
  55. package/knowledge-base/slices/live/ios/coguest-apply.md +506 -0
  56. package/knowledge-base/slices/live/ios/device-control.md +286 -0
  57. package/knowledge-base/slices/live/ios/error-codes.md +270 -0
  58. package/knowledge-base/slices/live/ios/gift.md +315 -0
  59. package/knowledge-base/slices/live/ios/live-list.md +269 -0
  60. package/knowledge-base/slices/live/ios/login-auth.md +247 -0
  61. package/knowledge-base/slices/live/live-list.md +82 -0
  62. package/knowledge-base/slices/live/login-auth.md +78 -0
  63. package/package.json +34 -0
  64. package/skills/trtc/SKILL.md +326 -0
  65. package/skills/trtc/room-builder/SKILL.md +138 -0
  66. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/README.md +108 -0
  67. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/backend-contract.zh-CN.md +162 -0
  68. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/integration.zh-CN.md +154 -0
  69. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/theme.zh-CN.md +78 -0
  70. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/index.html +12 -0
  71. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/package.json +28 -0
  72. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/postcss.config.js +5 -0
  73. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/App.vue +25 -0
  74. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/ConsultationManagePanel.vue +838 -0
  75. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/LanguageSwitch.vue +102 -0
  76. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/LoadingSpinner.vue +6 -0
  77. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalAlert.vue +34 -0
  78. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalBusinessPanel.vue +148 -0
  79. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalButton.vue +49 -0
  80. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalConfirmDialog.vue +68 -0
  81. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalDataPanel.vue +196 -0
  82. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalRecordPanel.vue +270 -0
  83. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/PrescriptionPanel.vue +363 -0
  84. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/basic-info-config.ts +29 -0
  85. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/lib-generate-test-usersig-es.min.d.ts +4 -0
  86. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/lib-generate-test-usersig-es.min.js +2 -0
  87. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/runtime-config.ts +12 -0
  88. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/env.d.ts +32 -0
  89. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationChatPanel.vue +123 -0
  90. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationMembersPanel.vue +230 -0
  91. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationTranscriptionPanel.vue +135 -0
  92. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationVideoStage.vue +113 -0
  93. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/InviteDoctorDialog.vue +132 -0
  94. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/KickMemberConfirmDialog.vue +50 -0
  95. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/types.ts +77 -0
  96. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationChat.ts +97 -0
  97. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationDevices.ts +48 -0
  98. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationParticipants.ts +121 -0
  99. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationPermissions.ts +25 -0
  100. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/utils.ts +70 -0
  101. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/en-US/index.ts +553 -0
  102. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/index.ts +25 -0
  103. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/medicalTranslate.ts +85 -0
  104. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/state.ts +49 -0
  105. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/zh-CN/index.ts +463 -0
  106. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/main.ts +12 -0
  107. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/mock/appointments.ts +96 -0
  108. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/mock/users.ts +79 -0
  109. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/router/index.ts +63 -0
  110. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/index.ts +25 -0
  111. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/appointmentService.ts +77 -0
  112. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/authService.ts +38 -0
  113. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/launchContext.ts +31 -0
  114. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/userService.ts +35 -0
  115. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/appointmentService.ts +43 -0
  116. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/authService.ts +33 -0
  117. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/userService.ts +43 -0
  118. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/types.ts +135 -0
  119. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/shared/icons.ts +53 -0
  120. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/index.css +106 -0
  121. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/tailwind.css +3 -0
  122. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/theme.css +209 -0
  123. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/auth.ts +50 -0
  124. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/format.ts +24 -0
  125. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/navigation.ts +12 -0
  126. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/session.ts +28 -0
  127. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/DoctorConsultationView.vue +777 -0
  128. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/DoctorDashboardView.vue +678 -0
  129. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/LoginView.vue +441 -0
  130. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientConsultationFinishedView.vue +185 -0
  131. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientConsultationView.vue +1003 -0
  132. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientSelectDoctorView.vue +317 -0
  133. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientWaitingView.vue +454 -0
  134. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/tsconfig.json +21 -0
  135. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/tsconfig.node.json +8 -0
  136. package/skills/trtc/room-builder/templates/scenarios/medical-consultation/vite.config.ts +17 -0
  137. package/skills/trtc/room-builder/templates/scenarios/medical-consultation//346/216/245/345/205/245/350/257/264/346/230/216.md +6 -0
  138. package/skills/trtc/room-builder/tools/render_ai_instructions.py +226 -0
  139. package/skills/trtc-apply/SKILL.md +97 -0
  140. package/skills/trtc-apply/guardrails/apply_lib/__init__.py +0 -0
  141. package/skills/trtc-apply/guardrails/apply_lib/__pycache__/__init__.cpython-313.pyc +0 -0
  142. package/skills/trtc-apply/guardrails/apply_lib/__pycache__/rule_parser.cpython-313.pyc +0 -0
  143. package/skills/trtc-apply/guardrails/apply_lib/rule_parser.py +268 -0
  144. package/skills/trtc-docs/SKILL.md +207 -0
  145. package/skills/trtc-onboarding/SKILL.md +839 -0
  146. package/skills/trtc-onboarding/reference/path-a1-demo.md +103 -0
  147. package/skills/trtc-onboarding/reference/path-a2-integrate.md +693 -0
  148. package/skills/trtc-onboarding/reference/path-b-troubleshoot.md +115 -0
  149. package/skills/trtc-onboarding/reference/path-c-expand.md +43 -0
  150. package/skills/trtc-onboarding/reference/reporting-protocol.md +174 -0
  151. package/skills/trtc-onboarding/reference/supported-matrix.md +100 -0
  152. package/skills/trtc-onboarding/reference/usersig-handling.md +140 -0
  153. package/skills/trtc-search/SKILL.md +221 -0
  154. package/skills/trtc-topic/SKILL.md +638 -0
  155. package/skills/trtc-topic/guardrails/__pycache__/gate_slice_read.cpython-313.pyc +0 -0
  156. package/skills/trtc-topic/guardrails/__pycache__/gate_slice_write.cpython-313.pyc +0 -0
  157. package/skills/trtc-topic/guardrails/__pycache__/stop_require_apply_evidence.cpython-313.pyc +0 -0
  158. package/skills/trtc-topic/guardrails/gate_slice_read.py +133 -0
  159. package/skills/trtc-topic/guardrails/gate_slice_write.py +169 -0
  160. package/skills/trtc-topic/guardrails/stop_require_apply_evidence.py +97 -0
  161. package/skills/trtc-topic/references/execution-units.yaml +58 -0
  162. package/skills/trtc-topic/runtime/README.md +50 -0
  163. package/skills/trtc-topic/runtime/RUNTIME.md +128 -0
  164. package/skills/trtc-topic/runtime/lib/__init__.py +0 -0
  165. package/skills/trtc-topic/runtime/lib/platforms.py +194 -0
  166. package/skills/trtc-topic/runtime/package-lock.json +1211 -0
  167. package/skills/trtc-topic/runtime/package.json +13 -0
  168. package/skills/trtc-topic/runtime/telemetry-bridge.mjs +339 -0
  169. package/skills/trtc-topic/runtime/telemetry_collector.py +293 -0
  170. package/skills/trtc-topic/scripts/STATE-MACHINE-GUIDE.md +186 -0
  171. package/skills/trtc-topic/scripts/__pycache__/apply.cpython-313.pyc +0 -0
  172. package/skills/trtc-topic/scripts/apply.py +581 -0
  173. package/skills/trtc-topic/scripts/finalize_session.py +113 -0
  174. package/skills/trtc-topic/scripts/init_slice_queue.py +96 -0
  175. package/skills/trtc-topic/scripts/lib/__pycache__/state_machine.cpython-313.pyc +0 -0
  176. package/skills/trtc-topic/scripts/lib/state_machine.py +328 -0
  177. package/skills/trtc-topic/scripts/next_slice.py +137 -0
  178. package/skills/trtc-topic/tests/README.md +70 -0
  179. package/skills/trtc-topic/tests/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
  180. package/skills/trtc-topic/tests/__pycache__/conftest.cpython-313-pytest-9.0.3.pyc +0 -0
  181. package/skills/trtc-topic/tests/__pycache__/test_apply_cli.cpython-313-pytest-9.0.2.pyc +0 -0
  182. package/skills/trtc-topic/tests/__pycache__/test_apply_cli.cpython-313-pytest-9.0.3.pyc +0 -0
  183. package/skills/trtc-topic/tests/__pycache__/test_end_to_end.cpython-313-pytest-9.0.2.pyc +0 -0
  184. package/skills/trtc-topic/tests/__pycache__/test_end_to_end.cpython-313-pytest-9.0.3.pyc +0 -0
  185. package/skills/trtc-topic/tests/__pycache__/test_finalize_session.cpython-313-pytest-9.0.2.pyc +0 -0
  186. package/skills/trtc-topic/tests/__pycache__/test_finalize_session.cpython-313-pytest-9.0.3.pyc +0 -0
  187. package/skills/trtc-topic/tests/__pycache__/test_gates.cpython-313-pytest-9.0.2.pyc +0 -0
  188. package/skills/trtc-topic/tests/__pycache__/test_gates.cpython-313-pytest-9.0.3.pyc +0 -0
  189. package/skills/trtc-topic/tests/__pycache__/test_session_resolver.cpython-313-pytest-9.0.2.pyc +0 -0
  190. package/skills/trtc-topic/tests/__pycache__/test_session_resolver.cpython-313-pytest-9.0.3.pyc +0 -0
  191. package/skills/trtc-topic/tests/__pycache__/test_state_machine.cpython-313-pytest-9.0.2.pyc +0 -0
  192. package/skills/trtc-topic/tests/__pycache__/test_state_machine.cpython-313-pytest-9.0.3.pyc +0 -0
  193. package/skills/trtc-topic/tests/__pycache__/test_stop_require_apply.cpython-313-pytest-9.0.2.pyc +0 -0
  194. package/skills/trtc-topic/tests/__pycache__/test_stop_require_apply.cpython-313-pytest-9.0.3.pyc +0 -0
  195. package/skills/trtc-topic/tests/__pycache__/test_topic_skill_invariants.cpython-313-pytest-9.0.2.pyc +0 -0
  196. package/skills/trtc-topic/tests/__pycache__/test_topic_skill_invariants.cpython-313-pytest-9.0.3.pyc +0 -0
  197. package/skills/trtc-topic/tests/conftest.py +72 -0
  198. package/skills/trtc-topic/tests/test_apply_cli.py +480 -0
  199. package/skills/trtc-topic/tests/test_end_to_end.py +305 -0
  200. package/skills/trtc-topic/tests/test_finalize_session.py +51 -0
  201. package/skills/trtc-topic/tests/test_gates.py +316 -0
  202. package/skills/trtc-topic/tests/test_session_resolver.py +260 -0
  203. package/skills/trtc-topic/tests/test_state_machine.py +414 -0
  204. package/skills/trtc-topic/tests/test_stop_require_apply.py +99 -0
  205. package/skills/trtc-topic/tests/test_topic_skill_invariants.py +130 -0
@@ -0,0 +1,113 @@
1
+ ---
2
+ id: medical-multidoctor-consultation
3
+ name: 医疗会诊
4
+ product: conference
5
+ room_type: standard
6
+ base_scenario: general-conference
7
+ industry: medical
8
+ business_traits:
9
+ - mdt
10
+ - medical-record
11
+ - consultation-sheet
12
+ slices:
13
+ - conference/login-auth
14
+ - conference/prejoin-check
15
+ - conference/room-schedule
16
+ - conference/room-lifecycle
17
+ - conference/room-call
18
+ - conference/participant-list
19
+ - conference/participant-management
20
+ - conference/device-control
21
+ - conference/network-quality
22
+ - conference/room-chat
23
+ - conference/video-layout
24
+ - conference/screen-share
25
+ ---
26
+
27
+ # 医疗会诊
28
+
29
+ ## 场景描述
30
+
31
+ 本文描述的是一个完整的 **医疗会诊** 场景,它属于 **`general-conference` 的医疗派生场景**。典型形态是:围绕同一患者病例,由主诊医生发起会诊,邀请院内外专家、多学科医生或助理共同进入会诊房间;会中一边进行多人视频讨论,一边查看病历、检查结果、影像资料和会诊单,必要时可让患者或家属在特定阶段进入房间补充沟通;会诊结束后,由主诊医生统一收口会议并沉淀会诊结论。
32
+
33
+ ## 场景边界
34
+
35
+ | 需求形态 | 是否直接沿用本文 | 说明 |
36
+ |------|------------------|------|
37
+ | 多医生远程会诊 / MDT 会诊 | 是 | 本文的默认目标场景,多位医生围绕同一病例进行实时讨论与决策。 |
38
+ | 1v1 视频问诊 | 否 | 如果主要是医生与患者一对一沟通,应优先查看 `1v1-video-consultation.md`。 |
39
+ | 医疗培训讲座 / 学术直播 | 否 | 如果主讲人中心化明显、听众弱互动,应优先分流到 `webinar-conference.md` 再叠加医疗培训外壳。 |
40
+ | 科室晨会 / 病例讨论会 | 部分适合 | 如果仍以多人实时音视频协作为主,可沿用本文;若没有患者参与且更偏内部日常会议,也可直接回落到 `general-conference.md`。 |
41
+
42
+ ## 前置条件
43
+
44
+ - TRTC 控制台已创建应用,获取 `SDKAppID`
45
+ - 业务后端已实现 `UserSig` 签发接口
46
+ - 业务侧已准备会诊预约、专家列表、病例资料、影像链接、会诊单与结论记录等数据源
47
+ - 本次会诊的 `roomId`、参会角色、邀请关系和患者绑定关系由业务层统一生成
48
+
49
+ ## 主流程
50
+
51
+ | 步骤 | 参与方 | Slice / 模块 | 核心操作 |
52
+ |------|--------|--------------|---------|
53
+ | 1. 主诊医生发起会诊并预约时间 | 主诊医生 / 后台 | `login-auth` + `room-schedule` + 业务会诊单 | 医生创建会诊单、选择时间并配置参与专家与患者信息 |
54
+ | 2. 医生与专家会前准备 | 医生 / 专家 | `prejoin-check` + `device-control` | 各参会医生在入会前完成摄像头、麦克风、扬声器检查 |
55
+ | 3. 主诊医生创建并进入会诊房间 | 主诊医生 | `room-lifecycle` | 由主诊医生配置并进入本次会诊房间,建立主持角色和房间规则 |
56
+ | 4. 邀请专家和相关参与方进入 | 主诊医生 / 系统 | `room-call` + `room-lifecycle` + `participant-list` | 按会诊单邀请院内外专家、助理,必要时控制患者 / 家属进入时机 |
57
+ | 5. 多人视频讨论病例 | 医生 / 专家 | `video-layout` + `participant-list` + `room-chat` + `network-quality` | 多位医生基于病例进行实时音视频讨论,查看在场状态、发言态和网络状态 |
58
+ | 6. 共享影像和病例资料 | 医生 / 专家 | `screen-share` + `video-layout` + 业务病历面板 | 共享 CT、检查单、PPT 或病例资料,并保持主舞台与成员画面的协同展示 |
59
+ | 7. 主诊医生控场与结论收敛 | 主诊医生 | `participant-management` + 业务会诊单 | 控制发言秩序、静音、移除或指定发言人,并沉淀会诊结论 |
60
+ | 8. 结束会诊并归档 | 主诊医生 / 后台 | `room-lifecycle` + `device-control` + 业务归档模块 | 结束会诊、释放本地设备,并把结论、建议和会诊记录归档 |
61
+
62
+ ## 角色流程
63
+
64
+ ### 阶段一:主诊医生
65
+
66
+ | 步骤 | Slice / 模块 | 核心操作 |
67
+ |------|--------------|---------|
68
+ | 1. 登录医生工作台 | login-auth | 完成 `SDKAppID / UserID / UserSig` 鉴权登录 |
69
+ | 2. 发起会诊并设置议题 | 业务会诊单 + room-schedule | 选择病例、时间、参与专家和会诊目标 |
70
+ | 3. 创建会诊房间 | room-lifecycle | 配置房间名称、入会规则、默认禁麦或角色权限 |
71
+ | 4. 邀请专家 / 患者 / 家属 | room-call + participant-management | 定向邀请参会人,并根据阶段控制谁可以入会 |
72
+ | 5. 组织讨论与总结结论 | participant-management + room-chat + 业务会诊单 | 控制发言秩序、同步文字结论并最终收口 |
73
+
74
+ ### 阶段二:专家医生
75
+
76
+ | 步骤 | Slice / 模块 | 核心操作 |
77
+ |------|--------------|---------|
78
+ | 1. 接收会诊通知 | room-schedule / room-call | 从预约列表或即时邀请进入会诊 |
79
+ | 2. 会前设备检查 | prejoin-check + device-control | 检查设备状态并处理权限 / 占用问题 |
80
+ | 3. 进入会诊房间 | room-lifecycle | 进入多人讨论房间,加载音视频上下文 |
81
+ | 4. 查看参会状态与资料 | participant-list + 业务病历面板 | 识别当前发言人、角色和病例资料 |
82
+ | 5. 参与讨论与资料共享 | video-layout + screen-share + room-chat | 发言、共享资料或通过聊天补充建议 |
83
+
84
+ ### 阶段三:患者 / 家属(可选)
85
+
86
+ | 步骤 | Slice / 模块 | 核心操作 |
87
+ |------|--------------|---------|
88
+ | 1. 等待进入通知 | 业务会诊单 / room-call | 只在需要直接沟通时接收进入提醒 |
89
+ | 2. 完成入会前检查 | prejoin-check + device-control | 检查本地设备和网络状态 |
90
+ | 3. 在指定阶段进入房间 | room-lifecycle + participant-list | 进入会诊房间,与医生 / 专家进行补充沟通 |
91
+ | 4. 退出会诊并等待结果 | room-lifecycle | 沟通结束后退出房间,回到业务结果页 |
92
+
93
+ ## 关键能力拆分
94
+
95
+ | 能力点 | 对应 Slice / 模块 | 说明 |
96
+ |------|------------------|------|
97
+ | 会诊预约与时间管理 | `room-schedule` + 业务会诊单 | 预约列表与到点提醒属于高频入口 |
98
+ | 房间规则与角色权限 | `room-lifecycle` + `participant-management` | 会诊通常有明确主持人和受控发言秩序 |
99
+ | 多专家入会与状态展示 | `participant-list` + `participant-management` | 需要清楚看到各专家身份、设备态和发言状态 |
100
+ | 病例讨论主舞台 | `video-layout` + `screen-share` | 影像或病例资料共享时,需要兼顾主舞台和人员画面 |
101
+ | 会中沟通与结论同步 | `room-chat` + 业务会诊单 | 聊天用于补充文字信息,正式结论仍落业务模块 |
102
+ | 稳定性与异常恢复 | `network-quality` + `room-lifecycle` + `device-control` | 处理弱网、断线、设备异常和重入恢复 |
103
+
104
+ ## 排障速查
105
+
106
+ | 现象 | 可能原因 | 参考 Slice / 模块 |
107
+ |------|---------|------------------|
108
+ | 专家收不到会诊通知 | 邀请未送达、预约数据未同步或用户不在线 | room-call / room-schedule |
109
+ | 部分医生进入后看不到其他参会人 | 角色映射错误或成员状态未正确同步 | participant-list / participant-management |
110
+ | 共享影像后主画面切换异常 | 共享状态、布局逻辑或主舞台策略未处理好 | screen-share / video-layout |
111
+ | 会中无法发言或被错误静音 | 会控规则配置不一致或主持操作未同步 | participant-management |
112
+ | 外院专家音视频异常 | 本地设备权限、浏览器兼容性或网络质量问题 | prejoin-check / device-control / network-quality |
113
+ | 会诊结束后仍占用摄像头麦克风 | 房间收口后未正确释放本地设备 | room-lifecycle / device-control |
@@ -0,0 +1,118 @@
1
+ ---
2
+ id: entertainment-live-room
3
+ name: 秀场直播间
4
+ product: live
5
+ slices:
6
+ - live/login-auth
7
+ - live/device-control
8
+ - live/anchor-preview
9
+ - live/anchor-room-config
10
+ - live/anchor-lifecycle
11
+ - live/live-list
12
+ - live/audience-watch
13
+ - live/audience-list
14
+ - live/barrage
15
+ - live/gift
16
+ - live/audience-manage
17
+ - live/beauty
18
+ - live/audio
19
+ - live/coguest-apply
20
+ - live/error-codes
21
+ ---
22
+
23
+ # 秀场直播间
24
+
25
+ ## 场景描述
26
+
27
+ 搭建一个完整的秀场直播间。主播开播后,观众可以从列表进入,在房间里发弹幕、刷礼物、申请连麦。主播可以管理观众(踢人/禁言),也可以邀请观众上麦。连麦观众需要有美颜。
28
+
29
+ ## 前置条件
30
+
31
+ - TRTC 控制台已创建应用,获取 SDKAppID
32
+ - 业务后端已实现 UserSig 签发接口
33
+ - iOS 项目已集成 `pod 'AtomicXCore', '~> 4.0'`
34
+
35
+ ## 主播端流程
36
+
37
+ ### 阶段一:开播准备
38
+
39
+ | 步骤 | Slice | 核心操作 |
40
+ |------|-------|---------|
41
+ | 1. 登录 | login-auth | LoginStore.shared.login() |
42
+ | 2. 打开设备 | device-control | DeviceStore.shared.openLocalCamera() + openLocalMicrophone() |
43
+ | 3. 预览画面 | anchor-preview | LiveCoreView(viewType: .pushView) + setLiveID |
44
+ | 4. 调整美颜 | beauty | BaseBeautyStore.shared.setSmoothLevel() 等 |
45
+ | 5. 调整音效 | audio | AudioEffectStore.shared.setAudioChangerType() 等 |
46
+ | 6. 配置房间 | anchor-room-config | 设置房间名、封面、MetaData |
47
+ | 7. 开播 | anchor-lifecycle | LiveListStore.shared.createLive() |
48
+
49
+ ### 阶段二:直播中互动
50
+
51
+ | 功能 | Slice | 核心操作 |
52
+ |------|-------|---------|
53
+ | 查看弹幕 | barrage | BarrageStore 状态订阅 |
54
+ | 收到礼物 | gift | giftEventPublisher 订阅 |
55
+ | 查看观众 | audience-list | LiveAudienceStore.fetchAudienceList() |
56
+ | 管理观众 | audience-manage | kickUserOutOfRoom / setAdministrator |
57
+ | 禁言 | barrage | disableSendMessage() |
58
+
59
+ ### 阶段三:连麦管理
60
+
61
+ | 操作 | Slice | 核心操作 |
62
+ |------|-------|---------|
63
+ | 收到连麦申请 | coguest-apply | hostEventPublisher 监听 |
64
+ | 同意/拒绝 | coguest-apply | acceptApplication / rejectApplication |
65
+ | 断开连麦 | coguest-apply | disConnect() |
66
+
67
+ ### 结束直播
68
+
69
+ | 步骤 | Slice | 核心操作 |
70
+ |------|-------|---------|
71
+ | 1. 断开所有连麦 | coguest-apply | disConnect() |
72
+ | 2. 结束直播 | anchor-lifecycle | LiveListStore.shared.endLive() |
73
+ | 3. 重置音效 | audio | AudioEffectStore.shared.reset() |
74
+ | 4. 关闭设备 | device-control | closeLocalCamera() + closeLocalMicrophone() |
75
+
76
+ ## 观众端流程
77
+
78
+ ### 进入观看
79
+
80
+ | 步骤 | Slice | 核心操作 |
81
+ |------|-------|---------|
82
+ | 1. 登录 | login-auth | LoginStore.shared.login() |
83
+ | 2. 浏览列表 | live-list | fetchLiveList() |
84
+ | 3. 进入直播间 | audience-watch | LiveCoreView(playView) + joinLive() |
85
+ | 4. 查看观众 | audience-list | LiveAudienceStore |
86
+ | 5. 发弹幕 | barrage | sendTextMessage() |
87
+ | 6. 送礼物 | gift | sendGift() |
88
+
89
+ ### 申请连麦(可选)
90
+
91
+ | 步骤 | Slice | 核心操作 |
92
+ |------|-------|---------|
93
+ | 1. 发起申请 | coguest-apply | applyForSeat(timeout: 30) |
94
+ | 2. 等待审批 | coguest-apply | guestEventPublisher 监听 |
95
+ | 3. 通过后开设备 | device-control | openLocalCamera + openLocalMicrophone |
96
+ | 4. 开启美颜 | beauty | BaseBeautyStore 设置 |
97
+ | 5. 下麦 | coguest-apply | disConnect() → 关闭设备 → 回到普通观看 |
98
+
99
+ ### 退出直播间
100
+
101
+ | 步骤 | Slice | 核心操作 |
102
+ |------|-------|---------|
103
+ | 1. 如在连麦,先下麦 | coguest-apply | disConnect() |
104
+ | 2. 退出房间 | audience-watch | leaveLive() |
105
+
106
+ ## 排障速查
107
+
108
+ 遇到问题时,根据现象查找对应 slice 的排障指南:
109
+
110
+ | 现象 | 可能原因 | 参考 Slice |
111
+ |------|---------|-----------|
112
+ | 所有功能不可用 | 未登录或登录失败 | login-auth |
113
+ | 黑屏无画面 | 设备未打开 / setLiveID 缺失 | device-control / anchor-preview |
114
+ | 弹幕不显示 | BarrageStore 未创建或未订阅 | barrage |
115
+ | 礼物发送失败 | 余额不足或网络问题 | gift |
116
+ | 连麦申请无响应 | 主播未监听事件 | coguest-apply |
117
+ | 操作被拒绝(权限) | 非房主/管理员 | audience-manage + error-codes |
118
+ | 任何错误码 | 查错误码表 | error-codes |