@cometchat/skills 4.2.1 → 4.4.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 (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -12
  3. package/bin/install.js +59 -4
  4. package/package.json +14 -1
  5. package/skills/cometchat/SKILL.md +460 -77
  6. package/skills/cometchat/references/asking-questions.md +48 -0
  7. package/skills/cometchat-a11y/SKILL.md +3 -2
  8. package/skills/cometchat-android-v5/SKILL.md +2 -1
  9. package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
  10. package/skills/cometchat-android-v5-calls/references/README.md +1 -1
  11. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
  12. package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
  13. package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
  14. package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
  15. package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
  16. package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
  17. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
  18. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
  19. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
  20. package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
  21. package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
  22. package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
  23. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
  24. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
  25. package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
  26. package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
  27. package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
  28. package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
  29. package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
  30. package/skills/cometchat-android-v5-components/SKILL.md +4 -3
  31. package/skills/cometchat-android-v5-core/SKILL.md +20 -2
  32. package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
  33. package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
  34. package/skills/cometchat-android-v5-features/SKILL.md +5 -4
  35. package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
  36. package/skills/cometchat-android-v5-production/SKILL.md +2 -1
  37. package/skills/cometchat-android-v5-push/SKILL.md +2 -3
  38. package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
  39. package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
  40. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
  41. package/skills/cometchat-android-v6/SKILL.md +2 -1
  42. package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
  43. package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
  44. package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
  45. package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
  46. package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
  47. package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
  48. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
  49. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
  50. package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
  51. package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
  52. package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
  53. package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
  54. package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
  55. package/skills/cometchat-android-v6-core/SKILL.md +389 -9
  56. package/skills/cometchat-android-v6-events/SKILL.md +4 -1
  57. package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
  58. package/skills/cometchat-android-v6-features/SKILL.md +26 -2
  59. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
  60. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
  61. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
  62. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
  63. package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
  64. package/skills/cometchat-android-v6-production/SKILL.md +6 -3
  65. package/skills/cometchat-android-v6-push/SKILL.md +43 -2
  66. package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
  67. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
  68. package/skills/cometchat-angular-calls/SKILL.md +256 -389
  69. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
  70. package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
  71. package/skills/cometchat-angular-calls/references/call-session.md +2 -2
  72. package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
  73. package/skills/cometchat-angular-calls/references/device-management.md +53 -34
  74. package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
  75. package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
  76. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
  77. package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
  78. package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
  79. package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
  80. package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
  81. package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
  82. package/skills/cometchat-angular-components/SKILL.md +149 -620
  83. package/skills/cometchat-angular-core/SKILL.md +235 -293
  84. package/skills/cometchat-angular-customization/SKILL.md +415 -223
  85. package/skills/cometchat-angular-features/SKILL.md +216 -334
  86. package/skills/cometchat-angular-patterns/SKILL.md +168 -359
  87. package/skills/cometchat-angular-placement/SKILL.md +189 -560
  88. package/skills/cometchat-angular-production/SKILL.md +241 -92
  89. package/skills/cometchat-angular-push/SKILL.md +280 -294
  90. package/skills/cometchat-angular-testing/SKILL.md +430 -158
  91. package/skills/cometchat-angular-theming/SKILL.md +190 -265
  92. package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
  93. package/skills/cometchat-astro-patterns/SKILL.md +22 -1
  94. package/skills/cometchat-calls/SKILL.md +25 -19
  95. package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
  96. package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
  97. package/skills/cometchat-calls/references/use-case-support.md +3 -4
  98. package/skills/cometchat-calls/references/use-case-team.md +23 -12
  99. package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
  100. package/skills/cometchat-components/SKILL.md +163 -25
  101. package/skills/cometchat-core/SKILL.md +412 -13
  102. package/skills/cometchat-customization/SKILL.md +50 -25
  103. package/skills/cometchat-features/SKILL.md +313 -34
  104. package/skills/cometchat-flutter-v5/SKILL.md +10 -4
  105. package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
  106. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
  107. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
  108. package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
  109. package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
  110. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
  111. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
  112. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
  113. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
  114. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
  115. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
  116. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
  117. package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
  118. package/skills/cometchat-flutter-v5-core/SKILL.md +20 -2
  119. package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
  120. package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
  121. package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
  122. package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
  123. package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
  124. package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
  125. package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
  126. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
  127. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
  128. package/skills/cometchat-flutter-v6/SKILL.md +17 -16
  129. package/skills/cometchat-flutter-v6-calls/SKILL.md +78 -63
  130. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +8 -6
  131. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
  132. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
  133. package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
  134. package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
  135. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
  136. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
  137. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
  138. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
  139. package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
  140. package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
  141. package/skills/cometchat-flutter-v6-core/SKILL.md +348 -10
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
  145. package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
  146. package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
  147. package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
  148. package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
  149. package/skills/cometchat-flutter-v6-push/SKILL.md +43 -21
  150. package/skills/cometchat-flutter-v6-testing/SKILL.md +6 -6
  151. package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
  153. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
  154. package/skills/cometchat-i18n/SKILL.md +139 -78
  155. package/skills/cometchat-ios/SKILL.md +4 -2
  156. package/skills/cometchat-ios-calls/SKILL.md +225 -95
  157. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
  158. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
  159. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
  160. package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
  161. package/skills/cometchat-ios-calls/references/call-session.md +51 -54
  162. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
  163. package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
  164. package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
  165. package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
  166. package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
  167. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
  168. package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
  169. package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
  170. package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
  171. package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
  172. package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
  173. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
  174. package/skills/cometchat-ios-components/SKILL.md +200 -12
  175. package/skills/cometchat-ios-core/SKILL.md +281 -11
  176. package/skills/cometchat-ios-customization/SKILL.md +276 -110
  177. package/skills/cometchat-ios-features/SKILL.md +64 -36
  178. package/skills/cometchat-ios-placement/SKILL.md +15 -12
  179. package/skills/cometchat-ios-production/SKILL.md +12 -4
  180. package/skills/cometchat-ios-push/SKILL.md +53 -19
  181. package/skills/cometchat-ios-testing/SKILL.md +14 -9
  182. package/skills/cometchat-ios-theming/SKILL.md +39 -3
  183. package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
  184. package/skills/cometchat-native-bare-patterns/SKILL.md +56 -18
  185. package/skills/cometchat-native-calls/SKILL.md +89 -19
  186. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
  187. package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
  188. package/skills/cometchat-native-calls/references/call-session.md +2 -2
  189. package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
  190. package/skills/cometchat-native-calls/references/device-management.md +53 -30
  191. package/skills/cometchat-native-calls/references/group-calls.md +35 -30
  192. package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
  193. package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
  194. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
  195. package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
  196. package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
  197. package/skills/cometchat-native-calls/references/share-invite.md +7 -5
  198. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
  199. package/skills/cometchat-native-components/SKILL.md +91 -57
  200. package/skills/cometchat-native-core/SKILL.md +281 -9
  201. package/skills/cometchat-native-customization/SKILL.md +150 -28
  202. package/skills/cometchat-native-expo-patterns/SKILL.md +77 -27
  203. package/skills/cometchat-native-features/SKILL.md +79 -49
  204. package/skills/cometchat-native-placement/SKILL.md +19 -10
  205. package/skills/cometchat-native-production/SKILL.md +9 -3
  206. package/skills/cometchat-native-push/SKILL.md +2 -1
  207. package/skills/cometchat-native-testing/SKILL.md +1 -2
  208. package/skills/cometchat-native-theming/SKILL.md +54 -29
  209. package/skills/cometchat-native-troubleshooting/SKILL.md +71 -3
  210. package/skills/cometchat-nextjs-patterns/SKILL.md +48 -6
  211. package/skills/cometchat-placement/SKILL.md +42 -3
  212. package/skills/cometchat-production/SKILL.md +12 -5
  213. package/skills/cometchat-react-calls/SKILL.md +220 -10
  214. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
  215. package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
  216. package/skills/cometchat-react-calls/references/call-session.md +1 -1
  217. package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
  218. package/skills/cometchat-react-calls/references/device-management.md +55 -51
  219. package/skills/cometchat-react-calls/references/group-calls.md +18 -23
  220. package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
  221. package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
  222. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
  223. package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
  224. package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
  225. package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
  226. package/skills/cometchat-react-calls/references/share-invite.md +4 -5
  227. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
  228. package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
  229. package/skills/cometchat-react-patterns/SKILL.md +57 -4
  230. package/skills/cometchat-react-push/SKILL.md +258 -72
  231. package/skills/cometchat-react-router-patterns/SKILL.md +43 -4
  232. package/skills/cometchat-react-testing/SKILL.md +14 -5
  233. package/skills/cometchat-theming/SKILL.md +181 -18
  234. package/skills/cometchat-troubleshooting/SKILL.md +40 -20
@@ -3,13 +3,14 @@ name: cometchat-astro-patterns
3
3
  description: "Framework-specific patterns for integrating CometChat React UI Kit v6 into Astro projects using React islands. Covers client:only rendering, island communication, CSS handling, and common pitfalls."
4
4
  license: "MIT"
5
5
  compatibility: "Node.js >=18; React >=18; Astro >=3; @astrojs/react; @cometchat/chat-uikit-react ^6; @cometchat/chat-sdk-javascript ^4"
6
- allowed-tools: "shell, file-read, file-search, file-list"
7
6
  metadata:
8
7
  author: "CometChat"
9
8
  version: "3.0.0"
10
9
  tags: "chat cometchat astro react islands client-only patterns"
11
10
  ---
12
11
 
12
+ > **Ground truth:** `@cometchat/chat-uikit-react@^6` (+ `@cometchat/calls-sdk-javascript@^5`) — installed package types + `ui-kit/react`. **Official docs:** https://www.cometchat.com/docs/ui-kit/react/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
13
+
13
14
  ## Purpose
14
15
 
15
16
  This skill teaches Claude how to integrate CometChat into an Astro project using React islands. Astro is a static-first framework -- most of the page is HTML rendered at build time. Interactive React components run as isolated "islands" in the browser. CometChat components are React islands that must use `client:only="react"` to bypass server rendering entirely.
@@ -685,3 +686,23 @@ const handleClose = () => console.log("closed");
685
686
  1. Always `client:only="react"` -- never `client:load`
686
687
  2. CSS imports go INSIDE the React component -- never in `.astro` files
687
688
  3. Each island wraps its own `CometChatProvider` -- there is no global provider at the Astro level
689
+
690
+ ## 11. Visual Builder integration (v4.3)
691
+
692
+ If the customer picks **Visually** in dispatcher Step 3.1, skills runs `cometchat builder export --platform react --output src/CometChat --json` to download the canonical + patch settings in one step.
693
+
694
+ **Full recipe lives in `cometchat-core` §11 "Visual Builder integration".** This section is a pointer + Astro-specific gotchas:
695
+
696
+ - Run `cometchat builder export --platform react --output src/CometChat --json`.
697
+ - Create a React island wrapper at `src/components/CometChatIsland.tsx` (or similar) that does init + login + renders `<CometChatProvider><CometChatApp /></CometChatProvider>`.
698
+ - Mount in `src/pages/chat.astro` as `<CometChatIsland client:only="react" />` — **never** `client:load`. The canonical CometChat/ uses `window` / `document` at module scope; `client:load` will SSR the import resolution and crash.
699
+ - Use `import.meta.env.PUBLIC_COMETCHAT_*` (Astro's public-env prefix).
700
+ - Astro's Vite-based build uses rollup (not Rolldown), so it tolerates the canonical's type-as-value imports as warning — Astro is **the most reliable Visual Builder host** in the v4.3.0 web matrix (validated 2026-05-22).
701
+
702
+ ### Both Astro and other Vite hosts
703
+
704
+ - Pin `@cometchat/chat-uikit-react@6.4.3` + `@cometchat/calls-sdk-javascript@4.2.5`.
705
+ - `package.json` needs `cometChatCustomConfig` block (Finding F2).
706
+ - Vite 7+ `tsconfig.app.json` requires the relaxation set from `cometchat-core` §11.2.
707
+
708
+ If the customer picks **In code**, ignore this section.
@@ -2,13 +2,14 @@
2
2
  name: cometchat-calls
3
3
  description: Entry-point for adding CometChat Voice & Video Calling to any React, React Native, Angular, native Android, native iOS, or Flutter project. Detects the framework, picks standalone (calls-only) vs additive (calls on top of existing chat) mode, and routes to the per-family calls skill. Invoked by the top-level `cometchat` dispatcher when `product === "voice-video"` or `chat-messaging+voice-video`, and directly when the user asks for calls explicitly.
4
4
  license: "MIT"
5
- allowed-tools: "shell, file-read, file-search, file-list, ask-user"
6
5
  metadata:
7
6
  author: "CometChat"
8
7
  version: "4.0.0"
9
8
  tags: "cometchat calls voice video webrtc dispatcher react react-native angular android ios flutter callkit pushkit voip"
10
9
  ---
11
10
 
11
+ > **Ground truth:** the per-platform Calls SDK + `docs/calls`. **Official docs:** https://www.cometchat.com/docs/calls/javascript/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
12
+
12
13
  ## Use this skill when
13
14
 
14
15
  - The top-level `cometchat` dispatcher's Step 3.0 routes here because `product === "voice-video"` or `chat-messaging+voice-video`
@@ -25,12 +26,14 @@ This is the **entry point for every calls integration**. Do NOT invoke per-famil
25
26
  | **React Native** (Expo + bare) | `cometchat-native-calls` | `@cometchat/calls-sdk-react-native` | Yes |
26
27
  | **Angular** (12–15) | `cometchat-angular-calls` | `@cometchat/calls-sdk-javascript` | Yes |
27
28
  | **Android** (V5 stable) | `cometchat-android-v5-calls` | `com.cometchat:calls-sdk-android:5.x` (Cloudsmith) | Yes — production-ready |
28
- | **Android** (V6 beta) | `cometchat-android-v6-calls` | Calls fold into `chatuikit-{compose,kotlin}-android:6.x` for V6 | Beta |
29
+ | **Android** (V6 GA) | `cometchat-android-v6-calls` | `chatuikit-{compose,kotlin}-android:6.0.+` **+ explicit `com.cometchat:calls-sdk-android:5.0.+` peer dep** (the "calls fold in" marketing is incomplete) | Yes — GA 2026-05-25, but ships broken OOTB: **5 required workarounds (W1–W5)**, incl. the peer dep + not using `CometChatCallButtons`. See per-family skill. |
29
30
  | **iOS** (V5 stable) | `cometchat-ios-calls` | `CometChatCallsSDK` (SPM / CocoaPods) | Yes |
30
31
  | **Flutter** (V5 stable) | `cometchat-flutter-v5-calls` (already exists) | `cometchat_calls_sdk` (Cloudsmith) | Yes |
31
- | **Flutter** (V6 beta) | `cometchat-flutter-v6-calls` (already exists) | Calls fold into `cometchat_chat_uikit:^6.0.0-beta2` | Beta |
32
+ | **Flutter** (V6 GA) | `cometchat-flutter-v6-calls` (already exists) | Calls fold into `cometchat_chat_uikit: ^6.0.1` | Yes — GA 2026-05-25 (one explicit `MaterialApp(navigatorKey: CallNavigationContext.navigatorKey)` wiring required, see per-family skill) |
33
+
34
+ > **Status:** All nine calls skills (this dispatcher + react, native, angular, ios, android-v5, android-v6, flutter-v5, flutter-v6) are authored and source-verified against each family's real SDK surface (decompiled `calls-sdk-android` AARs, `CometChatCallsSDK.swiftinterface`, `@cometchat/calls-sdk-{javascript,react-native}` `.d.ts`, and the Flutter `cometchat_calls_*` pub-cache). Android V5 ships 17 pre-authored sub-skills folded into `cometchat-android-v5-calls/references/`. Per-family caveats that are load-bearing: **Android V6 needs 5 workarounds (W1–W5)**; **Flutter V6 needs the `MaterialApp(navigatorKey: CallNavigationContext.navigatorKey)` wiring**; **iOS has no `CometChatCalls.login()`** (auth is per-session via `generateToken`).
32
35
 
33
- > **Status:** This dispatcher is the v4.1 entry point. Per-family skill stubs are scaffolded and being filled in. Flutter v5/v6 calls skills already exist from v4.0.0 and will be audited and brought into the same shape; the other six are being authored against `~/Downloads/calls-sdk/calls-sdk-{android,ios,javascript,react-native}-5/` as ground truth (Android ships 17 pre-authored sub-skills folded into `cometchat-android-v5-calls/references/`).
36
+ > **Clarification contract (ALL coding agents) read `references/asking-questions.md`.** Every "ask"/"AskUserQuestion" in this skill follows that contract: on any agent without a structured-question primitive, render the question as a **numbered text list and WAIT** for a real answer (never default/infer; auto-mode doesn't authorize skipping), map by value/label not position, and accept a free-text fallback.
34
37
 
35
38
  ## Why a separate calls dispatcher
36
39
 
@@ -279,6 +282,7 @@ These are the production-grade non-negotiables. The dispatcher checks them in St
279
282
  5. **Cleanup on hangup.** Camera-light-stays-on / mic-stays-hot is the canonical "looks fine in dev, fails review" bug. Every per-family skill includes the explicit teardown checklist.
280
283
  6. **Permissions with rationale.** Microphone, camera, screen-record (where supported), notifications. All four, all with usage strings.
281
284
  7. **`IncomingCall` mounted at app root in standalone mode.** Not at the chat surface — calls is the whole product, the listener has to be alive everywhere.
285
+ 8. **Honor "SDK only" when the user says SDK only (ENG-35711).** If the developer explicitly asks for the Calls SDK without UI Kit components — phrasing like *"pure SDK,"* *"no UI Kit components,"* *"build my own call UI,"* *"SDK-only path"* — the per-family skill MUST NOT scaffold `CometChatCallButtons`, `CometChatIncomingCall`, `CometChatOutgoingCall`, or `CometChatOngoingCall`. Use Chat SDK `CometChat.initiateCall` for signaling + Calls SDK `joinSession` (and a hand-written button/screen) for the surface. **Never silently fall back to UI Kit components** "because they're easier" — that's a documented frustration from two testers. If the developer's request can't be served without a UI Kit component, ask explicitly: *"This piece needs the kit's `<CometChatXxx>` — happy to use it, or do you want a hand-written equivalent?"* Don't decide for them.
282
286
 
283
287
  ## Anti-patterns
284
288
 
@@ -290,26 +294,28 @@ These are the production-grade non-negotiables. The dispatcher checks them in St
290
294
 
291
295
  ## Ground truth references
292
296
 
293
- Per-family `-calls` skills cite from these sources. The dispatcher itself doesn't write code; the per-family skills do. References listed here so a future audit can verify which SDK signatures the skills target.
297
+ Per-family `-calls` skills cite from these sources. The dispatcher itself doesn't write code; the per-family skills do. To verify which SDK signatures the skills target, check each family's **published SDK artifact + public docs** (the source-of-truth — an earlier draft pointed at a local `~/Downloads/calls-sdk/` clone that no longer exists; use the installed/published packages instead):
294
298
 
295
- - **Android V5:** `~/Downloads/calls-sdk/calls-sdk-android-5/` pre-authored 17-skill pack at `skills/`, dispatcher at `AGENTS.md`. Folded into `cometchat-android-v5-calls/references/{recording,screen-sharing,picture-in-picture,background-handling,voip-calling,audio-controls,video-controls,participant-management,custom-ui,in-call-chat,call-logs,session-settings,event-listeners,join-session,ringing-integration,setup}.md`.
296
- - **iOS V5:** `~/Downloads/calls-sdk/calls-sdk-ios-5/sample-apps/`sample-app code as ground truth (no pre-authored skill pack).
297
- - **JavaScript (web):** `~/Downloads/calls-sdk/calls-sdk-javascript-5/sample-apps/`sample-app code as ground truth.
298
- - **React Native:** `~/Downloads/calls-sdk/calls-sdk-react-native-5/sample-apps/`sample-app code as ground truth.
299
- - **Flutter:** `~/Downloads/calls-sdk/calls-sdk-flutter-5/sample-apps/` + existing `cometchat-flutter-v5-calls` and `cometchat-flutter-v6-calls` skills (audited against the SDK).
300
- - **Angular:** Same JS Calls SDK (`@cometchat/calls-sdk-javascript`) wrapped in Angular Inputs/Outputs. Sample-app code from `~/Downloads/calls-sdk/calls-sdk-javascript-5/` plus existing `cometchat-angular-features` calls section.
299
+ - **Android V5:** `com.cometchat:calls-sdk-android:5.x` (decompile the Maven AAR, or `javap` the Gradle-cached classes) + [docs](https://www.cometchat.com/docs/sdk/android/overview). The 17 sub-topics are folded into `cometchat-android-v5-calls/references/{recording,screen-sharing,picture-in-picture,background-handling,voip-calling,audio-controls,video-controls,participant-management,custom-ui,in-call-chat,call-logs,session-settings,event-listeners,join-session,ringing-integration,setup}.md`.
300
+ - **iOS V5:** `CometChatCallsSDK` 5.xthe `.swiftinterface` inside the resolved framework (SPM `.build/artifacts/…` or CocoaPods `Pods/…`; it ships vendored inside `CometChatUIKitSwift` for additive) + [docs](https://www.cometchat.com/docs/calls/ios/overview).
301
+ - **JavaScript (web):** `@cometchat/calls-sdk-javascript@5`the package `.d.ts` (`node_modules/@cometchat/calls-sdk-javascript/dist/index.d.ts`) + [docs](https://www.cometchat.com/docs/calls/javascript/overview).
302
+ - **React Native:** `@cometchat/calls-sdk-react-native@5`the package `.d.ts` + `@cometchat/calls-lib-webrtc` (Cloudsmith) + [docs](https://www.cometchat.com/docs/calls/react-native/overview).
303
+ - **Flutter:** `cometchat_calls_sdk` (V5: paired `cometchat_calls_uikit:^5.0`; V6: folded into `cometchat_chat_uikit:^6.0`) — the pub-cache source plus the `cometchat-flutter-v5-calls` / `cometchat-flutter-v6-calls` skills (audited against it).
304
+ - **Angular:** the same JS Calls SDK (`@cometchat/calls-sdk-javascript`) wrapped in Angular Inputs/Outputs verify via `@cometchat/chat-uikit-angular` `.d.ts` + the JS SDK `.d.ts`.
301
305
 
302
- ## Three calling modes — pick the right one (Tier 1.8 + 1.9)
306
+ ## Two calling modes (Ringing + Session) and the kit's prebuilt UI for Ringing
303
307
 
304
- CometChat supports three distinct calling workflows. Route the user to the matching per-family reference:
308
+ > **Naming clarification (ENG-35699 follow-up):** This section labels three rows below — "Standard", "Ringing", and "Call Session" — but **architecturally there are only TWO modes**: Ringing (signaling-driven) and Session (URL-driven). "Standard" is the **kit's prebuilt UI for Ringing** (using `<CometChatCallButtons>` + `<CometChatIncomingCall>`), not a third architectural mode. The Step 3.0 prompt above asks Ringing vs Session — that's the load-bearing decision. The Standard row is the most-common rendering choice WITHIN Ringing mode.
305
309
 
306
- | Mode | Driver | When to use | Per-family ref |
307
- |---|---|---|---|
308
- | **Standard** | UI Kit (`CometChatCallButtons` + `CometChatIncomingCall`) | 80% case chat-driven calls with prebuilt UI | covered in per-family `SKILL.md` |
309
- | **Ringing** | Chat SDK call entity + Calls SDK session | Custom incoming/outgoing call UI on top of CometChat signaling | `references/ringing-integration.md` |
310
- | **Call Session** | Calls SDK `joinSession` directly (no ringing) | Meeting-room URLs, scheduled calls, conference rooms | `references/call-session.md` |
310
+ CometChat supports two underlying calling workflows; the table below splits Ringing into "Standard (kit-prebuilt UI)" vs "Ringing (custom UI on signaling)" for routing purposes only:
311
+
312
+ | Row | Underlying mode | Driver | When to use | Per-family ref |
313
+ |---|---|---|---|---|
314
+ | **Standard** | Ringing | UI Kit (`CometChatCallButtons` + `CometChatIncomingCall`) | 80% case chat-driven calls with prebuilt UI | covered in per-family `SKILL.md` |
315
+ | **Ringing (custom UI)** | Ringing | Chat SDK call entity + Calls SDK session | Custom incoming/outgoing call UI on top of CometChat signaling | `references/ringing-integration.md` |
316
+ | **Call Session** | Session | Calls SDK `joinSession` directly (no ringing) | Meeting-room URLs, scheduled calls, conference rooms | `references/call-session.md` |
311
317
 
312
- Standard is the default unless the user explicitly says "custom incoming call UI" (→ Ringing) or "meeting link / join with sessionId" (→ Call Session). The Tier 4 use-cases telegraph which mode they want — broadcast + team huddles use Call Session; telehealth + marketplace + support use Standard or Ringing.
318
+ Standard is the default Ringing rendering unless the user explicitly says "custom incoming call UI" (→ Ringing custom) or "meeting link / join with sessionId" (→ Call Session). The Tier 4 use-cases telegraph which mode they want — broadcast + team huddles use Call Session; telehealth + marketplace + support use Standard or Ringing custom.
313
319
 
314
320
  ## Use-case integration patterns (Tier 4)
315
321
 
@@ -39,10 +39,9 @@ const settings = {
39
39
  hideChangeLayoutButton: true, // Don't let attendees change
40
40
 
41
41
  hideRecordingButton: false, // Presenter records
42
- startRecordingOnCallStart: true, // Always record broadcasts (replay value)
42
+ autoStartRecording: true, // Always record broadcasts (replay value)
43
43
 
44
- hideScreenShareButton: false, // For slides
45
- hideVirtualBackgroundButton: false,
44
+ hideScreenSharingButton: false, // For slides
46
45
 
47
46
  hideChatButton: false, // Q&A overflow + reactions
48
47
  hideShareInviteButton: false, // Encourage sharing
@@ -53,7 +52,7 @@ const settings = {
53
52
  joinWithMutedAudio: true,
54
53
  joinWithMutedVideo: true,
55
54
 
56
- callIdleTime: 0, // Disable idle timeout — events run long
55
+ idleTimeoutPeriodBeforePrompt: 86_400_000, // Disable idle timeout — events run long
57
56
  };
58
57
  ```
59
58
 
@@ -113,12 +112,18 @@ function PresenterRaisedHandsList() {
113
112
  });
114
113
  }, []);
115
114
 
116
- function unmuteParticipant(uid: string) {
117
- // Send a custom message asking participant to unmute themselves
118
- // (CometChat doesn't support force-unmute — privacy)
119
- CometChat.sendCustomMessage(/* type: 'unmute_request', target: uid */);
120
- // Optimistically lower their hand
121
- CometChatCalls.lowerParticipantHand(uid);
115
+ async function unmuteParticipant(uid: string) {
116
+ // Send a custom message asking the participant to unmute themselves
117
+ // (CometChat doesn't support force-unmute — privacy).
118
+ // There is NO CometChatCalls.lowerParticipantHand(uid) the SDK only
119
+ // exposes lowerHand() for the LOCAL user. To lower someone else's hand,
120
+ // message them and let their client call lowerHand() (see raise-hand.md).
121
+ const msg = new CometChat.CustomMessage(
122
+ uid, CometChat.RECEIVER_TYPE.USER, "lower_hand", {},
123
+ );
124
+ await CometChat.sendCustomMessage(msg);
125
+ // Optimistically drop them from our local raised-hands list
126
+ setRaised((prev) => prev.filter((p) => p.uid !== uid));
122
127
  }
123
128
 
124
129
  return (
@@ -64,12 +64,11 @@ const settings = {
64
64
 
65
65
  hideRecordingButton: true, // No platform-side recording — privacy + dispute via chat archive
66
66
  hideShareInviteButton: true, // Buyer ↔ seller only — don't allow inviting
67
- hideScreenShareButton: false, // Useful for "show me the actual condition"
68
- hideVirtualBackgroundButton: false, // Privacy — most people are in their home
67
+ hideScreenSharingButton: false, // Useful for "show me the actual condition"
69
68
  hideChatButton: false, // For sharing photos/details mid-call
70
69
 
71
70
  hideRaiseHandButton: true,
72
- callIdleTime: 600, // 10min idle = end (sometimes deals die)
71
+ idleTimeoutPeriodBeforePrompt: 600_000, // 10min idle = end (sometimes deals die)
73
72
  };
74
73
  ```
75
74
 
@@ -57,18 +57,17 @@ const settings = {
57
57
  hideChangeLayoutButton: false, // Agent may want grid for note-taking workflows
58
58
 
59
59
  hideRecordingButton: true, // Don't let agent toggle — server-side auto-record
60
- startRecordingOnCallStart: true, // QA recording is the policy
60
+ autoStartRecording: true, // QA recording is the policy
61
61
  // (consent text in the in-app "By starting the call,
62
62
  // you agree to recording for quality" notice)
63
- hideScreenShareButton: false, // Critical for troubleshooting
63
+ hideScreenSharingButton: false, // Critical for troubleshooting
64
64
 
65
- hideVirtualBackgroundButton: false, // Agent uses brand background
66
65
 
67
66
  hideChatButton: false, // For pasting links/error messages
68
67
  hideShareInviteButton: true, // Customer ↔ agent only
69
68
 
70
69
  hideRaiseHandButton: true,
71
- callIdleTime: 300, // 5min — short, agents are busy
70
+ idleTimeoutPeriodBeforePrompt: 300_000, // 5min — short, agents are busy
72
71
  };
73
72
  ```
74
73
 
@@ -34,17 +34,16 @@ const settings = {
34
34
  hideChangeLayoutButton: false, // Let users pick (some prefer SPOTLIGHT)
35
35
 
36
36
  hideRecordingButton: false, // Anyone can record; team norms decide
37
- startRecordingOnCallStart: false,
37
+ autoStartRecording: false,
38
38
 
39
- hideScreenShareButton: false, // Critical
40
- hideVirtualBackgroundButton: false,
39
+ hideScreenSharingButton: false, // Critical
41
40
 
42
41
  hideChatButton: false, // Side-chat for links
43
42
  hideShareInviteButton: false, // Pull others in mid-call
44
43
 
45
44
  hideRaiseHandButton: false, // For larger team meetings (10+)
46
45
 
47
- callIdleTime: 1800, // 30min — meetings can have lulls
46
+ idleTimeoutPeriodBeforePrompt: 1_800_000, // 30min — meetings can have lulls
48
47
  };
49
48
  ```
50
49
 
@@ -56,24 +55,36 @@ const settings = {
56
55
  // When someone starts a call in a team group, fire a custom message
57
56
  // so other members see "🟢 Huddle started by Sarah" in the channel.
58
57
  async function startHuddle(group: CometChat.Group) {
59
- // 1. Initiate the call
60
- const session = await CometChatCalls.startSession({
61
- sessionId: `huddle-${group.guid}-${Date.now()}`,
62
- participants: [...group.memberUids],
63
- });
58
+ // 1. Mint a session via the Chat SDK. A Call returned by initiateCall carries
59
+ // a server-issued sessionId getSessionId() (chat-sdk Call.getSessionId).
60
+ // There is NO object-form CometChatCalls.startSession({sessionId,participants}).
61
+ const call = new CometChat.Call(
62
+ group.guid,
63
+ CometChat.CALL_TYPE.VIDEO,
64
+ CometChat.RECEIVER_TYPE.GROUP,
65
+ );
66
+ const initiatedCall = await CometChat.initiateCall(call); // returns Call
67
+ const sessionId = initiatedCall.getSessionId();
64
68
 
65
- // 2. Post a custom message in the chat group
69
+ // 2. Post a custom message in the chat group so members see the huddle + can join
66
70
  const customMessage = new CometChat.CustomMessage(
67
71
  group.guid,
68
72
  CometChat.RECEIVER_TYPE.GROUP,
69
73
  "huddle_started",
70
74
  {
71
- sessionId: session.sessionId,
75
+ sessionId,
72
76
  startedBy: currentUserUid,
73
77
  startedAt: Date.now(),
74
78
  },
75
79
  );
76
80
  await CometChat.sendCustomMessage(customMessage);
81
+
82
+ // 3. The starter joins the session. Each joiner does the same with the shared
83
+ // sessionId: generateToken(sessionId) → joinSession(token, settings, container).
84
+ // (calls-sdk joinSession(callToken, SessionSettings, HTMLElement) is canonical;
85
+ // the old startSession(callToken, callSettings, container) is deprecated.)
86
+ const { token } = await CometChatCalls.generateToken(sessionId);
87
+ await CometChatCalls.joinSession(token, sessionSettings, callContainer);
77
88
  }
78
89
  ```
79
90
 
@@ -124,7 +135,7 @@ app.post("/webhooks/call", async (req, res) => {
124
135
  ## Anti-patterns
125
136
 
126
137
  1. **Force-ringing all team members.** Annoying — they might be focused. Use channel notification + opt-in join.
127
- 2. **No screen-share quality config.** Default screen-share is 720p; for code review, bump to 1080p (`screenShareQuality: 'high'`).
138
+ 2. **Assuming a screen-share quality knob exists in SessionSettings.** There is no `screenShareQuality` field on SessionSettings (verified against the calls-sdk types) — don't promise a non-API setting. Screen-share resolution is negotiated by the browser/WebRTC; tune the source (share a tab vs full screen) rather than a SessionSettings field.
128
139
  3. **Idle timeout too short.** Standup runs 35min, idle of 600s ends it during a debate. Use 1800s (30min).
129
140
  4. **Recording auto-on without team norms.** Some teams hate being recorded; surprise recording = trust hit. Default off; let team decide.
130
141
  5. **No way to invite outside team mid-call.** Sometimes you need to pull in a designer or PM. Don't hide share-invite for team calls.
@@ -47,16 +47,15 @@ const settings = {
47
47
  hideChangeLayoutButton: true, // Don't let user switch — calmer UX
48
48
 
49
49
  hideRecordingButton: false, // Provider needs it
50
- startRecordingOnCallStart: false, // NEVER auto-record without consent
50
+ autoStartRecording: false, // NEVER auto-record without consent
51
51
 
52
- hideScreenShareButton: false, // Sharing labs is core
53
- hideVirtualBackgroundButton: false, // Patient often wants privacy
52
+ hideScreenSharingButton: false, // Sharing labs is core
54
53
 
55
54
  hideChatButton: false, // For sending links/PDFs
56
55
  hideShareInviteButton: true, // Patient ↔ provider only — no inviting
57
56
  hideRaiseHandButton: true, // 1:1 — no need
58
57
 
59
- callIdleTime: 600, // 10min — long enough for thinking pauses
58
+ idleTimeoutPeriodBeforePrompt: 600_000, // 10min — long enough for thinking pauses
60
59
  };
61
60
  ```
62
61