@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
@@ -0,0 +1,105 @@
1
+ # setup-credentials — detect, credentials, authorize (Android v6)
2
+
3
+ > Ground truth: `ui-kit/android/getting-started-kotlin.md` + `getting-started-jetpack.md` + installed `chatuikit-core-android` 6.0.5 `CometChatUIKit.initFromSettings` + catalog `android-v6.json`, verified 2026-08-20.
4
+
5
+ ## 1. Detect project (gradle / cohort)
6
+ - Confirm it's an Android project: `settings.gradle` or `settings.gradle.kts` exists (plus an app module with `build.gradle(.kts)`).
7
+ - **Cohort** (decides which ONE kit artifact to install — never both):
8
+ - **Compose** → the app module's `build.gradle(.kts)` mentions `androidx.compose` or `buildFeatures { compose = true }` (or the `kotlin.compose` plugin) → `com.cometchat:chatuikit-compose-android:6.0.5`
9
+ - **Views** → otherwise (XML layouts / `viewBinding`) → `com.cometchat:chatuikit-kotlin-android:6.0.5`
10
+ - Get the cohort from `npx @cometchat/skills detect --json` (`android_variant`, per RULES.md) or by
11
+ reading the gradle files yourself. Confirm against the gradle file if ambiguous (a hybrid app hosting Compose in Views counts as Compose only if chat screens will be composables; ASK if unclear).
12
+ - Kit prerequisites (both cohorts): API 28+ target samples; `jvmTarget "11"`; Views additionally `viewBinding = true`, Compose `compose = true`.
13
+
14
+ ## 2. Config reuse — don't re-ask
15
+ A prior `.cometchat/config.json` (written by the CometChat CLI), an existing `app/src/main/assets/cometchat-settings.json`, or `COMETCHAT_*` entries in `local.properties` → reuse them, skip re-setup, don't re-provision or re-ask.
16
+
17
+ ## 3. version_conflict — STOP gate
18
+ If ANY module declares a non-v6 CometChat UI Kit — `com.cometchat:chat-uikit-android` at 5.x/4.x (the old artifact name), or a mixed 5.x `chatuikit-*` — STOP. Surface it, reconcile (upgrade to v6 via `upgrading-from-v5`, or load matching-version skills), then continue. Never mix majors, and never install both `chatuikit-kotlin-android` and `chatuikit-compose-android` in one app (duplicate classes + doubled resources).
19
+
20
+ ## 4. Env — the PRIMARY credential file is `assets/cometchat-settings.json` (read by `initFromSettings`)
21
+ The skill writes the app's credentials into a **gitignored** `app/src/main/assets/cometchat-settings.json` — the file `CometChatUIKit.initFromSettings(context, callback)` reads (it also persists `integrationSource="ai-agent"` for telemetry; `lifecycle.md`):
22
+ ```json
23
+ {
24
+ "appId": "your_app_id",
25
+ "region": "us",
26
+ "credentials": { "authKey": "your_auth_key" },
27
+ "uiKit": { "subscribePresenceForAllUsers": true, "enableCalling": false }
28
+ }
29
+ ```
30
+ - `appId` + `region` are REQUIRED (`ERR_SETTINGS_INVALID` otherwise); a missing file fails init with `ERR_SETTINGS_FILE_NOT_FOUND`.
31
+ - `credentials.authKey` is **dev only** — for prod builds OMIT it (login uses a server-minted auth token; `appId`/`region` are not secrets).
32
+ - `uiKit.enableCalling: true` auto-inits the Calls SDK (see `cometchat-android-v6-calls`); default false.
33
+ - **Gitignore it** — append `app/src/main/assets/cometchat-settings.json` to `.gitignore` (it carries the dev Auth Key) and never echo the key back to the user.
34
+
35
+ **Build-time extras only — `local.properties` → `BuildConfig`.** For non-credential values the app CODE reads at build time (e.g. a default demo UID), use the standard Android pattern (this is NOT the init credential path):
36
+ ```properties
37
+ # local.properties (gitignored by Android Studio — verify)
38
+ COMETCHAT_DEMO_UID=cometchat-uid-1
39
+ ```
40
+ ```kotlin
41
+ // app module build.gradle.kts
42
+ import java.util.Properties
43
+ val localProps = Properties().apply {
44
+ val f = rootProject.file("local.properties")
45
+ if (f.exists()) f.inputStream().use { load(it) }
46
+ }
47
+ android {
48
+ buildFeatures { buildConfig = true } // required for buildConfigField to emit
49
+ defaultConfig {
50
+ buildConfigField("String", "COMETCHAT_DEMO_UID",
51
+ "\"${localProps.getProperty("COMETCHAT_DEMO_UID", "")}\"")
52
+ }
53
+ }
54
+ ```
55
+ Groovy variant, briefly: `def p = new Properties(); rootProject.file('local.properties').withInputStream { p.load(it) }` then `buildConfigField 'String', 'COMETCHAT_DEMO_UID', "\"${p.getProperty('COMETCHAT_DEMO_UID', '')}\""` inside `defaultConfig` (+ `buildFeatures { buildConfig true }`). Code reads `BuildConfig.COMETCHAT_DEMO_UID` — never a hardcoded literal.
56
+
57
+ ## 5. Credentials — fetch from the dashboard (offer it), or paste manually
58
+ > **The CLI is a DASHBOARD/API client only, loaded ON DEMAND.** It does `auth` (dashboard login), `provision` (fetch App ID/Region/Auth Key), and `config` (local cred state). It knows NOTHING about Gradle/Android and does NOT write the settings JSON or any gradle file — **the SKILL owns detection (§1) and env-writing (§4).**
59
+
60
+ > **OFFER the dashboard fetch; don't default to manual paste.** When credentials are missing, present BOTH paths and default to the fetch: *"I can fetch your App ID / Region / Auth Key by logging into your CometChat dashboard (I'll load the CometChat CLI to do it), or you can paste them manually — which do you prefer?"* Never silently skip to "paste them yourself," and never end the build with an "add credentials manually" TODO.
61
+
62
+ **The CLI:** `<cli>` = `npx @cometchat/skills-cli@3` (public npm — no auth needed; `@3` pins the CLI major that matches the v5 skills).
63
+
64
+ **Fetch path (user opted in).** Let each command block — don't background or race them.
65
+ 1. `<cli> auth status --json` → `logged-in` | `logged-out`.
66
+ 2. If logged-out: `<cli> auth login` — opens the dashboard (device-auth), polls, stores the bearer in the OS keychain. Surface errors verbatim (`ACCESS_DENIED`/`EXPIRED`/`TIMEOUT`/`ABORTED`) and stop.
67
+ 3. Pick the app — REUSE first, ASK with CURATED options, never auto-create: `<cli> provision list --json`, then present at most 4 selectable options — the top 3 most relevant apps (name · region · App ID) + "Show all N apps"; free-text = "I'll paste an App ID manually". NEVER dump all N apps; NEVER create an app unasked (zero apps → ask before creating).
68
+ 4. `<cli> provision use --app-id "<id>" --json` → returns `{ appId, region, authKey }` and writes a framework-neutral `.cometchat/config.json`. It does NOT write the settings JSON — that's §4, the skill's job. Treat the Auth Key as a secret.
69
+
70
+ **Manual path** (user prefers, or the CLI can't run): Dashboard → Your App → Credentials → App ID, Region (`us`/`eu`/`in`), Auth Key (**dev only**). If neither path yields them, ASK and WAIT — never proceed with placeholders.
71
+
72
+ **Then the SKILL writes `assets/cometchat-settings.json` (§4)** from the config.json / returned creds and gitignores it. The CLI stops at "here are your credentials." Dashboard-gated features (`<cli> features list` / `features enable <id>`) work the same way — the CLI flips the dashboard toggle; you still wire the client component.
73
+
74
+ ## 6. Authorize / verify
75
+ Credentials are valid when `CometChatUIKit.initFromSettings(...)` hits `onSuccess` and `CometChatUIKit.login(uid, ...)` succeeds for a UID that exists (§7). `ERR_SETTINGS_FILE_NOT_FOUND` → the assets JSON is missing; `ERR_SETTINGS_INVALID` → `appId`/`region` missing in it; other auth errors → most commonly a **Region mismatch**. Do not render chat UI until login resolves (`lifecycle.md`).
76
+
77
+ ## 7. Which user to log in as (the login UID) — do NOT invent one
78
+ `login(uid, callback)` authenticates a user that **must already exist** in your CometChat app; it does **not** create one. Logging in a missing UID fails (`ERR_UID_NOT_FOUND`) and the screen stays blank.
79
+ - **Never suggest a legacy/guessed sample UID** (`superhero1`, `cc-user-*`, etc. are NOT seeded in modern apps). The ONLY tentative suggestion is `cometchat-uid-1..5`, labelled *"if this is a freshly-created app"* — fresh apps are pre-seeded with `cometchat-uid-1`…`cometchat-uid-5` (the docs samples log in as `cometchat-uid-1`).
80
+ - **Use a real UID:** Dashboard → your app → **Users** tab lists every UID. ASK the user; prefer their answer over any suggestion.
81
+ - **Create one (dev):** Dashboard → Users → Add User, or `CometChatUIKit.createUser(user, callback)` (uses the init Auth Key; dev only) — fetch exact shapes from docs if you need programmatic creation.
82
+ - **Production:** never the Auth Key, never a hardcoded UID. Per real end-user, create a matching CometChat user server-side (REST API + API key), mint a per-user **auth token** from your backend, and log in with `CometChatUIKit.loginWithAuthToken(authToken, callback)` (`lifecycle.md`).
83
+
84
+ ## §1a — Cohort selection (the first decision, and the least reversible)
85
+
86
+ Score STRUCTURAL signals, not a loose `/compose/` text match (it matches "composer", the kit's
87
+ own artifact name), and read BOTH
88
+ Groovy and Kotlin DSL (`build.gradle` **and** `build.gradle.kts` — an earlier version read only the
89
+ Groovy names and returned `framework: null` for every Kotlin-DSL project).
90
+
91
+ | `android_variant` | Signals that produced it | Action |
92
+ |---|---|---|
93
+ | `compose` | `buildFeatures { compose = true }`, `org.jetbrains.kotlin.plugin.compose`, `androidx.compose.*`, `compose-bom` — and no Views signal | Use **Compose** (`…-compose-*`). Do not ask; do not offer Views. Emitting XML into a Compose app is a defect. |
94
+ | `views` | `viewBinding`/`dataBinding` enabled, or `app/src/main/res/layout/` exists — and no Compose signal | Use **Views** (`…-kotlin-*`). |
95
+ | `mixed` | both sets present — typically an app mid-migration | **ASK and WAIT.** Say what you found: "your app has both Compose and XML screens — the chat screens can be either." Never pick silently. |
96
+ | `unknown` | neither (new/empty project) | **ASK and WAIT**, with a recommendation: Compose for greenfield, Views if the team's existing screens are XML. |
97
+
98
+ `android_cohort_signals: { composeHits, viewsHits }` is returned so you can SHOW the evidence
99
+ ("I detected Compose: compose plugin + compose-bom, no XML layouts").
100
+
101
+ **Existing CometChat install.** When `existing_cometchat` is true, detect also returns
102
+ `installed_uikit`, `android_uikit_major` and `version_conflict`. A v4/v5 `chat-uikit-android` is a
103
+ **STOP**: adding v6 beside it produces duplicate-class build failures. Tell the user which version
104
+ they are on and offer the upgrade (`cometchat-android-v6-migration`) BEFORE any new feature work.
105
+ Only when the tree is clean (or already v6) do you proceed to credentials.
@@ -0,0 +1,36 @@
1
+ # troubleshooting — CometChat Android v6: symptom → cause → fix
2
+
3
+ > Ground truth: `ui-kit/android/troubleshooting.md` (docs rows) + `getting-started-*` Warnings + installed 6.0.5 `CometChatUIKit.kt` error codes, verified 2026-08-20.
4
+
5
+ The fast symptom-table for a broken integration. Each row is a REAL failure mode — fix in the app; don't fetch docs for these. Deeper detail is cross-linked to the sibling reference. For anything not here → the docs page `{DOCS_BASE}/ui-kit/android/troubleshooting.md` (`docs-map.md`).
6
+
7
+ ## The table
8
+ | Symptom (what the user sees) | Root cause | Fix |
9
+ |---|---|---|
10
+ | **Build fails: `Could not find com.cometchat:chatuikit-...`** | The CometChat Maven repository is missing — the kit isn't on mavenCentral | Add `maven("https://dl.cloudsmith.io/public/cometchat/cometchat/maven/")` to `settings.gradle(.kts)` `dependencyResolutionManagement.repositories`, then re-sync. |
11
+ | **`Duplicate class android.support.v4.*` — on a CLEAN, single-cohort app** | NOT a version conflict. `com.cometchat:chat-sdk-android` still pulls a pre-AndroidX transitive: `android.arch.lifecycle:extensions:1.1.1` → `com.android.support:support-compat:26.1.0`, which collides with `androidx.core:core`. | Set BOTH in `gradle.properties`: `android.useAndroidX=true` and `android.enableJetifier=true`. Verified on a clean app 2026-08-24 (removing the line reproduces the failure). The review harness carries the same pair. |
12
+ | **`Duplicate class org.jetbrains.annotations.*` at dexing** | `io.noties:prism4j` pulls `annotations-java5:17`, colliding with `annotations:23` from AndroidX/Kotlin | `configurations.all { exclude(group = "org.jetbrains", module = "annotations-java5") }` — see core's install block. |
13
+ | **`Dependency 'androidx.core:core:1.18.0' requires Android Gradle plugin 8.9.1 or higher`** | AGP floor understated as 8.9 | AGP **8.9.1**. |
14
+ | **`kotlin-stdlib … metadata is 2.2.0, expected version is 2.0.0` / `Internal compiler error`** | Kotlin floor understated as 2.0 | Kotlin **2.1+** (2.0.21 fails; the review harness builds on 2.1.20). |
15
+ | **Duplicate class / resource merge errors; or two kit majors in the tree** | version_conflict — both cohort artifacts installed, or a v5 `chat-uikit-android` alongside v6 `chatuikit-*` | STOP and reconcile: keep ONE cohort (`chatuikit-kotlin-android` OR `chatuikit-compose-android`) and ONE major; v5→v6 goes through `upgrading-from-v5`. See `setup-credentials.md` §3. |
16
+ | **Init `onError` / `init()` fails silently** | Wrong App ID or Region (or empty values written to the settings JSON) | Re-check Dashboard → Credentials; Region must match (`us`/`eu`/`in`) — an auth error on init is most commonly a Region mismatch. See `setup-credentials.md` §6. |
17
+ | **Init `onError: ERR_SETTINGS_FILE_NOT_FOUND`** | `app/src/main/assets/cometchat-settings.json` is missing (it's gitignored — fresh clones don't have it) | Re-create the settings JSON from the dashboard creds (`setup-credentials.md` §4/§5). |
18
+ | **Init `onError: ERR_SETTINGS_INVALID`** | `appId` or `region` missing/empty in `cometchat-settings.json` | Fill both required root keys; they are not secrets and must always be present. |
19
+ | **Login `onError: ERR_UID_NOT_FOUND` / "UID not found"** | The UID doesn't exist in this CometChat app (hardcoded/guessed sample) | Use a UID that EXISTS: Dashboard → Users (fresh apps seed `cometchat-uid-1…5`), create one there, or `CometChatUIKit.createUser` (dev). See `setup-credentials.md` §7. |
20
+ | **Login does nothing — no success, no error** | `login()` called before `init()` resolved — the docs Warning: it "will fail silently" | Call `login` only inside init's `onSuccess`; the init→login→render order is invariant. See `lifecycle.md`. |
21
+ | **Blank / stuck splash or gate screen** | The gate never unlocks: an `onError` was swallowed (wrong Region, missing settings file, bad UID), so neither navigation nor an error message fires | Surface every `onError` (`e.message`) on the gate UI; check logcat for the CometChatException. See `lifecycle.md` "Surfacing CometChatException". |
22
+ | **Blank screen after login / component stuck on loading** | A `CometChat*` component rendered before init+login resolved, or (message screen) no `User`/`Group` was set on it | Gate rendering on both callbacks; pass the selected `conversationWith` entity to header/list/composer — the list shows only its loading indicator without one (docs Warning). See `component-props.md`. |
23
+ | **Conversations list renders but is EMPTY** | Fresh app with no conversations yet — or credentials point at a different app than expected | Seed data: log in as another seeded user (`cometchat-uid-2`) on a second device/emulator and send a message; or verify the App ID matches the dashboard app you're looking at. An `onEmpty` fire with valid creds is data, not a bug. |
24
+ | **Composer hidden under the keyboard** | Window doesn't resize for the IME | Views: `android:windowSoftInputMode="adjustResize"` on the chat Activity; Compose: `imePadding()` on the message column. See `layout.md` invariant 3. |
25
+ | **Header/composer under the status/nav bars** | `enableEdgeToEdge()` without inset handling | `Scaffold(contentWindowInsets = WindowInsets.statusBars)` + `navigationBarsPadding()` (Compose) / inset padding on the root (Views). See `layout.md` invariant 2. |
26
+ | **Chat surface is a ~0dp sliver or grows into place** | `wrap_content`/unbounded height on a list-shaped component | `match_parent`/`fillMaxSize()`; message list `0dp`+`layout_weight="1"` / `weight(1f)`. See `layout.md` invariants 1/5. |
27
+ | **Messages don't arrive in real time** (only on refresh/reopen) | Your own SDK listener never registered or removed too early (drop-ins manage their own) — or no network connection so the socket is down | Register `CometChat.addMessageListener(listenerId, ...)` in the screen's active lifecycle and remove it in the matching teardown — not before; verify connectivity (the SDK reconnects automatically). See `anti-patterns.md` #6. |
28
+ | **Tapping "Reply in thread" does nothing** | `onThreadRepliesClick` not wired (navigation is the host's job) | Wire it to a thread screen (`CometChatThreadHeader` + parent-scoped list + composer via `parentMessageId`), or hide the option. See `component-props.md`. |
29
+ | **Network/"cleartext" errors; init callback never fires** | `android.permission.INTERNET` missing from the manifest (or network blocked) | Add `<uses-permission android:name="android.permission.INTERNET" />` (+ `ACCESS_NETWORK_STATE`) to `AndroidManifest.xml` — the docs guide requires both; then re-check Region. |
30
+ | **`setOnItemClick` not firing** | Selection mode set to `MULTIPLE` consumes item clicks | Set selection mode `NONE` for standard click behavior (docs troubleshooting row). |
31
+ | **Release build crashes / kit classes missing** | R8/ProGuard stripped CometChat classes | Add `-keep class com.cometchat.** { *; }` to `proguard-rules.pro` (docs troubleshooting row). |
32
+
33
+ ## When it's NOT in the table
34
+ - **Any param/signature question** → fetch the component's `.md` twin via `docs-map.md`; never answer from memory.
35
+ - **A feature renders empty** (stickers/polls/AI) → the extension likely isn't enabled in the Dashboard (see `cometchat-android-v6-features`).
36
+ - **Still stuck** → logcat first: a `CometChatException` code beats guessing (4xx = auth/plan/config, not a code bug); confirm the settings JSON values, the cohort artifact, and that the docs' `minSdk`/`jvmTarget` prerequisites hold; then the docs troubleshooting page for the long tail (theming, calling, localization, sound).
@@ -1,215 +1,77 @@
1
1
  ---
2
2
  name: cometchat-android-v6-events
3
- description: "CometChat Android UIKit v6 event systemSharedFlow-based reactive event bus for messages, calls, users, groups, conversations, and UI events"
3
+ description: "React to what the CometChat Android v6 UI Kit is doing the CometChatEvents SharedFlow bus (message, call, conversation, group, user and UI events), how to collect it in Compose vs XML Views with correct lifecycle scoping, and when to use UI-Kit events versus Chat SDK listeners. Triggers: 'listen for message sent android cometchat', 'cometchat events android', 'know when a call is accepted', 'react when a group is created', 'sdk listener vs uikit event'."
4
4
  license: "MIT"
5
- compatibility: "Android 9.0+ (API 28); Kotlin 1.9+; com.cometchat:chatuikit-core-android:6.x"
5
+ compatibility: "Android minSdk >=28; compileSdk >=36; Kotlin >=2.1; AGP >=8.9.1; JVM target 11; com.cometchat:chatuikit-kotlin-android ^6 OR com.cometchat:chatuikit-compose-android ^6 (6.0.x, verified 6.0.5); com.cometchat:chat-sdk-android ^5"
6
6
  metadata:
7
7
  author: "CometChat"
8
- version: "3.0.0"
9
- tags: "cometchat, android, events, sharedflow, kotlin-flow, reactive"
8
+ version: "1.0.0"
9
+ tags: "cometchat android events v6 sharedflow lifecycle compose views"
10
10
  ---
11
11
 
12
- > **Ground truth:** `com.cometchat:chatuikit-{compose,kotlin}-android:6.x` (+ `calls-sdk-android:5.x`) resolved AAR (javap) + `ui-kit/android/v6`. **Official docs:** https://www.cometchat.com/docs/ui-kit/android/v6/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
+ > **Ground truth:** catalog `android-v6.json` + the live pages `events` (the API reference) and `customization-events`. `CometChatEvents` lives in `chatuikit-core-android` (`com.cometchat.uikit.core.events.CometChatEvents`). Verify symbols against the catalog; fetch the exact sealed-class members from the docs page the event lists below are a MAP, the page is the manual.
13
13
 
14
- > **Companion skills:** cometchat-android-v6-core (init/login), cometchat-android-v6-kotlin-customization, cometchat-android-v6-compose-customization
15
-
16
- ## Purpose
17
-
18
- Subscribe to and emit CometChat events using the v6 Kotlin SharedFlow-based event bus. This replaces the v5 Java listener interface pattern with a reactive, type-safe system built on `kotlinx.coroutines.flow.SharedFlow`.
14
+ ## Companion skills (read first)
15
+ - `cometchat-android-v6-core` — install, credentials, `initFromSettings → login → render`, the fetch map. Assumed here, never repeated.
16
+ - `cometchat-android-v6-{kotlin,compose}-customization` — click/selection callbacks on a single component (usually the simpler answer than the global bus).
19
17
 
20
18
  ## Use this skill when
19
+ "tell me when a message is sent/edited/deleted", "run code when a call is accepted", "update my own badge when a conversation changes", "hook into group/member changes", "what's the difference between an SDK listener and a UI Kit event?".
21
20
 
22
- - Listening for message sent/received/edited/deleted events
23
- - Listening for call accepted/rejected/ended events
24
- - Listening for user or group membership changes
25
- - Listening for conversation updates
26
- - Listening for UI events (custom UI position events)
27
- - Emitting custom events to trigger UI updates
28
-
29
- ## Do not use this skill when
30
-
31
- - Setting up the SDK (use `cometchat-android-v6-core`)
32
- - Working with CometChat SDK-level listeners (`CometChat.addMessageListener`) — those are separate from UIKit events
33
-
34
- ## 1. Event Bus Architecture
35
-
36
- `CometChatEvents` is a singleton object in `com.cometchat.uikit.core.events` that manages 6 event flows:
37
-
38
- ```kotlin
39
- import com.cometchat.uikit.core.events.CometChatEvents
40
-
41
- // 6 event flows — all are SharedFlow<T>
42
- CometChatEvents.messageEvents // SharedFlow<CometChatMessageEvent>
43
- CometChatEvents.callEvents // SharedFlow<CometChatCallEvent>
44
- CometChatEvents.userEvents // SharedFlow<CometChatUserEvent>
45
- CometChatEvents.groupEvents // SharedFlow<CometChatGroupEvent>
46
- CometChatEvents.conversationEvents // SharedFlow<CometChatConversationEvent>
47
- CometChatEvents.uiEvents // SharedFlow<CometChatUIEvent>
48
- ```
21
+ ## Prerequisites & install
22
+ Same kit + init as `core`. `CometChatEvents` ships in `chatuikit-core-android` (already a transitive dependency of both cohort artifacts) — nothing to add.
49
23
 
50
- Each flow uses:
51
- - `replay = 0` no replay of past events to new subscribers
52
- - `BufferOverflow.DROP_OLDEST` — drops oldest events when buffer is full
53
- - Buffer capacities: messages=64, groups=32, users/conversations/ui=16, calls=8
24
+ ## The event bus (BAKED map — fetch the page for each sealed class's members)
25
+ All events come from the **`CometChatEvents` singleton**; each domain exposes a **`SharedFlow`** of a sealed class:
54
26
 
55
- ## 2. Subscribing to Events
27
+ | Flow | Sealed class | What it covers |
28
+ |---|---|---|
29
+ | `CometChatEvents.messageEvents` | `CometChatMessageEvent` | sent · edited · deleted · read · live reaction · interactive/card/form/scheduler received |
30
+ | `CometChatEvents.callEvents` | `CometChatCallEvent` | call initiated · accepted · rejected · ended |
31
+ | `CometChatEvents.conversationEvents` | `CometChatConversationEvent` | conversation deleted · updated |
32
+ | `CometChatEvents.groupEvents` | `CometChatGroupEvent` | group created/deleted · member changes |
33
+ | `CometChatEvents.userEvents` | `CometChatUserEvent` | user blocked · unblocked |
34
+ | `CometChatEvents.uiEvents` | `CometChatUIEvent` | panel visibility · active-chat changes |
56
35
 
57
- ### 2.1 In a ViewModel or CoroutineScope
36
+ Member shapes are **prefixed too** and the message ones repeat the domain: `CometChatMessageEvent.MessageSent(message, status)` (status `IN_PROGRESS`/`SUCCESS`/`ERROR`) · `MessageEdited` · `MessageDeleted` · `MessageRead` · `TextMessageReceived` · `TypingStarted` · `ReactionAdded`. There is no `.Sent` — it is `.MessageSent`. Import the sealed class from `com.cometchat.uikit.core.events`. Full list: fetch `/ui-kit/android/customization-events.md` (NOT `events.md`, which still teaches the old un-prefixed shape).
58
37
 
38
+ ## Subscribing per cohort (lifecycle is the whole point)
39
+ **Kotlin XML Views** — collect in `lifecycleScope`; the coroutine is cancelled when the lifecycle owner is destroyed:
59
40
  ```kotlin
60
- import com.cometchat.uikit.core.events.*
41
+ import androidx.lifecycle.lifecycleScope // in an Activity/Fragment
61
42
  import kotlinx.coroutines.launch
43
+ import com.cometchat.uikit.core.events.CometChatEvents
44
+ import com.cometchat.uikit.core.events.CometChatMessageEvent
62
45
 
63
- // In a ViewModel
64
- viewModelScope.launch {
46
+ lifecycleScope.launch {
65
47
  CometChatEvents.messageEvents.collect { event ->
66
48
  when (event) {
67
- is CometChatMessageEvent.MessageSent -> {
68
- val message = event.message
69
- val status = event.status // IN_PROGRESS, SUCCESS, or ERROR
70
- }
71
- is CometChatMessageEvent.MessageEdited -> {
72
- val editedMessage = event.message
73
- }
74
- is CometChatMessageEvent.MessageDeleted -> {
75
- val deletedMessage = event.message
76
- }
77
- // handle other message events...
78
- else -> {}
49
+ is CometChatMessageEvent.MessageSent -> { /* event.message, event.status */ }
50
+ is CometChatMessageEvent.MessageDeleted -> { /* event.message */ }
51
+ else -> Unit
79
52
  }
80
53
  }
81
54
  }
82
55
  ```
83
-
84
- ### 2.2 In Jetpack Compose
85
-
56
+ **Jetpack Compose** — collect in `LaunchedEffect`; cancelled when the composable leaves composition:
86
57
  ```kotlin
87
- import androidx.compose.runtime.LaunchedEffect
88
- import com.cometchat.uikit.core.events.*
89
-
90
- @Composable
91
- fun ChatScreen() {
92
- LaunchedEffect(Unit) {
93
- CometChatEvents.callEvents.collect { event ->
94
- when (event) {
95
- is CometChatCallEvent.CallAccepted -> {
96
- // Navigate to ongoing call screen
97
- }
98
- is CometChatCallEvent.CallRejected -> {
99
- // Dismiss call UI
100
- }
101
- else -> {}
102
- }
103
- }
104
- }
105
- }
106
- ```
107
-
108
- ### 2.3 In an Activity or Application class
109
-
110
- ```kotlin
111
- private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
112
-
113
- override fun onCreate(savedInstanceState: Bundle?) {
114
- super.onCreate(savedInstanceState)
115
-
116
- scope.launch {
117
- CometChatEvents.callEvents.collect { event ->
118
- when (event) {
119
- is CometChatCallEvent.CallAccepted -> { /* ... */ }
120
- is CometChatCallEvent.CallRejected -> { /* ... */ }
121
- else -> {}
122
- }
123
- }
124
- }
125
- }
126
-
127
- override fun onDestroy() {
128
- super.onDestroy()
129
- scope.cancel() // Always cancel to avoid leaks
58
+ LaunchedEffect(Unit) {
59
+ CometChatEvents.messageEvents.collect { event -> /* when (event) { … } */ }
130
60
  }
131
61
  ```
62
+ > **No manual removal needed.** Unlike the old static-listener pattern, `SharedFlow` collection is scoped — do NOT invent an `addListener`/`removeListener` pair for `CometChatEvents`. Just don't collect outside a lifecycle-aware scope (a bare `GlobalScope.launch` IS a leak).
132
63
 
133
- ## 3. Emitting Events
134
-
135
- ```kotlin
136
- // Emit a message event
137
- CometChatEvents.emitMessageEvent(
138
- CometChatMessageEvent.MessageSent(message, MessageStatus.SUCCESS)
139
- )
140
-
141
- // Emit a call event
142
- CometChatEvents.emitCallEvent(
143
- CometChatCallEvent.CallRejected(call)
144
- )
145
-
146
- // Emit a user event
147
- CometChatEvents.emitUserEvent(event)
148
-
149
- // Emit a group event
150
- CometChatEvents.emitGroupEvent(event)
151
-
152
- // Emit a conversation event
153
- CometChatEvents.emitConversationEvent(event)
154
-
155
- // Emit a UI event
156
- CometChatEvents.emitUIEvent(event)
157
- ```
158
-
159
- All emit functions are thread-safe — they launch on `Dispatchers.Default` internally.
160
-
161
- ## 4. Event Types Reference
162
-
163
- ### 4.1 CometChatMessageEvent (sealed class)
164
-
165
- | Event | Properties | When emitted |
64
+ ## UI-Kit events vs Chat SDK listeners (pick the right bus)
65
+ | | **UI-Kit events** (`CometChatEvents.*`) | **Chat SDK listeners** (`CometChat.add*Listener`) |
166
66
  |---|---|---|
167
- | `MessageSent` | `message: BaseMessage`, `status: MessageStatus` | Text/media/custom message sent (IN_PROGRESS SUCCESS or ERROR) |
168
- | `MessageEdited` | `message: BaseMessage` | Message edited |
169
- | `MessageDeleted` | `message: BaseMessage` | Message deleted |
170
-
171
- `MessageStatus` enum: `IN_PROGRESS`, `SUCCESS`, `ERROR`
172
-
173
- ### 4.2 CometChatCallEvent (sealed class)
174
-
175
- | Event | Properties | When emitted |
176
- |---|---|---|
177
- | `CallAccepted` | `call: Call` | Incoming call accepted |
178
- | `CallRejected` | `call: Call` | Call rejected |
179
- | `CallEnded` | `call: Call` | Call ended |
180
- | `OutgoingCall` | `call: Call` | Outgoing call initiated |
181
-
182
- ### 4.3 CometChatUserEvent (sealed class)
183
-
184
- User-related events (block, unblock, etc.)
185
-
186
- ### 4.4 CometChatGroupEvent (sealed class)
187
-
188
- Group membership events (member added, removed, scope changed, etc.)
189
-
190
- ### 4.5 CometChatConversationEvent (sealed class)
191
-
192
- Conversation-level events (conversation deleted, etc.)
193
-
194
- ### 4.6 CometChatUIEvent (sealed class)
195
-
196
- UI-level events including `CustomUIPosition` for custom view positioning.
197
-
198
- ## 5. Migration from v5
199
-
200
- | v5 Pattern | v6 Pattern |
201
- |---|---|
202
- | `CometChatMessageEvents.addListener(id, listener)` | `CometChatEvents.messageEvents.collect { }` |
203
- | `CometChatCallEvents.addListener(id, listener)` | `CometChatEvents.callEvents.collect { }` |
204
- | `listener.onTextMessageSent(message)` | `is CometChatMessageEvent.MessageSent` |
205
- | `removeListener(id)` | Cancel the coroutine scope |
206
- | Java interface callbacks | Kotlin sealed class + when expression |
67
+ | Source | UI Kit components (what the UI just did) | the CometChat server (what arrived) |
68
+ | Direction | component component | server client |
69
+ | Registration | `.collect {}` in a lifecycle scope | `add*Listener(ID, …)` + **`remove*Listener(ID)` on teardown** |
70
+ | Use for | "the user sent/edited a message", "a call was accepted", panel/active-chat changes | incoming messages, presence, typing, connection status, incoming calls |
71
+ **Both are needed for a full app.** If you're reacting to something the server pushed while your UI didn't do it, that's an SDK listener (→ `core/references/docs-map.md` SDK section, or `cometchat-android-v5-sdk`) — and SDK listeners DO require explicit removal in `onDestroy`/`onDispose`/`onCleared`.
207
72
 
208
- ## Hard rules
73
+ ## Common pitfalls
74
+ Collecting on a non-lifecycle scope (leak) · inventing `CometChatEvents.addListener`/`removeListener` (doesn't exist — it's a flow) · using a UI-Kit event to detect *incoming* messages (use an SDK message listener) · registering an SDK listener and never removing it · a `when` without an `else` branch breaking on a new sealed member · re-collecting the same flow in several places and double-handling · guessing a sealed-class case name instead of fetching the events page.
209
75
 
210
- - NEVER collect flows on `Dispatchers.Default` for UI updates — switch to `Dispatchers.Main` or use `viewModelScope` / `lifecycleScope`
211
- - ALWAYS cancel coroutine scopes when the component is destroyed to avoid memory leaks
212
- - Events are emitted on `Dispatchers.Default` — the subscriber is responsible for thread switching
213
- - Buffer overflow uses `DROP_OLDEST` — high-frequency events may be dropped if the subscriber is slow
214
- - Do NOT confuse UIKit events (`CometChatEvents`) with SDK-level listeners (`CometChat.addMessageListener`) — they are separate systems
215
- - `CometChatUIKit.sendTextMessage()` / `sendMediaMessage()` / `sendCustomMessage()` automatically emit message events — do not double-emit
76
+ ## Verify it works
77
+ Compile against the pinned kit (`./gradlew :app:assembleDebug # in YOUR app (npm run verify:fences:android-v6 is a pack-repo gate)`). On device: trigger the action (send/edit/delete a message, accept a call) and confirm your handler runs exactly once; rotate the screen / navigate away and back — no duplicate handling and no crash (proves the scope is right); for any SDK listener you added, confirm the matching remove runs on teardown.