@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,325 +0,0 @@
1
- ---
2
- name: cometchat-ios
3
- description: Entry-point for CometChat iOS UI Kit integration in any Swift/iOS project. Detects the project type, gathers requirements through an interactive conversation, and writes production-quality integration code for UIKit and SwiftUI applications.
4
- license: "MIT"
5
- metadata:
6
- author: "CometChat"
7
- version: "3.0.0"
8
- tags: "cometchat dispatcher entry ios swift uikit swiftui chat messaging"
9
- ---
10
-
11
- > **Ground truth:** `CometChatUIKitSwift ~> 5` (+ `CometChatCallsSDK ~> 5`) — Pods/SPM `.swiftinterface` + `ui-kit/ios`. **Official docs:** https://www.cometchat.com/docs/ui-kit/ios/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
12
-
13
- ## Use this skill when
14
-
15
- The user wants to add CometChat to any iOS project. Trigger phrases:
16
-
17
- - `/cometchat` (or invoke the cometchat-ios skill via your agent's mechanism — keyword "cometchat" or "integrate chat" works in most agents)
18
- - "add cometchat", "integrate cometchat", "add chat to my app"
19
- - "add messaging", "add chat ui", "add in-app chat"
20
- - "integrate chat in ios", "add chat to swift app"
21
-
22
- This is the **entry point for iOS integration**. Do NOT invoke
23
- framework-specific skills directly — this dispatcher detects the
24
- project type first and routes to the right ones.
25
-
26
- **Supported project types:**
27
-
28
- | Type | Description |
29
- |---|---|
30
- | **UIKit** | Traditional UIKit-based iOS apps using Storyboards or programmatic UI |
31
- | **SwiftUI** | Modern SwiftUI-based iOS apps |
32
- | **Hybrid** | Apps using both UIKit and SwiftUI |
33
-
34
- The iOS UI Kit loads `CometChatUIKitSwift` via CocoaPods or Swift Package Manager, along with `CometChatSDK`.
35
-
36
- ## How this skill works
37
-
38
- This skill is **interactive and conversational**. You don't just detect
39
- the project type and dump code. You have a conversation with the developer
40
- to understand their project, their use case, and exactly where chat
41
- should go — THEN you write code that fits.
42
-
43
- **Pattern skills (loaded from your context):**
44
- - `cometchat-ios-core` — initialization, login, provider pattern, anti-patterns
45
- - `cometchat-ios-components` — component catalog, props, composition patterns
46
- - `cometchat-ios-placement` — WHERE to put chat (navigation, tabs, modals)
47
- - `cometchat-ios-theming` — customizing colors, fonts, and styles
48
- - `cometchat-ios-customization` — custom views, templates, formatters
49
-
50
- **Key principle: ask, don't assume.** Every piece of information you need
51
- from the user should be asked explicitly. Don't guess the view controller,
52
- don't guess where the trigger button goes, don't guess the auth system.
53
-
54
- ## Steps
55
-
56
- ### Step 1 — Detect project type + map the project
57
-
58
- First, check for iOS project indicators:
59
-
60
- **Detection checklist:**
61
- 1. Look for `.xcodeproj` or `.xcworkspace` files
62
- 2. Check for `Podfile` (CocoaPods), `Package.swift` (SPM as a package), or SPM dep refs in `*.xcodeproj/project.pbxproj` (SPM via Xcode GUI)
63
- 3. Read `Info.plist` for app configuration
64
- 4. Check for SwiftUI indicators (`@main App`, `ContentView.swift`)
65
- 5. Check for UIKit indicators (`AppDelegate.swift`, `SceneDelegate.swift`, Storyboards)
66
-
67
- **If the project has NO `Podfile`, NO `Package.swift`, AND no SPM refs in the .xcodeproj** (the default state of every freshly Xcode-created `File → New → App` project), STOP. You must establish a dependency-management mechanism before touching integration code. Read `cometchat-ios-core` § 1.0 for the two options (CocoaPods script-able, SPM Xcode-GUI) and complete that step first. Skipping this produces an integration with `import CometChatUIKitSwift` that cannot resolve at build time.
68
-
69
- **Then read the project yourself — this is critical.**
70
-
71
- - `Podfile`, `Package.swift`, or SPM refs in `*.xcodeproj/project.pbxproj` — existing dependencies
72
- - The source directory structure — list all directories under the project
73
- - Find the entry point: `AppDelegate.swift`, `SceneDelegate.swift`, or `@main App`
74
- - Find existing view controllers or SwiftUI views
75
- - Find the navigation structure: `UINavigationController`, `UITabBarController`, `NavigationStack`
76
-
77
- Store this mental map — you'll use it throughout the conversation.
78
-
79
- **Compatibility baselines:**
80
- - iOS 13+ required for CometChat UI Kit (CometChatSDK floor is iOS 11)
81
- - **iOS 16+ required if you use calling** — `CometChatCallsSDK` 5.x has a deployment target of iOS 16.0; a project targeting iOS 13 will fail to link the Calls SDK
82
- - Swift 5.0+ required
83
- - Xcode 14+ recommended
84
-
85
- ### Step 2 — Set up credentials (onboarding)
86
-
87
- **Ask the user for their CometChat credentials:**
88
-
89
- Ask the user (preserve this exact shape — `question`, `header`, `multiSelect`, `options[].label`, `options[].description` — agents have varying primitive names but all support this structured form):
90
- - **question:** "Let's set up CometChat. Do you have your credentials?"
91
- - **header:** "CometChat Setup"
92
- - **multiSelect:** false
93
- - **options:**
94
- 1. label: "I have my App ID, Region, and Auth Key", description: "I'll paste them now"
95
- 2. label: "I need to create a CometChat account", description: "Guide me to get credentials"
96
- 3. label: "I'll set them up later", description: "Just show me the integration code"
97
-
98
- **If they have credentials:**
99
- Ask for:
100
- 1. App ID (from CometChat Dashboard)
101
- 2. Region (`us`, `eu`, or `in`)
102
- 3. Auth Key (for development mode)
103
-
104
- **If they need to create an account:**
105
- Direct them to:
106
- > "Create a free account at https://app.cometchat.com
107
- > 1. Sign up and create a new app
108
- > 2. Go to API & Auth Keys section
109
- > 3. Copy your App ID, Region, and Auth Key
110
- > Tell me when you have them."
111
-
112
- ### Step 3 — Interactive requirements gathering
113
-
114
- #### 3a. "What are you building?"
115
-
116
- Ask the user (preserve the structured shape — `question`/`header`/`multiSelect`/`options[].label`/`options[].description`):
117
- - **question:** "What kind of app are you building?"
118
- - **header:** "Your app"
119
- - **multiSelect:** false
120
- - **options:**
121
- 1. label: "Messaging app", description: "Chat is the main feature — like WhatsApp, Telegram, or iMessage"
122
- 2. label: "Marketplace or platform", description: "Buyers and sellers communicate — like Airbnb or eBay"
123
- 3. label: "SaaS or productivity", description: "Team chat or support chat inside a product"
124
- 4. label: "Social or community", description: "User profiles with messaging — like a dating app or community"
125
- 5. label: "Support or helpdesk", description: "Customer-to-agent communication"
126
- 6. label: "Just exploring", description: "Quick demo — fastest path to see chat working"
127
-
128
- **If "Just exploring":** Skip the rest of Step 3 and scaffold the minimal integration — one view controller showing `CometChatConversations` with `cometchat-uid-1` pre-logged-in.
129
-
130
- #### 3b. Show what you recommend and why
131
-
132
- | Intent | What you'll set up |
133
- |---|---|
134
- | **Messaging app** | A dedicated messages tab with conversation list + message view |
135
- | **Marketplace** | A "Chat with seller" button on product screens + an inbox tab |
136
- | **SaaS / dashboard** | A chat modal triggered from navigation + a messages section |
137
- | **Social / community** | A full messenger with tabs: Chats, Calls, Users, Groups |
138
- | **Support** | A floating chat button that opens a support conversation |
139
-
140
- Ask: "Does this sound right, or do you want a different approach?"
141
-
142
- #### 3c. Ask where things should go
143
-
144
- **Show the user their actual project structure** — list the view controllers/views you found in Step 1.
145
-
146
- **For UIKit projects:**
147
- > "I found these view controllers in your project:
148
- > - MainViewController
149
- > - ProfileViewController
150
- > - SettingsViewController
151
- >
152
- > Where should the messages screen be accessible from?"
153
-
154
- **For SwiftUI projects:**
155
- > "I found these views in your project:
156
- > - ContentView
157
- > - HomeView
158
- > - ProfileView
159
- >
160
- > Where should the messages view be accessible from?"
161
-
162
- #### 3d. Detect and ask about authentication
163
-
164
- Look for auth libraries in the project:
165
- - `FirebaseAuth` → Firebase Authentication
166
- - `AuthenticationServices` → Sign in with Apple
167
- - `GoogleSignIn` → Google Sign-In
168
- - Custom auth patterns
169
-
170
- Report what you found and ask:
171
-
172
- If auth detected:
173
- > "I see you're using [Firebase Auth / etc.]. Here's how CometChat will work:
174
- >
175
- > - **Development (now):** I'll use CometChat's Auth Key for quick testing
176
- > - **Production (later):** Your server will mint per-user auth tokens
177
- >
178
- > Start with dev mode for now?"
179
-
180
- If no auth detected:
181
- > "I don't see an authentication system yet. For now, I'll set up CometChat
182
- > with a hardcoded test user (cometchat-uid-1).
183
- >
184
- > When you add auth later, you can connect them."
185
-
186
- #### 3e. Confirm the plan
187
-
188
- **Show EXACTLY what you'll do before doing it:**
189
-
190
- > "Here's what I'll create:
191
- >
192
- > **New files:**
193
- > - `CometChatManager.swift` — initialization and login handling
194
- > - `ChatViewController.swift` — main chat interface
195
- >
196
- > **Files I'll modify:**
197
- > - `AppDelegate.swift` — add CometChat initialization
198
- > - `MainViewController.swift` — add navigation to chat
199
- >
200
- > **Dependencies:** CometChatUIKitSwift, CometChatSDK
201
- >
202
- > **Auth mode:** Development (Auth Key)
203
- >
204
- > Proceed? [y/n]"
205
-
206
- Wait for explicit confirmation.
207
-
208
- ### Step 4 — Reference pattern skills
209
-
210
- **All skills are already loaded in your context.** Read and follow them directly:
211
-
212
- 1. `cometchat-ios-core` — initialization, login, provider pattern
213
- 2. `cometchat-ios-components` — component catalog, composition patterns
214
- 3. `cometchat-ios-placement` — placement pattern for the chosen approach
215
- 4. `cometchat-ios-theming` — if customization is needed
216
-
217
- ### Step 5 — Write the integration
218
-
219
- Execute the confirmed plan:
220
-
221
- 1. **Add dependencies** — CocoaPods or SPM
222
- 2. **CometChatManager** — singleton for init/login
223
- 3. **Chat UI** — appropriate components for the use case
224
- 4. **Wire into existing project** — READ each file before modifying
225
- 5. **Environment setup** — credentials configuration
226
-
227
- ### Step 6 — Verify + show result
228
-
229
- After writing code:
230
-
231
- 1. Verify the project builds
232
- 2. Check for any missing imports
233
- 3. Surface any common issues
234
-
235
- **Result message:**
236
- > "CometChat is integrated! Here's what was set up:
237
- >
238
- > - CometChatManager.swift ✓
239
- > - ChatViewController.swift ✓
240
- > - Dependencies added ✓
241
- >
242
- > Next steps:
243
- > 1. Run `pod install` (if using CocoaPods)
244
- > 2. Build and run the app
245
- > 3. Navigate to the chat screen
246
- >
247
- > **About the empty conversation list:**
248
- > Every CometChat app has 5 pre-created test users: `cometchat-uid-1` through `uid-5`.
249
- > To see chat working:
250
- > 1. Open https://app.cometchat.com → your app → Users
251
- > 2. Send a message from `cometchat-uid-2` to `cometchat-uid-1`
252
- > 3. Refresh the app to see the conversation"
253
-
254
- ### Step 7 — Iteration menu
255
-
256
- Ask the user (preserve the structured shape — `question`/`header`/`options[].label`/`options[].description`):
257
- - **question:** "What would you like to do next?"
258
- - **header:** "Next step"
259
- - **options:**
260
- 1. label: "Customize look and feel", description: "Change colors, fonts, and styles"
261
- 2. label: "Add a feature", description: "Calls, reactions, polls, AI features"
262
- 3. label: "Customize a component", description: "Custom message bubbles, headers, etc."
263
- 4. label: "Set up push notifications", description: "APNs setup for message notifications"
264
- 5. label: "Set up production auth", description: "Replace dev Auth Key with server tokens"
265
- 6. label: "Troubleshoot an issue", description: "Debug common problems"
266
- 7. label: "I'm done", description: "Exit"
267
-
268
- ## Hard rules
269
-
270
- ### Always
271
-
272
- - **Ask, don't assume.** Every integration decision should be confirmed.
273
- - **Always detect project type first.** Do not assume UIKit or SwiftUI.
274
- - NEVER replace existing project files unless the user explicitly confirms.
275
- - ALWAYS read existing files before modifying them.
276
- - ALWAYS show the plan and get confirmation before writing.
277
- - For component names and properties, use the `cometchat-ios-components` skill — never invent from training data.
278
-
279
- ### iOS-specific
280
-
281
- - **Initialize CometChat in AppDelegate or App init** — before any UI renders
282
- - **Use the singleton pattern** for CometChatManager
283
- - **Handle async initialization properly** — don't show chat UI until init completes
284
- - **Respect iOS lifecycle** — handle background/foreground transitions
285
- - **Support both light and dark mode** — use CometChatTheme
286
-
287
- ## Error handling
288
-
289
- Common iOS integration errors:
290
-
291
- | Error | Cause | Solution |
292
- |---|---|---|
293
- | "CometChat is not initialized" | UI shown before init completes | Use completion handler pattern |
294
- | "Invalid App ID" | Wrong credentials | Verify App ID in dashboard |
295
- | "Module not found" | Dependencies not installed | Run `pod install` or add SPM package |
296
- | Build errors | Missing imports | Add `import CometChatUIKitSwift` |
297
-
298
- ## Skill routing reference
299
-
300
- | Skill | When to load |
301
- |---|---|
302
- | `cometchat-ios-core` | Always — before any integration code |
303
- | `cometchat-ios-components` | Always — before writing component code |
304
- | `cometchat-ios-placement` | When integrating — for placement patterns |
305
- | `cometchat-ios-theming` | When customizing themes |
306
- | `cometchat-ios-customization` | When writing custom views or templates |
307
- | `cometchat-ios-features` | When adding calls, reactions, polls, AI features |
308
- | `cometchat-ios-push` | When setting up push notifications |
309
- | `cometchat-ios-production` | When setting up production auth |
310
- | `cometchat-ios-troubleshooting` | When diagnosing problems |
311
-
312
- ## Complete Skill Set
313
-
314
- This iOS UI Kit skill set includes 9 comprehensive skills:
315
-
316
- 1. **cometchat-ios** (this file) — Entry-point dispatcher
317
- 2. **cometchat-ios-core** — Initialization, login, manager pattern
318
- 3. **cometchat-ios-components** — Complete component catalog
319
- 4. **cometchat-ios-placement** — Navigation patterns, tabs, modals
320
- 5. **cometchat-ios-theming** — Colors, fonts, dark mode
321
- 6. **cometchat-ios-customization** — Custom views, templates, formatters
322
- 7. **cometchat-ios-features** — Calls, reactions, polls, AI, extensions
323
- 8. **cometchat-ios-push** — Push notifications setup
324
- 9. **cometchat-ios-production** — Server-side auth, security
325
- 10. **cometchat-ios-troubleshooting** — Common issues and debugging
@@ -1,174 +0,0 @@
1
- # Adding calls to an existing chat integration (iOS)
2
-
3
- You have `CometChatUIKitSwift` working. This guide adds `CometChatCallsSDK` plus PushKit + CallKit + the seven hard rules.
4
-
5
- **Read first:** `cometchat-ios-calls/SKILL.md` — seven hard rules (init order, IncomingCall mount, hangup teardown, VoIP push, etc.).
6
-
7
- ---
8
-
9
- ## Step 1 — Install Calls SDK
10
-
11
- **SwiftPM:**
12
- - File → Add Packages → `https://github.com/cometchat/calls-sdk-ios` → version `5.0.0+`
13
- - Add `CometChatCallsSDK` to your app target
14
-
15
- **CocoaPods:**
16
- ```ruby
17
- pod 'CometChatCallsSDK', '~> 5.0'
18
- ```
19
- ```bash
20
- pod install --repo-update
21
- ```
22
-
23
- ---
24
-
25
- ## Step 2 — Add capabilities + Info.plist entries
26
-
27
- **Xcode → target → Signing & Capabilities:**
28
- - Push Notifications
29
- - Background Modes → check Audio, AirPlay, and Picture in Picture + Voice over IP + Remote notifications
30
-
31
- **Info.plist:**
32
- ```xml
33
- <key>UIBackgroundModes</key>
34
- <array>
35
- <string>audio</string>
36
- <string>voip</string>
37
- <string>remote-notification</string>
38
- </array>
39
- <key>NSCameraUsageDescription</key>
40
- <string>Camera access is required for video calls.</string>
41
- <key>NSMicrophoneUsageDescription</key>
42
- <string>Microphone access is required for calls.</string>
43
- ```
44
-
45
- ---
46
-
47
- ## Step 3 — Init order: chat → calls
48
-
49
- Wherever you currently call `CometChatUIKit.init(uikitSettings:)`, append the calls init:
50
-
51
- ```swift
52
- import CometChatSDK
53
- import CometChatCallsSDK
54
- import CometChatUIKitSwift
55
-
56
- // Existing chat init
57
- CometChatUIKit.init(uikitSettings: chatSettings) { result in
58
- switch result {
59
- case .success:
60
- // NEW: Calls init AFTER chat init succeeded
61
- let callsSettings = CallAppSettings(appId: APP_ID, region: REGION)
62
- Task {
63
- try await CometChatCalls.init(with: callsSettings)
64
- }
65
- case .onError(let error):
66
- print(error)
67
- }
68
- }
69
- ```
70
-
71
- ---
72
-
73
- ## Step 4 — Login
74
-
75
- Log in with the Chat SDK only. **There is no `CometChatCalls.login` and no `CometChat.loginAsync`** — the Calls SDK has no separate login step; it authenticates per call session via `generateToken`.
76
-
77
- ```swift
78
- CometChat.login(UID: uid, authKey: authKey, onSuccess: { user in
79
- // logged in — that's it. Do NOT call CometChatCalls.login (doesn't exist).
80
- // When a call starts, call CometChatCalls.generateToken(authToken:sessionID:)
81
- // with CometChat.getUserAuthToken() (User has no `authToken` property).
82
- }, onError: { error in /* surface */ })
83
- ```
84
-
85
- If you use server-minted auth tokens (recommended), use the `CometChat.login(UID:authToken:...)` overload instead of `authKey`.
86
-
87
- ---
88
-
89
- ## Step 5 — Mount IncomingCall at root
90
-
91
- In SwiftUI:
92
-
93
- ```swift
94
- @main
95
- struct YourApp: App {
96
- var body: some Scene {
97
- WindowGroup {
98
- RootView()
99
- .overlay(alignment: .top) {
100
- CometChatIncomingCall()
101
- }
102
- }
103
- }
104
- }
105
- ```
106
-
107
- In UIKit:
108
- - Make a `RootViewController` that holds your existing app + the `CometChatIncomingCallView`
109
- - Or use `UIWindow.rootViewController` swap pattern when an incoming call arrives
110
-
111
- ---
112
-
113
- ## Step 6 — PushKit + CallKit registration
114
-
115
- Implement `PKPushRegistryDelegate` (see `cometchat-ios-calls/references/server-apns-pushkit.md`):
116
-
117
- ```swift
118
- class VoipPushHandler: NSObject, PKPushRegistryDelegate {
119
- let registry = PKPushRegistry(queue: .main)
120
- let callProvider: CXProvider
121
-
122
- func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) {
123
- let token = credentials.token.map { String(format: "%02x", $0) }.joined()
124
- Task { try await api.registerVoipToken(uid: currentUid, token: token) }
125
- }
126
-
127
- func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
128
- // Report to CallKit IMMEDIATELY
129
- let update = CXCallUpdate()
130
- let dict = payload.dictionaryPayload
131
- update.remoteHandle = CXHandle(type: .generic, value: dict["callerUid"] as? String ?? "Unknown")
132
- update.localizedCallerName = dict["callerName"] as? String ?? "Unknown"
133
- update.hasVideo = (dict["callType"] as? String) == "video"
134
- callProvider.reportNewIncomingCall(with: UUID(), update: update) { _ in completion() }
135
- }
136
- }
137
- ```
138
-
139
- Init this handler from your `AppDelegate.didFinishLaunchingWithOptions`.
140
-
141
- ---
142
-
143
- ## Step 7 — Hangup teardown
144
-
145
- ```swift
146
- func endCall(sessionId: String) {
147
- CometChatCalls.endSession() // Calls SDK — EXISTS (not leaveSession)
148
- CometChat.endCall(sessionID: sessionId, onSuccess: { _ in }, onError: { _ in })
149
- callProvider.reportCall(with: callUUID, endedAt: nil, reason: .remoteEnded)
150
- }
151
- ```
152
-
153
- ---
154
-
155
- ## Verification checklist
156
-
157
- - [ ] `CometChatCallsSDK` in SwiftPM/CocoaPods
158
- - [ ] Background Modes capability + Info.plist UIBackgroundModes (audio + voip + remote-notification)
159
- - [ ] NSCameraUsageDescription + NSMicrophoneUsageDescription
160
- - [ ] Calls init runs AFTER chat init succeeds
161
- - [ ] NO `CometChatCalls.login` (doesn't exist) — Calls auth is per-session via `generateToken`
162
- - [ ] `CometChatIncomingCall` mounted at root (SwiftUI overlay or UIKit window-root)
163
- - [ ] PushKit registry initialized + reports to CallKit within 5s
164
- - [ ] Hangup teardown ends both SDK + CallKit + chat-side call record
165
- - [ ] Real-device smoke: backgrounded incoming call rings on lock screen
166
- - [ ] Run `cometchat verify --calls` — should pass
167
-
168
- ---
169
-
170
- ## Pointers
171
-
172
- - `cometchat-react-calls/references/add-calls-to-existing-chat.md` — canonical (no native modules)
173
- - `cometchat-ios-calls/SKILL.md` — seven hard rules
174
- - `cometchat-ios-calls/references/server-apns-pushkit.md` — server-side PushKit
@@ -1,45 +0,0 @@
1
- # iOS — Audio Modes + Custom Control Panel
2
-
3
- Verified against `CometChatCallsSDK` 5.x (`callssdk.swiftinterface`).
4
-
5
- ## 1. Audio modes (speaker / earpiece / Bluetooth)
6
-
7
- The SDK reports the available audio routes via the `CallsEventsDelegate` as typed `CallAudioMode` objects (swiftinterface:133 — `mode: String`, `isSelected: Bool`), and lets you switch programmatically by passing a `CallAudioMode`.
8
-
9
- ```swift
10
- import CometChatCallsSDK
11
-
12
- // Observe available routes + current selection (typed form).
13
- // swiftinterface:44 onAudioModeChanged(mode: [CallAudioMode])
14
- func onAudioModeChanged(mode: [CallAudioMode]) {
15
- self.audioRoutes = mode // each has .mode (e.g. "SPEAKER") and .isSelected
16
- }
17
-
18
- // Switch route with a typed CallAudioMode — the current setter.
19
- // swiftinterface:234 CometChatCalls.setAudioMode(_ audioMode: CallAudioMode)
20
- CometChatCalls.setAudioMode(CallAudioMode(mode: "SPEAKER", isSelected: true))
21
- ```
22
-
23
- Note the kit's default in-call UI already shows an audio-mode button; you only need the above for a **custom** control surface (or to drive routing yourself).
24
-
25
- Verified against `CometChatCallsSDK` swiftinterface: the typed `CallsEventsDelegate.onAudioModeChanged(mode: [CallAudioMode])` (swiftinterface:44) and `CometChatCalls.setAudioMode(_ audioMode: CallAudioMode)` (swiftinterface:234) are the CURRENT API. The string forms — `onAudioModeChanged(audioModeList: NSArray)` (swiftinterface:43) and `setAudioMode(mode: String)` (swiftinterface:235) — are DEPRECATED.
26
-
27
- ## 2. Custom control panel (hide built-in buttons)
28
-
29
- There is no separate "panel" object — you compose a custom control bar by **disabling the kit's default buttons** on the `CallSettingsBuilder`, then rendering your own controls (wired to `audioMuted(_:)`, `videoPaused(_:)`, `switchCamera()`, `endSession()`, etc. from the main skill):
30
-
31
- ```swift
32
- let settings = CallSettingsBuilder()
33
- .setEndCallButtonDisable(true)
34
- .setMuteAudioButtonDisable(true)
35
- .setPauseVideoButtonDisable(true)
36
- .setSwitchCameraButtonDisable(true)
37
- .setAudioModeButtonDisable(true)
38
- .setShowRecordingButton(false)
39
- .build()
40
- // then overlay your own SwiftUI/UIKit control bar on the call container
41
- ```
42
-
43
- Verified (on `CallSettingsBuilder`): `setEndCallButtonDisable`, `setMuteAudioButtonDisable`, `setPauseVideoButtonDisable`, `setSwitchCameraButtonDisable`, `setAudioModeButtonDisable`, `setShowRecordingButton` — all `(Bool) -> Self`.
44
-
45
- > **Not supported on iOS** (no SDK symbol — do not author): Virtual Background, and local screen-share **initiation** (receive-only). See the main skill's resolution note.