@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,15 @@
1
+ {
2
+ "generatedFrom": "cometchat.com/docs — sdk/android/v5 (setup, authentication-overview, send-message, receive-messages, real-time-listeners, additional-message-filtering) verified 2026-08-20; symbols cross-checked against test-suite/catalogs/sdk-android-v5.json (curated from the INSTALLED com.cometchat:chat-sdk-android:5.0.5 AAR). Android adaptation of the web-react contracts.json 'sdk-chat-surface' entry — same capability NAMES where the principle is shared, Android/Kotlin recipes.",
3
+ "family": "android-sdk",
4
+ "major": "v5",
5
+ "contracts": [
6
+ {
7
+ "for": "sdk-chat-surface",
8
+ "kind": "feature",
9
+ "consumption": "sdk",
10
+ "min_capabilities": ["init-before-anything", "init-then-login-ordering", "credentials-via-settings-file", "prod-auth-token-guidance", "send-message", "receive-via-listener", "listener-register-with-id", "listener-remove-on-teardown", "sdk-error-handling", "pagination-via-request-builder", "production-ready-design-system", "sized-shell-no-overflow", "conversations-users-groups-lists", "list-search", "delete-conversation", "message-actions-working", "thread-panel", "user-group-detail-with-actions", "optimistic-ui-mutations", "loading-empty-error-states"],
11
+ "docs_topic": "https://www.cometchat.com/docs/sdk/android/v5/overview",
12
+ "notes": "HEADLESS (build-your-own-UI) FLOOR for the Android Chat SDK v5 skill — the SDK analogue of core-chat-surface. Capabilities are behaviours the emitted code MUST include, mapped to the Android SDK (FETCH exact signatures from the sdk/android/v5 pages — bake the map, fetch the manual): init-before-anything = CometChat.initFromSettings(context, CallbackListener<String>) resolves (onSuccess) BEFORE any other SDK call — it reads the GITIGNORED app/src/main/assets/cometchat-settings.json (appId, region, credentials.authKey, chatSDK section) and persists integrationSource=\"ai-agent\" for telemetry (AUDIT-084; signature verified vs the installed 5.0.5 AAR — javap: initFromSettings(Context, CallbackListener<String>)). Do NOT use the classic CometChat.init(context, appId, AppSettings) as the default; it loses attribution. init-then-login-ordering = CometChat.login(uid, authKey/authToken, CallbackListener) runs AFTER init and BEFORE send/fetch/listeners; skip login if getLoggedInUser() != null (re-login of the same user throws). credentials-via-settings-file = appId/region/authKey live in the gitignored assets/cometchat-settings.json read by initFromSettings — never hardcoded in source; build-time extras go local.properties → buildConfigField → BuildConfig. prod-auth-token-guidance = server-minted auth token login for prod; Auth Key dev-only. send-message = build TextMessage(receiverId, text, receiverType) + CometChat.sendMessage(msg, CallbackListener<TextMessage>). receive-via-listener = a registered CometChat.MessageListener delivers incoming messages (onTextMessageReceived/onMediaMessageReceived), not polling. listener-register-with-id = CometChat.addMessageListener(UNIQUE_ID, listener). listener-remove-on-teardown = CometChat.removeMessageListener(UNIQUE_ID) in the lifecycle teardown (onDestroy / DisposableEffect onDispose / ViewModel onCleared) — register AND remove; a leaked listener FAILS this contract. sdk-error-handling = every CallbackListener implements onError(CometChatException) and surfaces e.message — never an empty catch. pagination-via-request-builder = MessagesRequest.MessagesRequestBuilder().setLimit(n).build() + fetchPrevious/fetchNext (same builder pattern for Users/Groups/Conversations/GroupMembers requests), not one unbounded call. BECAUSE THE SDK HAS NO UI, the emitted app must ALSO be production-ready UI, deterministically: production-ready-design-system = reuse the app's existing theme (Material3/Compose theme or XML styles) or establish a small token-based one — never ad-hoc one-off styling. sized-shell-no-overflow = the chat screen fills the viewport (match_parent / fillMaxSize), the message list scrolls internally (RecyclerView / LazyColumn with reverseLayout as appropriate), insets + IME handled (adjustResize / imePadding). conversations-users-groups-lists + list-search = all three lists, each searchable via the request builder's search-keyword setter — TWO real traps to emit correctly: (1) casing differs per builder — UsersRequestBuilder.setSearchKeyword / ConversationsRequestBuilder.setSearchKeyword are lowercase but GroupsRequestBuilder.setSearchKeyWord has a CAPITAL W (SDK inconsistency; setSearchKeyword on GroupsRequest = Unresolved reference); (2) Conversations search (and setUnread) is PLAN-GATED — requires the 'Conversation & Advanced Search' feature (Advanced/Custom plan + a dashboard toggle) and OFF-PLAN silently returns the FULL unfiltered list with no error, so gate the conversations-search UI behind an 'Advanced plan' hint or a labelled local filter — never present an unfiltered list as a search result. Users/Groups search are NOT plan-gated. presence-in-header = the header/users presence (onUserOnline/onUserOffline via addUserListener) only fires when the settings asset opts in with chatSDK.presenceSubscription (ALL_USERS/FRIENDS/ROLES; absent ⇒ no realtime presence — getUser().status is a snapshot only). delete-conversation = CometChat.deleteConversation per row. message-actions-working = reply-in-thread / react / edit / delete each wired to the SDK AND reflected in the UI (own-message gating for edit/delete via sender uid). thread-panel = setParentMessageId(...) scoped MessagesRequest + a thread composer. user-group-detail-with-actions = user detail (blockUsers/unblockUsers) + group detail (addMembersToGroup / kickGroupMember / banGroupMember / updateGroupMemberScope / leaveGroup), scope-gated. optimistic-ui-mutations = send/edit/delete/react update the UI immediately (temp 'sending' state, e.g. via the muid) then reconcile in onSuccess/onError (roll back + surface the error). loading-empty-error-states = loading/empty/error on every surface, never blank. This is the full default for a generic 'build chat with the Android SDK' prompt; bare bubbles UNDER-DELIVER. All symbols named here exist in the sdk-android-v5 catalog (curated+members, AUDIT-021 class)."
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "generatedFrom": "@cometchat/calls-sdk-javascript@5.0.5 (.d.ts) + /calls/javascript docs (v5, preview)",
3
+ "family": "web-calls-v5",
4
+ "major": "v5",
5
+ "capabilityDetectors": {},
6
+ "contracts": [
7
+ {
8
+ "for": "calls-session-surface",
9
+ "kind": "feature",
10
+ "consumption": "sdk",
11
+ "min_capabilities": [
12
+ "init-before-anything",
13
+ "init-then-login-ordering",
14
+ "prod-auth-token-guidance",
15
+ "generate-token-before-join",
16
+ "join-session-into-sized-container",
17
+ "listener-registered-before-join",
18
+ "listener-unsub-on-teardown",
19
+ "leave-session-on-teardown",
20
+ "in-call-actions-wired",
21
+ "sdk-error-handling",
22
+ "https-getusermedia-note"
23
+ ],
24
+ "docs_topic": "/calls/javascript/join-session",
25
+ "notes": "HEADLESS meet-style FLOOR for the Calls SDK v5 skill (cometchat-js-v5-sdk) — the calling analogue of sdk-chat-surface. Capabilities are SDK behaviours the emitted code MUST include, mapped to @cometchat/calls-sdk-javascript@5 (FETCH exact signatures from /calls/javascript via references/docs-map.md — bake the map, fetch the manual): init-before-anything = the emit inits via the ai-agent/telemetry-attributed CometChatCalls.initFromSettings(settings) (persists integrationSource='ai-agent', parallels the chat sdk-chat-surface floor, RULES §5 / AUDIT-084/175) — passed the settings object INLINE (the shape is baked in the skill's references/docs-map.md; initFromSettings is intentionally undocumented/ai-agent-only, @nodoc, per DOCS-BACKLOG F4/C1) — and it resolves BEFORE any other calls SDK call. The publicly-documented CometChatCalls.init({appId,region}) is the FALLBACK ONLY (a non-skills/doc-following context). init-then-login-ordering = CometChatCalls.login(uid, authKey) | loginWithAuthToken(token) runs AFTER init and BEFORE generateToken/joinSession/listeners. prod-auth-token-guidance = loginWithAuthToken / server-side token; Auth Key dev-only. generate-token-before-join = const {token} = await CometChatCalls.generateToken(sessionId) precedes joinSession. join-session-into-sized-container = CometChatCalls.joinSession(token, sessionSettings, containerEl) where containerEl has REAL dimensions (zero-height renders the call invisibly). listener-registered-before-join = CometChatCalls.addEventListener(name, cb) registered BEFORE joinSession. listener-unsub-on-teardown = every addEventListener return value (an unsubscribe fn) is called on teardown; a leaked listener FAILS. leave-session-on-teardown = CometChatCalls.leaveSession() on unmount. in-call-actions-wired = mute/unmute + video pause/resume + leave are wired to real controls (muteAudio/unmuteAudio/pauseVideo/resumeVideo/leaveSession), never dead buttons. sdk-error-handling = joinSession's Result.error path and awaited-call rejections are handled. https-getusermedia-note = the emit/README states HTTPS-or-localhost is required for getUserMedia. Least-code = use the SDK's own methods (HOW); never drop teardown or the error path (WHAT). Meet-style needs ONLY the Calls SDK — no Chat SDK. Every CometChatCalls.* symbol named here is in the web-calls-v5 catalog."
26
+ },
27
+ {
28
+ "for": "calls-oneonone-ringing",
29
+ "kind": "feature",
30
+ "consumption": "sdk",
31
+ "min_capabilities": [
32
+ "chat-sdk-init-login",
33
+ "initiate-call-signaling",
34
+ "incoming-call-listener-with-id",
35
+ "accept-or-reject-call",
36
+ "generate-token-from-accepted-session",
37
+ "join-session-after-accept",
38
+ "call-listener-remove-on-teardown",
39
+ "sdk-error-handling"
40
+ ],
41
+ "docs_topic": "/calls/javascript/overview",
42
+ "notes": "1:1 RINGING FLOOR — adds the Chat SDK signaling layer on top of calls-session-surface. Ringing = a specific user is called, gets an incoming prompt, accepts/rejects; the Chat SDK (@cometchat/chat-sdk-javascript@4) does the signaling and the Calls SDK carries media (FETCH the Chat-SDK calling signatures via references/docs-map.md § '1:1 RINGING' — do NOT bake them): chat-sdk-init-login = the Chat SDK is init'd + logged in (shared session with the Calls SDK). initiate-call-signaling = CometChat.initiateCall(new CometChat.Call(receiverId, receiverType, callType)) starts the ring. incoming-call-listener-with-id = CometChat.addCallListener(UNIQUE_ID, new CometChat.CallListener({ onIncomingCallReceived, onOutgoingCallAccepted, onOutgoingCallRejected, onIncomingCallCancelled })). accept-or-reject-call = CometChat.acceptCall(sessionId) / CometChat.rejectCall(sessionId, status). generate-token-from-accepted-session = CometChatCalls.generateToken(acceptedCall.getSessionId()). join-session-after-accept = CometChatCalls.joinSession(token, sessionSettings, containerEl) once accepted. call-listener-remove-on-teardown = CometChat.removeCallListener(UNIQUE_ID) on teardown. sdk-error-handling = every awaited call handles the CometChatException path. This contract INHERITS the calls-session-surface floor for the media half (container sizing, event-listener teardown, leaveSession)."
43
+ }
44
+ ]
45
+ }
@@ -0,0 +1,246 @@
1
+ {
2
+ "_doc": "Headless capability enumeration for the Android Calls SDK v5 skill (cometchat-android-v5-calls-sdk) — standalone voice/video FROM SCRATCH, no UI Kit. Native fork of features.web-calls-v5.json: the deliverable is a calls-session-surface (meet-style join into a RelativeLayout) and a calls-oneonone-ringing flow (Chat SDK v5 signaling + Calls SDK media). surface=headless gives every feature the sdk-surface predicate profile (done = G0 ∧ G5 ∧ G6); families.json routes the family through the NATIVE ladder (gate-emit → native-fence gradle build vs the pinned calls-sdk-android 5.0.4 → CallsSmokeTests on a real emulator: init→login→attach→generateToken→joinSession→session-active→leaveSession). Symbols verified against test-suite/catalogs/android-calls-v5.json (curated+members from the INSTALLED 5.0.4 AAR via javap, cross-checked with the live /calls/android docs, 2026-09-07). Android CANNOT initiate screen share (receive-only) and has no virtual-background page — neither is claimed here.",
3
+ "family": "android-calls-v5",
4
+ "major": "v5",
5
+ "surface": "headless",
6
+ "pack": "cometchat-android-v5-calls-sdk",
7
+ "features": [
8
+ {
9
+ "id": "calls-session-meet",
10
+ "name": "Meet-style call session (join a room by session id)",
11
+ "category": "core",
12
+ "enablement": "auto",
13
+ "docs_topic": "/calls/android/join-session",
14
+ "sdk_symbols": [
15
+ "initFromSettings",
16
+ "init",
17
+ "login",
18
+ "generateToken",
19
+ "joinSession",
20
+ "SessionSettingsBuilder",
21
+ "CallSession",
22
+ "leaveSession",
23
+ "addSessionStatusListener"
24
+ ],
25
+ "notes": "The primary headless surface: everyone who joins the same sessionId lands in the same call. Calls SDK ONLY. joinSession renders the SDK's full call UI (controls included) into a sized RelativeLayout. Gated by the calls-session-surface contract; G6 = the device round-trip (session active + SDK view rendered)."
26
+ },
27
+ {
28
+ "id": "calls-oneonone-ringing",
29
+ "name": "One-on-one ringing call (Chat SDK signaling + Calls SDK media)",
30
+ "category": "core",
31
+ "enablement": "auto",
32
+ "docs_topic": "/calls/android/ringing",
33
+ "sdk_symbols": [
34
+ "initiateCall",
35
+ "addCallListener",
36
+ "CallListener",
37
+ "acceptCall",
38
+ "rejectCall",
39
+ "endCall",
40
+ "removeCallListener",
41
+ "generateToken",
42
+ "joinSession",
43
+ "leaveSession"
44
+ ],
45
+ "notes": "Ring a specific user (incoming prompt, accept/reject) via the Chat SDK's initiateCall/CallListener/acceptCall, then generateToken(call.sessionId) + joinSession for media; CometChat.endCall on hang-up so the peer's onCallEndedMessageReceived fires. Requires com.cometchat:chat-sdk-android ^5 (init + login) alongside the Calls SDK. Needs TWO devices/users to prove live — G6 grades the mounted surface (smoke.roundtrip=surface)."
46
+ },
47
+ {
48
+ "id": "call-events",
49
+ "name": "Call events (session / participant / media / button / layout listeners)",
50
+ "category": "core",
51
+ "enablement": "auto",
52
+ "docs_topic": "/calls/android/events",
53
+ "sdk_symbols": [
54
+ "CallSession",
55
+ "addSessionStatusListener",
56
+ "addParticipantEventListener",
57
+ "addMediaEventsListener",
58
+ "addButtonClickListener",
59
+ "addLayoutListener",
60
+ "SessionStatusListener",
61
+ "ParticipantEventListener",
62
+ "MediaEventsListener",
63
+ "ButtonClickListener",
64
+ "LayoutListener"
65
+ ],
66
+ "notes": "Every listener is LIFECYCLE-BOUND: CallSession.getInstance().add*Listener(lifecycleOwner, listener) is removed with the owner. Register from the joinSession onSuccess (or right after). Exact callback names verified vs the 5.0.4 AAR — the docs list onScreenShareStarted/Stopped on MediaEventsListener, which does NOT exist (screen-share events are on ParticipantEventListener)."
67
+ },
68
+ {
69
+ "id": "call-layouts",
70
+ "name": "Call layouts (Tile / Sidebar / Spotlight)",
71
+ "category": "default",
72
+ "enablement": "auto",
73
+ "docs_topic": "/calls/android/call-layouts",
74
+ "sdk_symbols": [
75
+ "SessionSettingsBuilder",
76
+ "setLayout",
77
+ "LayoutType",
78
+ "addLayoutListener",
79
+ "hideChangeLayoutButton"
80
+ ],
81
+ "notes": "Set the layout at join (SessionSettingsBuilder.setLayout) or live via CallSession.setLayout(LayoutType.*); LayoutListener.onCallLayoutChanged reflects it. The built-in surface already has a change-layout button — hideChangeLayoutButton(true) only when fixing the layout."
82
+ },
83
+ {
84
+ "id": "call-audio-modes",
85
+ "name": "Audio output modes (speaker / earpiece / Bluetooth / headphones)",
86
+ "category": "default",
87
+ "enablement": "auto",
88
+ "docs_topic": "/calls/android/audio-modes",
89
+ "sdk_symbols": [
90
+ "setAudioMode",
91
+ "AudioMode",
92
+ "onAudioModeChanged",
93
+ "hideAudioModeButton"
94
+ ],
95
+ "notes": "SessionSettingsBuilder.setAudioMode at join or CallSession.setAudioMode(AudioMode.*) live; MediaEventsListener.onAudioModeChanged reflects the device switch. Needs MODIFY_AUDIO_SETTINGS + BLUETOOTH permissions (the AAR manifest declares them)."
96
+ },
97
+ {
98
+ "id": "call-recording",
99
+ "name": "Call recording",
100
+ "category": "default",
101
+ "enablement": "dashboard",
102
+ "docs_topic": "/calls/android/recording",
103
+ "sdk_symbols": [
104
+ "startRecording",
105
+ "stopRecording",
106
+ "enableAutoStartRecording",
107
+ "onRecordingStarted",
108
+ "onRecordingStopped",
109
+ "onParticipantStartedRecording"
110
+ ],
111
+ "notes": "CallSession.startRecording/stopRecording (or auto-start via SessionSettingsBuilder.enableAutoStartRecording); MediaEventsListener.onRecordingStarted/Stopped for your own recording, ParticipantEventListener.onParticipantStartedRecording for others. Recordings surface later on CallLog.getRecordings(). Recording may require enabling on the CometChat Dashboard — flag honestly."
112
+ },
113
+ {
114
+ "id": "call-raise-hand",
115
+ "name": "Raise hand",
116
+ "category": "default",
117
+ "enablement": "auto",
118
+ "docs_topic": "/calls/android/raise-hand",
119
+ "sdk_symbols": [
120
+ "raiseHand",
121
+ "lowerHand",
122
+ "onParticipantHandRaised",
123
+ "onParticipantHandLowered",
124
+ "getRaisedHandTimestamp",
125
+ "hideRaiseHandButton"
126
+ ],
127
+ "notes": "CallSession.raiseHand/lowerHand; ParticipantEventListener.onParticipantHandRaised/Lowered; Participant.raisedHandTimestamp > 0 lists who has a hand up, in order."
128
+ },
129
+ {
130
+ "id": "call-participant-management",
131
+ "name": "Participant management (mute / pause video / pin)",
132
+ "category": "default",
133
+ "enablement": "auto",
134
+ "docs_topic": "/calls/android/participant-management",
135
+ "sdk_symbols": [
136
+ "muteParticipant",
137
+ "pauseParticipantVideo",
138
+ "pinParticipant",
139
+ "unpinParticipant",
140
+ "onParticipantListChanged",
141
+ "onParticipantJoined",
142
+ "onParticipantLeft",
143
+ "onDominantSpeakerChanged",
144
+ "Participant"
145
+ ],
146
+ "notes": "Every participant is a moderator by default (role gating is the app's job). Verified vs the AAR: pinParticipant takes TWO String args and unpin is `unpinParticipant()` — the docs show pinParticipant(uid) / unPinParticipant(), which do not compile."
147
+ },
148
+ {
149
+ "id": "call-logs",
150
+ "name": "Call logs (history + recordings)",
151
+ "category": "default",
152
+ "enablement": "auto",
153
+ "docs_topic": "/calls/android/call-logs",
154
+ "sdk_symbols": [
155
+ "CallLogRequest",
156
+ "CallLogRequestBuilder",
157
+ "setLimit",
158
+ "fetchNext",
159
+ "fetchPrevious",
160
+ "CallLog",
161
+ "getRecordings",
162
+ "Recording"
163
+ ],
164
+ "notes": "Paginated history via CallLogRequest.CallLogRequestBuilder().setLimit(n)…build() then fetchNext(CallbackListener<List<CallLog>>) — build ONE request and page it; filters: setSessionType/setCallStatus/setCallDirection/setHasRecording/setUid/setGuid. Needs an initialized + logged-in Calls SDK. G6 = surface (backend data)."
165
+ },
166
+ {
167
+ "id": "call-screen-sharing",
168
+ "name": "Screen sharing (receive-only on Android)",
169
+ "category": "default",
170
+ "enablement": "auto",
171
+ "docs_topic": "/calls/android/screen-sharing",
172
+ "sdk_symbols": [
173
+ "addParticipantEventListener",
174
+ "onParticipantStartedScreenShare",
175
+ "onParticipantStoppedScreenShare"
176
+ ],
177
+ "notes": "Android CANNOT initiate screen share — only web clients can; Android participants view it (the layout adjusts automatically). The deliverable is the ParticipantEventListener wiring + honest guidance; a skill that emits a 'start screen share' button on Android is wrong."
178
+ },
179
+ {
180
+ "id": "call-idle-timeout",
181
+ "name": "Idle timeout (auto-end when alone)",
182
+ "category": "default",
183
+ "enablement": "auto",
184
+ "docs_topic": "/calls/android/idle-timeout",
185
+ "sdk_symbols": [
186
+ "setIdleTimeoutPeriod",
187
+ "onSessionTimedOut",
188
+ "SessionStatusListener"
189
+ ],
190
+ "notes": "SessionSettingsBuilder.setIdleTimeoutPeriod(seconds; default 300; 0 disables) + SessionStatusListener.onSessionTimedOut to leave the screen."
191
+ },
192
+ {
193
+ "id": "call-picture-in-picture",
194
+ "name": "Picture-in-picture (call continues while using other apps)",
195
+ "category": "default",
196
+ "enablement": "auto",
197
+ "docs_topic": "/calls/android/picture-in-picture",
198
+ "sdk_symbols": [
199
+ "enablePictureInPictureLayout",
200
+ "disablePictureInPictureLayout",
201
+ "onPictureInPictureLayoutEnabled",
202
+ "onPictureInPictureLayoutDisabled",
203
+ "LayoutListener"
204
+ ],
205
+ "notes": "Android PiP = the Activity enters PiP (supportsPictureInPicture + enterPictureInPictureMode on onUserLeaveHint) and the SDK switches its layout via CallSession.enablePictureInPictureLayout/disablePictureInPictureLayout; LayoutListener.onPictureInPictureLayoutEnabled/Disabled reflect it. Fetch the manifest/Activity wiring from the docs page."
206
+ },
207
+ {
208
+ "id": "call-custom-controls",
209
+ "name": "Custom control panel (explicit request only — hide the defaults first)",
210
+ "category": "default",
211
+ "enablement": "auto",
212
+ "docs_topic": "/calls/android/custom-control-panel",
213
+ "sdk_symbols": [
214
+ "hideControlPanel",
215
+ "muteAudio",
216
+ "unmuteAudio",
217
+ "pauseVideo",
218
+ "resumeVideo",
219
+ "switchCamera",
220
+ "leaveSession",
221
+ "onAudioMuted",
222
+ "onAudioUnMuted",
223
+ "onVideoPaused",
224
+ "onVideoResumed"
225
+ ],
226
+ "notes": "ONLY when the user explicitly asks to replace the built-in controls: SessionSettingsBuilder.hideControlPanel(true) FIRST, then wire your own buttons to CallSession.muteAudio/unmuteAudio/pauseVideo/resumeVideo/switchCamera/leaveSession and keep them in sync via MediaEventsListener. Default builds add NO external buttons (AUDIT-170)."
227
+ },
228
+ {
229
+ "id": "call-background-handling",
230
+ "name": "Background handling (keep the call alive on Home / app switch)",
231
+ "category": "default",
232
+ "enablement": "auto",
233
+ "docs_topic": "/calls/android/background-handling",
234
+ "sdk_symbols": [
235
+ "CometChatOngoingCallService",
236
+ "launch",
237
+ "abort",
238
+ "OngoingNotification",
239
+ "buildOngoingConferenceNotification",
240
+ "onSessionJoined",
241
+ "onSessionLeft"
242
+ ],
243
+ "notes": "REQUIRES a manifest declaration in the APP — the 5.0.4 AAR declares NO <service>: <service android:name=\"com.cometchat.calls.services.CometChatOngoingCallService\" android:exported=\"false\" android:foregroundServiceType=\"camera|microphone|mediaPlayback\"/> inside <application>; without it launch() fails silently (ActivityManager: Unable to start service … not found — no exception, no callback; AUDIT-184, DOCS-BACKLOG C12). Then: CometChatOngoingCallService.launch(context) in SessionStatusListener.onSessionJoined and .abort(context) in onSessionLeft/onConnectionClosed/onDestroy — a foreground service + ongoing notification (channel id CometChat_Call_Ongoing_Conference; brand it via OngoingNotification.buildOngoingConferenceNotification(notification)). Needs FOREGROUND_SERVICE_* + POST_NOTIFICATIONS (the AAR declares them; POST_NOTIFICATIONS is a runtime grant on 33+). Distinct from VoIP (receiving calls when killed — /calls/android/voip-calling, push-based, docs-first)."
244
+ }
245
+ ]
246
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "generatedFrom": "cometchat.com/docs — ui-kit/android v6 (root tree): core-features, extensions, ai-features, call-features, components/*, guide-*, campaigns. Curated 2026-08-20 against the LIVE Android v6 docs (docs repo @ origin/main 3cdd17cd) and the android-v6 catalog built from the INSTALLED kit source (chatuikit-core/-kotlin/-compose 6.0.5). Android-first: entries reflect what the ANDROID docs claim, not a copy of the React list. PENDING (docs branch feature/android-pin_save_thread, not yet on main): pinned-messages, saved-messages, guide-thread-subscription — add pin-message/save-message/thread-subscription entries when that branch merges (tracked in DOCS-BACKLOG.md).",
3
+ "schemaNotes": "Same schema as features.json (react v7). needs_stitching:true = a default-ON affordance is inert/partial until the host wires a callback + companion screen/navigation (or hides it). needs_dashboard = feature also requires a Dashboard/plan toggle ('VERIFY' = unconfirmed). deprecated:true = live docs are titled '(Legacy)'/'(Deprecated)' or point at legacy-docs — NEVER offer it as an 'add a feature' suggestion (AUDIT-077 rule). ui_components MUST exist in test-suite/catalogs/android-v6.json. COHORTS: one kit, two UI flavors — com.cometchat:chatuikit-kotlin-android (XML Views) and com.cometchat:chatuikit-compose-android (Jetpack Compose); the SAME CometChat* component names exist in both cohorts (docs pages carry a tab per cohort), so entries are cohort-neutral.",
4
+ "family": "android",
5
+ "major": "v6",
6
+ "cohorts": ["views", "compose"],
7
+ "categories": ["default", "extension", "ai", "package-install", "component-swap", "dashboard-only"],
8
+ "enablement": ["auto", "dashboard-toggle", "dashboard-extension", "gradle-package", "code-prop"],
9
+ "features": [
10
+ {
11
+ "id": "core-chat-surface",
12
+ "name": "Production-ready core chat surface",
13
+ "category": "default",
14
+ "enablement": "auto",
15
+ "needs_stitching": true,
16
+ "ui_components": ["CometChatConversations", "CometChatMessageHeader", "CometChatMessageList", "CometChatMessageComposer", "CometChatThreadHeader", "CometChatSearch"],
17
+ "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/getting-started",
18
+ "notes": "COMPOSITE / app-level feature — the DEFAULT for an unscoped 'add chat' on Android. A production-ready CORE surface, lean but complete: init→login gate (CometChatUIKit.initFromSettings → CometChatUIKit.login; initFromSettings reads the gitignored assets/cometchat-settings.json and persists integrationSource=\"ai-agent\") BEFORE any UI; a Conversations screen navigating to a Message screen (MessageHeader + MessageList + MessageComposer) via native navigation (Activity/Fragment intent or Compose Navigation, correct back stack); THREADED REPLIES included by default (thread affordance → a thread screen with CometChatThreadHeader + thread-scoped list/composer); search default-on (conversation search + in-chat message search via CometChatSearch) wired-or-hidden; every default-on affordance wired to a destination or hidden; SIZED mobile-natively (match_parent fill, edge-to-edge insets handled, ime/keyboard-aware resize so the composer stays visible); init/login failures surfaced (onError), not crashed through; credentials via the gitignored assets/cometchat-settings.json (never hardcoded; prod omits the authKey); prod auth-token guidance (login(uid, authToken); Auth Key dev-only). Docs recipes: one-to-one-chat + conversation flow in getting-started-kotlin / getting-started-jetpack. Grows on request to tab-based selector / users / groups / calls → chat-experience. Gated extensions/AI stay OFF unless asked. Minimum encoded in contracts.android-v6.json ('core-chat-surface')."
19
+ },
20
+ {
21
+ "id": "chat-experience",
22
+ "name": "Complete chat experience (combined app)",
23
+ "category": "default",
24
+ "enablement": "auto",
25
+ "needs_stitching": true,
26
+ "ui_components": ["CometChatConversations", "CometChatUsers", "CometChatGroups", "CometChatCallLogs", "CometChatMessageHeader", "CometChatMessageList", "CometChatMessageComposer", "CometChatThreadHeader", "CometChatSearch", "CometChatGroupMembers", "CometChatIncomingCall"],
27
+ "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/tab-based-chat",
28
+ "notes": "COMPOSITE / app-level feature — the GROW target, emitted when the user asks for the WHOLE app (NOT the default for a plain 'add chat' — that is core-chat-surface). The docs' tab-based layout: a bottom-nav/tab selector (Chats + Users + Groups + Calls) → message screen → detail screens (user/group details with CometChatGroupMembers actions), thread screen, search screen, plus CometChatIncomingCall handling at the app level. needs_stitching: screens are wired by native navigation + item-click callbacks. Recipes: tab-based-chat (both cohorts), one-to-one-chat, conversation-message-view component. Minimum encoded in contracts.android-v6.json ('chat-experience')."
29
+ },
30
+ { "id": "text-messaging", "name": "Text messaging (instant messaging)", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in; core chat (core-features §Instant Messaging)." },
31
+ { "id": "media-file-attachments", "name": "Media & file sharing", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageComposer", "CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in composer attachments (images/videos/audio/files) + typed bubbles in the list (core-features §Media Sharing)." },
32
+ { "id": "delivery-read-receipts", "name": "Delivery & read receipts", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatReceipts", "CometChatConversations"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §Read Receipts). Toggle via component props/attrs — FETCH exact names from the component pages." },
33
+ { "id": "mark-as-unread", "name": "Mark as unread", "category": "default", "enablement": "auto", "ui_components": ["CometChatConversations"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in conversation option (core-features §Mark as Unread)." },
34
+ { "id": "typing-indicators", "name": "Typing indicators", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatConversations"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §Typing Indicators)." },
35
+ { "id": "user-presence", "name": "User presence (online/offline)", "category": "default", "enablement": "auto", "ui_components": ["CometChatConversations", "CometChatMessageHeader", "CometChatStatusIndicator"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §User Presence)." },
36
+ { "id": "reactions", "name": "Message reactions", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "ON BY DEFAULT in v6 (core-features §Reactions) — NOT a dashboard extension (AUDIT-077 class). Long-press reaction UI built into the message list." },
37
+ { "id": "mentions", "name": "@ Mentions", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageComposer", "CometChatMessageList", "CometChatMentionsFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "ON BY DEFAULT in v6 (core-features §Mentions) — NOT a dashboard extension (AUDIT-077 class). Customize via CometChatMentionsFormatter (mentions-formatter-guide)." },
38
+ { "id": "rich-text-formatting", "name": "Rich text formatting", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageComposer", "CometChatRichTextFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in (core-features §Rich Text Formatting); CometChatRichTextFormatter in the catalog." },
39
+ { "id": "threaded-replies", "name": "Threaded conversations", "category": "default", "enablement": "code-prop", "needs_stitching": true, "ui_components": ["CometChatMessageList", "CometChatThreadHeader", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/guide-threaded-messages", "notes": "The list renders the thread affordance by default, but the HOST wires navigation to a thread screen (CometChatThreadHeader + parent-scoped MessageList/MessageComposer). Recipe: guide-threaded-messages. Part of the core-chat-surface default." },
40
+ { "id": "quoted-replies", "name": "Quoted replies", "category": "default", "enablement": "auto", "ui_components": ["CometChatMessageList", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in message option (core-features §Quoted Replies)." },
41
+ { "id": "users-groups", "name": "Users & group chats", "category": "default", "enablement": "auto", "ui_components": ["CometChatUsers", "CometChatGroups", "CometChatGroupMembers"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in list components + group management (create/join/leave/members) — core-features §Group Chats. Recipes: guide-group-chat, guide-new-chat, guide-message-privately." },
42
+ { "id": "report-message", "name": "Report / flag a message", "category": "default", "enablement": "auto", "needs_dashboard": "VERIFY", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Built-in message option (core-features §Report Message); reports land in the Moderation dashboard." },
43
+ { "id": "message-search", "name": "Conversation & advanced search", "category": "default", "enablement": "code-prop", "needs_stitching": true, "needs_dashboard": "VERIFY", "ui_components": ["CometChatSearch"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/guide-search-messages", "notes": "CometChatSearch component (conversation + message search). Host wires the entry point (search icon/screen navigation). Recipe: guide-search-messages; component page components/search. Advanced message search may need a dashboard/plan enable — VERIFY." },
44
+ { "id": "custom-message-types", "name": "Custom message types / templates", "category": "default", "enablement": "code-prop", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/message-template", "notes": "DOCS-GAP (tracked in DOCS-BACKLOG.md): the message-template page's code uses CometChatMessageTemplate(), but the INSTALLED 6.0.5 kit source exposes NO public template class (only UIKitConstants.MessageTemplateId; catalog verified 2026-08-20). Do NOT emit CometChatMessageTemplate from memory — FETCH the live page and verify the symbol compiles before using; fall back to customization-view-slots for custom rendering." },
45
+ { "id": "text-formatters", "name": "Custom text formatters (mentions/shortcuts/custom)", "category": "default", "enablement": "code-prop", "ui_components": ["CometChatTextFormatter", "CometChatMentionsFormatter", "CometChatRichTextFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/customization-text-formatters", "notes": "Extend CometChatTextFormatter for custom patterns. Recipes: custom-text-formatter-guide, mentions-formatter-guide, shortcut-formatter-guide." },
46
+ { "id": "message-shortcuts", "name": "Message shortcuts", "category": "extension", "enablement": "dashboard-extension", "needs_stitching": true, "ui_components": ["CometChatTextFormatter"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/shortcut-formatter-guide", "notes": "Dashboard Message Shortcuts extension + a host-built ShortcutFormatter (extends CometChatTextFormatter) per the shortcut-formatter-guide recipe — not auto-rendered." },
47
+ { "id": "stickers", "name": "Stickers", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatStickerBubble", "CometChatStickerKeyboard"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → auto-appears in the composer (extensions §Stickers). No extra code." },
48
+ { "id": "polls", "name": "Polls", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatCreatePoll", "CometChatPollBubble"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → auto-appears in the composer action sheet (extensions §Polls). No extra code." },
49
+ { "id": "collaborative-whiteboard", "name": "Collaborative whiteboard", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → composer action sheet + collaborative bubble in the list (extensions §Collaborative Whiteboard)." },
50
+ { "id": "collaborative-document", "name": "Collaborative document", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageComposer", "CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → composer action sheet + collaborative bubble in the list (extensions §Collaborative Document)." },
51
+ { "id": "message-translation", "name": "Message translation", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → message action sheet in the list (extensions §Message Translation)." },
52
+ { "id": "link-preview", "name": "Link preview", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → URL previews render in message bubbles (extensions §Link Preview)." },
53
+ { "id": "thumbnail-generation", "name": "Thumbnail generation", "category": "extension", "enablement": "dashboard-extension", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "Enable in Dashboard → media bubbles use generated thumbnails (extensions §Thumbnail Generation)." },
54
+ { "id": "profanity-filter", "name": "Profanity filter", "category": "extension", "enablement": "dashboard-extension", "deprecated": true, "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/extensions", "notes": "LEGACY: the extensions page still lists it but its guide points at legacy-docs; superseded by the Moderation product (see 'moderation'). Do NOT suggest as a new-feature add — steer to Moderation (FEATURE-TAXONOMY rules 11–12)." },
55
+ { "id": "moderation", "name": "Moderation", "category": "dashboard-only", "enablement": "dashboard-toggle", "ui_components": [], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/core-features", "notes": "Dashboard-configured (rules/keywords/AI moderation); no client code — core-features §Moderation. Client-visible effect: blocked/flagged messages. SDK view: sdk/android/v5/ai-moderation." },
56
+ { "id": "smart-reply", "name": "Smart replies (AI)", "category": "ai", "enablement": "dashboard-toggle", "ui_components": ["CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/ai-features", "notes": "Enable in Dashboard → auto-appears in the composer action sheet (ai-features §Smart Replies). No extra code." },
57
+ { "id": "conversation-starter", "name": "Conversation starter (AI)", "category": "ai", "enablement": "dashboard-toggle", "ui_components": ["CometChatMessageList"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/ai-features", "notes": "Enable in Dashboard → shown in the message list for new chats (ai-features §Conversation Starter). No extra code." },
58
+ { "id": "conversation-summary", "name": "Conversation summary (AI)", "category": "ai", "enablement": "dashboard-toggle", "ui_components": ["CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/ai-features", "notes": "Enable in Dashboard → composer action sheet (ai-features §Conversation Summary). No extra code." },
59
+ { "id": "ai-assistant", "name": "AI agent / assistant chat", "category": "ai", "enablement": "dashboard-toggle", "needs_stitching": true, "ui_components": ["CometChatAIAssistantChatHistory", "CometChatAIAssistantBubble", "CometChatMessageList", "CometChatMessageComposer"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/guide-ai-agent", "notes": "Chat with a dashboard-configured AI Agent: message screen scoped to the agent + CometChatAIAssistantChatHistory for past sessions. Recipe: guide-ai-agent; component page ai-assistant-chat-history. Requires an Agent configured in Dashboard." },
60
+ { "id": "voice-video-calls", "name": "Voice & video calls", "category": "package-install", "enablement": "gradle-package", "needs_stitching": true, "ui_components": ["CometChatCallButtons", "CometChatIncomingCall", "CometChatOutgoingCall", "CometChatCallLogs", "CometChatCallActivity"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/calling-integration", "notes": "Add com.cometchat:calls-sdk-android — call buttons in MessageHeader then auto-appear; host wires an incoming-call listener/screen (calling-integration steps 1–3). Pages: call-features, components/call-buttons, incoming-call, outgoing-call, call-logs; recipe guide-call-log-details. Dashboard: calling enabled on the app." },
61
+ { "id": "push-notifications", "name": "Push notifications (FCM)", "category": "package-install", "enablement": "gradle-package", "needs_stitching": true, "needs_dashboard": true, "ui_components": [], "docs_topic": "https://www.cometchat.com/docs/notifications/push-overview", "notes": "com.cometchat:push-notifications-android + Firebase Cloud Messaging + Dashboard provider setup (FCM credentials). Register token after login (CometChatNotifications.registerPushToken — SDK surface); notification payload handling is host code. Product docs: notifications/push-overview + android integration pages." },
62
+ { "id": "notification-feed", "name": "In-app notification feed", "category": "default", "enablement": "code-prop", "needs_dashboard": "VERIFY", "ui_components": ["CometChatNotificationFeed"], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/notification-feed", "notes": "Drop-in CometChatNotificationFeed component (components/notification-feed). Feed configuration lives in the Dashboard notifications product — VERIFY plan gating." },
63
+ { "id": "campaigns", "name": "Campaigns", "category": "dashboard-only", "enablement": "dashboard-toggle", "ui_components": [], "docs_topic": "https://www.cometchat.com/docs/ui-kit/android/campaigns", "notes": "Authored/sent from the Dashboard; messages arrive through normal channels. No client code (ui-kit/android/campaigns)." }
64
+ ]
65
+ }