@cometchat/skills 4.4.2 → 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 (490) 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/LICENSE +21 -0
  5. package/README.md +41 -163
  6. package/RULES.md +114 -0
  7. package/bin/cometchat-skills.mjs +1180 -0
  8. package/bin/legacy-skills.json +95 -0
  9. package/catalogs/android-v6.json +1646 -0
  10. package/catalogs/flutter-v6.json +651 -0
  11. package/catalogs/ios-v5.json +1383 -0
  12. package/catalogs/rn-calls-v5.json +134 -0
  13. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  14. package/catalogs/rn-sdk-v4.json +672 -0
  15. package/catalogs/rn-v5.json +449 -0
  16. package/catalogs/rn-v5.symbols.txt +216 -0
  17. package/catalogs/sdk-android-v5.json +514 -0
  18. package/contracts.android-calls-v5.json +122 -0
  19. package/contracts.android-v6.json +135 -0
  20. package/contracts.angular-v5.json +694 -0
  21. package/contracts.flutter-calls-v5.json +77 -0
  22. package/contracts.flutter-v6.json +126 -0
  23. package/contracts.ios-calls-v5.json +67 -0
  24. package/contracts.ios-v5.json +436 -0
  25. package/contracts.json +82 -0
  26. package/contracts.rn-calls-v5.json +77 -0
  27. package/contracts.rn-v5.json +727 -0
  28. package/contracts.sdk-android-v5.json +15 -0
  29. package/contracts.web-calls-v5.json +45 -0
  30. package/features.android-calls-v5.json +246 -0
  31. package/features.android-v6.json +65 -0
  32. package/features.angular-v5.json +521 -0
  33. package/features.flutter-calls-v5.json +286 -0
  34. package/features.flutter-v6.json +484 -0
  35. package/features.ios-calls-v5.json +236 -0
  36. package/features.ios-v5.json +573 -0
  37. package/features.json +61 -0
  38. package/features.rn-calls-v5.json +187 -0
  39. package/features.rn-v5.json +614 -0
  40. package/features.sdk-android-v5.json +40 -0
  41. package/features.sdk-jsv4.json +24 -0
  42. package/features.web-calls-v5.json +108 -0
  43. package/package.json +151 -74
  44. package/peers.yaml +312 -0
  45. package/registry/README.md +31 -0
  46. package/registry/android-calls-v5.json +54 -0
  47. package/registry/android-v6.json +137 -0
  48. package/registry/angular-v5.json +114 -0
  49. package/registry/flutter-calls-v5.json +54 -0
  50. package/registry/flutter-v6.json +119 -0
  51. package/registry/ios-calls-v5.json +59 -0
  52. package/registry/ios-v5.json +97 -0
  53. package/registry/rn-calls-v5.json +59 -0
  54. package/registry/rn-v5.json +129 -0
  55. package/registry/sdk-android-v5.json +53 -0
  56. package/registry/sdk-jsv4.json +53 -0
  57. package/registry/web-calls-v5.json +54 -0
  58. package/registry/web-v7.json +99 -0
  59. package/skills/cometchat/SKILL.md +42 -2096
  60. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  67. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  68. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  69. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  70. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  71. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  72. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  73. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  74. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  75. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  76. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  77. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  78. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  79. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  80. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  81. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  82. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  83. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  84. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  85. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  86. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  87. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  88. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  89. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  90. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  91. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  92. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  93. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  94. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  95. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  96. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  97. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  98. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  99. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  100. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  101. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  102. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  103. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  104. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  105. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  106. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  107. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  108. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  109. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  110. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  111. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  112. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  113. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  114. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  115. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  116. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  117. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  118. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  119. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  120. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  121. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  122. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  123. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  127. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  128. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  129. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  130. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  131. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  132. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  133. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  134. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  135. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  136. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  137. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  138. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  139. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  140. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  141. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  142. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  143. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  144. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  145. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  146. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  147. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  148. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  149. package/skills/cometchat-ios-components/SKILL.md +44 -834
  150. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  151. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  152. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  153. package/skills/cometchat-ios-core/references/install.md +23 -0
  154. package/skills/cometchat-ios-core/references/layout.md +186 -0
  155. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  156. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  157. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  158. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  159. package/skills/cometchat-ios-features/SKILL.md +29 -738
  160. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  161. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  162. package/skills/cometchat-ios-push/SKILL.md +24 -602
  163. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  164. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  165. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  166. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  167. package/skills/cometchat-onboarding/SKILL.md +89 -0
  168. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  169. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  170. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  171. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  172. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  173. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  174. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  175. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  176. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  177. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  178. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  179. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  180. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  181. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  182. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  183. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  184. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  185. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  186. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  187. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  188. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  189. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  190. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  191. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  192. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  193. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  194. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  195. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  196. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  198. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  199. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  200. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  201. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  202. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  203. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  204. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  205. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  206. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  207. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  208. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  209. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  210. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  211. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  212. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  213. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  214. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  215. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  216. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  217. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  218. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  219. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  220. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  221. package/test-suite/README.md +70 -0
  222. package/test-suite/catalogs/android-calls-v5.json +830 -0
  223. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  224. package/test-suite/catalogs/android-v6.json +1646 -0
  225. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  226. package/test-suite/catalogs/angular-v5.json +7587 -0
  227. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  228. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  229. package/test-suite/catalogs/flutter-v6.json +651 -0
  230. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  231. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  232. package/test-suite/catalogs/ios-v5.json +1383 -0
  233. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  234. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  235. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  236. package/test-suite/catalogs/rn-v5.json +449 -0
  237. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  238. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  239. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  240. package/test-suite/catalogs/web-calls-v5.json +195 -0
  241. package/test-suite/catalogs/web-v7.json +1243 -0
  242. package/test-suite/scripts/build-registry.mjs +113 -0
  243. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  244. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  245. package/test-suite/scripts/lint-skills.mjs +909 -0
  246. package/test-suite/scripts/measure-tokens.mjs +169 -0
  247. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  248. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  249. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  250. package/test-suite/scripts/verify-catalog.mjs +242 -0
  251. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  252. package/test-suite/scripts/verify-detection.mjs +178 -0
  253. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  254. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  255. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  256. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  257. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  258. package/test-suite/typecheck/angular-v5/package.json +21 -0
  259. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  260. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  261. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  262. package/test-suite/typecheck/web-v7/package.json +18 -0
  263. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  264. package/bin/install.js +0 -1003
  265. package/skills/.claude-plugin/marketplace.json +0 -86
  266. package/skills/cometchat/references/asking-questions.md +0 -48
  267. package/skills/cometchat-a11y/SKILL.md +0 -477
  268. package/skills/cometchat-android-v5/SKILL.md +0 -121
  269. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  270. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  271. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  272. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  273. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  274. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  275. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  276. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  277. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  278. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  279. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  280. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  281. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  282. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  283. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  284. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  285. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  286. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  287. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  288. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  289. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  290. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  291. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  292. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  293. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  294. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  295. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  296. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  297. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  298. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  299. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  300. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  301. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  302. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  303. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  304. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  305. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  306. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  307. package/skills/cometchat-android-v6/SKILL.md +0 -108
  308. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  309. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  310. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  311. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  312. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  313. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  314. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  315. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  316. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  317. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  318. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  319. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  320. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  321. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  322. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  323. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  324. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  325. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  326. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  327. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  328. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  329. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  330. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  331. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  332. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  333. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  334. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  335. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  336. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  337. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  338. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  339. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  340. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  341. package/skills/cometchat-angular-components/SKILL.md +0 -235
  342. package/skills/cometchat-angular-core/SKILL.md +0 -386
  343. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  344. package/skills/cometchat-angular-features/SKILL.md +0 -329
  345. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  346. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  347. package/skills/cometchat-angular-production/SKILL.md +0 -564
  348. package/skills/cometchat-angular-push/SKILL.md +0 -389
  349. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  350. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  351. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  352. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  353. package/skills/cometchat-calls/SKILL.md +0 -364
  354. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  355. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  356. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  357. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  358. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  359. package/skills/cometchat-components/SKILL.md +0 -1142
  360. package/skills/cometchat-core/SKILL.md +0 -1048
  361. package/skills/cometchat-customization/SKILL.md +0 -580
  362. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  363. package/skills/cometchat-features/SKILL.md +0 -861
  364. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  365. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  366. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  367. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  368. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  369. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  370. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  371. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  372. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  373. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  374. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  375. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  376. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  377. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  378. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  379. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  380. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  381. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  382. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  383. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  384. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  385. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  386. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  387. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  388. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  389. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  390. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  391. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  392. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  393. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  394. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  395. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  396. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  397. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  398. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  399. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  400. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  401. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  402. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  403. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  404. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  405. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  406. package/skills/cometchat-i18n/SKILL.md +0 -419
  407. package/skills/cometchat-ios/SKILL.md +0 -325
  408. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  409. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  410. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  411. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  412. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  413. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  414. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  415. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  416. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  417. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  418. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  419. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  420. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  421. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  422. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  423. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  424. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  425. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  426. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  427. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  428. package/skills/cometchat-ios-production/SKILL.md +0 -738
  429. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  430. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  431. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  432. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  433. package/skills/cometchat-native-calls/SKILL.md +0 -671
  434. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  435. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  436. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  437. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  438. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  439. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  440. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  441. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  442. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  443. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  444. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  445. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  446. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  447. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  448. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  449. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  450. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  451. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  452. package/skills/cometchat-native-components/SKILL.md +0 -628
  453. package/skills/cometchat-native-core/SKILL.md +0 -679
  454. package/skills/cometchat-native-customization/SKILL.md +0 -716
  455. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  456. package/skills/cometchat-native-features/SKILL.md +0 -638
  457. package/skills/cometchat-native-placement/SKILL.md +0 -509
  458. package/skills/cometchat-native-production/SKILL.md +0 -700
  459. package/skills/cometchat-native-push/SKILL.md +0 -594
  460. package/skills/cometchat-native-testing/SKILL.md +0 -582
  461. package/skills/cometchat-native-theming/SKILL.md +0 -681
  462. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  463. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  464. package/skills/cometchat-placement/SKILL.md +0 -1360
  465. package/skills/cometchat-production/SKILL.md +0 -1027
  466. package/skills/cometchat-react-calls/SKILL.md +0 -752
  467. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  468. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  469. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  470. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  471. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  472. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  473. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  474. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  475. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  476. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  477. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  478. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  479. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  480. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  481. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  482. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  483. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  484. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  485. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  486. package/skills/cometchat-react-push/SKILL.md +0 -634
  487. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  488. package/skills/cometchat-react-testing/SKILL.md +0 -413
  489. package/skills/cometchat-theming/SKILL.md +0 -498
  490. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -0,0 +1,55 @@
1
+ # anti-patterns — the real bugs, Flutter v6
2
+
3
+ ## Startup
4
+ 1. **Rendering a `CometChat*` widget before `login` succeeds** → blank screen or a listener exception. Gate
5
+ the first frame (`lifecycle.md`).
6
+ 2. **Missing `WidgetsFlutterBinding.ensureInitialized()`** → `initFromSettings` cannot read the settings
7
+ asset through `rootBundle`; first-run crash.
8
+ 3. **`init` inside a screen's `initState`** that can be re-entered → repeated init, raced Calls-SDK routing.
9
+ 4. **Using `init()` + `UIKitSettingsBuilder` instead of `initFromSettings()`** → loses
10
+ `integrationSource="ai-agent"` telemetry attribution (`RULES.md` §5). The docs still show the old path.
11
+ 5. **A REAL Auth Key committed in `cometchat-settings.json`** → the key is in your repo history. Do NOT fix this by gitignoring the file — it is a registered Flutter asset, so a fresh clone / CI `flutter build bundle` then fails with *"No file or variants found for asset."* Commit a **placeholder** `cometchat-settings.json` (empty/placeholder `authKey`) that dev and CI overwrite locally; guard the real key with a pre-commit/CI check.
12
+ 6. **Auth Key in a production build** → it authenticates *any* user. Prod is `loginWithAuthToken` with a
13
+ server-minted token.
14
+ 7. **Inventing a UID.** `login` requires a user that already exists. Ask, or read Dashboard → Users.
15
+
16
+ ## Layout
17
+ 8. **A kit list without `Expanded`/`Flexible` in a `Column`** → unbounded-height exception or a zero-height
18
+ list. The single most common Flutter integration failure (`layout.md`).
19
+ 9. **The surface inside a `SingleChildScrollView`** → infinite height constraints; same failure.
20
+ 10. **`resizeToAvoidBottomInset: false`** → the composer disappears under the keyboard.
21
+ 11. **No `Scaffold`/`SafeArea`** → missing `Material` ancestor, or UI under the notch/home indicator.
22
+
23
+ ## v5 carry-overs (all REMOVED in v6 — see `cometchat-flutter-v6-migration`)
24
+ 12. **Registering extensions** — `UIKitSettings.extensions`, `CometChatUIKitChatExtensions`,
25
+ `DataSource`, `ChatConfigurator`, `*ExtensionDecorator`, `CometChatUIKit.getDataSource()`. v6 deleted
26
+ the entire pattern; a dashboard-enabled extension surfaces **automatically** with zero client code.
27
+ Emitting registration is a defect, not a harmless no-op.
28
+ 13. **Combined shell widgets** — `CometChatConversationsWithMessages`, `CometChatUsersWithMessages`,
29
+ `CometChatGroupsWithMessages`, `CometChatMessages`, `CometChatUI`, `CometChatMessenger`,
30
+ `CometChatUserList`, `CometChatContactList`. v6 has **no** shell widget; the host composes screens.
31
+ 14. **GetX controllers** — `CometChatMessagesController`, `CometChatOngoingCallController`. v6 is BLoC.
32
+ 15. **`CometChatCompactMessageComposer`** → one `CometChatMessageComposer`.
33
+
34
+ ## Cross-family contamination
35
+ 16. **Carrying a React name into Flutter.** `CometChatThreadHeader` does not exist here — it is
36
+ `CometChatThreadedHeader`. Nor do `showSearchOption`/`onSearchOptionClicked` on the message header, or
37
+ `onItemClick` on the conversation list (it is **`onItemTap`**). Equally: `CometChatMediaRecorder` DOES
38
+ exist in Flutter though it is a React phantom. **Never reuse another family's symbol or phantom list —
39
+ check `catalogs/flutter-v6.json`.**
40
+ 17. **Importing calls widgets from the chat barrel.** `CometChatIncomingCall`, `CometChatOutgoingCall`,
41
+ `CometChatCallButtons`, `CometChatCallLogs`, `CometChatCallBubble` and `CometChatCalls` resolve ONLY
42
+ from `package:cometchat_chat_uikit/cometchat_calls_uikit.dart`. A calls screen imports **both** barrels.
43
+ 18. **Adding `cometchat_sdk` as a direct dependency to get `User`/`Group`/`TextMessage`.** The kit barrel
44
+ already re-exports the whole Chat SDK.
45
+
46
+ ## Composition
47
+ 19. **Passing `parentMessageId` without `user:`/`group:`** on a thread list/composer → replies silently
48
+ never send. Both are required.
49
+ 20. **A dead-ending affordance.** A search field that opens nothing, or a thread indicator with no
50
+ `onThreadRepliesClick` — wire it to a destination or hide it (`hideSearch`).
51
+ 21. **Hand-rolling what the widget already exposes.** Custom UI belongs in a slot
52
+ (`auxiliaryButtonView` / `trailingView` / `appBarOptions`), never stacked on top of the widget.
53
+ 22. **Client-side filtering the conversation list.** Scope `conversationsRequestBuilder` instead.
54
+ 23. **Hand-rolling moderation or report UI.** Both are automatic in `CometChatMessageList`; the work is in
55
+ the Dashboard.
@@ -0,0 +1,143 @@
1
+ # docs-map — CometChat Flutter v6: intent → the exact docs page to fetch
2
+
3
+ Fetch a page instead of guessing a prop. This file is the map; `SKILL.md` bakes only the hot path.
4
+
5
+ ## Reaching docs — PREFER the CometChat docs MCP; fetch is the fallback
6
+ The canonical doc channel is the **first-party CometChat docs MCP** — tools `search_cometchat_docs`,
7
+ `fetch_cometchat_doc_page`, and `get_cometchat_implementation_bundle`. **If those tools are connected,
8
+ use them instead of a raw web fetch:**
9
+ - **Find the page** → `search_cometchat_docs(query, version?)` — replaces browsing the scoped `llms-*` index.
10
+ - **Read the page** → `fetch_cometchat_doc_page(path)` — pass the SAME `<path>` the tables below list
11
+ (the conversations page path for your platform); the MCP resolves the `.md` twin and returns raw Markdown.
12
+ A full `https://…/docs/<path>` URL also works.
13
+ - **A whole feature/recipe** → `get_cometchat_implementation_bundle(...)` is **NON-AUTHORITATIVE** — curated STATIC recipes that can lag the live docs (verified stale vs v7: e.g. `CometChatConversationsWithMessages`, `css-variables.css`). Treat any bundle as a hint only: RECONCILE it against the `fetch_cometchat_doc_page` result + the pack's hardening; never emit bundle code verbatim.
14
+
15
+ The MCP reads whatever docs environment it is pointed at (production by default; a preview when repointed),
16
+ so it also carries the environment-swap concern below — no hardcoded host on the skill side.
17
+
18
+ **If the MCP tools are NOT connected:** add it (`claude mcp add --transport http cometchat-docs https://mcp.cometchat.com/mcp`, or reinstall/enable the plugin) and retry; only if it still will not connect, fall back to a plain fetch via `DOCS_BASE` (defined next).
19
+ Either way the `<path>` catalog in this file is the source of truth for WHICH page — MCP-vs-fetch is only HOW.
20
+
21
+ ## DOCS_BASE — the fetch FALLBACK entry point (⚠️ SWAP HERE to change environments)
22
+ ```
23
+ DOCS_BASE = https://www.cometchat.com/docs
24
+ ```
25
+ > The ONLY line to change for a preview/staging deploy. Every path below is identical across environments.
26
+ >
27
+ > **Fetch rule:** build a URL as `DOCS_BASE` + the path shown, then append `.md`. Never hardcode a host
28
+ > anywhere else; never read installed Dart source in place of a missing doc (see the DOCS GAP protocol).
29
+
30
+ ## The convention
31
+ `DOCS_BASE` + `<path>` + `.md` → raw Markdown (verbatim code + prop tables).
32
+ ```
33
+ Fetch: {DOCS_BASE}/ui-kit/flutter/conversations.md
34
+ ```
35
+ Fallback order: `.md` twin → the same URL **without** `.md` (HTML) → **DOCS GAP** (below).
36
+
37
+ ## ⚠️ Scoped index — DOES NOT EXIST YET for Flutter (tracked DOCS GAP, go-live dependency)
38
+ ```
39
+ {DOCS_BASE}/ui-kit/flutter/llms.txt → 404 as of 2026-08-21
40
+ {DOCS_BASE}/sdk/flutter/llms.txt → 404 as of 2026-08-21
41
+ ```
42
+ Neither scoped index has been generated. **Until they exist, use the page table below as the index**
43
+ (it was derived from the global index and is complete for this family), and fall back to the global
44
+ all-products index — `{DOCS_BASE}/llms.txt` (large; last resort) — for anything not listed.
45
+ > **Go-live ask (owner: docs):** generate the **scoped UI-Kit `llms.txt` for Flutter v6, including its
46
+ > "Task guides (recipes)" section**, and the **SDK `llms.txt` for the Flutter Chat SDK**. Without them the
47
+ > docs-maximal, guide-first completeness check degrades to component-wiring only. Tracked in `DOCS-BACKLOG.md`.
48
+
49
+ ## `[verified]` signatures — confirmed against the kit AND the live docs
50
+ These signatures were wrong on the live pages when the skill was written (`DOCS-BACKLOG` F1/F2/F3/F5); all four
51
+ were **corrected upstream** and re-verified against `cometchat/docs`@`2ebb1db` (2026-09-09), so the pages now
52
+ AGREE with `SKILL.md`. Kept here as the authoritative signature reference. Re-verify with
53
+ `npm run verify:fences:flutter-v6` if a page ever drifts again.
54
+
55
+ | Symbol | Confirmed signature |
56
+ |---|---|
57
+ | `CometChatThreadedHeader` | `parentMessage:` + required `loggedInUser:` (not `message:`) |
58
+ | `onThreadRepliesClick` | `void Function(BaseMessage, BuildContext, {CometChatMessageTemplate? template})` |
59
+ | `CometChatThreadedHeader` back/error | none — no `onBack:` / `onError:`; back comes from the screen's own `AppBar` |
60
+ | `CometChatSearch` results | `onConversationClicked` / `onMessageClicked` |
61
+ | `getting-started` init | `initFromSettings()` + `cometchat-settings.json` — **deliberately undocumented (F4 WONTFIX)**; this skill is its reference |
62
+
63
+ ## Component docs (intent → path)
64
+ | Intent | Path |
65
+ |---|---|
66
+ | Install · init · login · first screen | `/ui-kit/flutter/getting-started` |
67
+ | What v6 is · architecture | `/ui-kit/flutter/overview` · `/ui-kit/flutter/components-overview` |
68
+ | Conversation list props | `/ui-kit/flutter/conversations` |
69
+ | Message list props | `/ui-kit/flutter/message-list` |
70
+ | Composer props | `/ui-kit/flutter/message-composer` |
71
+ | Message header props | `/ui-kit/flutter/message-header` |
72
+ | Thread screen | `/ui-kit/flutter/threaded-messages-header` (⚠️ see the wrong-pages table) |
73
+ | Search | `/ui-kit/flutter/search` (⚠️ see the wrong-pages table) |
74
+ | Users / Groups / Members | `/ui-kit/flutter/users` · `/groups` · `/group-members` |
75
+ | Calls (incoming/outgoing/logs/buttons) | `/ui-kit/flutter/call-features` · `/incoming-call` · `/outgoing-call` · `/call-logs` · `/call-buttons` |
76
+ | Notification feed | `/ui-kit/flutter/notification-feed` |
77
+ | Push notifications (FCM/APNs setup — `-push`) | `/notifications/push-overview` · `/notifications/flutter-push-notifications-android` · `/notifications/flutter-push-notifications-ios` (NOT the legacy singular `/notifications/flutter-push-notifications`) |
78
+ | Theming — tokens & palette | `/ui-kit/flutter/theme-introduction` · `/color-resources` · `/component-styling` · `/message-bubble-styling` |
79
+ | Customization — slots & behavior | `/ui-kit/flutter/customization-overview` · `-view-slots` · `-state-views` · `-menu-options` · `-bloc-data` · `-datasource` · `-text-formatters` |
80
+ | Custom message types | `/ui-kit/flutter/message-template` |
81
+ | Formatters (mentions / custom / shortcut) | `/ui-kit/flutter/mentions-formatter-guide` · `/custom-text-formatter-guide` · `/shortcut-formatter-guide` |
82
+ | Events (SDK listeners vs UI events) | `/ui-kit/flutter/events` |
83
+ | Extensions (all dashboard-enabled) | `/ui-kit/flutter/extensions` |
84
+ | Localization | `/ui-kit/flutter/localize` |
85
+ | Sounds | `/ui-kit/flutter/sound-manager` |
86
+ | Methods / helpers | `/ui-kit/flutter/methods` |
87
+ | Troubleshooting | `/ui-kit/flutter/troubleshooting` |
88
+ | v5 → v6 upgrade | `/ui-kit/flutter/upgrading-from-v5` |
89
+
90
+ ## Task guides (recipes) — BUILD FROM THESE, then COMPARE (docs-maximal, `RULES.md` §20)
91
+ For a whole task, **build from the guide and compare your implementation against it for completeness**,
92
+ then apply the hardening deltas in `SKILL.md`. **No matching guide? Build the normal way** (wire the
93
+ widgets + fetch props) — the guide is an enhancement, not a prerequisite.
94
+
95
+ | Task | Guide |
96
+ |---|---|
97
+ | Guide index | `/ui-kit/flutter/guide-overview` |
98
+ | One-to-one chat | `/ui-kit/flutter/flutter-one-to-one-chat` |
99
+ | Conversation + messages | `/ui-kit/flutter/flutter-conversation` |
100
+ | Tab-based app (the grow target) | `/ui-kit/flutter/flutter-tab-based-chat` · `/multi-tab-chat-ui-guide` |
101
+ | Group chat | `/ui-kit/flutter/guide-group-chat` |
102
+ | Threaded messages | `/ui-kit/flutter/guide-threaded-messages` (⚠️ signatures wrong — see above) |
103
+ | Start a new chat | `/ui-kit/flutter/guide-new-chat` |
104
+ | Message privately | `/ui-kit/flutter/guide-message-privately` |
105
+ | Block / unblock | `/ui-kit/flutter/guide-block-unblock-user` |
106
+ | Call log details | `/ui-kit/flutter/guide-call-log-details` |
107
+ | AI agentic flow | `/ui-kit/flutter/guide-message-agentic-flow` |
108
+
109
+ ## SDK docs — the FALLBACK reference (so the SDK ALSO works, `RULES.md` §13)
110
+ **UI-Kit first, SDK fallback.** For every feature, first check whether the UI Kit has a widget/prop
111
+ (the table above + the catalog). If it does — use it. If it does NOT (AI agents, campaigns,
112
+ advanced/AI moderation, transient messages, bots, webhooks, banned-members listing, low-level presence)
113
+ — drop to the Flutter Chat SDK and call its method directly. The SDK is **already installed and
114
+ re-exported by the kit barrel**, so `User`, `Group`, `Conversation`, `BaseMessage`, `TextMessage` and the
115
+ `*RequestBuilder` types need no extra import.
116
+ ```
117
+ SDK_DOCS_BASE = https://www.cometchat.com/docs/sdk/flutter
118
+ ```
119
+ | Intent | Path |
120
+ |---|---|
121
+ | Overview · setup · auth | `/overview` · `/setup` · `/authentication-overview` |
122
+ | Send / receive / edit / delete messages | `/messaging-overview` · `/send-message` · `/receive-messages` |
123
+ | Real-time listeners | `/real-time-listeners` · `/connection-status` |
124
+ | Users · presence · block | `/users-overview` · `/user-presence` · `/block-users` |
125
+ | Groups · members · kick/ban | `/groups-overview` · `/group-kick-ban-members` |
126
+ | Conversations & unread | `/conversations-overview` |
127
+ | Threads | `/threaded-messages` |
128
+ | AI agents / chatbots | `/ai-agents` · `/ai-moderation` |
129
+ | Campaigns | `/campaigns` |
130
+ | Push token registration | no `sdk/flutter` page (`/sdk/flutter/push-notifications` 404s) — use the three `/notifications/*` push pages in the component table above |
131
+ | Webhooks | `/webhooks-overview` |
132
+ > Each SDK page carries an **AI Integration Quick Reference** block with method signatures — read that
133
+ > first. The SDK's scoped `llms.txt` does not exist yet (see the index gap above); use this table.
134
+
135
+ ## DOCS GAP protocol (`RULES.md` §20 — never silently source-fill)
136
+ If a prop/method/behavior you need is **absent or wrong** in the docs:
137
+ 1. **Do not** substitute reading installed Dart source as though it were documentation, and do not bake a
138
+ permanent workaround into a skill for what is really a docs bug (AUDIT-072 / CHECKLIST row 24).
139
+ 2. **Verify** the actual behavior by compiling against the pinned kit
140
+ (`npm run verify:fences:flutter-v6` / `test-suite/typecheck/flutter-v6`) — the compiler is the oracle.
141
+ 3. **TELL THE DEVELOPER**: page · section · what's there now · what it should say · why it matters.
142
+ 4. **Record it** in `DOCS-BACKLOG.md` (owner **docs**) + an `AUDIT.md` row, and bake only a clearly-labelled
143
+ temporary stopgap in the skill, citing the backlog entry — exactly as F1–F5 are handled in `SKILL.md`.
@@ -0,0 +1,45 @@
1
+ # layout — the mobile sizing standard (bounded height, safe area, keyboard)
2
+
3
+ The Flutter instance of the pack's reflow-free-surface standard. The web recipe (`100dvh`, `min-height:0`
4
+ columns, prepared ancestor chain) does NOT apply here; the principle does: **the kit's list widgets expand
5
+ to fill their parent, so the parent must supply a bounded height — never let content drive it.**
6
+
7
+ ## The four invariants
8
+
9
+ **1. Bounded height for every list.** `CometChatConversations`, `CometChatMessageList`, `CometChatUsers`,
10
+ `CometChatGroups`, `CometChatGroupMembers` and `CometChatSearch` all want to fill their parent. Inside a
11
+ `Column`, wrap them in `Expanded` (or `Flexible`); otherwise Flutter throws
12
+ *"RenderFlex children have non-zero flex but incoming height constraints are unbounded"* — or the list
13
+ collapses to zero height.
14
+ ```dart
15
+ Widget messagePane(User user) => Column(children: [
16
+ CometChatMessageHeader(user: user),
17
+ Expanded(child: CometChatMessageList(user: user)), // REQUIRED — bounds the list
18
+ CometChatMessageComposer(user: user),
19
+ ]);
20
+ ```
21
+
22
+ **2. Never nest the surface in an unbounded scroll parent.** A `SingleChildScrollView`, a `ListView`, or a
23
+ `Column` inside one gives its children *infinite* height, so a kit list inside it throws or renders
24
+ nothing. If chat must sit inside a scrolling page, give it a **fixed** height (`SizedBox(height: 480)`) or
25
+ a sized cell — a content-driven box is the defect, not the kit.
26
+
27
+ **3. `Scaffold` + `SafeArea`.** The surface belongs in a `Scaffold` (it supplies the `Material` ancestor the
28
+ kit's widgets need) with `SafeArea` so the composer clears the home indicator and the header clears the
29
+ notch. A bare `Container` at the root is the usual cause of "the composer is under the home bar".
30
+
31
+ **4. Keyboard avoidance — leave `resizeToAvoidBottomInset` alone.** It defaults to `true`, which is what
32
+ keeps `CometChatMessageComposer` above the keyboard. Setting it to `false`, or placing the surface inside a
33
+ widget that swallows the inset, hides the input the moment the user types. If the composer is covered:
34
+ check for `resizeToAvoidBottomInset: false`, a nested `Scaffold`, or a manual `MediaQuery.viewInsets` hack.
35
+
36
+ ## No load-transition reflow
37
+ The kit ships its own loading and empty states, so give it the full box immediately and let it render its
38
+ loader **inside** that box. Do not gate the whole screen behind your own placeholder→chat swap sized
39
+ differently from the final surface — that is what makes the UI jump when messages arrive. (The init/login
40
+ gate in `lifecycle.md` is different and correct: it runs *before* the chat screen exists at all.)
41
+
42
+ ## Embedded / modal placements
43
+ A bottom sheet, dialog, or embedded panel must still supply a bounded height — `showModalBottomSheet` with
44
+ a `SizedBox(height: MediaQuery.of(context).size.height * 0.9)`, or a `Container` with a fixed height.
45
+ Recipes: `cometchat-flutter-v6-placement`.
@@ -0,0 +1,87 @@
1
+ # lifecycle — init once, login, gate the first frame, log out
2
+
3
+ Loaded when the task touches startup, session, or "why is it blank / why did it re-init".
4
+
5
+ ## The invariant
6
+ `initFromSettings()` → `login(uid)` → **only then** render any `CometChat*` widget. Both are async and
7
+ callback-reporting; a widget rendered before login succeeds shows blank or throws.
8
+
9
+ ## Init once — not once per widget, and hot-restart-safe
10
+ Do it at app startup (before `runApp`, or in the root widget's `initState`), never inside a screen that
11
+ can be re-entered. `initFromSettings` reads `cometchat-settings.json` and persists
12
+ `integrationSource="ai-agent"`; calling it twice is wasteful and races the Calls SDK routing.
13
+
14
+ ```dart
15
+ Future<void> main() async {
16
+ WidgetsFlutterBinding.ensureInitialized(); // REQUIRED before any plugin/asset access
17
+ runApp(const MyApp()); // init happens inside the gate widget below
18
+ }
19
+ ```
20
+ > `WidgetsFlutterBinding.ensureInitialized()` is mandatory — `initFromSettings` loads an asset through
21
+ > `rootBundle`, which needs the binding. Omitting it is a common first-run crash.
22
+
23
+ ## Gate the first frame (the pattern that prevents the blank screen)
24
+ Hold the app on a loader until init AND login have both reported success; only then build the chat.
25
+ Keep the gate at the ROOT so a hot restart re-runs it cleanly.
26
+
27
+ ```dart
28
+ import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
29
+ import 'package:flutter/material.dart';
30
+
31
+ class ChatGate extends StatefulWidget {
32
+ const ChatGate({super.key});
33
+ @override
34
+ State<ChatGate> createState() => _ChatGateState();
35
+ }
36
+
37
+ class _ChatGateState extends State<ChatGate> {
38
+ bool _ready = false;
39
+ String? _error;
40
+
41
+ @override
42
+ void initState() {
43
+ super.initState();
44
+ _start();
45
+ }
46
+
47
+ Future<void> _start() async {
48
+ await CometChatUIKit.initFromSettings(
49
+ onError: (e) => setState(() => _error = e.message),
50
+ );
51
+ if (_error != null) return;
52
+ // Already signed in after a restart? login() no-ops for the same UID.
53
+ await CometChatUIKit.login(
54
+ 'cometchat-uid-1', // ASK for a real UID — never invent one
55
+ onSuccess: (_) => setState(() => _ready = true),
56
+ onError: (e) => setState(() => _error = e.message),
57
+ );
58
+ }
59
+
60
+ @override
61
+ Widget build(BuildContext context) {
62
+ if (_error != null) return Scaffold(body: Center(child: Text('CometChat: $_error')));
63
+ if (!_ready) return const Scaffold(body: Center(child: CircularProgressIndicator()));
64
+ // Only past this point may a CometChat* widget be built.
65
+ return const Scaffold(body: SafeArea(child: CometChatConversations()));
66
+ }
67
+ }
68
+ ```
69
+ > `setState` after an await needs the usual `if (!mounted) return;` guard in real code.
70
+
71
+ ## Who is logged in
72
+ `CometChatUIKit.loggedInUser` is the cached `User?` — the sync getter the thread screen needs
73
+ (`loggedInUser:` is a REQUIRED param on `CometChatThreadedHeader`). It is populated by `login`, so it is
74
+ non-null anywhere behind the gate above. `CometChatUIKit.login` itself calls `getLoggedInUser()` first and
75
+ returns early when that UID is already signed in — **no host-side concurrent-login guard is needed.**
76
+
77
+ ## Production auth — the Auth Key is dev-only
78
+ `login(uid)` uses the Auth Key from the settings file, which means the key ships inside the app bundle.
79
+ That is acceptable for development only. For production:
80
+ 1. Omit `credentials.authKey` from `cometchat-settings.json`.
81
+ 2. Mint a per-user **auth token** on your server (CometChat REST API, using the App's REST key).
82
+ 3. Sign in with `CometChatUIKit.loginWithAuthToken(authToken, onSuccess: …, onError: …)`.
83
+ Say this out loud to the user when you wire the dev path — flag dev-only AS dev-only.
84
+
85
+ ## Logout
86
+ `CometChatUIKit.logout()` clears the session; send the user back to the gate afterwards so a subsequent
87
+ login re-runs cleanly. Do not re-`init` on logout.
@@ -0,0 +1,84 @@
1
+ # setup-credentials — detect, reconcile, fetch, write, authorize
2
+
3
+ The full version of `SKILL.md` §"Setup & credentials". Load when doing first-time setup or debugging auth.
4
+
5
+ ## 1. Detect the project (`npx @cometchat/skills detect --json`, topped up by reading the repo — `RULES.md`)
6
+ Parse, recording `null` rather than guessing when a signal is absent:
7
+
8
+ | Signal | Where |
9
+ |---|---|
10
+ | Flutter/Dart constraints | `pubspec.yaml` → `environment:` |
11
+ | Existing CometChat + **major** | `pubspec.yaml` deps + `pubspec.lock` (`cometchat_chat_uikit`) |
12
+ | State management | deps: `flutter_bloc` · `riverpod` · `provider` · `get` · `mobx` |
13
+ | Navigation | deps/source: `go_router` · `auto_route` · plain `Navigator` |
14
+ | Config strategy | `--dart-define` in run configs · `envied` · `flutter_dotenv` · a constants file |
15
+ | Existing credentials | `cometchat-settings.json` · `.cometchat/config.json` · `--dart-define` keys |
16
+ | App entry | `lib/main.dart` — where `runApp` is, and what wraps it |
17
+ | Platform floors | `android/app/build.gradle.kts` (`minSdk`) · `ios/Podfile` (`platform :ios`) |
18
+
19
+ ## 2. version_conflict — STOP
20
+ A non-v6 `cometchat_chat_uikit` present on an **add** request is a STOP, not a warning: reconcile first,
21
+ never mix majors (`RULES.md`). v5 → v6 is `cometchat-flutter-v6-migration`. If v6 is already wired and
22
+ working, this is a **re-entry** — summarize what exists and ask what to ADD, don't re-run setup.
23
+
24
+ ## 3. Credentials — OFFER the fetch FIRST (never degrade to "paste it yourself")
25
+ **(a) Fetch from the dashboard — the default.** Load the CLI on demand:
26
+ ```bash
27
+ npx @cometchat/skills-cli@3 auth login
28
+ npx @cometchat/skills-cli@3 provision list --json
29
+ npx @cometchat/skills-cli@3 provision use --app-id <id> --json
30
+ ```
31
+ - **Never auto-create an app.** List, show the top few plus a "show all", and ASK which.
32
+ - `provision use` returns App ID / Region / Auth Key **and** writes a neutral `.cometchat/config.json`.
33
+ It does **not** know Flutter — writing the settings asset is the skill's job.
34
+
35
+ **(b) Manual paste** — Dashboard → Your App → Credentials. Use only if the user declines (a) or the CLI
36
+ can't run. Ask and WAIT; never guess a value.
37
+
38
+ ## 4. Write the settings asset
39
+ `cometchat-settings.json` at the **project root** (beside `pubspec.yaml`):
40
+ ```json
41
+ {
42
+ "appId": "APP_ID",
43
+ "region": "REGION",
44
+ "credentials": { "authKey": "AUTH_KEY" },
45
+ "uiKit": { "subscribePresenceForAllUsers": true, "enableCalling": false },
46
+ "chatSDK": { "autoEstablishSocketConnection": true }
47
+ }
48
+ ```
49
+ Register it (exact indentation matters in YAML):
50
+ ```yaml
51
+ flutter:
52
+ uses-material-design: true
53
+ assets:
54
+ - cometchat-settings.json
55
+ ```
56
+ Then: `flutter pub get`. **Do NOT gitignore a registered asset** — a fresh clone / CI `flutter build bundle`
57
+ fails with *"No file or variants found for asset: cometchat-settings.json"* if the file is missing. Instead
58
+ **commit a placeholder `cometchat-settings.json`** (same shape, placeholder/empty `authKey` — never a real
59
+ dev key) so the asset path always resolves, and have each dev and CI overwrite it with real credentials
60
+ locally / at build time. Guard against committing a real key with a pre-commit hook or CI check, not
61
+ `.gitignore`. Never echo the Auth Key back to the user or into logs.
62
+ > Optional keys: `chatSDK.adminHost` / `chatSDK.clientHost` (dedicated/on-prem clusters only).
63
+ > `uiKit.enableCalling` stays `false` until the user asks for calls (→ `cometchat-flutter-v6-calls`).
64
+
65
+ ### If the team already uses `--dart-define` / envied
66
+ The settings **file** is what `initFromSettings` reads — it cannot read `--dart-define`. Two honest options,
67
+ state the trade-off and let the user choose:
68
+ - Keep `initFromSettings` and generate `cometchat-settings.json` at build time from your existing secret
69
+ source (CI writes the file). Keeps telemetry attribution.
70
+ - Or use the classic `UIKitSettingsBuilder` + `CometChatUIKit.init(...)` with `--dart-define` values —
71
+ works, but loses `integrationSource="ai-agent"`. Only if the user prefers it after hearing the trade-off.
72
+
73
+ ## 5. Authorize — confirm it actually worked
74
+ `initFromSettings` reaches `onSuccess`, then `login` reaches `onSuccess` with a `User`. Failure modes:
75
+ - **Wrong Region** — the single most common cause of an immediate auth error. `us` / `eu` / `in`, matching
76
+ the Dashboard exactly.
77
+ - **UID doesn't exist** — `login` needs an existing user (Dashboard → Users; fresh apps seed
78
+ `cometchat-uid-1…`). Never invent one.
79
+ - **Asset not found** — see `troubleshooting.md`.
80
+
81
+ ## 6. Production
82
+ Omit `credentials.authKey`, mint a per-user auth token server-side, and call
83
+ `CometChatUIKit.loginWithAuthToken(...)` (`lifecycle.md`). Tell the user plainly that the Auth Key path you
84
+ wired is dev-only — flag dev-only AS dev-only.
@@ -0,0 +1,26 @@
1
+ # troubleshooting — symptom → cause → fix
2
+
3
+ The first stop when a Flutter integration renders wrong. Live page: `/ui-kit/flutter/troubleshooting`.
4
+
5
+ | Symptom | Likely cause | Fix |
6
+ |---|---|---|
7
+ | Blank/white screen where chat should be | A widget rendered before `login` succeeded | Gate the first frame on init **and** login (`lifecycle.md`) |
8
+ | `Unable to load asset: cometchat-settings.json` | File missing, not at project root, or not registered | Add it and list it under `flutter: assets:` in `pubspec.yaml`; re-run `flutter pub get` |
9
+ | Crash on `initFromSettings` before any UI | `WidgetsFlutterBinding.ensureInitialized()` missing | Call it first in `main()` |
10
+ | `RenderFlex children have non-zero flex but incoming height constraints are unbounded` | A kit list inside an unbounded parent | Wrap in `Expanded`, or give a fixed height (`layout.md`) |
11
+ | The list renders as a zero-height sliver | Same — content-driven parent | Same |
12
+ | Composer hidden by the keyboard | `resizeToAvoidBottomInset: false`, or a nested/absent `Scaffold` | Leave the default `true`; one `Scaffold` per screen |
13
+ | Header under the notch / composer under the home bar | No `SafeArea` | Wrap the body in `SafeArea` |
14
+ | `AUTH_ERR_AUTH_TOKEN_NOT_FOUND` / login fails immediately | Wrong **Region**, or the UID does not exist | Check `region` against the Dashboard; use a real UID from Dashboard → Users |
15
+ | Login fails only in release builds | Auth Key stripped/obfuscated, or no network permission | Verify the settings asset ships; check Android `INTERNET` permission |
16
+ | `Undefined name 'CometChatIncomingCall'` (or any call widget) | Imported only the chat barrel | Also import `package:cometchat_chat_uikit/cometchat_calls_uikit.dart` |
17
+ | Call buttons missing from the message header | Calls not enabled | `uiKit.enableCalling: true` in the settings file **and** `cometchat_calls_sdk` added (→ `-calls`) |
18
+ | Thread replies never appear / never send | `parentMessageId` passed without `user:`/`group:` | Pass BOTH on the thread list *and* composer |
19
+ | `The named parameter 'onBack' isn't defined` on the thread header | Following the docs page | It has no `onBack` — use the screen's `AppBar` (`DOCS-BACKLOG` F5) |
20
+ | `The named parameter 'onConversationItemClick' isn't defined` | Following the search docs page | `onConversationClicked` / `onMessageClicked` (`DOCS-BACKLOG` F3) |
21
+ | An enabled extension (polls/stickers) doesn't appear | Expecting v5-style registration | v6 auto-surfaces it; confirm the Dashboard toggle, add NO client code |
22
+ | Presence/online status never updates | `subscribePresenceForAllUsers` false in settings | Set it `true` (default) |
23
+ | Messages arrive only after reopening the screen | Socket not auto-connecting | `chatSDK.autoEstablishSocketConnection: true` |
24
+ | Android build fails on minSdk | App below the real floor (the docs' 24 is too low) | `minSdk = 26` in `android/app/build.gradle.kts` — forced by `cometchat_calls_sdk`, a hard dependency of the kit |
25
+ | iOS pod install fails | Deployment target too low (the docs' 13.0 is too low on 5.0.7) | `platform :ios, '15.1'` in `ios/Podfile`, then `pod install` |
26
+ | Everything breaks after upgrading from v5 | Mixed majors / removed v5 APIs | → `cometchat-flutter-v6-migration`; never mix majors |