@cometchat/skills 4.4.2 → 5.0.1

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 (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. 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.