@cometchat/skills 4.4.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +36 -0
  4. package/README.md +41 -163
  5. package/RULES.md +114 -0
  6. package/bin/cometchat-skills.mjs +1180 -0
  7. package/bin/legacy-skills.json +95 -0
  8. package/catalogs/android-v6.json +1646 -0
  9. package/catalogs/flutter-v6.json +651 -0
  10. package/catalogs/ios-v5.json +1383 -0
  11. package/catalogs/rn-calls-v5.json +134 -0
  12. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  13. package/catalogs/rn-sdk-v4.json +672 -0
  14. package/catalogs/rn-v5.json +449 -0
  15. package/catalogs/rn-v5.symbols.txt +216 -0
  16. package/catalogs/sdk-android-v5.json +514 -0
  17. package/contracts.android-calls-v5.json +122 -0
  18. package/contracts.android-v6.json +135 -0
  19. package/contracts.angular-v5.json +694 -0
  20. package/contracts.flutter-calls-v5.json +77 -0
  21. package/contracts.flutter-v6.json +126 -0
  22. package/contracts.ios-calls-v5.json +67 -0
  23. package/contracts.ios-v5.json +436 -0
  24. package/contracts.json +82 -0
  25. package/contracts.rn-calls-v5.json +77 -0
  26. package/contracts.rn-v5.json +727 -0
  27. package/contracts.sdk-android-v5.json +15 -0
  28. package/contracts.web-calls-v5.json +45 -0
  29. package/features.android-calls-v5.json +246 -0
  30. package/features.android-v6.json +65 -0
  31. package/features.angular-v5.json +521 -0
  32. package/features.flutter-calls-v5.json +286 -0
  33. package/features.flutter-v6.json +484 -0
  34. package/features.ios-calls-v5.json +236 -0
  35. package/features.ios-v5.json +573 -0
  36. package/features.json +61 -0
  37. package/features.rn-calls-v5.json +187 -0
  38. package/features.rn-v5.json +614 -0
  39. package/features.sdk-android-v5.json +40 -0
  40. package/features.sdk-jsv4.json +24 -0
  41. package/features.web-calls-v5.json +108 -0
  42. package/package.json +151 -74
  43. package/peers.yaml +312 -0
  44. package/registry/README.md +31 -0
  45. package/registry/android-calls-v5.json +54 -0
  46. package/registry/android-v6.json +137 -0
  47. package/registry/angular-v5.json +114 -0
  48. package/registry/flutter-calls-v5.json +54 -0
  49. package/registry/flutter-v6.json +119 -0
  50. package/registry/ios-calls-v5.json +59 -0
  51. package/registry/ios-v5.json +97 -0
  52. package/registry/rn-calls-v5.json +59 -0
  53. package/registry/rn-v5.json +129 -0
  54. package/registry/sdk-android-v5.json +53 -0
  55. package/registry/sdk-jsv4.json +53 -0
  56. package/registry/web-calls-v5.json +54 -0
  57. package/registry/web-v7.json +99 -0
  58. package/skills/cometchat/SKILL.md +42 -2096
  59. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  60. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  66. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  67. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  68. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  69. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  70. package/skills/cometchat-android-v6-calls/SKILL.md +128 -411
  71. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  72. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  73. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  74. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  75. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  76. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  77. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  78. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  79. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  80. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  81. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  82. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  83. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  84. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  85. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  86. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  87. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  88. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  89. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  90. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  91. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  92. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  93. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  94. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  95. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  96. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  97. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  98. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  99. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  100. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  101. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  102. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  103. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  104. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  105. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  106. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  107. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  108. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  109. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  110. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  111. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  112. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  113. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  114. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  115. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  116. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  117. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  118. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  119. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  120. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  121. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  122. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  123. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  127. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -387
  128. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  129. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  130. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  131. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  132. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  133. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  134. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  135. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  136. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  137. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  138. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  139. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  140. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  141. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  142. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  143. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  144. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  145. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  146. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  147. package/skills/cometchat-ios-calls/SKILL.md +105 -511
  148. package/skills/cometchat-ios-components/SKILL.md +44 -834
  149. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  150. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  151. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  152. package/skills/cometchat-ios-core/references/install.md +23 -0
  153. package/skills/cometchat-ios-core/references/layout.md +186 -0
  154. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  155. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  156. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  157. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  158. package/skills/cometchat-ios-features/SKILL.md +29 -738
  159. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  160. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  161. package/skills/cometchat-ios-push/SKILL.md +24 -602
  162. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  163. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  164. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  165. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  166. package/skills/cometchat-onboarding/SKILL.md +89 -0
  167. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  168. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  169. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  170. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  171. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  172. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  173. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  174. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  175. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  176. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  177. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  178. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  179. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  180. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  181. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  182. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  183. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  184. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  185. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  186. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  187. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  188. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  189. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  190. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  191. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  192. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  193. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  194. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  195. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  196. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  198. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  199. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  200. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  201. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  202. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  203. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  204. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  205. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  206. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  207. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  208. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  209. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  210. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  211. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  212. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  213. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  214. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  215. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  216. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  217. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  218. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  219. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  220. package/test-suite/README.md +70 -0
  221. package/test-suite/catalogs/android-calls-v5.json +830 -0
  222. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  223. package/test-suite/catalogs/android-v6.json +1646 -0
  224. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  225. package/test-suite/catalogs/angular-v5.json +7587 -0
  226. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  227. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  228. package/test-suite/catalogs/flutter-v6.json +651 -0
  229. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  230. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  231. package/test-suite/catalogs/ios-v5.json +1383 -0
  232. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  233. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  234. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  235. package/test-suite/catalogs/rn-v5.json +449 -0
  236. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  237. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  238. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  239. package/test-suite/catalogs/web-calls-v5.json +195 -0
  240. package/test-suite/catalogs/web-v7.json +1243 -0
  241. package/test-suite/scripts/build-registry.mjs +113 -0
  242. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  243. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  244. package/test-suite/scripts/lint-skills.mjs +909 -0
  245. package/test-suite/scripts/measure-tokens.mjs +169 -0
  246. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  247. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  248. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  249. package/test-suite/scripts/verify-catalog.mjs +242 -0
  250. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  251. package/test-suite/scripts/verify-detection.mjs +178 -0
  252. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  253. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  254. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  255. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  256. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  257. package/test-suite/typecheck/angular-v5/package.json +21 -0
  258. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  259. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  260. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  261. package/test-suite/typecheck/web-v7/package.json +18 -0
  262. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  263. package/bin/install.js +0 -1003
  264. package/skills/.claude-plugin/marketplace.json +0 -86
  265. package/skills/cometchat/references/asking-questions.md +0 -48
  266. package/skills/cometchat-a11y/SKILL.md +0 -477
  267. package/skills/cometchat-android-v5/SKILL.md +0 -121
  268. package/skills/cometchat-android-v5-calls/SKILL.md +0 -427
  269. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  270. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  271. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  272. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  273. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  274. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  275. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  276. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  277. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  278. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  279. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  280. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  281. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  282. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  283. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  284. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  285. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  286. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  287. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  288. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  289. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  290. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  291. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  292. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  293. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  294. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  295. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  296. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  297. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  298. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  299. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  300. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  301. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  302. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  303. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  304. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  305. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  306. package/skills/cometchat-android-v6/SKILL.md +0 -108
  307. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  308. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  309. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  310. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  311. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  312. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  313. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  314. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  315. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  316. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  317. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  318. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  319. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  320. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  321. package/skills/cometchat-angular-calls/SKILL.md +0 -378
  322. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  323. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  324. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  325. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  326. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  327. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  328. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  329. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  330. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  331. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  332. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  333. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  334. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  335. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  336. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  337. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  338. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  339. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  340. package/skills/cometchat-angular-components/SKILL.md +0 -235
  341. package/skills/cometchat-angular-core/SKILL.md +0 -386
  342. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  343. package/skills/cometchat-angular-features/SKILL.md +0 -329
  344. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  345. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  346. package/skills/cometchat-angular-production/SKILL.md +0 -564
  347. package/skills/cometchat-angular-push/SKILL.md +0 -389
  348. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  349. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  350. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  351. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  352. package/skills/cometchat-calls/SKILL.md +0 -364
  353. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  354. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  355. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  356. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  357. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  358. package/skills/cometchat-components/SKILL.md +0 -1142
  359. package/skills/cometchat-core/SKILL.md +0 -1048
  360. package/skills/cometchat-customization/SKILL.md +0 -580
  361. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  362. package/skills/cometchat-features/SKILL.md +0 -861
  363. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  364. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -453
  365. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  366. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  367. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  368. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  369. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  370. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  371. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  372. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  373. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  374. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  375. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  376. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  377. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  378. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  379. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  380. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  381. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  382. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  383. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  384. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  385. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  386. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  387. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  388. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  389. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  390. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  391. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  392. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  393. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  394. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  395. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  396. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  397. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  398. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  399. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  400. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  401. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  402. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  403. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  404. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  405. package/skills/cometchat-i18n/SKILL.md +0 -419
  406. package/skills/cometchat-ios/SKILL.md +0 -325
  407. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -174
  408. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  409. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  410. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  411. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  412. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  413. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  414. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  415. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  416. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  417. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  418. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  419. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  420. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  421. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  422. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  423. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  424. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  425. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  426. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  427. package/skills/cometchat-ios-production/SKILL.md +0 -738
  428. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  429. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  430. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  431. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  432. package/skills/cometchat-native-calls/SKILL.md +0 -669
  433. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  434. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  435. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  436. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  437. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  438. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  439. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  440. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  441. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  442. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  443. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  444. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  445. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  446. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  447. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  448. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  449. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  450. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  451. package/skills/cometchat-native-components/SKILL.md +0 -628
  452. package/skills/cometchat-native-core/SKILL.md +0 -679
  453. package/skills/cometchat-native-customization/SKILL.md +0 -716
  454. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  455. package/skills/cometchat-native-features/SKILL.md +0 -638
  456. package/skills/cometchat-native-placement/SKILL.md +0 -509
  457. package/skills/cometchat-native-production/SKILL.md +0 -700
  458. package/skills/cometchat-native-push/SKILL.md +0 -594
  459. package/skills/cometchat-native-testing/SKILL.md +0 -582
  460. package/skills/cometchat-native-theming/SKILL.md +0 -681
  461. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  462. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  463. package/skills/cometchat-placement/SKILL.md +0 -1360
  464. package/skills/cometchat-production/SKILL.md +0 -1027
  465. package/skills/cometchat-react-calls/SKILL.md +0 -749
  466. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  467. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  468. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  469. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  470. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  471. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  472. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  473. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  474. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  475. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  476. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  477. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  478. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  479. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  480. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  481. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  482. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  483. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  484. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  485. package/skills/cometchat-react-push/SKILL.md +0 -634
  486. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  487. package/skills/cometchat-react-testing/SKILL.md +0 -413
  488. package/skills/cometchat-theming/SKILL.md +0 -498
  489. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,210 +0,0 @@
1
- # CometChat Calls Flutter SDK v4 → v5 migration (raw SDK)
2
-
3
- Moving the **Calls SDK** from 4.x to **`cometchat_calls_sdk ^5.0.2`** on the Flutter V5 (GetX) chat UI Kit — per the product decision that all families use the V5 calls SDK.
4
-
5
- **Important:** This migrates the **Calls SDK** (4.x → 5.x), not the chat UI Kit cohort (V5 GetX → V6 Bloc, which is `cometchat-flutter-v6-migration`). The chat UI Kit stays on V5 GetX; only the calls layer changes.
6
-
7
- > **Why you can't just bump `cometchat_calls_uikit`.** The latest `cometchat_calls_uikit` (5.0.16) still transitively pins `cometchat_calls_sdk ^4.2.2`, and its prebuilt call widgets (`CometChatCallButtons`/`CometChatIncomingCall`/`CometChatOutgoingCall`/`CometChatOngoingCall`) are compiled against the 4.x API. To run the 5.x calls SDK you **drop `cometchat_calls_uikit`** and integrate the **raw `cometchat_calls_sdk ^5.0.2`** directly with a custom call surface.
8
-
9
- **Substrate of record:** `~/.pub-cache/hosted/pub.dev/cometchat_calls_sdk-5.0.2/lib/`
10
- **Canonical docs:** https://www.cometchat.com/docs/calls/flutter/migration-guide-v5
11
-
12
- ---
13
-
14
- ## Step 1 — Swap the dependency
15
-
16
- ```diff
17
- # pubspec.yaml
18
- dependencies:
19
- cometchat_chat_uikit: ^5.2.14 # chat UI Kit stays on V5 (GetX)
20
- - cometchat_calls_uikit: ^5.0.15 # 4.x-bound — remove
21
- + cometchat_calls_sdk: ^5.0.2 # raw 5.x calls SDK (direct dependency)
22
- ```
23
-
24
- ```bash
25
- flutter pub get
26
- cd ios && pod install # if you have iOS
27
- ```
28
-
29
- ---
30
-
31
- ## Step 2 — Migrate init
32
-
33
- `init` takes a `CallAppSettings` built via `CallAppSettingBuilder` (`src/builder/call_app_settings_request.dart:36`) and runs with `onSuccess`/`onError` callbacks (`cometchatcalls.dart:172`).
34
-
35
- ```diff
36
- - final callSettings = CallAppSettingsBuilder()
37
- - ..setAppId('APP_ID')
38
- - ..setRegion('REGION');
39
- - await CometChatCalls.init(callSettings);
40
-
41
- + final callAppSettings = (CallAppSettingBuilder()
42
- + ..appId = 'APP_ID'
43
- + ..region = 'REGION')
44
- + .build();
45
- + CometChatCalls.init(
46
- + callAppSettings,
47
- + onSuccess: (String s) {},
48
- + onError: (CometChatCallsException e) {},
49
- + );
50
- ```
51
-
52
- ---
53
-
54
- ## Step 3 — Add the 5.x Calls SDK login
55
-
56
- 4.x had no calls login (it took a per-call auth token). 5.x has its own login that caches the token internally (`cometchatcalls.dart:316`).
57
-
58
- ```dart
59
- // After CometChat.login completes:
60
- final authToken = await CometChat.getUserAuthToken(); // static; no User.getAuthToken() method
61
- if (authToken != null) {
62
- CometChatCalls.loginWithAuthToken(
63
- authToken: authToken,
64
- onSuccess: (user) {},
65
- onError: (CometChatCallsException e) {},
66
- );
67
- }
68
- ```
69
-
70
- ---
71
-
72
- ## Step 4 — Migrate session settings
73
-
74
- `SessionSettingsBuilder` replaces `CallSettingsBuilder` (the latter is `@Deprecated`, `src/builder/call_settings.dart:209`). Methods are chainable / cascade setters (`src/builder/session_settings.dart`).
75
-
76
- ```diff
77
- - final callSettings = (CallSettingsBuilder()
78
- - ..setSessionType(SessionType.video)
79
- - ..startWithAudioMuted(false)
80
- - ..showRecordingButton(true))
81
- - .build();
82
-
83
- + final sessionSettings = (SessionSettingsBuilder()
84
- + ..setType(SessionType.video) // session_settings.dart:197
85
- + ..startAudioMuted(false) // :173
86
- + ..startVideoPaused(false) // :167
87
- + ..setLayout(LayoutType.tile) // :179
88
- + ..hideRecordingButton(false)) // :227 (INVERTED sense vs show*)
89
- + .build();
90
- ```
91
-
92
- ---
93
-
94
- ## Step 5 — Migrate the listener to the 5 split listeners
95
-
96
- The single `CometChatCallsEventsListener` is `@Deprecated` (`src/listener/cometchat_calls_events_listener.dart:16`). 5.x splits events across `SessionStatusListeners`, `ParticipantEventListeners`, `MediaEventListeners`, `ButtonClickListeners`, `LayoutListeners` — registered on `CallSession.getInstance()` (after `joinSession.onSuccess`).
97
-
98
- ```diff
99
- - class MyEvents implements CometChatCallsEventsListener {
100
- - @override
101
- - void onCallEnded() { /* ... */ }
102
- - @override
103
- - void onUserJoined(RTCUser user) { /* ... */ }
104
- - // ...
105
- - }
106
- - CometChatCalls.addCallsEventListeners('id', MyEvents());
107
-
108
- + class MyEvents implements SessionStatusListeners, ParticipantEventListeners {
109
- + @override
110
- + void onSessionLeft() { /* was onCallEnded */ } // session_status_listeners.dart:10
111
- + @override
112
- + void onParticipantJoined(Participant p) { /* was onUserJoined */ } // participant_event_listeners.dart:12
113
- + @override
114
- + void onParticipantLeft(Participant p) { /* was onUserLeft */ } // :15
115
- + // ... remaining interface methods (no-ops or pass-through)
116
- + }
117
- +
118
- + // inside joinSession.onSuccess:
119
- + final events = MyEvents();
120
- + CallSession.getInstance()?.addSessionStatusListener(events); // call_session.dart:66
121
- + CallSession.getInstance()?.addParticipantEventListener(events); // :74
122
- +
123
- + @override
124
- + void dispose() {
125
- + CallSession.getInstance()?.removeSessionStatusListener(events);
126
- + CallSession.getInstance()?.removeParticipantEventListener(events);
127
- + super.dispose();
128
- + }
129
- ```
130
-
131
- ---
132
-
133
- ## Step 6 — Start/join + control method renames + receiver shift
134
-
135
- The two-step `generateToken` + `startSession` collapses into a single `joinSession` (`cometchatcalls.dart:735`). In-call controls move from static methods on `CometChatCalls` to **instance methods on `CallSession`** (the singleton via `CallSession.getInstance()`).
136
-
137
- ```diff
138
- // start the session
139
- - CometChatCalls.generateToken(sessionId, authToken, onSuccess: (t) {
140
- - CometChatCalls.startSession(t.token!, callSettings, onSuccess: (w) {}, onError: (e) {});
141
- - }, onError: (e) {});
142
- + CometChatCalls.joinSession(
143
- + sessionId: sessionId, // SDK mints the call token internally
144
- + sessionSettings: sessionSettings,
145
- + onSuccess: (Widget? w) {},
146
- + onError: (CometChatCallsException e) {},
147
- + );
148
-
149
- // teardown — receiver changes from CometChatCalls (static) to CallSession (singleton)
150
- - CometChatCalls.endSession(onSuccess: (_) {}, onError: (e) {})
151
- + await CallSession.getInstance()?.leaveSession() // call_session.dart:272
152
-
153
- // media controls — same receiver shift, now no-arg
154
- - CometChatCalls.muteAudio()
155
- + CallSession.getInstance()?.muteAudio() // call_session.dart:131
156
- + CallSession.getInstance()?.unMuteAudio() // :145
157
- - CometChatCalls.pauseVideo() / resumeVideo()
158
- + CallSession.getInstance()?.pauseVideo() / resumeVideo() // :168 / :182
159
-
160
- // layout — also moves to the instance (NOT static in 5.x)
161
- - CometChatCalls.setLayout(CallLayout.spotlight)
162
- + CallSession.getInstance()?.setLayout(LayoutType.spotlight) // :394
163
- ```
164
-
165
- **`CallSession.getInstance()` returns `CallSession?` (nullable)** — null when there's no active session. Use `?.` to safely chain.
166
-
167
- ---
168
-
169
- ## Step 7 — GetX state preservation
170
-
171
- If you use GetX controllers around the calls (per `cometchat-flutter-v5-calls/SKILL.md`), the state shape doesn't change — only the underlying SDK calls. Sample diff in a GetX controller:
172
-
173
- ```diff
174
- class CallController extends GetxController {
175
- void startCall(String sessionId) async {
176
- - await CometChatCalls.startSession(callToken, settings: callSettings);
177
- + CometChatCalls.joinSession(sessionId: sessionId, sessionSettings: sessionSettings,
178
- + onSuccess: (w) {}, onError: (e) {});
179
- }
180
-
181
- void endCall() async {
182
- - CometChatCalls.endSession();
183
- + await CallSession.getInstance()?.leaveSession();
184
- }
185
- }
186
- ```
187
-
188
- ---
189
-
190
- ## Verification checklist
191
-
192
- - [ ] `pubspec.yaml` lists `cometchat_calls_sdk: ^5.0.2` and NO `cometchat_calls_uikit`
193
- - [ ] `flutter pub get` + `pod install` succeed
194
- - [ ] `CometChatCalls.loginWithAuthToken(authToken:)` called after `CometChat.login`
195
- - [ ] `CallSettingsBuilder` replaced with `SessionSettingsBuilder`
196
- - [ ] Single `CometChatCallsEventsListener` replaced with the 5 split listeners on `CallSession.getInstance()`
197
- - [ ] `generateToken` + `startSession` collapsed into `joinSession(sessionId:, sessionSettings:, ...)`
198
- - [ ] In-call controls + `leaveSession` moved to `CallSession.getInstance()?.X()`
199
- - [ ] Prebuilt `cometchat_calls_uikit` call widgets removed; custom call surface in place
200
- - [ ] Real-device smoke: iOS + Android, incoming/outgoing/mute/layout/leave
201
-
202
- ---
203
-
204
- ## Pointers
205
-
206
- - Canonical migration: https://www.cometchat.com/docs/calls/flutter/migration-guide-v5
207
- - `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture on the 5.x SDK (GetX patterns)
208
- - `cometchat-flutter-v5-calls/references/call-session.md` — canonical 5.x SDK API surface
209
- - `cometchat-flutter-v6-calls/` — V6 cohort (Bloc) on the SAME 5.0.2 calls SDK
210
- ```
@@ -1,255 +0,0 @@
1
- # Raise hand on Flutter (UIKit V5, GetX-based)
2
-
3
- Same SDK conceptual API as web/native. Flutter V5 uses GetX for state management — the canonical pattern is a `GetxController` that wraps the call event listener and publishes raised-hand state via `Rx<List<RaisedParticipant>>`.
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/flutter/raise-hand
6
- **Read first:** `cometchat-react-calls/references/raise-hand.md` — UX shape + anti-patterns are identical; this is the V5 GetX-specific wiring.
7
-
8
- ---
9
-
10
- ## SDK API
11
-
12
- Raise/lower hand are **instance methods on the `CallSession` singleton**, NOT static on `CometChatCalls` (`cometchat_calls_sdk-5.0.2` `src/call_session.dart:292,306`). Participant hand events arrive via `ParticipantEventListeners`, registered through `CallSession.getInstance()?.addParticipantEventListener(...)` (`src/call_session.dart:74`).
13
-
14
- ```dart
15
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
16
-
17
- // Local user
18
- CallSession.getInstance()?.raiseHand(); // call_session.dart:292
19
- CallSession.getInstance()?.lowerHand(); // call_session.dart:306
20
-
21
- // Listener — implement the split ParticipantEventListeners interface
22
- class HandListener implements ParticipantEventListeners {
23
- @override
24
- void onParticipantHandRaised(Participant participant) { // participant_event_listeners.dart:30
25
- // participant.uid, participant.name (both nullable)
26
- }
27
-
28
- @override
29
- void onParticipantHandLowered(Participant participant) { // :33
30
- // ...
31
- }
32
- // ... other ParticipantEventListeners methods (no-ops or pass-through)
33
- }
34
-
35
- // Register on the session singleton (inside joinSession.onSuccess):
36
- CallSession.getInstance()?.addParticipantEventListener(HandListener()); // :74
37
-
38
- // Settings flag — method on the (non-deprecated) SessionSettingsBuilder.
39
- final settings = (SessionSettingsBuilder()
40
- ..hideRaiseHandButton(true)) // session_settings.dart:215
41
- .build();
42
- ```
43
-
44
- ---
45
-
46
- ## GetX controller
47
-
48
- ```dart
49
- import 'package:get/get.dart';
50
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
51
-
52
- class RaisedParticipant {
53
- final String uid;
54
- final String name;
55
- final DateTime raisedAt;
56
- RaisedParticipant({required this.uid, required this.name, required this.raisedAt});
57
- }
58
-
59
- class RaiseHandController extends GetxController implements ParticipantEventListeners {
60
- final localRaised = false.obs;
61
- final raised = <RaisedParticipant>[].obs;
62
-
63
- void toggle() {
64
- if (localRaised.value) {
65
- CallSession.getInstance()?.lowerHand();
66
- } else {
67
- CallSession.getInstance()?.raiseHand();
68
- }
69
- localRaised.value = !localRaised.value;
70
- }
71
-
72
- @override
73
- void onParticipantHandRaised(Participant p) {
74
- // Participant.uid / .name are nullable in 5.x.
75
- final uid = p.uid ?? '';
76
- final entry = RaisedParticipant(
77
- uid: uid, name: p.name ?? uid, raisedAt: DateTime.now(),
78
- );
79
- raised.removeWhere((r) => r.uid == uid);
80
- raised.add(entry);
81
- raised.sort((a, b) => a.raisedAt.compareTo(b.raisedAt));
82
- }
83
-
84
- @override
85
- void onParticipantHandLowered(Participant p) {
86
- raised.removeWhere((r) => r.uid == (p.uid ?? ''));
87
- }
88
-
89
- // ... implement other ParticipantEventListeners methods (no-ops or pass-through)
90
- }
91
- ```
92
-
93
- `.obs` is GetX's reactive marker. UI rebuilds automatically when these mutate.
94
-
95
- ---
96
-
97
- ## Toggle button widget
98
-
99
- ```dart
100
- class RaiseHandButton extends StatelessWidget {
101
- const RaiseHandButton({super.key});
102
-
103
- @override
104
- Widget build(BuildContext context) {
105
- final ctrl = Get.find<RaiseHandController>();
106
- return Obx(() => GestureDetector(
107
- onTap: () {
108
- ctrl.toggle();
109
- // Announce for screen readers
110
- SemanticsService.announce(
111
- ctrl.localRaised.value ? 'Hand raised' : 'Hand lowered',
112
- TextDirection.ltr,
113
- );
114
- },
115
- child: Semantics(
116
- button: true,
117
- selected: ctrl.localRaised.value,
118
- label: ctrl.localRaised.value ? 'Lower hand' : 'Raise hand',
119
- child: Container(
120
- padding: const EdgeInsets.all(12),
121
- decoration: BoxDecoration(
122
- color: ctrl.localRaised.value
123
- ? const Color(0xFFFFD60A)
124
- : Colors.white24,
125
- borderRadius: BorderRadius.circular(32),
126
- ),
127
- child: Row(
128
- children: [
129
- const Text('✋'),
130
- const SizedBox(width: 4),
131
- Text(ctrl.localRaised.value ? 'Lower' : 'Raise'),
132
- ],
133
- ),
134
- ),
135
- ),
136
- ));
137
- }
138
- }
139
- ```
140
-
141
- `SemanticsService.announce` is the Flutter equivalent of `aria-live` / `UIAccessibility.post(.announcement, ...)` — TalkBack and VoiceOver pick up the announcement.
142
-
143
- `Semantics` wrapper sets `button: true`, `selected:`, `label:` — these map to platform a11y conventions.
144
-
145
- ---
146
-
147
- ## Raised-hands sheet (DraggableScrollableSheet)
148
-
149
- ```dart
150
- class RaisedHandsSheet extends StatelessWidget {
151
- const RaisedHandsSheet({super.key});
152
-
153
- @override
154
- Widget build(BuildContext context) {
155
- final ctrl = Get.find<RaiseHandController>();
156
- return DraggableScrollableSheet(
157
- initialChildSize: 0.1,
158
- minChildSize: 0.1,
159
- maxChildSize: 0.5,
160
- builder: (context, scrollController) => Container(
161
- decoration: const BoxDecoration(
162
- color: Colors.white,
163
- borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
164
- ),
165
- child: Obx(() => ListView(
166
- controller: scrollController,
167
- padding: const EdgeInsets.all(16),
168
- children: [
169
- Text(
170
- 'Raised hands (${ctrl.raised.length})',
171
- style: const TextStyle(fontWeight: FontWeight.w600),
172
- ),
173
- const SizedBox(height: 8),
174
- for (final p in ctrl.raised)
175
- ListTile(
176
- leading: const Text('✋', style: TextStyle(fontSize: 20)),
177
- title: Text(p.name),
178
- trailing: Text(
179
- '${DateTime.now().difference(p.raisedAt).inSeconds}s ago',
180
- style: const TextStyle(color: Colors.grey),
181
- ),
182
- ),
183
- ],
184
- )),
185
- ),
186
- );
187
- }
188
- }
189
- ```
190
-
191
- ---
192
-
193
- ## Wiring to the call session
194
-
195
- ```dart
196
- RaiseHandController? _handCtrl;
197
-
198
- @override
199
- void initState() {
200
- super.initState();
201
- _handCtrl = Get.put(RaiseHandController());
202
- // NOTE: attach the listener inside joinSession.onSuccess (CallSession.getInstance()
203
- // is null until the session exists). If this widget is mounted only after the
204
- // session is live, attach here:
205
- CallSession.getInstance()?.addParticipantEventListener(_handCtrl!); // call_session.dart:74
206
- }
207
-
208
- @override
209
- void dispose() {
210
- if (_handCtrl != null) {
211
- CallSession.getInstance()?.removeParticipantEventListener(_handCtrl!); // call_session.dart:78
212
- }
213
- Get.delete<RaiseHandController>();
214
- super.dispose();
215
- }
216
- ```
217
-
218
- The 5.x SDK identifies listeners by object identity (a `Set`), not a string ID — keep the same controller instance you registered and pass it to `removeParticipantEventListener` on dispose.
219
-
220
- ---
221
-
222
- ## Anti-patterns
223
-
224
- Web sister reference rules apply, plus Flutter V5-specific:
225
-
226
- 1. **Forgetting `Get.delete<RaiseHandController>()` on dispose.** GetX retains the controller across navigation — listeners survive past the call view, fire stale events.
227
- 2. **`Get.put(RaiseHandController(), permanent: true)` for the call.** Lifetime is too long; controller survives logout. Use scoped `Get.put` without permanent.
228
- 3. **Skipping `Semantics` wrapper on the button.** TalkBack reads the GestureDetector as untyped — bad a11y.
229
- 4. **`Obx` rebuilding the entire widget tree** when only one `.obs` field changes. Wrap minimally — the `Obx` should hug only the reactive part.
230
- 5. **DraggableScrollableSheet without `initialChildSize` < `minChildSize`** — sheet pops above the screen on render, looks broken.
231
-
232
- ---
233
-
234
- ## Verification checklist
235
-
236
- - [ ] `RaiseHandController` is a `GetxController`
237
- - [ ] `localRaised` and `raised` are `.obs` reactive
238
- - [ ] `Obx` wraps only reactive parts of the UI
239
- - [ ] `Semantics` wrapper on toggle button with `button: true, selected:, label:`
240
- - [ ] `SemanticsService.announce` on toggle
241
- - [ ] Same controller instance registered via `CallSession.getInstance()?.addParticipantEventListener(ctrl)` and removed via `removeParticipantEventListener(ctrl)` on dispose
242
- - [ ] `Get.delete<RaiseHandController>()` in `dispose()`
243
- - [ ] `SessionSettingsBuilder()..hideRaiseHandButton(true)` if custom UI
244
- - [ ] Real-device smoke: 3 devices (mix of iOS + Android), raise from 2 → host sees both
245
- - [ ] TalkBack / VoiceOver announces "Hand raised" / "Hand lowered" on toggle
246
-
247
- ---
248
-
249
- ## Pointers
250
-
251
- - `cometchat-react-calls/references/raise-hand.md` — sister reference (UX shape)
252
- - `cometchat-flutter-v5-calls` SKILL.md — V5 hard rules + GetX scope rules
253
- - `cometchat-flutter-v6-calls/references/raise-hand.md` — V6 sibling (Bloc-based — different state shape)
254
- - `cometchat-a11y` — Flutter Semantics + SemanticsService
255
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/raise-hand
@@ -1,196 +0,0 @@
1
- # Ringing — call signaling with custom UI (Flutter V5 / GetX)
2
-
3
- Same SDK shape as web/RN. Flutter-specific deltas: GetX-controlled state, flutter_callkit_incoming for OS-level backgrounded UI, just_audio for foreground ringtone.
4
-
5
- **Read first:** `cometchat-react-calls/references/ringing-integration.md` — full architecture, hard rules.
6
-
7
- ---
8
-
9
- ## SDK API + GetX controller
10
-
11
- ```dart
12
- import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
13
- import 'package:cometchat_sdk/cometchat_sdk.dart'; // Call, CallListener (Chat SDK signaling)
14
-
15
- class CallSignalingController extends GetxController implements CallListener {
16
- final incoming = Rx<Call?>(null);
17
- final outgoing = Rx<Call?>(null);
18
- final activeSessionId = Rx<String?>(null);
19
-
20
- static const _listenerId = 'app';
21
-
22
- @override
23
- void onInit() {
24
- super.onInit();
25
- CometChat.addCallListener(_listenerId, this);
26
- }
27
-
28
- @override
29
- void onIncomingCallReceived(Call call) {
30
- incoming.value = call;
31
- }
32
-
33
- @override
34
- void onOutgoingCallAccepted(Call call) {
35
- outgoing.value = null;
36
- activeSessionId.value = call.sessionId;
37
- }
38
-
39
- @override
40
- void onOutgoingCallRejected(Call call) {
41
- outgoing.value = null;
42
- }
43
-
44
- @override
45
- void onIncomingCallCancelled(Call call) {
46
- incoming.value = null;
47
- }
48
-
49
- @override
50
- void onCallEndedMessageReceived(Call call) {
51
- incoming.value = null;
52
- outgoing.value = null;
53
- activeSessionId.value = null;
54
- }
55
-
56
- Future<void> initiate(String receiverUid, {String type = 'video'}) async {
57
- final call = Call(
58
- receiverUid: receiverUid,
59
- type: type == 'video' ? CometChatCallType.video : CometChatCallType.audio, // ctor param is `type`, not `callType`
60
- receiverType: CometChatReceiverType.user,
61
- );
62
- // initiateCall is void + callback: the Call comes back in onSuccess, not via await.
63
- CometChat.initiateCall(call,
64
- onSuccess: (Call result) => outgoing.value = result,
65
- onError: (CometChatException e) => debugPrint(e.message ?? ''));
66
- }
67
-
68
- Future<void> accept(Call call) async {
69
- // acceptCall takes the sessionID POSITIONALLY + onSuccess/onError; it returns void.
70
- CometChat.acceptCall(call.sessionId!,
71
- onSuccess: (Call result) {
72
- incoming.value = null;
73
- activeSessionId.value = result.sessionId;
74
- },
75
- onError: (CometChatException e) => debugPrint(e.message ?? ''));
76
- }
77
-
78
- Future<void> reject(Call call) async {
79
- // rejectCall: positional sessionID + status String + onSuccess/onError (void).
80
- CometChat.rejectCall(call.sessionId!, CometChatCallStatus.rejected,
81
- onSuccess: (Call result) => incoming.value = null,
82
- onError: (CometChatException e) => debugPrint(e.message ?? ''));
83
- }
84
-
85
- @override
86
- void onClose() {
87
- CometChat.removeCallListener(_listenerId);
88
- super.onClose();
89
- }
90
- }
91
- ```
92
-
93
- Initialize at app start via `Get.put(CallSignalingController(), permanent: true);` so the listener survives navigation.
94
-
95
- ---
96
-
97
- ## Incoming-call overlay
98
-
99
- ```dart
100
- class IncomingCallOverlay extends StatelessWidget {
101
- const IncomingCallOverlay({super.key});
102
-
103
- @override
104
- Widget build(BuildContext context) {
105
- final ctrl = Get.find<CallSignalingController>();
106
-
107
- return Obx(() {
108
- final call = ctrl.incoming.value;
109
- if (call == null) return const SizedBox.shrink();
110
-
111
- return Material(
112
- color: Colors.black.withOpacity(0.85),
113
- child: Center(
114
- child: Column(
115
- mainAxisSize: MainAxisSize.min,
116
- children: [
117
- CircleAvatar(
118
- radius: 60,
119
- backgroundImage: NetworkImage(call.callInitiator?.avatar ?? ''),
120
- ),
121
- const SizedBox(height: 16),
122
- Text(
123
- call.callInitiator?.name ?? 'Unknown',
124
- style: const TextStyle(color: Colors.white, fontSize: 24),
125
- ),
126
- Text('Incoming ${call.type} call', style: const TextStyle(color: Colors.white70)),
127
- const SizedBox(height: 32),
128
- Row(
129
- mainAxisAlignment: MainAxisAlignment.center,
130
- children: [
131
- Semantics(
132
- label: 'Decline call',
133
- button: true,
134
- child: FloatingActionButton(
135
- backgroundColor: Colors.red,
136
- onPressed: () => ctrl.reject(call),
137
- child: const Icon(Icons.call_end),
138
- ),
139
- ),
140
- const SizedBox(width: 32),
141
- Semantics(
142
- label: 'Accept call',
143
- button: true,
144
- child: FloatingActionButton(
145
- backgroundColor: Colors.green,
146
- onPressed: () => ctrl.accept(call),
147
- child: const Icon(Icons.call),
148
- ),
149
- ),
150
- ],
151
- ),
152
- ],
153
- ),
154
- ),
155
- );
156
- });
157
- }
158
- }
159
- ```
160
-
161
- Wrap above the navigator (typically in `MaterialApp.builder` or as a sibling Stack item) so it surfaces over any route.
162
-
163
- ---
164
-
165
- ## Backgrounded ring — flutter_callkit_incoming + push (mandatory)
166
-
167
- GetX listeners only fire while the app is alive. For backgrounded/killed ring, server fires push (APNs PushKit on iOS, FCM data-message on Android) → `flutter_callkit_incoming` shows OS-level UI. See `cometchat-flutter-v5-calls/references/server-push-bridge.md`.
168
-
169
- ---
170
-
171
- ## Anti-patterns
172
-
173
- Web sister rules apply, plus Flutter-specific:
174
-
175
- 1. **`Get.put` without `permanent: true`.** Controller disposed on route change → listener gone → backgrounded calls miss.
176
- 2. **`StatefulWidget` with `setState` instead of `Obx`.** Rx values won't trigger rebuild without `Obx` wrapper.
177
- 3. **JS-style ringtone via `audioplayers` during a CallKit ring.** Both play at once.
178
-
179
- ---
180
-
181
- ## Verification checklist
182
-
183
- - [ ] `Get.put(CallSignalingController(), permanent: true)` at app start
184
- - [ ] `IncomingCallOverlay` mounted in `MaterialApp.builder`
185
- - [ ] `removeCallListener` in `onClose`
186
- - [ ] `flutter_callkit_incoming` wired for backgrounded ring
187
- - [ ] Real-device smoke (iOS + Android): foreground, backgrounded, killed ring all surface UI
188
-
189
- ---
190
-
191
- ## Pointers
192
-
193
- - `cometchat-react-calls/references/ringing-integration.md` — canonical
194
- - `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture
195
- - `cometchat-flutter-v5-calls/references/server-push-bridge.md` — backgrounded ring
196
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/ringing