@cometchat/skills 4.4.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -0,0 +1,197 @@
1
+ # Setup & credentials (iOS UI Kit v5)
2
+
3
+ > Verified against `CometChatUIKitSwift` 5.1.22 / `CometChatSDK` 4.1.7. Exact API always comes
4
+ > from the docs `.md` twin via `docs-map.md` — never from memory and never from `.swiftinterface`.
5
+
6
+ ## 1. Detect before you add anything
7
+
8
+ Read the project, don't ask what you can see:
9
+
10
+ | Signal | Means |
11
+ |---|---|
12
+ | `Package.swift` / `*.xcodeproj` naming `CometChatUIKitSwift` | already integrated via SPM — REUSE, do not re-add |
13
+ | `Podfile` naming `CometChatUIKitSwift` | integrated via **CocoaPods** — see *version_conflict* below |
14
+ | `*.xcworkspace` present | CocoaPods project; open the workspace, never the `.xcodeproj` |
15
+ | none of the above | greenfield add |
16
+
17
+ ## 2. Credentials — the full chain, including the two steps that make it work
18
+
19
+ The chain is `Secrets.xcconfig` → build settings → `Info.plist` → `Bundle.main`. Drawing the chain
20
+ is not enough: **an xcconfig that is not ATTACHED to the build configurations substitutes nothing**,
21
+ and `Info.plist` only exposes a value if the key is DECLARED there. Miss either and
22
+ `Bundle.main.infoDictionary` hands back the literal string `$(COMETCHAT_APP_ID)` — which is why the
23
+ guard in step 4 exists, and why omitting these steps drops you straight into the failure it detects.
24
+
25
+ ### Step 0 — get the App ID / Region / Auth Key — OFFER to FETCH first, never default to "paste it yourself"
26
+ Before writing any file, you need three values: **App ID · Region · Auth Key** (Auth Key is dev-only).
27
+ **OFFER to fetch them from the CometChat Dashboard** — load the CLI on demand
28
+ (`@3` pins the CLI major that matches the v5 skills):
29
+
30
+ ```bash
31
+ npx @cometchat/skills-cli@3 auth login
32
+ npx @cometchat/skills-cli@3 provision use --app-id <id> --json
33
+ ```
34
+
35
+ Ask which EXISTING app; never auto-create. **Already have App ID / Region / Auth Key? Just paste them** —
36
+ manual paste is the fallback, not the default. Mint **auth tokens server-side** for production; never
37
+ ship the Auth Key (§4). The CLI is a dashboard/API client only (`auth`/`provision`/`config`/`features`) —
38
+ it does NOT write env files or generate code; this skill does the wiring in Steps 1–5 below.
39
+
40
+ ### Step 1 — write the file (gitignored)
41
+
42
+ `Config/Secrets.xcconfig`:
43
+
44
+ ```
45
+ COMETCHAT_APP_ID = 123456abcdef
46
+ COMETCHAT_REGION = us
47
+ COMETCHAT_AUTH_KEY = <dev only — see §4>
48
+ ```
49
+
50
+ Add `Config/Secrets.xcconfig` to `.gitignore` **before** you put a real value in it.
51
+
52
+ > `//` starts a comment in an xcconfig, so any value containing it is silently truncated. Values
53
+ > here are plain identifiers, but keep it in mind if you ever add a URL.
54
+
55
+ ### Step 2 — ATTACH it to the build configurations (the step everyone misses)
56
+
57
+ *Xcode:* select the **project** (not the target) → **Info** → **Configurations** → expand **Debug**
58
+ and **Release** → set the configuration file to `Secrets.xcconfig`.
59
+
60
+ *xcodegen* (`project.yml`), at the top level:
61
+
62
+ ```yaml
63
+ configFiles:
64
+ Debug: Config/Secrets.xcconfig
65
+ Release: Config/Secrets.xcconfig
66
+ ```
67
+
68
+ Without this the keys are not build settings at all and nothing substitutes them.
69
+
70
+ ### Step 3 — DECLARE the keys in `Info.plist`
71
+
72
+ Build settings are not visible to your code on their own. Each one you want at runtime must be
73
+ declared as an `Info.plist` entry whose value is the `$(...)` reference.
74
+
75
+ > **First check whether the project HAS an `Info.plist`.** Since Xcode 13 the default is
76
+ > `GENERATE_INFOPLIST_FILE = YES` and there is no plist file in the project at all. You cannot add
77
+ > a CUSTOM key to a generated plist through build settings — measured on Xcode 16:
78
+ >
79
+ > | build setting | reaches the built `Info.plist`? |
80
+ > |---|---|
81
+ > | `INFOPLIST_KEY_NSCameraUsageDescription` (an Apple-defined key) | **yes** |
82
+ > | `INFOPLIST_KEY_COMETCHAT_APP_ID` (a custom key) | **no — silently dropped** |
83
+ >
84
+ > `INFOPLIST_KEY_*` only understands keys Apple defines. So on a generated-plist project, either
85
+ > add a real `Info.plist` and point `INFOPLIST_FILE` at it, or add the keys through the target's
86
+ > **Info** tab, which makes Xcode create one for you. The §3 usage descriptions below are Apple
87
+ > keys, so those CAN stay as `INFOPLIST_KEY_*` build settings — it is only the `COMETCHAT_*`
88
+ > credentials that need a real file.
89
+
90
+ ```xml
91
+ <key>COMETCHAT_APP_ID</key>
92
+ <string>$(COMETCHAT_APP_ID)</string>
93
+ <key>COMETCHAT_REGION</key>
94
+ <string>$(COMETCHAT_REGION)</string>
95
+ <key>COMETCHAT_AUTH_KEY</key>
96
+ <string>$(COMETCHAT_AUTH_KEY)</string>
97
+ ```
98
+
99
+ ### Step 4 — read it back, and fail loudly
100
+
101
+ An unsubstituted value arrives as the literal `$(COMETCHAT_APP_ID)`, not as `nil` — a
102
+ silent-wrong-value trap, so reject that form explicitly:
103
+
104
+ ```swift
105
+ func credential(_ key: String) -> String? {
106
+ guard let v = Bundle.main.infoDictionary?[key] as? String,
107
+ !v.isEmpty, !v.hasPrefix("$(") else { return nil } // reject the un-substituted form
108
+ return v
109
+ }
110
+ ```
111
+
112
+ ### Step 5 — verify the substitution before blaming CometChat
113
+
114
+ Build, then print `Bundle.main.infoDictionary?["COMETCHAT_APP_ID"]`. A real App ID means the chain
115
+ works. The literal `$(COMETCHAT_APP_ID)` means step 2 or step 3 is missing — the credentials are
116
+ fine and the wiring is not. An init/login failure here is NOT a CometChat problem.
117
+
118
+ > For a shipping build, do not carry the Auth Key in the Release configuration at all — see §4.
119
+
120
+ ## 3. `Info.plist` usage descriptions
121
+
122
+ The kit's media affordances call system pickers, and iOS terminates the app if the matching
123
+ usage string is absent. Add the ones your chosen features actually need:
124
+
125
+ | Key | Needed by |
126
+ |---|---|
127
+ | `NSCameraUsageDescription` | camera attachments, video calling |
128
+ | `NSMicrophoneUsageDescription` | voice notes, voice/video calling |
129
+ | `NSPhotoLibraryUsageDescription` | image/video attachments |
130
+
131
+ Write a real sentence for each ("Take photos to send in chat") — App Review rejects placeholders.
132
+
133
+ ## 4. Auth Key vs auth token — the production rule
134
+
135
+ - **Auth Key** authenticates as ANY user. It is a development convenience only. Shipping it in
136
+ an app binary hands every account to anyone who unzips the IPA.
137
+ - **Production**: mint an auth token **server-side** and log in with it. The client never holds
138
+ the Auth Key.
139
+
140
+ `login(uid:)` does NOT create users. On a fresh app the docs' pre-created test users are
141
+ `cometchat-uid-1 … 5`; for any real app, ASK which UID to use rather than guessing.
142
+
143
+ ## 5. version_conflict
144
+
145
+ CocoaPods distribution is winding down and its spec repo is going read-only, so **SPM is the
146
+ only supported integration path**. A `Podfile` is a DETECTION signal, never an instruction.
147
+
148
+ If the project already integrates via CocoaPods, STOP and surface the choice — do not silently
149
+ add SPM alongside it. Two package managers resolving the same binary xcframework is the
150
+ `version_conflict` case: state it, recommend migrating to SPM, and let the user decide.
151
+
152
+ The kit is a prebuilt binary compiled against ONE SDK version, and SPM does not resolve that
153
+ transitively — pin `CometChatSDK` to the exact version the kit requires, or you get link errors
154
+ that look like missing symbols.
155
+
156
+ ## 6. `cometchat-settings.json` — telemetry attribution
157
+
158
+ Separate from the xcconfig chain above, and required for CometChat to attribute the integration
159
+ to the skills rather than to a hand-written one.
160
+
161
+ `CometChatUIKit.initFromSettings` takes **no parameters**. That is not a limitation — it reads a
162
+ JSON file from the app bundle. Create `cometchat-settings.json` and add it to the target's **Copy
163
+ Bundle Resources**:
164
+
165
+ ```json
166
+ {
167
+ "appId": "<your app id>",
168
+ "region": "<your region>",
169
+ "authKey": "<dev only — see §4>",
170
+ "presenceSubscription": { "type": "ALL_USERS" }
171
+ }
172
+ ```
173
+
174
+ Valid `presenceSubscription.type` values are `ALL_USERS`, `ROLES`, `FRIENDS`, `NONE` — the SDK
175
+ rejects anything else by name. **Gitignore this file**: it carries the Auth Key, exactly like
176
+ `Secrets.xcconfig`.
177
+
178
+ ### Call it BEFORE the classic init, not instead of it
179
+
180
+ | init path | `integrationSource` | login / render |
181
+ |---|---|---|
182
+ | classic `CometChatUIKit(uiKitSettings:)` alone | *absent* — calls stamped **`"manual"`** | works |
183
+ | `initFromSettings` alone | `"ai-agent"` | **fails — `Err_101`** |
184
+ | `initFromSettings` **then** classic | `"ai-agent"` | works |
185
+
186
+ Measured on 5.1.19 with the app container wiped between runs. On this version
187
+ `initFromSettings` initialises the Chat SDK but leaves the UI Kit layer uninitialised, so using it
188
+ alone breaks login — a kit defect, and the reason the recipe runs both.
189
+
190
+ > Why this is worth the extra call: without it every app you build is attributed to
191
+ > `"manual"`. That is not merely missing attribution, it is **wrong** attribution.
192
+
193
+ > A note on verifying this API: `integrationSource` appears **nowhere** in the shipped
194
+ > `.swiftinterface`, and an earlier version of this pack concluded from that fact that attribution
195
+ > was impossible on iOS. That was wrong. The interface lists which SYMBOLS EXIST; it says nothing
196
+ > about runtime behaviour or where a function's inputs come from. Both facts here came from the
197
+ > shipped binaries and from measuring `UserDefaults`, not from the interface.
@@ -0,0 +1,91 @@
1
+ # SwiftUI, and where `init → login` actually goes
2
+
3
+ The kit is **UIKit-only**: every component is a `UIView`/`UIViewController`. It works in a SwiftUI
4
+ app, but nothing about that is automatic, and the golden path in `SKILL.md` shows the code without
5
+ saying where it lives. This file says where.
6
+
7
+ > Verified on 5.1.22 by building and running a SwiftUI app from scratch: login succeeded and
8
+ > `CometChatConversations` rendered with live data.
9
+
10
+ ## Where init and login go
11
+
12
+ `init → login` must complete **before** any component renders, and it must run **once** for the
13
+ process — not per view. SwiftUI views are values and their bodies re-evaluate freely, so a `.task`
14
+ or `.onAppear` on a view is the wrong home for it.
15
+
16
+ | lifecycle | put `init → login` in |
17
+ |---|---|
18
+ | **UIKit** (`AppDelegate` + `SceneDelegate`) | `application(_:didFinishLaunchingWithOptions:)` |
19
+ | **SwiftUI** (`@main struct App`) | an `AppDelegate` attached with `@UIApplicationDelegateAdaptor` |
20
+
21
+ A stock Xcode project today has **no `AppDelegate` and no `SceneDelegate`** — it is a SwiftUI
22
+ `App`. Adding the adaptor is how you get a launch hook back.
23
+
24
+ ```swift
25
+ final class AppDelegate: NSObject, UIApplicationDelegate {
26
+ func application(_ app: UIApplication,
27
+ didFinishLaunchingWithOptions opts: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
28
+ CometChatUIKit.initFromSettings { _, _ in // attribution — see setup-credentials §6
29
+ CometChatUIKit.init(uiKitSettings: settings) { result in
30
+ if case .success = result {
31
+ CometChatUIKit.login(uid: uid) { _ in
32
+ DispatchQueue.main.async { AppState.shared.ready = true }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ return true
38
+ }
39
+ }
40
+
41
+ @main
42
+ struct MyApp: App {
43
+ @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
44
+ @ObservedObject private var state = AppState.shared
45
+ var body: some Scene {
46
+ WindowGroup {
47
+ if state.ready { ChatScreen() } // render ONLY after login resolves
48
+ else { ProgressView() }
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ `AppState` is any `ObservableObject` with a `ready` flag. Gating on it is not optional: rendering a
55
+ component before login resolves is the silent-failure case the ordering rule exists to prevent.
56
+
57
+ ## Showing a UIKit component from SwiftUI
58
+
59
+ Wrap it in `UIViewControllerRepresentable`. Wrap it in a `UINavigationController` too — the kit
60
+ composes by navigation (list pushes the message pane), so without one the push has nowhere to go.
61
+
62
+ ```swift
63
+ struct ConversationsView: UIViewControllerRepresentable {
64
+ func makeUIViewController(context: Context) -> UINavigationController {
65
+ let list = CometChatConversations()
66
+ // wire onItemClick here exactly as in the golden path
67
+ return UINavigationController(rootViewController: list)
68
+ }
69
+ func updateUIViewController(_ vc: UINavigationController, context: Context) {}
70
+ }
71
+ ```
72
+
73
+ **Qualify `CometChatSDK.User` / `CometChatSDK.Group` in any file that imports SwiftUI.** SwiftUI
74
+ declares its own `Group`, so a bare `as? Group` is `'Group' is ambiguous for type lookup` — a
75
+ guaranteed compile error in the wrapper file this page tells you to write. A live test hit exactly
76
+ that. Host apps also very often define their own `User` model, so qualify both:
77
+
78
+ ```swift
79
+ vc.user = conversation.conversationWith as? CometChatSDK.User
80
+ vc.group = conversation.conversationWith as? CometChatSDK.Group
81
+ ```
82
+
83
+ The golden path in `SKILL.md` and the recipe in `layout.md` are already written this way; keep them
84
+ qualified rather than "tidying" the module prefix away.
85
+
86
+ `NavigationStack` does **not** substitute for this. The kit pushes with
87
+ `UINavigationController.pushViewController`, which a SwiftUI `NavigationStack` does not provide.
88
+
89
+ Rule 5 still applies inside that navigation controller — see `layout.md`. The coordinator goes on
90
+ the `UINavigationController` you create in `makeUIViewController`, and something must hold it: the
91
+ `delegate` is weak, and a coordinator created inline is deallocated immediately.
@@ -0,0 +1,100 @@
1
+ # Troubleshooting — symptom → cause → fix
2
+
3
+ Every entry here is a RUNTIME failure that compiled cleanly. That is the character of this kit:
4
+ the compiler will not catch composition mistakes.
5
+
6
+ ## Blank screen, nothing renders
7
+
8
+ **Cause:** `login()` ran before `init()` finished, or it failed and nothing surfaced the error.
9
+ `login()` called early fails SILENTLY.
10
+
11
+ **Fix:** nest them — never sequence with a timer. Render only after login succeeds:
12
+
13
+ ```swift
14
+ CometChatUIKit.init(uiKitSettings: settings) { result in
15
+ switch result {
16
+ case .success:
17
+ CometChatUIKit.login(uid: uid) { loginResult in
18
+ switch loginResult {
19
+ case .success: DispatchQueue.main.async { mountChat() }
20
+ case .onError(let e): print("login failed:", e.errorDescription)
21
+ @unknown default: break
22
+ }
23
+ }
24
+ case .failure(let e): print("init failed:", e.localizedDescription)
25
+ }
26
+ }
27
+ ```
28
+
29
+ Also check credentials actually resolved — an unsubstituted xcconfig value arrives as the
30
+ literal `$(COMETCHAT_APP_ID)`, not nil (see `setup-credentials.md`).
31
+
32
+ ## The list renders but tapping a row does nothing
33
+
34
+ **Cause:** `set(onItemClick:)` was never wired. The rows are real; the destination is not.
35
+
36
+ **Fix:** push the message screen from the click handler, taking exactly one of user/group —
37
+ see `layout.md`.
38
+
39
+ ## Tapping the composer makes the conversation disappear
40
+
41
+ **Cause:** the composer is pinned to `view.keyboardLayoutGuide.topAnchor`. The kit's composer
42
+ already adjusts for the keyboard, so this double-applies it — the message list collapses to height
43
+ 0 and the composer's own text field goes with it, leaving only the attachment/mic/send icons
44
+ jammed under the header.
45
+
46
+ **Fix:** pin the composer to `view.safeAreaLayoutGuide.bottomAnchor`, as the published recipe
47
+ shows. The kit handles the keyboard from there.
48
+
49
+ ## Two navigation bars stacked on the message screen
50
+
51
+ **Cause:** `CometChatMessageHeader` carries its own title and back control, and the
52
+ `UINavigationController` bar is still visible above it.
53
+
54
+ **Fix:** hide the nav bar on the message screen in `viewDidLoad`, restore it in
55
+ `viewWillDisappear`. Do not hide it globally.
56
+
57
+ ## The message pane is a thin strip / everything is squashed at the top
58
+
59
+ **Cause:** the list is not pinned both top AND bottom, so it sizes to its intrinsic content
60
+ instead of filling the space between header and composer.
61
+
62
+ **Fix:** add both constraints (Rule 4 in `layout.md`). Verify by opening a conversation, not by
63
+ looking at the list screen — the collapse is only visible on the pushed screen.
64
+
65
+ ## An empty list that might be an error
66
+
67
+ **Cause:** no `set(onError:)`, so a failed fetch looks exactly like an empty account.
68
+
69
+ **Fix:** wire `set(onError:)` on every list component and surface the failure.
70
+
71
+ ## Replies render but never send
72
+
73
+ **Cause:** the thread's parent was set through two different APIs — see `anti-patterns.md` §4.
74
+
75
+ **Fix:** set the parent one way, per the docs for that component, then actually send a reply to
76
+ confirm.
77
+
78
+ ## Link errors / missing symbols after adding the package
79
+
80
+ **Cause:** `CometChatSDK` is not pinned to the exact version the binary kit was compiled
81
+ against, or (on 5.1.19) `CometChatCallsSDK` is absent — the shipped interface hard-imports it,
82
+ so even a chat-only app fails to compile without it.
83
+
84
+ **Fix:** pin both exactly. See `anti-patterns.md` §5.
85
+
86
+ ## The group-members screen cannot be dismissed
87
+
88
+ **Symptom:** you push `CometChatGroupMembers`, it renders correctly, and then there is no way back
89
+ — the kit's Cancel control does nothing, a wired `set(onBack:)` never fires, and edge-swipe back is
90
+ inert.
91
+
92
+ **Status: reported and NOT reproduced by us.** An acceptance pass measured it (Cancel
93
+ `action=didTapBackButton` inert across 3 taps, `set(onBack:)` instrumented and never called); an
94
+ attempt to reproduce it in the review harness did not get far enough to confirm or refute. So there
95
+ is no verified fix here, and none is invented: we do not know whether the fault is the recipe or
96
+ the kit.
97
+
98
+ **What to do:** treat "can the user leave this screen?" as a test you run, not a property you
99
+ assume. If you hit it, give yourself a dismissal path you control — your own bar button, or
100
+ presenting rather than pushing — and please report the exact flow so this can be pinned down.