@cometchat/skills 4.4.1 → 5.0.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 (489) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +36 -0
  4. package/README.md +41 -163
  5. package/RULES.md +114 -0
  6. package/bin/cometchat-skills.mjs +1180 -0
  7. package/bin/legacy-skills.json +95 -0
  8. package/catalogs/android-v6.json +1646 -0
  9. package/catalogs/flutter-v6.json +651 -0
  10. package/catalogs/ios-v5.json +1383 -0
  11. package/catalogs/rn-calls-v5.json +134 -0
  12. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  13. package/catalogs/rn-sdk-v4.json +672 -0
  14. package/catalogs/rn-v5.json +449 -0
  15. package/catalogs/rn-v5.symbols.txt +216 -0
  16. package/catalogs/sdk-android-v5.json +514 -0
  17. package/contracts.android-calls-v5.json +122 -0
  18. package/contracts.android-v6.json +135 -0
  19. package/contracts.angular-v5.json +694 -0
  20. package/contracts.flutter-calls-v5.json +77 -0
  21. package/contracts.flutter-v6.json +126 -0
  22. package/contracts.ios-calls-v5.json +67 -0
  23. package/contracts.ios-v5.json +436 -0
  24. package/contracts.json +82 -0
  25. package/contracts.rn-calls-v5.json +77 -0
  26. package/contracts.rn-v5.json +727 -0
  27. package/contracts.sdk-android-v5.json +15 -0
  28. package/contracts.web-calls-v5.json +45 -0
  29. package/features.android-calls-v5.json +246 -0
  30. package/features.android-v6.json +65 -0
  31. package/features.angular-v5.json +521 -0
  32. package/features.flutter-calls-v5.json +286 -0
  33. package/features.flutter-v6.json +484 -0
  34. package/features.ios-calls-v5.json +236 -0
  35. package/features.ios-v5.json +573 -0
  36. package/features.json +61 -0
  37. package/features.rn-calls-v5.json +187 -0
  38. package/features.rn-v5.json +614 -0
  39. package/features.sdk-android-v5.json +40 -0
  40. package/features.sdk-jsv4.json +24 -0
  41. package/features.web-calls-v5.json +108 -0
  42. package/package.json +151 -74
  43. package/peers.yaml +312 -0
  44. package/registry/README.md +31 -0
  45. package/registry/android-calls-v5.json +54 -0
  46. package/registry/android-v6.json +137 -0
  47. package/registry/angular-v5.json +114 -0
  48. package/registry/flutter-calls-v5.json +54 -0
  49. package/registry/flutter-v6.json +119 -0
  50. package/registry/ios-calls-v5.json +59 -0
  51. package/registry/ios-v5.json +97 -0
  52. package/registry/rn-calls-v5.json +59 -0
  53. package/registry/rn-v5.json +129 -0
  54. package/registry/sdk-android-v5.json +53 -0
  55. package/registry/sdk-jsv4.json +53 -0
  56. package/registry/web-calls-v5.json +54 -0
  57. package/registry/web-v7.json +99 -0
  58. package/skills/cometchat/SKILL.md +42 -2096
  59. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  60. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  66. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  67. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  68. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  69. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  70. package/skills/cometchat-android-v6-calls/SKILL.md +128 -411
  71. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  72. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  73. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  74. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  75. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  76. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  77. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  78. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  79. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  80. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  81. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  82. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  83. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  84. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  85. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  86. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  87. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  88. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  89. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  90. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  91. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  92. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  93. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  94. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  95. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  96. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  97. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  98. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  99. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  100. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  101. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  102. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  103. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  104. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  105. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  106. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  107. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  108. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  109. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  110. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  111. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  112. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  113. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  114. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  115. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  116. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  117. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  118. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  119. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  120. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  121. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  122. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  123. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  127. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -387
  128. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  129. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  130. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  131. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  132. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  133. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  134. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  135. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  136. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  137. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  138. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  139. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  140. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  141. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  142. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  143. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  144. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  145. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  146. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  147. package/skills/cometchat-ios-calls/SKILL.md +105 -511
  148. package/skills/cometchat-ios-components/SKILL.md +44 -834
  149. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  150. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  151. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  152. package/skills/cometchat-ios-core/references/install.md +23 -0
  153. package/skills/cometchat-ios-core/references/layout.md +186 -0
  154. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  155. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  156. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  157. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  158. package/skills/cometchat-ios-features/SKILL.md +29 -738
  159. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  160. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  161. package/skills/cometchat-ios-push/SKILL.md +24 -602
  162. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  163. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  164. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  165. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  166. package/skills/cometchat-onboarding/SKILL.md +89 -0
  167. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  168. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  169. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  170. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  171. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  172. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  173. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  174. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  175. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  176. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  177. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  178. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  179. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  180. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  181. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  182. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  183. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  184. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  185. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  186. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  187. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  188. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  189. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  190. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  191. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  192. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  193. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  194. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  195. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  196. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  198. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  199. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  200. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  201. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  202. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  203. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  204. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  205. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  206. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  207. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  208. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  209. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  210. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  211. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  212. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  213. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  214. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  215. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  216. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  217. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  218. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  219. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  220. package/test-suite/README.md +70 -0
  221. package/test-suite/catalogs/android-calls-v5.json +830 -0
  222. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  223. package/test-suite/catalogs/android-v6.json +1646 -0
  224. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  225. package/test-suite/catalogs/angular-v5.json +7587 -0
  226. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  227. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  228. package/test-suite/catalogs/flutter-v6.json +651 -0
  229. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  230. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  231. package/test-suite/catalogs/ios-v5.json +1383 -0
  232. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  233. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  234. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  235. package/test-suite/catalogs/rn-v5.json +449 -0
  236. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  237. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  238. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  239. package/test-suite/catalogs/web-calls-v5.json +195 -0
  240. package/test-suite/catalogs/web-v7.json +1243 -0
  241. package/test-suite/scripts/build-registry.mjs +113 -0
  242. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  243. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  244. package/test-suite/scripts/lint-skills.mjs +909 -0
  245. package/test-suite/scripts/measure-tokens.mjs +169 -0
  246. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  247. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  248. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  249. package/test-suite/scripts/verify-catalog.mjs +242 -0
  250. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  251. package/test-suite/scripts/verify-detection.mjs +178 -0
  252. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  253. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  254. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  255. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  256. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  257. package/test-suite/typecheck/angular-v5/package.json +21 -0
  258. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  259. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  260. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  261. package/test-suite/typecheck/web-v7/package.json +18 -0
  262. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  263. package/bin/install.js +0 -1003
  264. package/skills/.claude-plugin/marketplace.json +0 -86
  265. package/skills/cometchat/references/asking-questions.md +0 -48
  266. package/skills/cometchat-a11y/SKILL.md +0 -477
  267. package/skills/cometchat-android-v5/SKILL.md +0 -121
  268. package/skills/cometchat-android-v5-calls/SKILL.md +0 -427
  269. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  270. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  271. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  272. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  273. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  274. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  275. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  276. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  277. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  278. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  279. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  280. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  281. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  282. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  283. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  284. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  285. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  286. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  287. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  288. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  289. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  290. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  291. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  292. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  293. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  294. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  295. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  296. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  297. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  298. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  299. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  300. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  301. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  302. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  303. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  304. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  305. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  306. package/skills/cometchat-android-v6/SKILL.md +0 -108
  307. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  308. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  309. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  310. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  311. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  312. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  313. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  314. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  315. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  316. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  317. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  318. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  319. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  320. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  321. package/skills/cometchat-angular-calls/SKILL.md +0 -378
  322. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  323. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  324. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  325. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  326. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  327. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  328. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  329. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  330. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  331. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  332. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  333. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  334. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  335. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  336. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  337. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  338. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  339. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  340. package/skills/cometchat-angular-components/SKILL.md +0 -235
  341. package/skills/cometchat-angular-core/SKILL.md +0 -386
  342. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  343. package/skills/cometchat-angular-features/SKILL.md +0 -329
  344. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  345. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  346. package/skills/cometchat-angular-production/SKILL.md +0 -564
  347. package/skills/cometchat-angular-push/SKILL.md +0 -389
  348. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  349. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  350. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  351. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  352. package/skills/cometchat-calls/SKILL.md +0 -364
  353. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  354. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  355. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  356. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  357. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  358. package/skills/cometchat-components/SKILL.md +0 -1142
  359. package/skills/cometchat-core/SKILL.md +0 -1048
  360. package/skills/cometchat-customization/SKILL.md +0 -580
  361. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  362. package/skills/cometchat-features/SKILL.md +0 -861
  363. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  364. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -453
  365. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  366. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  367. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  368. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  369. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  370. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  371. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  372. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  373. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  374. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  375. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  376. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  377. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  378. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  379. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  380. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  381. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  382. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  383. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  384. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  385. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  386. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  387. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  388. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  389. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  390. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  391. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  392. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  393. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  394. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  395. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  396. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  397. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  398. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  399. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  400. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  401. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  402. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  403. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  404. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  405. package/skills/cometchat-i18n/SKILL.md +0 -419
  406. package/skills/cometchat-ios/SKILL.md +0 -325
  407. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -174
  408. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  409. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  410. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  411. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  412. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  413. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  414. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  415. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  416. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  417. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  418. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  419. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  420. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  421. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  422. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  423. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  424. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  425. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  426. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  427. package/skills/cometchat-ios-production/SKILL.md +0 -738
  428. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  429. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  430. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  431. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  432. package/skills/cometchat-native-calls/SKILL.md +0 -669
  433. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  434. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  435. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  436. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  437. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  438. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  439. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  440. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  441. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  442. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  443. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  444. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  445. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  446. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  447. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  448. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  449. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  450. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  451. package/skills/cometchat-native-components/SKILL.md +0 -628
  452. package/skills/cometchat-native-core/SKILL.md +0 -679
  453. package/skills/cometchat-native-customization/SKILL.md +0 -716
  454. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  455. package/skills/cometchat-native-features/SKILL.md +0 -638
  456. package/skills/cometchat-native-placement/SKILL.md +0 -509
  457. package/skills/cometchat-native-production/SKILL.md +0 -700
  458. package/skills/cometchat-native-push/SKILL.md +0 -594
  459. package/skills/cometchat-native-testing/SKILL.md +0 -582
  460. package/skills/cometchat-native-theming/SKILL.md +0 -681
  461. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  462. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  463. package/skills/cometchat-placement/SKILL.md +0 -1360
  464. package/skills/cometchat-production/SKILL.md +0 -1027
  465. package/skills/cometchat-react-calls/SKILL.md +0 -749
  466. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  467. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  468. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  469. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  470. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  471. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  472. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  473. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  474. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  475. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  476. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  477. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  478. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  479. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  480. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  481. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  482. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  483. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  484. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  485. package/skills/cometchat-react-push/SKILL.md +0 -634
  486. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  487. package/skills/cometchat-react-testing/SKILL.md +0 -413
  488. package/skills/cometchat-theming/SKILL.md +0 -498
  489. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,580 +0,0 @@
1
- ---
2
- name: cometchat-customization
3
- description: Customize a CometChat React UI Kit integration beyond what `cometchat init` and `cometchat apply-feature` produce — custom message bubbles, custom header views, custom subtitle views, custom empty/loading states, custom action menus, request builder filters, event listeners, and component composition. Picks up where the framework skills end (after Phase A init succeeds).
4
- license: "MIT"
5
- compatibility: "Node.js >=18; @cometchat/chat-uikit-react ^6"
6
- metadata:
7
- author: "CometChat"
8
- version: "3.0.0"
9
- tags: "cometchat react customization custom-view message-bubble header-view subtitle-view request-builder events"
10
- ---
11
-
12
- > **Ground truth:** the per-platform UI Kit customization systems (theme objects / CSS vars, message templates, text formatters) verified against the installed kit. (Official docs linked below.) Verify symbols against the installed package/source before relying on them.
13
-
14
- > **Companion skills:** `cometchat-components` provides the component
15
- > catalog (what exists); this skill provides the customization workflow
16
- > (how to modify what exists). Use `cometchat-components` to look up
17
- > component names and props, then use this skill to plan and execute
18
- > the customization. For any pattern not covered below, the docs MCP
19
- > at `cometchat-docs` is the source of truth — query it before
20
- > generating any code.
21
-
22
- ## Use this skill when
23
-
24
- The user has already run `/cometchat` (or invoked the cometchat skill via their agent's mechanism — keyword "cometchat" or "integrate chat" works in most agents) (Phase A complete — there's a
25
- working integration with `.cometchat/state.json`) and wants to **change
26
- how a component looks or behaves** beyond what the CLI's deterministic
27
- commands handle.
28
-
29
- Trigger phrases:
30
- - "customize the message list"
31
- - "filter the conversations to only show X"
32
- - "change the message bubble color/shape/layout"
33
- - "add a custom header above the chat"
34
- - "subscribe to message-received events"
35
- - "show a custom loading state"
36
- - "add a custom action to the message options menu"
37
- - "I want to inject my own UI into CometChatX"
38
- - `/cometchat customize`
39
-
40
- ## Do not use this skill when
41
-
42
- - The user wants to enable a **packaged feature** (calls, polls, AI smart
43
- replies, etc.) → use `cometchat-features` instead
44
- - The user wants to change **theme tokens** (primary color, font,
45
- border radius) → use `cometchat-theming` instead (CSS-variable
46
- overrides written directly into the project — there is no theming CLI)
47
- - The user wants to **start a new integration** → use the `cometchat`
48
- dispatcher skill to run Phase A first
49
- - The user wants to **fix something broken** → use
50
- `cometchat-troubleshooting` and run `cometchat doctor`
51
-
52
- ## Docs MCP contract
53
-
54
- This skill is **fundamentally docs-driven** — every customization
55
- question requires a fact (prop name, callback signature, builder method,
56
- event topic, CSS selector) that lives in the canonical CometChat docs,
57
- not in this skill's text. Embedding examples here would create drift
58
- the moment the SDK changes.
59
-
60
- The canonical CometChat docs are the source of truth for this skill. The
61
- docs MCP at `cometchat-docs` is the **best** way to query them when
62
- available, but it is **not** a hard requirement — fall back to the public
63
- docs site for any agent without it. The docs cover:
64
-
65
- - Component prop tables (every component, every prop, every default)
66
- - Custom view slots: `headerView`, `subtitleView`, `tailView`,
67
- `optionsView`, `bubbleView`, `emptyView`, `loadingView`, `errorView`
68
- (which components support which slots — verified against the v6 React
69
- kit: the list components `CometChatConversations`/`MessageList`/`Users`/
70
- `Groups` use `emptyView`/`loadingView`/`errorView`, **not** the
71
- `*StateView` form; only `CometChatNotificationFeed` uses
72
- `emptyStateView`/`loadingStateView`/`errorStateView`)
73
- - Message template overrides (`CometChatMessageTemplate.type`,
74
- `category`, `contentView`, `headerView`, `footerView`)
75
- - Request builders for filtering data: `ConversationsRequestBuilder`,
76
- `MessagesRequestBuilder`, `UsersRequestBuilder`, `GroupsRequestBuilder`,
77
- `CallLogsRequestBuilder` and their methods
78
- - SDK events: `CometChatMessageEvents`, `CometChatUserEvents`,
79
- `CometChatGroupEvents`, `CometChatCallEvents`, `CometChatUIEvents`
80
- and the topic names
81
- - CSS selectors for component-level styling overrides
82
- (`.cometchat-message-bubble-incoming`, `.cometchat-conversations-header`,
83
- etc.)
84
-
85
- **Hard rules:**
86
-
87
- 1. **Look up the docs before generating any customization code.** Never
88
- invent prop names, builder methods, event topics, or CSS classes from
89
- training-data memory. Use whichever lookup path is available, in order:
90
- - **(a) docs MCP** — query the `cometchat-docs` MCP tool if your agent
91
- has it. Richest path.
92
- - **(b) install the MCP, if your agent supports it** — Claude Code:
93
- `claude mcp add --transport http cometchat-docs
94
- https://www.cometchat.com/docs/mcp`. Other agents (Cursor, Codex,
95
- Cline, …) configure MCP their own way, or not at all — do NOT block.
96
- - **(c) fetch/search the public docs** — same content at the canonical
97
- URLs below, or web-search `site:cometchat.com/docs`. Universal
98
- fallback; never STOP and dead-end the user when the MCP isn't
99
- installed — fall through to (c).
100
- 3. **Prefer composition (custom view props) over CSS overrides** when
101
- both are options — composition is more stable across SDK versions.
102
- 4. **Canonical reference URLs:**
103
- - Components overview: https://www.cometchat.com/docs/ui-kit/react/components-overview
104
- - Guides index: https://www.cometchat.com/docs/ui-kit/react/guide-overview — the 7 maintained task recipes (prefer these over hand-rolling): [Block/Unblock](https://www.cometchat.com/docs/ui-kit/react/guide-block-unblock-user) · [Call Log Details](https://www.cometchat.com/docs/ui-kit/react/guide-call-log-details) · [Group Management](https://www.cometchat.com/docs/ui-kit/react/guide-group-chat) · [Message Privately](https://www.cometchat.com/docs/ui-kit/react/guide-message-privately) · [New Chat](https://www.cometchat.com/docs/ui-kit/react/guide-new-chat) · [Search Messages](https://www.cometchat.com/docs/ui-kit/react/guide-search-messages) · [Threaded Messages](https://www.cometchat.com/docs/ui-kit/react/guide-threaded-messages)
105
- - **Custom message recipes** (verified, copy-ready): custom message TYPES, overriding an existing type's bubble (`bubbleView`/`contentView`), adding a Message Composer attachment option, and adding a message action like Forward — all live in **`cometchat-features` §Type 5** (append-not-replace via `CometChatUIKit.getDataSource()`). Route there for the actual code; this skill covers the custom-VIEW-slot props.
106
- - Theming + styling: https://www.cometchat.com/docs/ui-kit/react/theme
107
- - Events: https://www.cometchat.com/docs/ui-kit/react/events
108
- - Methods: https://www.cometchat.com/docs/ui-kit/react/methods
109
- - **Text formatters** (inline mention/URL/markdown/custom-token styling — `CometChatTextFormatter`): the four formatter guides `custom-text-formatter-guide`, `mentions-formatter-guide`, `url-formatter-guide`, `shortcut-formatter-guide` under `ui-kit/react/`. Recipe + the append-not-replace `getAllTextFormatters({})` pattern live in **`cometchat-features` §Type 5 → Text formatters**.
110
- - **Localization** (languages, custom strings, date/time formatting): handled by the dedicated **`cometchat-i18n`** skill (`CometChatLocalize`) — route there for any locale/string work; docs https://www.cometchat.com/docs/ui-kit/react/localize
111
-
112
- ## Steps
113
-
114
- ### Step 1 — Verify Phase A is done
115
-
116
- ```bash
117
- npx @cometchat/skills-cli info --json
118
- ```
119
-
120
- If `integrated` is `false`, **stop** and tell the user to run
121
- `/cometchat` first to create the base integration. Customization
122
- modifies an existing integration; it doesn't create one.
123
-
124
- Note the `framework`, `experience`, `files_owned`, and `applied_features`
125
- from the response — you'll need them in the next steps.
126
-
127
- ### Step 2 — Four-tier discovery: existing-component prop, new component, stylesheet, sample app
128
-
129
- > **START HERE:** Read the **component catalog** at
130
- > `references/component-catalog.md` (in this skill's directory). It has
131
- > the canonical list of all 88 exported symbols, all 14 sample-app
132
- > patterns, and a 40-row task→component lookup table. If the user's
133
- > request maps to an entry in the catalog, use that entry directly —
134
- > skip the rest of this step.
135
-
136
- **If the catalog doesn't have a match (or you need prop-level detail),
137
- walk these FOUR discovery checks in this exact order:**
138
-
139
- 1. **Existing-component prop check (2a):** does a component the
140
- integration ALREADY mounts have a prop that does what the user is
141
- asking for? **The kit follows a "props over components" philosophy
142
- — most additions are props on existing components, not new
143
- components.** This check goes FIRST.
144
- 2. **New-component check (2b):** if 2a turned up nothing, is there a
145
- built-in `CometChat<X>` component in `@cometchat/chat-uikit-react`'s
146
- exports?
147
- 3. **Stylesheet check (2c):** is there a `--cometchat-<x>` CSS
148
- variable for any styling you'd write?
149
- 4. **Sample app check (2d):** is there a reference implementation in
150
- the sample app at
151
- `github.com/cometchat/cometchat-uikit-react/tree/v6/sample-app/src/components`
152
- for the user's pattern?
153
-
154
- The CometChat React UI Kit ships FOUR things, not one:
155
- - A "props over components" API where most features (search bar,
156
- filters, custom views, click handlers, disable flags) are PROPS on
157
- existing components — NOT new components
158
- - 60+ named React components in the npm package
159
- - A 200+ CSS variable system at
160
- `@cometchat/chat-uikit-react/css-variables.css`
161
- - A reference sample app on GitHub with implementations for common
162
- chat UX patterns (user/group details, threaded messages layout,
163
- top-level home layout, multi-tab chat, notifications, new chat
164
- dialog, etc.) that combine multiple kit components but aren't
165
- shipped as single named exports
166
-
167
- **Critical:** the docs MCP does NOT index the sample app. When the MCP
168
- says *"no `CometChat<X>` component exists"*, that only covers the npm
169
- package — you must still check the sample app via GitHub before
170
- concluding the user needs hand-rolled code.
171
-
172
- Hand-rolling something the kit, the variable system, OR the sample
173
- app already provides means missing the kit's theming, accessibility,
174
- i18n, error handling, and every future SDK update.
175
-
176
- #### 2a. Existing-component prop check (do this FIRST)
177
-
178
- **Most chat features are already props on the components you have.**
179
- A user asking for "add search", "filter conversations", "custom empty
180
- state", or "click handler on a message" is almost always asking for a
181
- prop, not a new component or custom code.
182
-
183
- **Process:**
184
-
185
- 1. **List the CometChat components currently mounted in the
186
- integration.** Read the integration's owned files (from
187
- `state.json`) and grep for `<CometChat` JSX usage:
188
- ```bash
189
- grep -hoE '<CometChat[A-Z][a-zA-Z]*' \
190
- $(jq -r '.files_owned[]' .cometchat/state.json 2>/dev/null) \
191
- 2>/dev/null | sort -u
192
- ```
193
- 2. **Query the docs MCP for the props of each mounted component:**
194
- - `"CometChatConversations props"`
195
- - `"CometChatMessageList props"`
196
- - `"CometChatMessageHeader props"`
197
- - `"CometChatMessageComposer props"`
198
- 3. **Look for a prop that maps to the user's intent.** Common
199
- mappings:
200
-
201
- | User asks for | Likely prop on which component |
202
- |---|---|
203
- | Search bar / "add search" | `showSearchBar` on `CometChatConversations` (or `onSearchBarClicked` to swap in `<CometChatSearch>` for advanced dual-scope search) |
204
- | Filter conversations | `conversationsRequestBuilder` on `CometChatConversations` |
205
- | Filter messages | `messagesRequestBuilder` on `CometChatMessageList` |
206
- | Filter users / groups | `usersRequestBuilder` / `groupsRequestBuilder` |
207
- | Custom empty state | `emptyView` on the list components (`Conversations`/`MessageList`/`Users`/`Groups`); `emptyStateView` only on `CometChatNotificationFeed` |
208
- | Custom error UI | `errorView` (list components); `errorStateView` on `CometChatNotificationFeed` |
209
- | Custom loading UI | `loadingView` (list components); `loadingStateView` on `CometChatNotificationFeed` |
210
- | Custom header above the list | `headerView` |
211
- | Custom message bubble | `templates` prop on `CometChatMessageList` (not a custom bubble component) |
212
- | Click handler on item / message / search bar / back button | `onItemClick`, `onMessageClick`, `onBack`, `onSearchBarClicked` |
213
- | Hide / disable a sub-feature | `disable*` boolean props (e.g. `disableTyping`, `disableReactions`) |
214
- | Custom subtitle / status / timestamp | `subtitleView`, `statusView`, `timestampView` |
215
- | Show / hide receipts | `hideReceipts` |
216
- | Selection mode | `selectionMode` on list components |
217
-
218
- If you find a matching prop, **just add the prop and stop**. No new
219
- components. No custom CSS. No new files. Surface to the user: *"The
220
- `<X>` you already have supports this via the `<propName>` prop. Adding
221
- that single prop."*
222
-
223
- If 2a turns up nothing, proceed to 2b.
224
-
225
- #### 2b. New-component check (do this only if 2a turned up nothing)
226
-
227
- **Common requests that look like "customization" but are actually
228
- "use the existing component":**
229
-
230
- | User asks for | Use this built-in component |
231
- |---|---|
232
- | Threaded replies / "wire up threads" | `CometChatThreadHeader` + scope a `CometChatMessageList` and `CometChatMessageComposer` with `parentMessageId` |
233
- | Group members panel / "list group members" | `CometChatGroupMembers` |
234
- | Add members to a group | `CometChatAddMembers` |
235
- | Transfer group ownership | `CometChatTransferOwnership` |
236
- | Banned users management | `CometChatBannedMembers` |
237
- | Block/unblock users panel | `CometChatBlockedUsers` |
238
- | New chat / "start a new conversation" dialog | `CometChatNewChat` |
239
- | Create new group dialog | `CometChatCreateGroup` |
240
- | User / group details panel | `CometChatDetails` |
241
- | Mentions popover in composer | `CometChatMentionsFormatter` (already wired into the composer) |
242
- | Voice / video call buttons in header | `CometChatCallButtons` |
243
- | Outgoing call screen | `CometChatOutgoingCall` |
244
- | Incoming call notification | `CometChatIncomingCall` |
245
- | Ongoing call UI | `CometChatOngoingCall` |
246
- | Call logs list | `CometChatCallLogs` |
247
- | Reactions on messages | Already built into `CometChatMessageList` — check if it's just disabled |
248
- | Message bubble customization | Use the `templates` prop on `CometChatMessageList`, not a custom bubble component |
249
-
250
- > ⚠️ **Not every row above is a kit export.** `CometChatAddMembers`, `CometChatTransferOwnership`, `CometChatBannedMembers`, `CometChatBlockedUsers`, `CometChatNewChat`, `CometChatCreateGroup`, and `CometChatDetails` are **sample-app components, NOT `@cometchat/chat-uikit-react` v6 exports** — importing `<CometChatTransferOwnership/>` etc. is an unresolved-import build error. Build these by copying the sample-app implementation (§2d), do not import them from the package. The genuinely package-exported entries in this table are: `CometChatThreadHeader`, `CometChatGroupMembers`, `CometChatMentionsFormatter`, `CometChatCallButtons`, `CometChatOutgoingCall`, `CometChatIncomingCall`, `CometChatOngoingCall`, `CometChatCallLogs`. **Always grep the installed package's exports (next step) before emitting any of these.**
251
-
252
- **Search strategies, in this order:**
253
-
254
- 1. **Query the docs MCP** with the user's intent in plain English.
255
- Examples:
256
- - `"thread reply UI react ui kit"` → finds `CometChatThreadHeader`
257
- - `"new chat dialog"` → finds `CometChatNewChat`
258
- - `"group transfer ownership"` → finds `CometChatTransferOwnership`
259
- - `"block user list"` → finds `CometChatBlockedUsers`
260
- 2. **Grep the user's installed package** for matching exports:
261
- ```bash
262
- grep -E "^export.*CometChat[A-Z][a-zA-Z]+" \
263
- node_modules/@cometchat/chat-uikit-react/dist/index.d.ts \
264
- 2>/dev/null | head -50
265
- ```
266
- 3. **Browse the v6 components reference** at
267
- https://www.cometchat.com/docs/ui-kit/react/components-overview
268
-
269
- If you find a built-in component that matches, **use it as-is**.
270
- Surface to the user: *"The kit already ships `CometChat<X>` for this.
271
- I'll wire it up directly."*
272
-
273
- #### 2c. Stylesheet check (do this even when you DO need custom layout glue)
274
-
275
- Even when you have to write some CSS for layout glue (positioning a
276
- panel, sizing a container, wiring up the height chain that
277
- `.cometchat-message-list` requires), **never hand-pick colors, fonts,
278
- borders, spacings, or radii from your head**. The kit ships a
279
- canonical CSS variable system. Use it.
280
-
281
- **The rule:**
282
- - ✅ **OK:** custom CSS for layout glue (positioning, sizing, flex
283
- containers, the height chain). Example: `.thread-wrapper { width:
284
- 400px; height: 100vh; display: flex; flex-direction: column; }`
285
- - ✅ **OK:** custom CSS that consumes kit variables. Example:
286
- `.thread-wrapper { border-left: 1px solid var(--cometchat-border-color-light); background: var(--cometchat-background-color-01); }`
287
- - ❌ **NOT OK:** custom CSS for any header / button / icon / panel /
288
- badge / divider that the kit already provides as a component.
289
- Example: a hand-rolled `.thread-header` + `.thread-close` button when
290
- `CometChatThreadHeader` exists.
291
- - ❌ **NOT OK:** hardcoded colors / fonts / borders / radii / spacings
292
- that don't reference the `--cometchat-*` variables. Example:
293
- `border: 1px solid #E8E8E8` instead of
294
- `border: 1px solid var(--cometchat-border-color-light)`.
295
-
296
- **Discovery commands for the variable system:**
297
- ```bash
298
- # List every --cometchat-* variable the kit defines
299
- grep -oE '\-\-cometchat-[a-z0-9-]+' \
300
- node_modules/@cometchat/chat-uikit-react/css-variables.css \
301
- 2>/dev/null | sort -u | head -60
302
-
303
- # Or search for a specific token category
304
- grep -E '\-\-cometchat-(border|background|text|primary|font)' \
305
- node_modules/@cometchat/chat-uikit-react/css-variables.css \
306
- 2>/dev/null | head -40
307
- ```
308
-
309
- **Common variable categories** (query the docs MCP for the canonical
310
- list — these change between SDK versions):
311
-
312
- | Category | Example variables |
313
- |---|---|
314
- | Brand colors | `--cometchat-primary-color`, `--cometchat-error-color`, `--cometchat-success-color` |
315
- | Backgrounds | `--cometchat-background-color-01` (white), `--cometchat-background-color-02`, `--cometchat-background-color-03` (light grey) |
316
- | Text | `--cometchat-text-color-primary`, `--cometchat-text-color-secondary`, `--cometchat-text-color-tertiary` |
317
- | Borders | `--cometchat-border-color-light`, `--cometchat-border-color-default`, `--cometchat-border-color-dark` |
318
- | Radii | `--cometchat-radius-1`, `--cometchat-radius-2`, `--cometchat-radius-3`, `--cometchat-radius-max` |
319
- | Fonts | `--cometchat-font-heading1-bold`, `--cometchat-font-heading4-medium`, `--cometchat-font-body-regular`, `--cometchat-font-caption2-regular` |
320
- | Spacing | `--cometchat-spacing-1` through `--cometchat-spacing-10` |
321
- | Shadows | `--cometchat-shadow-1`, `--cometchat-shadow-2`, `--cometchat-shadow-3` |
322
-
323
- #### 2d. Sample app reference check (do this when 2a + 2b turned up nothing)
324
-
325
- If 2b didn't find a `CometChat<X>` component for the user's request,
326
- **don't immediately conclude they need custom code**. The kit ships a
327
- **reference sample app** at:
328
-
329
- > https://github.com/cometchat/cometchat-uikit-react/tree/v6/sample-app/src/components
330
-
331
- with implementations for common chat UX patterns that combine multiple
332
- kit components but aren't shipped as single named exports. Examples
333
- that look like "missing components" but are in the sample app:
334
-
335
- | User asks for | Sample app reference path |
336
- |---|---|
337
- | User / group details panel | `sample-app/src/components/CometChatDetails/CometChatUserDetails.tsx` (group details is inline in `CometChatHome.tsx`'s `SideComponentGroup`) |
338
- | Threaded messages panel layout | `sample-app/src/components/CometChatDetails/CometChatThreadedMessages.tsx` |
339
- | Top-level chat layout (left pane + main + side rail) | `sample-app/src/components/CometChatHome/CometChatHome.tsx` |
340
- | Multi-tab chat (Chats / Calls / Users / Groups) | `sample-app/src/components/CometChatSelector/CometChatTabs.tsx` |
341
- | New conversation dialog with user/group picker | Inline in `CometChatHome.tsx` as `CometChatNewChatView` (CSS: `sample-app/src/styles/CometChatNewChat/CometChatNewChatView.css`) |
342
- | Search view (conversations + messages) | `sample-app/src/components/CometChatSearchView/` |
343
- | Call log details / history / recordings | `sample-app/src/components/CometChatCallLog/` (5 sub-files: Details, History, Info, Participants, Recordings) |
344
- | App state / active-chat React context | `sample-app/src/context/AppContext.jsx` + `appReducer.ts` |
345
- | Group ownership transfer modal | `sample-app/src/components/CometChatTransferOwnership/` |
346
-
347
- These patterns include matching CSS at
348
- `sample-app/src/styles/<ComponentName>/` using BEM-style class names
349
- that are already wired to the kit's CSS variable system.
350
-
351
- **Discovery commands:**
352
-
353
- ```bash
354
- # List the sample app's components directory via the GitHub API
355
- curl -s "https://api.github.com/repos/cometchat/cometchat-uikit-react/contents/sample-app/src/components?ref=v6" \
356
- | grep -oE '"name":\s*"[^"]+"' | head -30
357
-
358
- # Fetch a specific component file directly
359
- curl -s "https://raw.githubusercontent.com/cometchat/cometchat-uikit-react/v6/sample-app/src/components/CometChatDetails/CometChatUserDetails.tsx"
360
-
361
- # Fetch its matching stylesheet
362
- curl -s "https://raw.githubusercontent.com/cometchat/cometchat-uikit-react/v6/sample-app/src/styles/CometChatDetails/CometChatUserDetails.css"
363
- ```
364
-
365
- You can also use WebFetch on the URLs above. The docs MCP does NOT
366
- index the sample app — you must fetch it from GitHub directly.
367
-
368
- **If you find a matching reference implementation:**
369
-
370
- 1. Read BOTH the `.tsx` file AND its matching `.css` file (at
371
- `sample-app/src/styles/<ComponentName>/`)
372
- 2. Mirror the sample app's file/folder structure in the user's project,
373
- e.g. `src/cometchat/CometChatDetails/CometChatUserDetails.tsx` plus
374
- `src/cometchat/CometChatDetails/CometChatDetails.css`
375
- 3. Match the **exact BEM class names** from the sample
376
- (`.cometchat-user-details__header`,
377
- `.cometchat-user-details__content-avatar`, etc.) — they're already
378
- integrated with the kit's CSS variable system
379
- 4. Strip the sample app's local dependencies that the user's project
380
- doesn't have:
381
- - `useContext(AppContext)` → inline the values
382
- - `getLocalizedString(...)` → inline the English strings
383
- - `cometchat-resources/` SVG icons → use Unicode equivalents or
384
- strip them
385
- 5. Tell the user: *"The kit doesn't export this as a single component,
386
- but the official sample app has the reference implementation at
387
- `cometchat/cometchat-uikit-react/v6/sample-app/.../CometChat<X>`.
388
- I'm adapting it to your project."*
389
-
390
- #### 2e. After discovery — decide what to do
391
-
392
- In strict order, take the FIRST option that applies:
393
-
394
- 1. **An existing component prop matches (2a):** add the prop. Done.
395
- No new files. Most chat features land here.
396
- 2. **A new component matches (2b) AND has its own styling:** use the
397
- component as-is. Zero custom CSS.
398
- 3. **A new component matches (2b) but you need layout glue:** use the
399
- component; write minimal layout-only CSS that consumes
400
- `--cometchat-*` variables (per 2c).
401
- 4. **Sample app has a reference implementation (2d):** adapt the
402
- sample app pattern, mirroring its file structure and BEM class
403
- names.
404
- 5. **None of the above:** then (and only then) proceed to Step 3 to
405
- classify the request as a true customization.
406
-
407
- ### Step 3 — Classify the customization
408
-
409
- Read the user's request and place it into one of these buckets. The
410
- right approach is different per bucket:
411
-
412
- | Bucket | Examples | Approach |
413
- |---|---|---|
414
- | **A. Custom view slot** | "add a custom header above the conversation list", "show a custom empty state", "render messages with my own bubble" | Use the corresponding `*View` prop (`headerView`, `emptyView`, `bubbleView`, etc.) — look up which prop the target component supports (list components use `emptyView`/`loadingView`/`errorView`; `CometChatNotificationFeed` uses the `*StateView` form) |
415
- | **B. Filter / pagination** | "only show conversations with VIP users", "load 10 messages at a time", "show only joined groups" | Use the corresponding RequestBuilder (`ConversationsRequestBuilder.setTags`, `setLimit`, `setUserAndGroupTags`, etc.) — query the MCP for the builder methods |
416
- | **C. Action / callback** | "do X when a user clicks a conversation", "intercept message send", "log every search" | Use the corresponding `on*` callback prop (`onItemClick`, `onSendButtonClick`, `onSearch`, etc.) — query the MCP for the callback signature |
417
- | **D. Event subscription** | "show a toast when a new message arrives", "update my unread count when someone reads a message", "track typing indicators" | Subscribe to the corresponding `CometChat*Events` topic (`CometChatMessageEvents.ccMessageSent`, `ccMessageRead`, `CometChatUserEvents.ccUserOnline`, etc.) — query the MCP for the event topic |
418
- | **E. Component-level CSS** | "make incoming bubbles green", "hide the conversation timestamps", "compact the message list spacing" | Add a CSS rule under `.cometchat <selector>` in the integration's global stylesheet — query the MCP for the right selector class. NEVER invent class names; the SDK's selectors are namespaced and prefix-protected. |
419
- | **F. Component composition** | "wrap CometChatConversations with my own search bar", "render two CometChatGroups side by side", "embed CometChatMessageList inside my own card layout" | Standard React composition. The CometChat components are React components — use them like any other component. Query the MCP for which props are required vs optional. |
420
-
421
- > **Message templates / options / composer attachments → use the verified recipes in `cometchat-features` §Type 5**, not a hand-rolled `bubbleView`. Sending a custom message TYPE, overriding an existing type's bubble, adding a Forward-style message action, or adding a composer attachment all require the **append-not-replace** `CometChatUIKit.getDataSource()` merge (a bare `templates=`/`attachmentOptions=` array silently wipes the built-ins — ENG-35706). §Type 5 has the copy-ready, tsc-verified code.
422
-
423
- If the user's request doesn't fit any bucket, **ask them to clarify** —
424
- don't guess. Customization is the place where ambiguous requests
425
- produce wrong code most often.
426
-
427
- ### Step 4 — Query the docs MCP for the canonical pattern (only if Step 2 turned up nothing)
428
-
429
- Once you've classified the request, query the docs MCP with a specific
430
- search:
431
-
432
- | Bucket | MCP query example |
433
- |---|---|
434
- | A. Custom view slot | "headerView prop CometChatConversations" |
435
- | B. Filter / pagination | "ConversationsRequestBuilder methods setTags" |
436
- | C. Action / callback | "CometChatMessageList onMessageClick callback signature" |
437
- | D. Event subscription | "CometChatMessageEvents ccMessageSent subscribe" |
438
- | E. Component-level CSS | "CSS selector cometchat-message-bubble-incoming" |
439
- | F. Component composition | "CometChatConversations props required" |
440
-
441
- The MCP returns canonical, current docs. Read them BEFORE writing any
442
- code. If multiple results come back, prefer the React UI Kit v6 result
443
- over older versions.
444
-
445
- ### Step 5 — Identify the file to modify
446
-
447
- Use the framework + experience you noted in Step 1 to find the right
448
- file. The integration's primary client file is conventional per
449
- framework:
450
-
451
- | Framework | Primary client file |
452
- |---|---|
453
- | reactjs (Vite) | `src/App.tsx` (renders the conversation list / messages) + `src/cometchat/CometChatSelector.tsx` (the selector) |
454
- | nextjs (App Router) | `src/app/cometchat/CometChatNoSSR.tsx` (renders the chat) + `src/app/cometchat/CometChatSelector.tsx` (the selector) |
455
- | nextjs (Pages Router) | `src/cometchat/CometChatNoSSR.tsx` + `src/cometchat/CometChatSelector.tsx` |
456
- | react-router (v6 + v7) | `app/cometchat/CometChatNoSSR.tsx` + `app/cometchat/CometChatSelector.tsx` |
457
- | astro | `src/cometchat/ChatApp.tsx` (the React island) + `src/cometchat/CometChatSelector.tsx` |
458
-
459
- For CSS overrides (bucket E), the global stylesheet is:
460
- - reactjs → `src/index.css`
461
- - nextjs (App Router) → `src/app/globals.css`
462
- - nextjs (Pages Router) → `src/styles/globals.css`
463
- - react-router → `app/app.css`
464
- - astro → inside `src/cometchat/ChatApp.tsx` (NOT a global stylesheet)
465
-
466
- These are also in `state.json` under `files_owned` if you need to verify.
467
-
468
- ### Step 6 — Write the customization
469
-
470
- Generate the code based on the docs MCP response from Step 4. Show the
471
- user:
472
-
473
- 1. **What you're going to change** (which file, which lines, the new
474
- code)
475
- 2. **Why** (which prop/builder/event the docs say to use)
476
- 3. **A preview of the diff** (just the changed region, not the whole
477
- file)
478
-
479
- **Wait for the user to confirm** before writing. Customization edits
480
- the integration's owned files — drift detection will show this on the
481
- next `cometchat info`. The user should know.
482
-
483
- If the user confirms, write the change. If they don't, surface what
484
- they'd want to change and stop.
485
-
486
- ### Step 7 — Verify
487
-
488
- ```bash
489
- npx @cometchat/skills-cli verify --json
490
- ```
491
-
492
- The 5 AST checks still apply to customized files. If anything fails,
493
- surface verbatim and offer to revert.
494
-
495
- ```bash
496
- npx @cometchat/skills-cli info --json
497
- ```
498
-
499
- The customized file will now show as drifted (its checksum no longer
500
- matches the original template). This is expected — it's the
501
- **explicit** drift the user just asked for. Not a bug.
502
-
503
- ### Step 8 — Tell the user what to do next
504
-
505
- The dev server picks up React changes via HMR. Tell the user:
506
- 1. Save the file (if their editor doesn't auto-save)
507
- 2. Refresh the browser tab
508
- 3. Test the customization
509
-
510
- Then offer to do another customization OR to return to the framework
511
- skill's Phase B menu.
512
-
513
- ## Hard rules
514
-
515
- - **Always do the FOUR-tier discovery before adding any new component
516
- or hand-rolled UI.** The kit follows a "props over components"
517
- philosophy and ships FOUR things, not one:
518
- (0) **props** on already-mounted components for most features
519
- (search bar, filters, custom views, click handlers, disable
520
- flags) — check this FIRST,
521
- (1) 60+ named React components in `@cometchat/chat-uikit-react`,
522
- (2) a 200+ CSS variable system in `css-variables.css`,
523
- (3) a reference sample app at
524
- `github.com/cometchat/cometchat-uikit-react/tree/v6/sample-app/src/components`
525
- with implementations for common chat UX patterns that combine
526
- multiple kit components but aren't shipped as single named
527
- exports (user/group details panels, thread layouts, top-level
528
- home layout, notifications, new chat dialog, etc.).
529
- The docs MCP does NOT index the sample app — fetch it from GitHub
530
- directly. Adding a new component when an existing one's prop would
531
- do, or hand-rolling something the kit, the variable system, or the
532
- sample app already provides, means missing the kit's theming, i18n,
533
- accessibility, and every future SDK update. Step 2 (subsections 2a
534
- + 2b + 2c + 2d) is mandatory — do NOT skip it. **2a
535
- (existing-component prop check) goes FIRST** because most features
536
- are props on already-mounted components, not new components.
537
- - **Custom CSS is allowed ONLY for layout glue** (positioning,
538
- sizing, flex/grid containers, the height chain). Even there, never
539
- hardcode colors / fonts / borders / radii / spacings — always
540
- reference `--cometchat-*` variables. Hand-rolled headers, buttons,
541
- icons, panels, badges, dividers, etc. are NEVER OK if the kit
542
- already provides them.
543
- - **Always query the docs MCP first** for any prop, builder, event, or
544
- CSS selector. Never invent SDK API from memory.
545
- - **Verify Phase A is done** before customizing. This skill modifies
546
- existing integration files; it does not create new ones.
547
- - **Show the user the change before writing**. Customization is
548
- user-side intent — they need visibility.
549
- - **Drift detection is expected after customization**, not a bug.
550
- The user's customizations live in `state.files_owned` and will
551
- show up in `cometchat info` as modified. That's correct.
552
- - **Prefer composition over CSS overrides** when both are options —
553
- composition is stable across SDK versions; CSS selectors are not.
554
- - **Never invent CSS class names** — look them up in the docs. The SDK's
555
- class prefix is `.cometchat-` but the leaf names (`-message-bubble-incoming`,
556
- `-conversations-header`, etc.) MUST come from the docs.
557
- - **Look up the docs via the best available path** (see §2's lookup
558
- contract): docs MCP if your agent has it → else fetch/web-search the
559
- public docs at cometchat.com/docs. Never STOP just because the MCP
560
- isn't installed — fall through to the public docs.
561
- - **Always use `npx @cometchat/skills-cli`** for any CLI commands.
562
-
563
- ## What this skill does NOT do
564
-
565
- - It does not write **template** files (that's `cometchat init`)
566
- - It does not **enable packaged features** (that's `cometchat-features`
567
- + `cometchat apply-feature`)
568
- - It does not **change theme tokens** (that's `cometchat-theming` —
569
- CSS-variable overrides, no CLI)
570
- - It does not **fix broken integrations** (that's
571
- `cometchat-troubleshooting` + `cometchat doctor`)
572
- - It does not **add new components from scratch** — it customizes
573
- components that the integration already uses
574
-
575
- For anything in the "does not" list, route the user to the right
576
- skill/command instead of attempting it here.
577
-
578
- ## Sound (in-app message + call sounds)
579
-
580
- Sound is a customization sub-dimension. The UI Kit plays incoming/outgoing message + call sounds via `CometChatSoundManager` — mute it, swap custom audio, or play a specific sound. The full API + recipe lives in **`cometchat-theming`** (Sound section). Verify the access path against the installed kit before relying on it.