@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,193 +0,0 @@
1
- # Adding calls to an existing chat integration (Flutter V5)
2
-
3
- You have `cometchat_chat_uikit` v5 working. Adding calls = the **raw 5.x calls SDK** (`cometchat_calls_sdk: ^5.0.2`, direct dependency) plus iOS/Android native config and a custom call surface.
4
-
5
- > **Do NOT add `cometchat_calls_uikit`.** Its latest (5.0.16) pins `cometchat_calls_sdk ^4.2.2` and its prebuilt call widgets are 4.x-bound — incompatible with the 5.x calls SDK. Use the raw SDK + custom UI.
6
-
7
- **Read first:** `cometchat-flutter-v5-calls/SKILL.md` — Flutter calls architecture (GetX patterns) + `references/call-session.md` for the canonical 5.x surface.
8
-
9
- ---
10
-
11
- ## Step 1 — Add the calls package
12
-
13
- ```yaml
14
- # pubspec.yaml
15
- dependencies:
16
- cometchat_chat_uikit: ^5.x.x # existing (GetX chat kit — keep)
17
- cometchat_calls_sdk: ^5.0.2 # NEW — raw 5.x calls SDK (direct)
18
- flutter_callkit_incoming: ^2.0.4 # for OS-level incoming-call UI
19
- flutter_voip_pushkit: ^0.2.1 # iOS PushKit
20
- firebase_messaging: ^15.0.0 # Android FCM
21
- ```
22
-
23
- ```bash
24
- flutter pub get
25
- cd ios && pod install
26
- ```
27
-
28
- ---
29
-
30
- ## Step 2 — iOS + Android native config
31
-
32
- **iOS** — same as native iOS calls (see `cometchat-ios-calls/references/add-calls-to-existing-chat.md`):
33
- - Push Notifications + Background Modes (audio, voip, remote-notification) capabilities
34
- - Info.plist: NSCameraUsageDescription, NSMicrophoneUsageDescription
35
-
36
- **Android** — same as Android V5 calls (see `cometchat-android-v5-calls/references/add-calls-to-existing-chat.md`):
37
- - All permissions
38
- - ConnectionService declared
39
- - `foregroundServiceType` for Android 14+
40
-
41
- ---
42
-
43
- ## Step 3 — Init order: chat → calls
44
-
45
- In your existing init (typically `main.dart`):
46
-
47
- ```dart
48
- import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
49
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
50
-
51
- Future<void> main() async {
52
- WidgetsFlutterBinding.ensureInitialized();
53
-
54
- // Existing chat init
55
- final chatSettings = UIKitSettingsBuilder()
56
- ..setAppId(APP_ID)
57
- ..setRegion(REGION);
58
- await CometChatUIKit.init(uiKitSettings: chatSettings.build());
59
-
60
- // NEW: 5.x Calls SDK init AFTER chat init.
61
- // init is callback-based (NOT awaitable) and takes a CallAppSettings built
62
- // via CallAppSettingBuilder — no authKey field (call_app_settings_request.dart).
63
- // Verified cometchatcalls.dart:172.
64
- final callsSettings = (CallAppSettingBuilder()
65
- ..appId = APP_ID
66
- ..region = REGION)
67
- .build();
68
- CometChatCalls.init(
69
- callsSettings,
70
- onSuccess: (String success) {/* Calls SDK ready */},
71
- onError: (CometChatCallsException e) {/* surface */},
72
- );
73
-
74
- runApp(const MyApp());
75
- }
76
- ```
77
-
78
- ---
79
-
80
- ## Step 4 — Login BOTH SDKs (5.x Calls SDK has its own login)
81
-
82
- Unlike 4.x, the 5.x Calls SDK logs in explicitly and caches the auth token (`cometchatcalls.dart:316`). Log the chat user in, then log the Calls SDK in with the same token:
83
-
84
- ```dart
85
- final user = await CometChatUIKit.login(uid: uid, authKey: AUTH_KEY);
86
- final authToken = await CometChat.getUserAuthToken(); // static; no User.getAuthToken() method
87
- if (authToken != null) {
88
- CometChatCalls.loginWithAuthToken(
89
- authToken: authToken,
90
- onSuccess: (cu) {/* Calls SDK ready */},
91
- onError: (CometChatCallsException e) {/* surface */},
92
- );
93
- }
94
- ```
95
-
96
- ---
97
-
98
- ## Step 5 — Mount a custom incoming-call overlay at app root
99
-
100
- There is no prebuilt `CometChatIncomingCall` on the raw 5.x SDK (that widget is 4.x-kit-only). Listen for incoming calls via the Chat SDK `CallListener` (app shell, SKILL.md rule 1.7) and show your own overlay; on accept, `CometChat.acceptCall(sessionId)` → `CometChatCalls.joinSession(...)`.
101
-
102
- ```dart
103
- class MyApp extends StatelessWidget {
104
- const MyApp({super.key});
105
- @override
106
- Widget build(BuildContext context) {
107
- return MaterialApp(
108
- navigatorKey: navigatorKey, // GlobalKey<NavigatorState> — rule 1.7
109
- home: const Stack(
110
- children: [
111
- AppRoot(), // hosts the Chat SDK CallListener
112
- MyIncomingCallOverlay(), // your custom ring UI
113
- ],
114
- ),
115
- );
116
- }
117
- }
118
- ```
119
-
120
- ---
121
-
122
- ## Step 6 — VoIP push registration
123
-
124
- ```dart
125
- import 'dart:io';
126
- import 'package:flutter_voip_pushkit/flutter_voip_pushkit.dart';
127
- import 'package:firebase_messaging/firebase_messaging.dart';
128
-
129
- class CallPushService {
130
- Future<void> register(String userUid) async {
131
- if (Platform.isIOS) {
132
- final voip = FlutterVoipPushKit();
133
- voip.onTokenRefresh.listen((token) {
134
- api.registerCallToken(uid: userUid, platform: 'ios-voip', token: token);
135
- });
136
- await voip.configure();
137
- } else if (Platform.isAndroid) {
138
- final messaging = FirebaseMessaging.instance;
139
- await messaging.requestPermission();
140
- final token = await messaging.getToken();
141
- if (token != null) {
142
- await api.registerCallToken(uid: userUid, platform: 'android-fcm', token: token);
143
- }
144
- messaging.onTokenRefresh.listen((t) {
145
- api.registerCallToken(uid: userUid, platform: 'android-fcm', token: t);
146
- });
147
- }
148
- }
149
- }
150
- ```
151
-
152
- Trigger after `CometChatUIKit.login` completes (there is no separate Calls login).
153
-
154
- ---
155
-
156
- ## Step 7 — Hangup teardown
157
-
158
- ```dart
159
- Future<void> endCall(String sessionId) async {
160
- // 5.x: teardown is the CallSession INSTANCE leaveSession() (call_session.dart:272).
161
- // The static CometChatCalls.endSession exists (cometchatcalls.dart:676) but is
162
- // @Deprecated and just delegates to leaveSession().
163
- await CallSession.getInstance()?.leaveSession();
164
- await CometChat.endCall(sessionId);
165
- // OS-level UI dismiss via flutter_callkit_incoming
166
- await FlutterCallkitIncoming.endCall(sessionId);
167
- }
168
- ```
169
-
170
- ---
171
-
172
- ## Verification checklist
173
-
174
- - [ ] `cometchat_calls_sdk: ^5.0.2` (direct) + native plugins in pubspec; NO `cometchat_calls_uikit`
175
- - [ ] iOS Background Modes + Info.plist usage descriptions
176
- - [ ] Android permissions + ConnectionService declared
177
- - [ ] Calls init AFTER chat init in main() (callback-based `CometChatCalls.init`, NOT awaited)
178
- - [ ] `CometChatCalls.loginWithAuthToken(...)` after chat login (5.x has its own login)
179
- - [ ] Custom incoming-call overlay driven by the Chat SDK `CallListener` (no `CometChatIncomingCall`)
180
- - [ ] VoIP token registration triggered post-login
181
- - [ ] Hangup teardown calls `CallSession.getInstance()?.leaveSession()` + `CometChat.endCall` + endCall (callkit)
182
- - [ ] Real-device smoke: backgrounded incoming call rings on lock screen
183
- - [ ] Run `cometchat verify --calls` — should pass
184
-
185
- ---
186
-
187
- ## Pointers
188
-
189
- - `cometchat-react-calls/references/add-calls-to-existing-chat.md` — canonical
190
- - `cometchat-flutter-v5-calls/SKILL.md` — GetX patterns
191
- - `cometchat-flutter-v5-calls/references/server-push-bridge.md` — server-side push
192
- - `cometchat-ios-calls/references/add-calls-to-existing-chat.md` — iOS native config
193
- - `cometchat-android-v5-calls/references/add-calls-to-existing-chat.md` — Android native config
@@ -1,103 +0,0 @@
1
- # Call layouts on Flutter V5 (GetX)
2
-
3
- Same three layouts (TILE/SIDEBAR/SPOTLIGHT). Flutter-specific: `SegmentedButton` is the cross-platform native picker (Material 3); GetX wraps the SDK layout in an `Rx` for reactive UI.
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/flutter/call-layouts
6
- **Read first:** `cometchat-react-calls/references/call-layouts.md` — layout matrix.
7
-
8
- ---
9
-
10
- ## SDK API
11
-
12
- `setLayout` is an **instance method on the `CallSession` singleton** (`cometchat_calls_sdk-5.0.2` `src/call_session.dart:394`), and the layout enum is `LayoutType { tile, sidebar, spotlight }` (`src/enums/layout_type.dart`) — there is no `CallLayout` type and no static `CometChatCalls.setLayout`.
13
-
14
- ```dart
15
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
16
-
17
- // Initial layout via the (non-deprecated) SessionSettingsBuilder
18
- final settings = (SessionSettingsBuilder()
19
- ..setLayout(LayoutType.tile) // session_settings.dart:179
20
- ..hideChangeLayoutButton(false)) // :293
21
- .build();
22
-
23
- // Mid-call switch — instance method on the session singleton
24
- CallSession.getInstance()?.setLayout(LayoutType.spotlight); // call_session.dart:394
25
-
26
- // Listen — implement LayoutListeners, attach via the layoutListener setter
27
- // (CallSession.getInstance()?.layoutListener = myLayoutListener; call_session.dart:98).
28
- @override
29
- void onCallLayoutChanged(LayoutType layout) { // layout_listeners.dart:9
30
- Get.find<CallLayoutController>().layout.value = layout;
31
- }
32
- ```
33
-
34
- ---
35
-
36
- ## GetX controller
37
-
38
- ```dart
39
- class CallLayoutController extends GetxController {
40
- final layout = LayoutType.tile.obs;
41
-
42
- void set(LayoutType next) {
43
- CallSession.getInstance()?.setLayout(next);
44
- layout.value = next;
45
- }
46
- }
47
- ```
48
-
49
- ---
50
-
51
- ## SegmentedButton switcher
52
-
53
- ```dart
54
- class LayoutSwitcher extends StatelessWidget {
55
- const LayoutSwitcher({super.key});
56
-
57
- @override
58
- Widget build(BuildContext context) {
59
- final ctrl = Get.find<CallLayoutController>();
60
- return Obx(() => SegmentedButton<LayoutType>(
61
- segments: const [
62
- ButtonSegment(value: LayoutType.tile, label: Text('Tile')),
63
- ButtonSegment(value: LayoutType.sidebar, label: Text('Sidebar')),
64
- ButtonSegment(value: LayoutType.spotlight, label: Text('Spotlight')),
65
- ],
66
- selected: {ctrl.layout.value},
67
- onSelectionChanged: (set) {
68
- if (set.isNotEmpty) ctrl.set(set.first);
69
- },
70
- ));
71
- }
72
- }
73
- ```
74
-
75
- `Obx` rebuilds when `layout` changes; the switcher stays in sync if the kit's switcher fires `onCallLayoutChanged`.
76
-
77
- ---
78
-
79
- ## Anti-patterns
80
-
81
- Web sister rules apply, plus Flutter-specific:
82
-
83
- 1. **`DropdownButton` instead of `SegmentedButton`.** Hides the options. `SegmentedButton` is Material 3's radio-group equivalent.
84
- 2. **`StatefulWidget` with `setState` instead of GetX `Rx`.** Multiple components (toolbar, header) can't share layout state — GetX `Rx` solves it.
85
- 3. **Forgetting `Obx` wrapper.** UI doesn't react to changes from the kit's switcher.
86
-
87
- ---
88
-
89
- ## Verification checklist
90
-
91
- - [ ] `CallLayoutController` registered (via `Get.put` at call start)
92
- - [ ] `SegmentedButton` wrapped in `Obx`
93
- - [ ] `onCallLayoutChanged` updates the controller
94
- - [ ] Initial layout via `setLayout` on builder
95
- - [ ] Real-device smoke: switcher cycles all 3 on Android + iOS
96
-
97
- ---
98
-
99
- ## Pointers
100
-
101
- - `cometchat-react-calls/references/call-layouts.md` — sister
102
- - `cometchat-flutter-v5-calls` SKILL.md
103
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/call-layouts
@@ -1,285 +0,0 @@
1
- # Call session — joinSession, no ringing (Flutter V5 / GetX, 5.x Calls SDK)
2
-
3
- Server-generated sessionId, both parties enter it. Built on the **5.x** Calls SDK (`cometchat_calls_sdk ^5.0.2`) added as a **direct** dependency (NOT pulled via `cometchat_calls_uikit`, which would bring 4.x). This is the canonical SDK API surface for all the V5 calls references.
4
-
5
- **Read first:** `cometchat-react-calls/references/call-session.md` — full architecture (sessionId strategies, server-side authorization, token generation). Then come back here for the Flutter-specific shape.
6
-
7
- > **5.x SHAPE.** Lifecycle is **static on `CometChatCalls`** (`init`/`login`/`loginWithAuthToken`/`generateCallToken`/`joinSession`/`getLoggedInUser` — `src/plugin/cometchatcalls.dart`). In-call controls are **instance methods on the `CallSession` singleton** via `CallSession.getInstance()` (`src/call_session.dart`). Settings use `SessionSettingsBuilder` (`src/builder/session_settings.dart`). Events arrive through the **5 split listeners** in `src/listener/`. Substrate of record: `~/.pub-cache/hosted/pub.dev/cometchat_calls_sdk-5.0.2/lib/`.
8
-
9
- ---
10
-
11
- ## Hard rules (Flutter-specific overrides on top of the cross-platform rules)
12
-
13
- 1. **One step: `joinSession({sessionId:, sessionSettings:, onSuccess:, onError:})`** (`cometchatcalls.dart:735`). Provide EITHER `sessionId:` (the SDK mints the call token internally using the cached auth token) OR a pre-minted `callToken:` — not both. `onSuccess` hands back a `Widget?` you render. There is no `generateToken` + `startSession` two-step in the primary 5.x path (those are `@Deprecated` v4-compat shims, `cometchatcalls.dart:449,621`).
14
- 2. **`SessionSettingsBuilder` is the settings shape** (`builder/session_settings.dart:126`). e.g. `(SessionSettingsBuilder()..setTitle('Meeting')..startAudioMuted(false)..startVideoPaused(false)).build()`. `CallSettingsBuilder` is `@Deprecated` (`builder/call_settings.dart:209`).
15
- 3. **Implement the split listeners and register them on `CallSession.getInstance()`** inside `joinSession`'s `onSuccess` (the singleton is non-null only after the session is created). `SessionStatusListeners` (`addSessionStatusListener`, `call_session.dart:66`) carries `onSessionJoined`/`onSessionLeft`/`onConnectionClosed`/`onSessionTimedOut`/`onConnectionLost`/`onConnectionRestored`. Remove via `removeSessionStatusListener` in `dispose`. Do NOT use the single `CometChatCallsEventsListener` (`@Deprecated`).
16
- 4. **`CometChatOngoingCallService.launch()` + `.abort()`** (`services/ongoing_call_service.dart:33,51`) manage the platform foreground service. `launch()` after the session starts; `abort()` inside the guarded `_navigateBack()` helper (fires exactly once on the first termination event).
17
- 5. **Render the returned widget with `SizedBox.expand(child: videoWidget)`.** Anything that constrains it (Padding, undersized Container) clips the call UI.
18
- 6. **Log the Calls SDK in before joining.** `joinSession`/`generateCallToken` use the cached auth token from `CometChatCalls.loginWithAuthToken(...)` (or `CometChatCalls.login(...)`). Source that token with the static `await CometChat.getUserAuthToken()` (there is no `User.getAuthToken()` instance method).
19
-
20
- ---
21
-
22
- ## Dependencies
23
-
24
- ```yaml
25
- dependencies:
26
- cometchat_calls_sdk: ^5.0.2
27
- cometchat_chat_sdk: ^4.0.0 # signaling + source of the auth token
28
- permission_handler: ^11.0.0
29
- uni_links: ^0.5.1
30
- ```
31
-
32
- ---
33
-
34
- ## Call screen (StatefulWidget + SessionStatusListeners)
35
-
36
- ```dart
37
- import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
38
- import 'package:cometchat_sdk/cometchat_sdk.dart';
39
- import 'package:flutter/material.dart';
40
-
41
- class CallScreen extends StatefulWidget {
42
- const CallScreen({super.key, required this.sessionId});
43
- final String sessionId;
44
-
45
- @override
46
- State<CallScreen> createState() => _CallScreenState();
47
- }
48
-
49
- class _CallScreenState extends State<CallScreen>
50
- implements SessionStatusListeners {
51
- Widget? _videoContainer;
52
- bool _isLoading = true;
53
- bool _hasError = false;
54
- String? _errorMessage;
55
- bool _isLeavingSession = false;
56
- CallSession? _session;
57
-
58
- @override
59
- void initState() {
60
- super.initState();
61
- _startCall();
62
- }
63
-
64
- @override
65
- void dispose() {
66
- _session?.removeSessionStatusListener(this);
67
- CometChatOngoingCallService.abort();
68
- super.dispose();
69
- }
70
-
71
- Future<void> _startCall() async {
72
- // Ensure the Calls SDK is logged in (caches the auth token used below).
73
- final authToken = await CometChat.getUserAuthToken();
74
- if (authToken != null) {
75
- CometChatCalls.loginWithAuthToken( // cometchatcalls.dart:316
76
- authToken: authToken,
77
- onSuccess: (_) => _join(),
78
- onError: (CometChatCallsException e) => _fail(e.message),
79
- );
80
- } else {
81
- _join(); // already logged in via CometChatCalls.login earlier
82
- }
83
- }
84
-
85
- void _join() {
86
- final settings = (SessionSettingsBuilder()
87
- ..setTitle('CometChat Meeting') // session_settings.dart:155
88
- ..startAudioMuted(false) // :173
89
- ..startVideoPaused(false)) // :167
90
- .build();
91
-
92
- CometChatCalls.joinSession( // cometchatcalls.dart:735
93
- sessionId: widget.sessionId, // SDK mints the call token internally
94
- sessionSettings: settings,
95
- onSuccess: (Widget? videoWidget) {
96
- if (!mounted) return;
97
- // Register split listeners now that the session exists.
98
- _session = CallSession.getInstance(); // call_session.dart:36
99
- _session?.addSessionStatusListener(this); // :66
100
- CometChatOngoingCallService.launch(); // ongoing_call_service.dart:33
101
- setState(() {
102
- _videoContainer = videoWidget;
103
- _isLoading = false;
104
- _hasError = false;
105
- });
106
- },
107
- onError: (CometChatCallsException error) => _fail(error.message),
108
- );
109
- }
110
-
111
- void _fail(String? msg) {
112
- if (!mounted) return;
113
- setState(() {
114
- _isLoading = false;
115
- _hasError = true;
116
- _errorMessage = msg ?? 'Failed to join session';
117
- });
118
- }
119
-
120
- void _navigateBack() {
121
- // ONE guarded path for all termination events (onSessionLeft +
122
- // onConnectionClosed + onSessionTimedOut). The 5.x SDK fires several in
123
- // sequence on hangup; without the guard a second pop crashes with
124
- // `Bad state: No element`.
125
- if (_isLeavingSession) return;
126
- if (!mounted) return;
127
- if (!Navigator.of(context).canPop()) return;
128
- _isLeavingSession = true;
129
- CometChatOngoingCallService.abort();
130
- Navigator.of(context).pop();
131
- }
132
-
133
- // --- SessionStatusListeners (session_status_listeners.dart) ---
134
-
135
- @override
136
- void onSessionJoined() {}
137
-
138
- @override
139
- void onSessionLeft() => _navigateBack();
140
-
141
- @override
142
- void onConnectionClosed() => _navigateBack();
143
-
144
- @override
145
- void onSessionTimedOut() => _navigateBack();
146
-
147
- @override
148
- void onConnectionLost() {}
149
-
150
- @override
151
- void onConnectionRestored() {}
152
-
153
- @override
154
- Widget build(BuildContext context) {
155
- return Scaffold(
156
- backgroundColor: Colors.black,
157
- resizeToAvoidBottomInset: false,
158
- body: _buildBody(),
159
- );
160
- }
161
-
162
- Widget _buildBody() {
163
- if (_isLoading) {
164
- return const Center(child: CircularProgressIndicator(color: Colors.deepPurple));
165
- }
166
- if (_hasError) {
167
- return Center(child: Text(_errorMessage ?? 'Error', style: const TextStyle(color: Colors.white)));
168
- }
169
- if (_videoContainer != null) {
170
- return SizedBox.expand(child: _videoContainer);
171
- }
172
- return const SizedBox.shrink();
173
- }
174
- }
175
- ```
176
-
177
- **Why this shape:**
178
-
179
- - **Single-step `joinSession`** instead of `generateToken` + `startSession` — the 5.x primary path joins in one call; the call widget arrives via `joinSession`'s `onSuccess`.
180
- - **`SessionSettingsBuilder`** instead of `CallSettingsBuilder` — the latter is `@Deprecated` in 5.0.2.
181
- - **`SessionStatusListeners` registered on `CallSession.getInstance()`** instead of one `CometChatCallsEventsListener` on `CometChatCalls` — 5.x splits events across 5 listeners attached to the session singleton.
182
- - **`CallSession.getInstance()?.leaveSession()`** for teardown (`call_session.dart:272`) — the static `CometChatCalls.endSession` exists (`cometchatcalls.dart:676`) but is `@Deprecated` and just delegates here.
183
- - **`CometChatOngoingCallService.launch()/abort()`** — required for foreground-service correctness on Android 14+.
184
- - **`SizedBox.expand`** — the SDK's returned widget must fill its parent.
185
-
186
- ---
187
-
188
- ## Ending the call from a button
189
-
190
- ```dart
191
- ElevatedButton(
192
- onPressed: () async {
193
- await CallSession.getInstance()?.leaveSession(); // call_session.dart:272
194
- // onSessionLeft then funnels through _navigateBack().
195
- },
196
- child: const Text('Leave'),
197
- )
198
- ```
199
-
200
- ---
201
-
202
- ## Permissions (Android `AndroidManifest.xml` + iOS `Info.plist`)
203
-
204
- Android:
205
- ```xml
206
- <uses-permission android:name="android.permission.CAMERA" />
207
- <uses-permission android:name="android.permission.RECORD_AUDIO" />
208
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
209
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
210
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
211
- ```
212
-
213
- iOS:
214
- ```xml
215
- <key>NSCameraUsageDescription</key>
216
- <string>Camera is needed for video calls</string>
217
- <key>NSMicrophoneUsageDescription</key>
218
- <string>Microphone is needed for calls</string>
219
- ```
220
-
221
- Runtime request before `_startCall`:
222
- ```dart
223
- await Permission.camera.request();
224
- await Permission.microphone.request();
225
- ```
226
-
227
- ---
228
-
229
- ## Deep-link routing (uni_links)
230
-
231
- ```dart
232
- void initDeepLinks() {
233
- uriLinkStream.listen((Uri? uri) {
234
- if (uri == null) return;
235
- if (uri.pathSegments.length >= 2 && uri.pathSegments[0] == 'meet') {
236
- final sessionId = uri.pathSegments[1];
237
- Get.toNamed('/meet/$sessionId');
238
- }
239
- });
240
- }
241
- ```
242
-
243
- See `cometchat-flutter-v5-calls/references/share-invite.md` for full deep-link config.
244
-
245
- ---
246
-
247
- ## Anti-patterns
248
-
249
- 1. **Using `CallSettingsBuilder()` / `CallSettings(...)` instead of `SessionSettingsBuilder()`.** `CallSettingsBuilder` is `@Deprecated` in 5.0.2.
250
- 2. **`CometChatCalls.startSession` / `generateToken` two-step.** Those are `@Deprecated` v4-compat shims. Use `joinSession` with `sessionId:` (or `callToken:`).
251
- 3. **Single `CometChatCallsEventsListener`.** `@Deprecated` in 5.0.2. Use the 5 split listeners on `CallSession.getInstance()`.
252
- 4. **Registering listeners before `joinSession.onSuccess`.** `CallSession.getInstance()` is null until the session is created — register inside `onSuccess`.
253
- 5. **`CometChatOngoingCallController` / `CometChatOngoingCallView`.** These do not exist in the Calls SDK. Render the `Widget?` from `onSuccess`.
254
- 6. **Skipping `CometChatOngoingCallService.abort()` in cleanup paths.** Android foreground-service notification persists after the call ends.
255
- 7. **Rendering the returned widget inside a constrained `Container`.** Clips. Use `SizedBox.expand`.
256
- 8. **No `mounted` check before `Navigator.pop`.** Async callback fires after dispose → exception.
257
- 9. **Popping the navigator from each termination event independently.** Crashes with `Bad state: No element` on the second pop. Funnel all termination events through ONE guarded `_navigateBack()`.
258
-
259
- ---
260
-
261
- ## Verification checklist
262
-
263
- - [ ] `joinSession(sessionId:, sessionSettings:, onSuccess:, onError:)` — NOT `generateToken`/`startSession`
264
- - [ ] Settings built via `SessionSettingsBuilder()`, not `CallSettingsBuilder` / `CallSettings(...)`
265
- - [ ] `SessionStatusListeners` implemented and registered on `CallSession.getInstance()` inside `onSuccess`; removed in `dispose`
266
- - [ ] Calls SDK logged in (`loginWithAuthToken` / `login`) before `joinSession`
267
- - [ ] Returned widget rendered via `SizedBox.expand(child: _videoContainer)`
268
- - [ ] `CometChatOngoingCallService.launch()` after `onSuccess`; `.abort()` in EVERY termination path
269
- - [ ] `mounted` check before `Navigator.pop`
270
- - [ ] Single guarded `_navigateBack()` handles ALL termination events
271
- - [ ] Teardown uses `CallSession.getInstance()?.leaveSession()`
272
- - [ ] iOS `Info.plist` + Android `AndroidManifest.xml` permissions configured
273
- - [ ] Real-device smoke: tap meeting link → app opens at /meet → joins → video flows → leave → notification clears
274
-
275
- ---
276
-
277
- ## Pointers
278
-
279
- - `cometchat-react-calls/references/call-session.md` — cross-platform architecture
280
- - `cometchat-flutter-v5-calls/SKILL.md` — Flutter V5 / GetX seven hard rules (5.x Calls SDK)
281
- - `cometchat-flutter-v5-calls/references/share-invite.md` — deep-link config
282
- - `cometchat-flutter-v6-calls/references/call-session.md` — V6 (Bloc) sibling on the SAME 5.0.2 SDK
283
- - Substrate of record: `~/.pub-cache/hosted/pub.dev/cometchat_calls_sdk-5.0.2/lib/src/plugin/cometchatcalls.dart` + `src/call_session.dart`
284
- - Canonical docs: https://www.cometchat.com/docs/calls/flutter/join-session
285
- ```