@cometchat/skills 4.4.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +36 -0
  4. package/README.md +41 -163
  5. package/RULES.md +114 -0
  6. package/bin/cometchat-skills.mjs +1180 -0
  7. package/bin/legacy-skills.json +95 -0
  8. package/catalogs/android-v6.json +1646 -0
  9. package/catalogs/flutter-v6.json +651 -0
  10. package/catalogs/ios-v5.json +1383 -0
  11. package/catalogs/rn-calls-v5.json +134 -0
  12. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  13. package/catalogs/rn-sdk-v4.json +672 -0
  14. package/catalogs/rn-v5.json +449 -0
  15. package/catalogs/rn-v5.symbols.txt +216 -0
  16. package/catalogs/sdk-android-v5.json +514 -0
  17. package/contracts.android-calls-v5.json +122 -0
  18. package/contracts.android-v6.json +135 -0
  19. package/contracts.angular-v5.json +694 -0
  20. package/contracts.flutter-calls-v5.json +77 -0
  21. package/contracts.flutter-v6.json +126 -0
  22. package/contracts.ios-calls-v5.json +67 -0
  23. package/contracts.ios-v5.json +436 -0
  24. package/contracts.json +82 -0
  25. package/contracts.rn-calls-v5.json +77 -0
  26. package/contracts.rn-v5.json +727 -0
  27. package/contracts.sdk-android-v5.json +15 -0
  28. package/contracts.web-calls-v5.json +45 -0
  29. package/features.android-calls-v5.json +246 -0
  30. package/features.android-v6.json +65 -0
  31. package/features.angular-v5.json +521 -0
  32. package/features.flutter-calls-v5.json +286 -0
  33. package/features.flutter-v6.json +484 -0
  34. package/features.ios-calls-v5.json +236 -0
  35. package/features.ios-v5.json +573 -0
  36. package/features.json +61 -0
  37. package/features.rn-calls-v5.json +187 -0
  38. package/features.rn-v5.json +614 -0
  39. package/features.sdk-android-v5.json +40 -0
  40. package/features.sdk-jsv4.json +24 -0
  41. package/features.web-calls-v5.json +108 -0
  42. package/package.json +151 -74
  43. package/peers.yaml +312 -0
  44. package/registry/README.md +31 -0
  45. package/registry/android-calls-v5.json +54 -0
  46. package/registry/android-v6.json +137 -0
  47. package/registry/angular-v5.json +114 -0
  48. package/registry/flutter-calls-v5.json +54 -0
  49. package/registry/flutter-v6.json +119 -0
  50. package/registry/ios-calls-v5.json +59 -0
  51. package/registry/ios-v5.json +97 -0
  52. package/registry/rn-calls-v5.json +59 -0
  53. package/registry/rn-v5.json +129 -0
  54. package/registry/sdk-android-v5.json +53 -0
  55. package/registry/sdk-jsv4.json +53 -0
  56. package/registry/web-calls-v5.json +54 -0
  57. package/registry/web-v7.json +99 -0
  58. package/skills/cometchat/SKILL.md +42 -2096
  59. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  60. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  66. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  67. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  68. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  69. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  70. package/skills/cometchat-android-v6-calls/SKILL.md +128 -411
  71. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  72. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  73. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  74. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  75. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  76. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  77. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  78. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  79. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  80. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  81. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  82. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  83. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  84. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  85. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  86. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  87. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  88. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  89. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  90. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  91. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  92. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  93. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  94. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  95. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  96. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  97. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  98. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  99. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  100. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  101. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  102. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  103. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  104. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  105. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  106. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  107. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  108. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  109. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  110. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  111. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  112. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  113. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  114. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  115. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  116. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  117. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  118. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  119. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  120. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  121. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  122. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  123. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  127. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -387
  128. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  129. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  130. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  131. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  132. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  133. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  134. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  135. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  136. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  137. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  138. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  139. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  140. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  141. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  142. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  143. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  144. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  145. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  146. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  147. package/skills/cometchat-ios-calls/SKILL.md +105 -511
  148. package/skills/cometchat-ios-components/SKILL.md +44 -834
  149. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  150. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  151. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  152. package/skills/cometchat-ios-core/references/install.md +23 -0
  153. package/skills/cometchat-ios-core/references/layout.md +186 -0
  154. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  155. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  156. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  157. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  158. package/skills/cometchat-ios-features/SKILL.md +29 -738
  159. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  160. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  161. package/skills/cometchat-ios-push/SKILL.md +24 -602
  162. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  163. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  164. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  165. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  166. package/skills/cometchat-onboarding/SKILL.md +89 -0
  167. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  168. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  169. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  170. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  171. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  172. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  173. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  174. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  175. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  176. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  177. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  178. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  179. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  180. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  181. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  182. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  183. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  184. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  185. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  186. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  187. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  188. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  189. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  190. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  191. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  192. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  193. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  194. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  195. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  196. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  198. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  199. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  200. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  201. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  202. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  203. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  204. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  205. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  206. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  207. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  208. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  209. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  210. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  211. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  212. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  213. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  214. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  215. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  216. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  217. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  218. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  219. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  220. package/test-suite/README.md +70 -0
  221. package/test-suite/catalogs/android-calls-v5.json +830 -0
  222. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  223. package/test-suite/catalogs/android-v6.json +1646 -0
  224. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  225. package/test-suite/catalogs/angular-v5.json +7587 -0
  226. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  227. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  228. package/test-suite/catalogs/flutter-v6.json +651 -0
  229. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  230. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  231. package/test-suite/catalogs/ios-v5.json +1383 -0
  232. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  233. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  234. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  235. package/test-suite/catalogs/rn-v5.json +449 -0
  236. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  237. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  238. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  239. package/test-suite/catalogs/web-calls-v5.json +195 -0
  240. package/test-suite/catalogs/web-v7.json +1243 -0
  241. package/test-suite/scripts/build-registry.mjs +113 -0
  242. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  243. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  244. package/test-suite/scripts/lint-skills.mjs +909 -0
  245. package/test-suite/scripts/measure-tokens.mjs +169 -0
  246. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  247. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  248. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  249. package/test-suite/scripts/verify-catalog.mjs +242 -0
  250. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  251. package/test-suite/scripts/verify-detection.mjs +178 -0
  252. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  253. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  254. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  255. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  256. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  257. package/test-suite/typecheck/angular-v5/package.json +21 -0
  258. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  259. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  260. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  261. package/test-suite/typecheck/web-v7/package.json +18 -0
  262. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  263. package/bin/install.js +0 -1003
  264. package/skills/.claude-plugin/marketplace.json +0 -86
  265. package/skills/cometchat/references/asking-questions.md +0 -48
  266. package/skills/cometchat-a11y/SKILL.md +0 -477
  267. package/skills/cometchat-android-v5/SKILL.md +0 -121
  268. package/skills/cometchat-android-v5-calls/SKILL.md +0 -427
  269. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  270. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  271. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  272. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  273. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  274. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  275. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  276. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  277. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  278. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  279. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  280. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  281. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  282. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  283. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  284. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  285. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  286. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  287. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  288. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  289. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  290. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  291. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  292. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  293. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  294. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  295. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  296. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  297. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  298. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  299. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  300. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  301. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  302. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  303. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  304. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  305. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  306. package/skills/cometchat-android-v6/SKILL.md +0 -108
  307. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  308. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  309. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  310. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  311. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  312. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  313. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  314. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  315. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  316. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  317. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  318. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  319. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  320. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  321. package/skills/cometchat-angular-calls/SKILL.md +0 -378
  322. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  323. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  324. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  325. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  326. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  327. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  328. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  329. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  330. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  331. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  332. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  333. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  334. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  335. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  336. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  337. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  338. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  339. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  340. package/skills/cometchat-angular-components/SKILL.md +0 -235
  341. package/skills/cometchat-angular-core/SKILL.md +0 -386
  342. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  343. package/skills/cometchat-angular-features/SKILL.md +0 -329
  344. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  345. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  346. package/skills/cometchat-angular-production/SKILL.md +0 -564
  347. package/skills/cometchat-angular-push/SKILL.md +0 -389
  348. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  349. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  350. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  351. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  352. package/skills/cometchat-calls/SKILL.md +0 -364
  353. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  354. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  355. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  356. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  357. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  358. package/skills/cometchat-components/SKILL.md +0 -1142
  359. package/skills/cometchat-core/SKILL.md +0 -1048
  360. package/skills/cometchat-customization/SKILL.md +0 -580
  361. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  362. package/skills/cometchat-features/SKILL.md +0 -861
  363. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  364. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -453
  365. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  366. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  367. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  368. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  369. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  370. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  371. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  372. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  373. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  374. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  375. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  376. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  377. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  378. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  379. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  380. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  381. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  382. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  383. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  384. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  385. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  386. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  387. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  388. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  389. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  390. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  391. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  392. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  393. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  394. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  395. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  396. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  397. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  398. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  399. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  400. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  401. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  402. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  403. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  404. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  405. package/skills/cometchat-i18n/SKILL.md +0 -419
  406. package/skills/cometchat-ios/SKILL.md +0 -325
  407. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -174
  408. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  409. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  410. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  411. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  412. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  413. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  414. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  415. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  416. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  417. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  418. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  419. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  420. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  421. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  422. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  423. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  424. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  425. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  426. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  427. package/skills/cometchat-ios-production/SKILL.md +0 -738
  428. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  429. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  430. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  431. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  432. package/skills/cometchat-native-calls/SKILL.md +0 -669
  433. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  434. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  435. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  436. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  437. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  438. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  439. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  440. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  441. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  442. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  443. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  444. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  445. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  446. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  447. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  448. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  449. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  450. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  451. package/skills/cometchat-native-components/SKILL.md +0 -628
  452. package/skills/cometchat-native-core/SKILL.md +0 -679
  453. package/skills/cometchat-native-customization/SKILL.md +0 -716
  454. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  455. package/skills/cometchat-native-features/SKILL.md +0 -638
  456. package/skills/cometchat-native-placement/SKILL.md +0 -509
  457. package/skills/cometchat-native-production/SKILL.md +0 -700
  458. package/skills/cometchat-native-push/SKILL.md +0 -594
  459. package/skills/cometchat-native-testing/SKILL.md +0 -582
  460. package/skills/cometchat-native-theming/SKILL.md +0 -681
  461. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  462. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  463. package/skills/cometchat-placement/SKILL.md +0 -1360
  464. package/skills/cometchat-production/SKILL.md +0 -1027
  465. package/skills/cometchat-react-calls/SKILL.md +0 -749
  466. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  467. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  468. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  469. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  470. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  471. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  472. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  473. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  474. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  475. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  476. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  477. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  478. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  479. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  480. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  481. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  482. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  483. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  484. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  485. package/skills/cometchat-react-push/SKILL.md +0 -634
  486. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  487. package/skills/cometchat-react-testing/SKILL.md +0 -413
  488. package/skills/cometchat-theming/SKILL.md +0 -498
  489. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,101 +0,0 @@
1
- # Server-side push routing for Flutter V5 (iOS PushKit + Android FCM)
2
-
3
- Same server architecture as React Native — your server uses the iOS APNs PushKit canonical for iPhones and the Android FCM HTTP v1 canonical for Android. Flutter-specific changes are in token registration on the client.
4
-
5
- **Canonical docs:**
6
- - iOS: `cometchat-ios-calls/references/server-apns-pushkit.md`
7
- - Android: `cometchat-android-v5-calls/references/server-fcm-voip.md`
8
-
9
- ---
10
-
11
- ## Dependencies
12
-
13
- ```yaml
14
- dependencies:
15
- flutter_callkit_incoming: ^2.0.4
16
- flutter_voip_pushkit: ^0.2.1
17
- firebase_messaging: ^15.0.0
18
- ```
19
-
20
- ---
21
-
22
- ## Token registration (Flutter client)
23
-
24
- ```dart
25
- import 'dart:io';
26
- import 'package:flutter_voip_pushkit/flutter_voip_pushkit.dart';
27
- import 'package:firebase_messaging/firebase_messaging.dart';
28
-
29
- class CallPushService {
30
- Future<void> registerCallTokens(String userUid) async {
31
- if (Platform.isIOS) {
32
- final voip = FlutterVoipPushKit();
33
- voip.onTokenRefresh.listen((token) async {
34
- await api.registerCallToken(
35
- uid: userUid,
36
- platform: 'ios-voip',
37
- token: token,
38
- );
39
- });
40
- voip.onPushNotification.listen((payload) {
41
- // flutter_callkit_incoming surfaces the OS UI from here
42
- });
43
- // Trigger token registration
44
- await voip.configure();
45
- } else if (Platform.isAndroid) {
46
- final messaging = FirebaseMessaging.instance;
47
- await messaging.requestPermission();
48
- final token = await messaging.getToken();
49
- if (token != null) {
50
- await api.registerCallToken(
51
- uid: userUid,
52
- platform: 'android-fcm',
53
- token: token,
54
- );
55
- }
56
- messaging.onTokenRefresh.listen((newToken) async {
57
- await api.registerCallToken(
58
- uid: userUid,
59
- platform: 'android-fcm',
60
- token: newToken,
61
- );
62
- });
63
- }
64
- }
65
- }
66
- ```
67
-
68
- ---
69
-
70
- ## Server-side: same as RN
71
-
72
- Identical webhook + dispatcher to RN — the platform-specific server templates do all the work. See `cometchat-native-calls/references/server-push-bridge.md` for the dispatcher code.
73
-
74
- ---
75
-
76
- ## Anti-patterns
77
-
78
- RN sister rules apply, plus Flutter-specific:
79
-
80
- 1. **Calling `voip.configure()` before login.** Same problem as RN — register AFTER CometChat login.
81
- 2. **Forgetting `firebase_messaging` background isolate setup.** Android background pushes when the app is killed need `FirebaseMessaging.onBackgroundMessage(handler)` registered in `main.dart` before `runApp`.
82
- 3. **Skipping `flutter_callkit_incoming.showCallkitIncoming` in the push handler.** Without this, Flutter doesn't surface the OS-level call UI even though the push arrived.
83
-
84
- ---
85
-
86
- ## Verification checklist
87
-
88
- - [ ] iOS: `FlutterVoipPushKit.configure()` + onTokenRefresh listener
89
- - [ ] Android: `FirebaseMessaging.instance.getToken()` + onTokenRefresh
90
- - [ ] Background isolate handler for Android (`onBackgroundMessage`)
91
- - [ ] Server has both APNs + FCM dispatchers
92
- - [ ] Real-device smoke: both iOS and Android ring when caller dials
93
-
94
- ---
95
-
96
- ## Pointers
97
-
98
- - `cometchat-ios-calls/references/server-apns-pushkit.md` — iOS canonical
99
- - `cometchat-android-v5-calls/references/server-fcm-voip.md` — Android canonical
100
- - `cometchat-native-calls/references/server-push-bridge.md` — RN sister (same dispatcher pattern)
101
- - `cometchat-flutter-v5-calls` SKILL.md — Flutter calls architecture
@@ -1,148 +0,0 @@
1
- # Share invite on Flutter V5 (GetX)
2
-
3
- Same SDK API. Flutter-specific: `share_plus` package wraps both iOS UIActivityViewController and Android Intent.ACTION_SEND under one cross-platform API.
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/flutter/share-invite
6
- **Read first:** `cometchat-react-calls/references/share-invite.md` — deep-link rule, dialog UX.
7
-
8
- ---
9
-
10
- ## Dependencies
11
-
12
- ```yaml
13
- dependencies:
14
- share_plus: ^10.0.0
15
- uni_links: ^0.5.1 # for deep-link handling
16
- ```
17
-
18
- ---
19
-
20
- ## Hard rule: deep-link routing
21
-
22
- Configure both platforms:
23
-
24
- **iOS** (`ios/Runner/Info.plist`):
25
- ```xml
26
- <key>com.apple.developer.associated-domains</key>
27
- <array><string>applinks:yourapp.com</string></array>
28
- ```
29
- Plus apple-app-site-association on your domain (see iOS reference).
30
-
31
- **Android** (`android/app/src/main/AndroidManifest.xml`):
32
- ```xml
33
- <activity android:name=".MainActivity" ...>
34
- <intent-filter android:autoVerify="true">
35
- <action android:name="android.intent.action.VIEW" />
36
- <category android:name="android.intent.category.DEFAULT" />
37
- <category android:name="android.intent.category.BROWSABLE" />
38
- <data android:scheme="https"
39
- android:host="yourapp.com"
40
- android:pathPrefix="/call" />
41
- </intent-filter>
42
- </activity>
43
- ```
44
-
45
- Plus the corresponding `assetlinks.json` on your domain.
46
-
47
- Handle in app:
48
- ```dart
49
- void initDeepLinks() {
50
- uriLinkStream.listen((Uri? uri) {
51
- if (uri == null) return;
52
- if (uri.pathSegments.length >= 2 && uri.pathSegments[0] == 'call') {
53
- final sessionId = uri.pathSegments[1];
54
- Get.toNamed('/call/$sessionId');
55
- }
56
- });
57
- }
58
- ```
59
-
60
- ---
61
-
62
- ## SDK API
63
-
64
- ```dart
65
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
66
-
67
- final settings = (SessionSettingsBuilder()
68
- ..hideShareInviteButton(false)) // session_settings.dart:221
69
- .build();
70
-
71
- // The share-invite tap arrives on ButtonClickListeners
72
- // (src/listener/button_click_listeners.dart:13), registered via
73
- // CallSession.getInstance()?.addButtonClickListener(...) (call_session.dart:90):
74
- @override
75
- void onShareInviteButtonClicked() {
76
- Get.find<ShareInviteController>().share(sessionId);
77
- }
78
- ```
79
-
80
- ---
81
-
82
- ## share_plus
83
-
84
- ```dart
85
- import 'package:share_plus/share_plus.dart';
86
-
87
- class ShareInviteController extends GetxController {
88
- Future<void> share(String sessionId) async {
89
- final url = 'https://yourapp.com/call/$sessionId';
90
- final result = await Share.share(
91
- "I'm on a call — tap to join.\n$url",
92
- subject: 'Join my call', // Android: title; iOS: ignored
93
- );
94
-
95
- if (result.status == ShareResultStatus.success) {
96
- // logged + maybe haptic feedback
97
- }
98
- // dismissed/unavailable: silent
99
- }
100
- }
101
- ```
102
-
103
- `Share.share` opens iOS UIActivityViewController on iOS and the Android chooser on Android. The same call works on both.
104
-
105
- ---
106
-
107
- ## iPad popover anchor
108
-
109
- `share_plus` requires a source rect on iPad:
110
-
111
- ```dart
112
- final box = context.findRenderObject() as RenderBox?;
113
- await Share.share(
114
- text,
115
- sharePositionOrigin: box != null ? box.localToGlobal(Offset.zero) & box.size : null,
116
- );
117
- ```
118
-
119
- Pass `sharePositionOrigin` from the button's render box. Without it, share sheet crashes on iPad.
120
-
121
- ---
122
-
123
- ## Anti-patterns
124
-
125
- Web sister rules apply, plus Flutter-specific:
126
-
127
- 1. **Calling `Share.share` without iPad anchor.** Crash on iPad in production.
128
- 2. **Hard-coding URL.** Use `dotenv` or `--dart-define=APP_URL=...`.
129
- 3. **No deep-link config for both platforms.** Only iOS works (or only Android), not both — partial UX.
130
-
131
- ---
132
-
133
- ## Verification checklist
134
-
135
- - [ ] `share_plus` installed
136
- - [ ] Associated Domains (iOS) + auto-verified app links (Android) configured
137
- - [ ] `assetlinks.json` + `apple-app-site-association` hosted
138
- - [ ] `Share.share` called with `sharePositionOrigin` for iPad
139
- - [ ] App URL via env, not hard-coded
140
- - [ ] Real-device smoke: share via Messages on iOS, WhatsApp on Android → opens app
141
-
142
- ---
143
-
144
- ## Pointers
145
-
146
- - `cometchat-react-calls/references/share-invite.md` — sister
147
- - `cometchat-flutter-v5-calls` SKILL.md
148
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/share-invite
@@ -1,118 +0,0 @@
1
- ---
2
- name: cometchat-flutter-v5-conversations
3
- description: "Use when working with CometChat Flutter UIKit v5 conversation list component. Triggers on CometChatConversations, conversation list, recent chats."
4
- license: "MIT"
5
- compatibility: "cometchat_chat_uikit ^5.2.14; cometchat_uikit_shared ^5.2.3"
6
- metadata:
7
- author: "CometChat"
8
- version: "3.0.0"
9
- tags: "cometchat flutter v5 conversations list recent chats"
10
- ---
11
-
12
- > **Ground truth:** `cometchat_chat_uikit: ^5.2` (legacy/maintenance-only; calls via raw `cometchat_calls_sdk ^5.0.2`) — pub-cache source + `ui-kit/flutter/v5`. **Official docs:** https://www.cometchat.com/docs/ui-kit/flutter/v5/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
13
-
14
- # CometChat Flutter UIKit v5 — Conversations
15
-
16
- The `CometChatConversations` component displays a list of recent conversations.
17
-
18
- ## Key Props
19
-
20
- | Prop | Type | Default | Description |
21
- |------|------|---------|-------------|
22
- | `conversationsRequestBuilder` | `ConversationsRequestBuilder?` | — | Custom fetch builder |
23
- | `conversationsStyle` | `CometChatConversationsStyle` | `const CometChatConversationsStyle()` | Visual styling |
24
- | `onItemTap` | `Function(Conversation)?` | — | Tap callback (**no BuildContext**) |
25
- | `onItemLongPress` | `Function(Conversation)?` | — | Long press callback |
26
- | `subtitleView` | `Widget? Function(BuildContext, Conversation)?` | — | Custom subtitle |
27
- | `listItemView` | `Widget Function(Conversation)?` | — | Custom list item (replaces the whole row) |
28
- | `leadingView` | `Widget? Function(BuildContext, Conversation)?` | — | Custom leading widget (avatar slot) |
29
- | `titleView` | `Widget? Function(BuildContext, Conversation)?` | — | Custom title widget |
30
- | `trailingView` | `Widget? Function(Conversation)?` | — | Custom trailing widget (single-arg — asymmetric with the other slots) |
31
- | `title` | `String?` | — | List title |
32
- | `showBackButton` | `bool` | `false` | Show back button |
33
- | `onBack` | `VoidCallback?` | — | Back button callback |
34
- | `hideAppbar` | `bool?` | `false` | Hide app bar |
35
- | `appBarOptions` | `List<Widget>?` | — | App bar trailing widgets |
36
- | `usersStatusVisibility` | `bool?` | `true` | Show online status |
37
- | `receiptsVisibility` | `bool?` | `true` | Show read receipts |
38
- | `textFormatters` | `List<CometChatTextFormatter>?` | — | Text formatters for subtitles |
39
- | `controllerTag` | `String?` | — | Custom GetX controller tag |
40
- | `hideSearch` | `bool?` | — | Hide search bar |
41
- | `searchReadOnly` | `bool` | `false` | Read-only search |
42
- | `onSearchTap` | `GestureTapCallback?` | — | Search tap callback |
43
- | `deleteConversationOptionVisibility` | `bool?` | `true` | Show delete option |
44
- | `loadingStateView` | `WidgetBuilder?` | — | Custom loading state |
45
- | `emptyStateView` | `WidgetBuilder?` | — | Custom empty state |
46
- | `errorStateView` | `WidgetBuilder?` | — | Custom error state |
47
- | `setOptions` | `Function?` | — | Replace long-press options |
48
- | `addOptions` | `Function?` | — | Add to long-press options |
49
-
50
- ## Basic Usage
51
-
52
- ```dart
53
- CometChatConversations(
54
- onItemTap: (conversation) {
55
- User? user;
56
- Group? group;
57
- if (conversation.conversationWith is User) {
58
- user = conversation.conversationWith as User;
59
- } else {
60
- group = conversation.conversationWith as Group;
61
- }
62
- Navigator.push(context, MaterialPageRoute(
63
- builder: (_) => MessagesScreen(user: user, group: group),
64
- ));
65
- },
66
- )
67
- ```
68
-
69
- ## Custom Request Builder
70
-
71
- ```dart
72
- CometChatConversations(
73
- conversationsRequestBuilder: ConversationsRequestBuilder()
74
- ..limit = 30
75
- ..conversationType = ConversationType.user,
76
- )
77
- ```
78
-
79
- ## Internal Architecture (GetX)
80
-
81
- The component creates `CometChatConversationsController` via `Get.put()` in `initState()` and deletes it in `dispose()` (unless `controllerTag` is provided externally).
82
-
83
- Theme values are cached in `didChangeDependencies()` (unconditionally, no flag):
84
- ```dart
85
- @override
86
- void didChangeDependencies() {
87
- typography = CometChatThemeHelper.getTypography(context);
88
- colorPalette = CometChatThemeHelper.getColorPalette(context);
89
- spacing = CometChatThemeHelper.getSpacing(context);
90
- style = CometChatThemeHelper.getTheme<CometChatConversationsStyle>(
91
- context: context, defaultTheme: CometChatConversationsStyle.of)
92
- .merge(widget.conversationsStyle);
93
- super.didChangeDependencies();
94
- }
95
- ```
96
-
97
- ## Anti-Patterns
98
-
99
- ```dart
100
- // ❌ WRONG — trying to access controller before component mounts
101
- final controller = Get.find<CometChatConversationsController>();
102
-
103
- // ❌ WRONG — manually creating controller outside the widget
104
- Get.put(CometChatConversationsController(...));
105
-
106
- // ❌ WRONG — not extracting User/Group from conversation
107
- onItemTap: (conversation) {
108
- Navigator.push(context, MaterialPageRoute(
109
- builder: (_) => MessagesScreen(user: conversation.conversationWith), // Type error
110
- ));
111
- }
112
- ```
113
-
114
- ## Checklist — Conversations
115
-
116
- - [ ] `onItemTap` extracts `User`/`Group` from `conversation.conversationWith` with type check
117
- - [ ] Navigation to messages screen passes extracted `user` or `group`
118
- - [ ] Let the widget manage its own GetX controller lifecycle
@@ -1,239 +0,0 @@
1
- ---
2
- name: cometchat-flutter-v5-core
3
- description: "Use when writing any code that uses CometChat Flutter UIKit v5 (cometchat_chat_uikit v5.2.14, cometchat_calls_uikit v5.0.15, cometchat_uikit_shared v5.2.3). Contains hard rules that prevent silent failures."
4
- license: "MIT"
5
- compatibility: "cometchat_chat_uikit ^5.2.14; cometchat_calls_uikit ^5.0.15; cometchat_uikit_shared ^5.2.3; cometchat_sdk ^4.1.2; get ^4.6.5"
6
- metadata:
7
- author: "CometChat"
8
- version: "3.0.0"
9
- tags: "cometchat flutter v5 core rules init login logout lifecycle getx"
10
- ---
11
-
12
- # CometChat Flutter UIKit v5 — Core Rules
13
-
14
- > **Ground truth:** `cometchat_chat_uikit: ^5.2` (GetX-based; pair with `cometchat_calls_uikit: ^5.0` / raw `cometchat_calls_sdk ^5.0.2` for calls) — the pub-cache package source + `docs/ui-kit/flutter/v5`. **Official docs:** https://www.cometchat.com/docs/ui-kit/flutter/v5/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). V5 is legacy/maintenance-only (V6 is current); verify Dart symbols against the resolved package source.
15
-
16
- Non-negotiable constraints for all CometChat UIKit v5 code. Violating these causes silent failures or crashes.
17
-
18
- ## Key v5 Architecture Facts
19
-
20
- - State management: **GetX** (GetBuilder, GetxController, Get.put, Get.find, Get.delete)
21
- - Separate packages: `cometchat_chat_uikit` + `cometchat_calls_uikit` + `cometchat_uikit_shared`
22
- - SDK: `cometchat_sdk ^4.1.2` + `cometchat_calls_sdk ^4.2.2` (chat-kit baseline). **For voice/video calling, do NOT use `cometchat_calls_uikit` (4.x-bound) — integrate the raw `cometchat_calls_sdk ^5.0.2` per `cometchat-flutter-v5-calls`** (the V5-canonical calls path).
23
- - **Imports — two barrels.** For chat-only projects: `package:cometchat_chat_uikit/cometchat_chat_uikit.dart`. For projects that also need voice/video calling: ADD `package:cometchat_calls_uikit/cometchat_calls_uikit.dart` as a SECOND import — the calls barrel re-exports shared + SDK only and does NOT re-export `cometchat_chat_uikit`. Chat widgets like `CometChatConversations`, `CometChatMessageList`, `CometChatMessageComposer` are reachable only through the chat barrel.
24
- - `CometChatUIKit.login(uid)` takes a **String** directly (not an object)
25
- - No ServiceLocator pattern — controllers are created via `Get.put()` internally
26
- - Style classes use `ThemeExtension` with `merge()` pattern
27
-
28
- ## Rule: INIT_FIRST
29
-
30
- `CometChatUIKit.init()` must complete before any login, component usage, or SDK call.
31
-
32
- ```dart
33
- // ✅ CORRECT
34
- final settings = (UIKitSettingsBuilder()
35
- ..appId = 'APP_ID'
36
- ..region = 'us'
37
- ..authKey = 'AUTH_KEY'
38
- ..subscriptionType = CometChatSubscriptionType.allUsers)
39
- .build();
40
-
41
- CometChatUIKit.init(
42
- uiKitSettings: settings,
43
- onSuccess: (_) => debugPrint('Init done'),
44
- onError: (e) => debugPrint('Init failed: ${e.message}'),
45
- );
46
-
47
- // ❌ WRONG — login before init completes
48
- CometChatUIKit.init(uiKitSettings: settings);
49
- CometChatUIKit.login('uid'); // Race condition
50
- ```
51
-
52
- ## Rule: AUTH_CHECK_AFTER_INIT
53
-
54
- After `CometChatUIKit.init()` completes, the static field `CometChatUIKit.loggedInUser` is populated if a cached session exists (init internally calls `getLoggedInUser()`). You can check it synchronously in `onSuccess`, or use `CometChatUIKit.getLoggedInUser()` for an explicit async check.
55
-
56
- ```dart
57
- // ✅ CORRECT — synchronous check after init
58
- CometChatUIKit.init(
59
- uiKitSettings: settings,
60
- onSuccess: (_) {
61
- final hasUser = CometChatUIKit.loggedInUser != null;
62
- // Route to home or login
63
- },
64
- );
65
-
66
- // ✅ ALSO CORRECT — explicit async check (used by master app)
67
- CometChatUIKit.init(
68
- uiKitSettings: settings,
69
- onSuccess: (_) async {
70
- final user = await CometChatUIKit.getLoggedInUser();
71
- if (user != null) {
72
- await CometChatUIKit.login(user.uid, onSuccess: ...);
73
- }
74
- },
75
- );
76
- ```
77
-
78
- Note: `CometChatUIKit.login()` handles re-login gracefully — if the user is already logged in with the same UID, it returns the cached user without hitting the server.
79
-
80
- ## Rule: LISTENER_LIFECYCLE
81
-
82
- SDK listeners MUST be registered with a unique ID in `initState()` (or GetxController `onInit()`) and removed in `dispose()` (or `onClose()`).
83
-
84
- ```dart
85
- // ✅ CORRECT
86
- class _MyScreenState extends State<MyScreen> with MessageListener {
87
- late final String _listenerId;
88
-
89
- @override
90
- void initState() {
91
- super.initState();
92
- _listenerId = 'my_screen_${DateTime.now().millisecondsSinceEpoch}';
93
- CometChat.addMessageListener(_listenerId, this);
94
- }
95
-
96
- @override
97
- void dispose() {
98
- CometChat.removeMessageListener(_listenerId);
99
- super.dispose();
100
- }
101
- }
102
-
103
- // ❌ WRONG — hardcoded ID causes collisions; missing dispose removal
104
- CometChat.addMessageListener('messages', this); // Collision!
105
- ```
106
-
107
- ## Rule: THEME_CACHE
108
-
109
- Cache theme values in `didChangeDependencies()` — unconditionally, no flag needed. Never call `CometChatThemeHelper.getColorPalette(context)` in `build()`.
110
-
111
- `getColorPalette()` creates a new `CometChatColorPalette` object every call, resolving each token individually via `Theme.of(context)`. During keyboard animation, `MediaQuery` changes trigger rebuilds, making this expensive in `build()`.
112
-
113
- ```dart
114
- // ✅ CORRECT — matches actual package pattern (no flag)
115
- @override
116
- void didChangeDependencies() {
117
- super.didChangeDependencies();
118
- colorPalette = CometChatThemeHelper.getColorPalette(context);
119
- spacing = CometChatThemeHelper.getSpacing(context);
120
- typography = CometChatThemeHelper.getTypography(context);
121
- }
122
-
123
- // ❌ WRONG — lookup in build causes jank
124
- @override
125
- Widget build(BuildContext context) {
126
- final colors = CometChatThemeHelper.getColorPalette(context); // Expensive!
127
- return Container(color: colors.primary);
128
- }
129
- ```
130
-
131
- Do NOT use a `_themeInitialized` flag — it prevents theme updates when the system switches between light/dark mode.
132
-
133
- ## Rule: SUBSCRIPTION_TYPE_REQUIRED
134
-
135
- Omitting `subscriptionType` in `UIKitSettingsBuilder` silently disables all presence events (online/offline, typing indicators). No error is thrown.
136
-
137
- ```dart
138
- // ✅ CORRECT
139
- UIKitSettingsBuilder()
140
- ..subscriptionType = CometChatSubscriptionType.allUsers
141
- ```
142
-
143
- ## Rule: REGION_LOWERCASE
144
-
145
- Region must be a lowercase string: `'us'`, `'eu'`, or `'in'`.
146
-
147
- ## Rule: MUID_PRESERVATION
148
-
149
- When handling `ccMessageSent` events, compare by `muid` first, then `id` — the SDK may return an empty `muid` in the success callback.
150
-
151
- ## Pattern: Callback → Async Bridge (Completer)
152
-
153
- ```dart
154
- import 'dart:async';
155
-
156
- Future<bool> initAsync(UIKitSettings settings) {
157
- final completer = Completer<bool>();
158
- CometChatUIKit.init(
159
- uiKitSettings: settings,
160
- onSuccess: (_) => completer.complete(true),
161
- onError: (e) => completer.complete(false),
162
- );
163
- return completer.future;
164
- }
165
- ```
166
-
167
- ## v5 Component Architecture Pattern (GetX)
168
-
169
- ```
170
- {component}/
171
- ├── cometchat_{component}.dart # StatefulWidget
172
- ├── cometchat_{component}_controller.dart # extends GetxController
173
- ├── cometchat_{component}_style.dart # ThemeExtension with merge()
174
- └── {component}_builder_protocol.dart # Request builder protocol
175
- ```
176
-
177
- Internal lifecycle:
178
- ```dart
179
- @override
180
- void initState() {
181
- super.initState();
182
- tag = widget.controllerTag ?? 'default_tag_${DateTime.now().millisecondsSinceEpoch}';
183
- controller = Get.put<Controller>(Controller(...), tag: tag);
184
- }
185
-
186
- @override
187
- void dispose() {
188
- if (widget.controllerTag == null) {
189
- Get.delete<Controller>(tag: tag);
190
- }
191
- super.dispose();
192
- }
193
- ```
194
-
195
- ## Android Build Requirements
196
-
197
- - `android.useAndroidX=true` and `android.enableJetifier=true` in `gradle.properties`
198
- - `minSdk 26` in `android/app/build.gradle`
199
- - ProGuard: `-keep class com.cometchat.** { *; }` and `-keep interface com.cometchat.** { *; }`
200
-
201
- ## Top 10 Error Debugging
202
-
203
- | Symptom | Cause | Fix |
204
- |---------|-------|-----|
205
- | "Authentication null" | `CometChatUIKit.init()` not called | Call init before login/components |
206
- | "APP ID null" | appId not set in UIKitSettingsBuilder | Set `..appId = 'YOUR_APP_ID'` |
207
- | No typing indicators / presence | `subscriptionType` not set | Set `..subscriptionType = CometChatSubscriptionType.allUsers` |
208
- | Theme jank during keyboard | Theme looked up in `build()` | Cache in `didChangeDependencies()` |
209
- | Listener leak / duplicate events | Listener not removed in `dispose()` | Always remove with same ID |
210
- | GetX controller not found | Using `Get.find()` before `Get.put()` | Let UIKit components manage their own controllers |
211
- | Region error | Uppercase region string | Use lowercase: 'us', 'eu', 'in' |
212
- | Release build crash | Missing ProGuard keep rules | Add `-keep class com.cometchat.** { *; }` |
213
-
214
- ## Checklist — Every CometChat v5 Screen
215
-
216
- - [ ] `CometChatUIKit.init()` called before any usage
217
- - [ ] `subscriptionType` set in UIKitSettingsBuilder
218
- - [ ] `region` is lowercase
219
- - [ ] Theme cached in `didChangeDependencies()`, not `build()`
220
- - [ ] SDK listeners registered with unique ID, removed in `dispose()`
221
- - [ ] Colors from `CometChatThemeHelper`, never hardcoded
222
- - [ ] Imports: `package:cometchat_chat_uikit/cometchat_chat_uikit.dart` always; ADD `package:cometchat_calls_uikit/cometchat_calls_uikit.dart` if you use voice/video
223
-
224
- ## Visual Builder integration
225
-
226
- **Flutter V5 is the primary home for Visual Builder integration.** The canonical repo at the `chat_builder/` directory inside the Flutter Visual Builder ZIP (download from https://preview.cometchat.com/downloads/cometchat-builder-flutter.zip) ships **V5-shaped code** — `cometchat_chat_uikit: ^5.2.12` + `cometchat_calls_uikit: ^5.0.13`. The integration copies the entire `chat_builder/` directory as a `path:` dependency, then `BuilderSettingsHelper.loadFromAsset()` reads `chat_builder/assets/sample_app/cometchat-builder-settings.json` and configures the bundled chat UI accordingly.
227
-
228
- **The full recipe lives in `cometchat-flutter-v6-core` §"Visual Builder integration"** because that's where the V6-prep restructure originally landed the validated content. Both skills reference the same canonical; the V6 page carries a "V5-shaped code" warning at the top. V5 customers should follow that recipe AS-IS — the canonical IS V5-targeted.
229
-
230
- Validated 2026-05-21 against Flutter 3.38.3: `flutter build apk --debug` produces `app-debug.apk` after applying:
231
- - Envelope-wrapped JSON at `chat_builder/assets/sample_app/cometchat-builder-settings.json`. The CLI (source of truth) writes `{ builderId, name, settings: {...} }`; the vendor canonical's own checked-in file carries only `{ builderId, settings }` (no `name`). `BuilderSettingsHelper.loadFromAsset()` reads only `builderId` + `settings` and ignores any extra top-level keys, so the CLI's extra `name` is harmless.
232
- - Two missing-field defaults injected pre-write (mentionAll + inAppSounds — same as Android)
233
- - `android.enableJetifier=true` in `android/gradle.properties` (the chat SDK pulls `com.android.support` transitively)
234
- - `await BuilderSettingsHelper.loadFromAsset()` in `lib/main.dart` before `runApp()`
235
- - `chat_builder: { path: ./chat_builder }` in host `pubspec.yaml`
236
-
237
- Differences from the V6 page's recipe text:
238
- - V5 host code uses `StatefulWidget` with direct listener management (V6 uses BLoC pattern); both work with the embedded chat_builder package since it owns its own state.
239
- - V5 calls (the standalone `cometchat-flutter-v5-calls` flow, outside the builder) don't need the [[project_v6_flutter_calls_partial]] navigatorKey workaround — that's a V6-specific incoming-call-routing requirement. **However, the Visual Builder canonical itself (V5-shaped) wires `navigatorKey: CallNavigationContext.navigatorKey` UNCONDITIONALLY in every `MaterialApp` `ChatBuilder.createApp()` builds**, regardless of whether calls are enabled — so if you mount `ChatBuilder.createApp()` (recommended) or replicate its `MaterialApp` in a host wrapper, keep that navigator key in place. Do NOT gate it behind "calls enabled". See the v6-core recipe's wrapper guidance.