@cometchat/skills 4.4.2 → 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.
- package/.claude-plugin/marketplace.json +55 -0
- package/.claude-plugin/plugin.json +14 -0
- package/CHANGELOG.md +36 -0
- package/LICENSE +21 -0
- package/README.md +41 -163
- package/RULES.md +114 -0
- package/bin/cometchat-skills.mjs +1180 -0
- package/bin/legacy-skills.json +95 -0
- package/catalogs/android-v6.json +1646 -0
- package/catalogs/flutter-v6.json +651 -0
- package/catalogs/ios-v5.json +1383 -0
- package/catalogs/rn-calls-v5.json +134 -0
- package/catalogs/rn-calls-v5.symbols.txt +58 -0
- package/catalogs/rn-sdk-v4.json +672 -0
- package/catalogs/rn-v5.json +449 -0
- package/catalogs/rn-v5.symbols.txt +216 -0
- package/catalogs/sdk-android-v5.json +514 -0
- package/contracts.android-calls-v5.json +122 -0
- package/contracts.android-v6.json +135 -0
- package/contracts.angular-v5.json +694 -0
- package/contracts.flutter-calls-v5.json +77 -0
- package/contracts.flutter-v6.json +126 -0
- package/contracts.ios-calls-v5.json +67 -0
- package/contracts.ios-v5.json +436 -0
- package/contracts.json +82 -0
- package/contracts.rn-calls-v5.json +77 -0
- package/contracts.rn-v5.json +727 -0
- package/contracts.sdk-android-v5.json +15 -0
- package/contracts.web-calls-v5.json +45 -0
- package/features.android-calls-v5.json +246 -0
- package/features.android-v6.json +65 -0
- package/features.angular-v5.json +521 -0
- package/features.flutter-calls-v5.json +286 -0
- package/features.flutter-v6.json +484 -0
- package/features.ios-calls-v5.json +236 -0
- package/features.ios-v5.json +573 -0
- package/features.json +61 -0
- package/features.rn-calls-v5.json +187 -0
- package/features.rn-v5.json +614 -0
- package/features.sdk-android-v5.json +40 -0
- package/features.sdk-jsv4.json +24 -0
- package/features.web-calls-v5.json +108 -0
- package/package.json +151 -74
- package/peers.yaml +312 -0
- package/registry/README.md +31 -0
- package/registry/android-calls-v5.json +54 -0
- package/registry/android-v6.json +137 -0
- package/registry/angular-v5.json +114 -0
- package/registry/flutter-calls-v5.json +54 -0
- package/registry/flutter-v6.json +119 -0
- package/registry/ios-calls-v5.json +59 -0
- package/registry/ios-v5.json +97 -0
- package/registry/rn-calls-v5.json +59 -0
- package/registry/rn-v5.json +129 -0
- package/registry/sdk-android-v5.json +53 -0
- package/registry/sdk-jsv4.json +53 -0
- package/registry/web-calls-v5.json +54 -0
- package/registry/web-v7.json +99 -0
- package/skills/cometchat/SKILL.md +42 -2096
- package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
- package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
- package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
- package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
- package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
- package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
- package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
- package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
- package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
- package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
- package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
- package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
- package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
- package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
- package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
- package/skills/cometchat-android-v6-core/SKILL.md +236 -672
- package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
- package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
- package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
- package/skills/cometchat-android-v6-core/references/layout.md +112 -0
- package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
- package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
- package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
- package/skills/cometchat-android-v6-events/SKILL.md +46 -184
- package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
- package/skills/cometchat-android-v6-features/SKILL.md +74 -143
- package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
- package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
- package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
- package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
- package/skills/cometchat-android-v6-production/SKILL.md +40 -179
- package/skills/cometchat-android-v6-push/SKILL.md +39 -289
- package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
- package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
- package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
- package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
- package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
- package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
- package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
- package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
- package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
- package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
- package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
- package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
- package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
- package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
- package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
- package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
- package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
- package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
- package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
- package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
- package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
- package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
- package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
- package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
- package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
- package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
- package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
- package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
- package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
- package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
- package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
- package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
- package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
- package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
- package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
- package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
- package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
- package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
- package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
- package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
- package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
- package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
- package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
- package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
- package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
- package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
- package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
- package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
- package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
- package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
- package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
- package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
- package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
- package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
- package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
- package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
- package/skills/cometchat-ios-calls/SKILL.md +112 -563
- package/skills/cometchat-ios-components/SKILL.md +44 -834
- package/skills/cometchat-ios-core/SKILL.md +181 -1068
- package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
- package/skills/cometchat-ios-core/references/docs-map.md +123 -0
- package/skills/cometchat-ios-core/references/install.md +23 -0
- package/skills/cometchat-ios-core/references/layout.md +186 -0
- package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
- package/skills/cometchat-ios-core/references/swiftui.md +91 -0
- package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
- package/skills/cometchat-ios-customization/SKILL.md +33 -968
- package/skills/cometchat-ios-features/SKILL.md +29 -738
- package/skills/cometchat-ios-migration/SKILL.md +39 -0
- package/skills/cometchat-ios-placement/SKILL.md +51 -729
- package/skills/cometchat-ios-push/SKILL.md +24 -602
- package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
- package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
- package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
- package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
- package/skills/cometchat-onboarding/SKILL.md +89 -0
- package/skills/cometchat-onboarding/references/archetypes.md +51 -0
- package/skills/cometchat-onboarding/references/calling-first.md +77 -0
- package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
- package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
- package/skills/cometchat-onboarding/references/platforms.md +90 -0
- package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
- package/skills/cometchat-react-native-calls/SKILL.md +200 -0
- package/skills/cometchat-react-native-components/SKILL.md +142 -0
- package/skills/cometchat-react-native-core/SKILL.md +313 -0
- package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
- package/skills/cometchat-react-native-core/references/component-props.md +105 -0
- package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
- package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
- package/skills/cometchat-react-native-core/references/layout.md +61 -0
- package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
- package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
- package/skills/cometchat-react-native-customization/SKILL.md +198 -0
- package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
- package/skills/cometchat-react-native-features/SKILL.md +122 -0
- package/skills/cometchat-react-native-migration/SKILL.md +103 -0
- package/skills/cometchat-react-native-placement/SKILL.md +158 -0
- package/skills/cometchat-react-native-production/SKILL.md +78 -0
- package/skills/cometchat-react-native-push/SKILL.md +88 -0
- package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
- package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
- package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
- package/skills/cometchat-react-native-testing/SKILL.md +94 -0
- package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
- package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
- package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
- package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
- package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
- package/skills/cometchat-react-v7-components/SKILL.md +72 -0
- package/skills/cometchat-react-v7-core/SKILL.md +101 -0
- package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
- package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
- package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
- package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
- package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
- package/skills/cometchat-react-v7-core/references/layout.md +158 -0
- package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
- package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
- package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
- package/skills/cometchat-react-v7-core/references/theming.md +52 -0
- package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
- package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
- package/skills/cometchat-react-v7-features/SKILL.md +92 -0
- package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
- package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
- package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
- package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
- package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
- package/skills/cometchat-react-v7-push/SKILL.md +53 -0
- package/test-suite/README.md +70 -0
- package/test-suite/catalogs/android-calls-v5.json +830 -0
- package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
- package/test-suite/catalogs/android-v6.json +1646 -0
- package/test-suite/catalogs/android-v6.symbols.txt +298 -0
- package/test-suite/catalogs/angular-v5.json +7587 -0
- package/test-suite/catalogs/flutter-calls-v5.json +196 -0
- package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
- package/test-suite/catalogs/flutter-v6.json +651 -0
- package/test-suite/catalogs/ios-calls-v5.json +158 -0
- package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
- package/test-suite/catalogs/ios-v5.json +1383 -0
- package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
- package/test-suite/catalogs/rn-calls-v5.json +134 -0
- package/test-suite/catalogs/rn-sdk-v4.json +672 -0
- package/test-suite/catalogs/rn-v5.json +449 -0
- package/test-suite/catalogs/sdk-android-v5.json +514 -0
- package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
- package/test-suite/catalogs/sdk-jsv4.json +800 -0
- package/test-suite/catalogs/web-calls-v5.json +195 -0
- package/test-suite/catalogs/web-v7.json +1243 -0
- package/test-suite/scripts/build-registry.mjs +113 -0
- package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
- package/test-suite/scripts/catalog-refresh.mjs +100 -0
- package/test-suite/scripts/lint-skills.mjs +909 -0
- package/test-suite/scripts/measure-tokens.mjs +169 -0
- package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
- package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
- package/test-suite/scripts/typecheck-fences.mjs +206 -0
- package/test-suite/scripts/verify-catalog.mjs +242 -0
- package/test-suite/scripts/verify-contract-fences.mjs +94 -0
- package/test-suite/scripts/verify-detection.mjs +178 -0
- package/test-suite/scripts/verify-docs-base.mjs +91 -0
- package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
- package/test-suite/scripts/verify-golden-path.mjs +138 -0
- package/test-suite/scripts/verify-oracle-components.mjs +133 -0
- package/test-suite/scripts/verify-template-bindings.mjs +148 -0
- package/test-suite/typecheck/angular-v5/package.json +21 -0
- package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
- package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
- package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
- package/test-suite/typecheck/web-v7/package.json +18 -0
- package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
- package/bin/install.js +0 -1003
- package/skills/.claude-plugin/marketplace.json +0 -86
- package/skills/cometchat/references/asking-questions.md +0 -48
- package/skills/cometchat-a11y/SKILL.md +0 -477
- package/skills/cometchat-android-v5/SKILL.md +0 -121
- package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
- package/skills/cometchat-android-v5-calls/references/README.md +0 -53
- package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
- package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
- package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
- package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
- package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
- package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
- package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
- package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
- package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
- package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
- package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
- package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
- package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
- package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
- package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
- package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
- package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
- package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
- package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
- package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
- package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
- package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
- package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
- package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
- package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
- package/skills/cometchat-android-v5-components/SKILL.md +0 -431
- package/skills/cometchat-android-v5-core/SKILL.md +0 -486
- package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
- package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
- package/skills/cometchat-android-v5-features/SKILL.md +0 -131
- package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
- package/skills/cometchat-android-v5-production/SKILL.md +0 -95
- package/skills/cometchat-android-v5-push/SKILL.md +0 -619
- package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
- package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
- package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
- package/skills/cometchat-android-v6/SKILL.md +0 -108
- package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
- package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
- package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
- package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
- package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
- package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
- package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
- package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
- package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
- package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
- package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
- package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
- package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
- package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
- package/skills/cometchat-angular-calls/SKILL.md +0 -380
- package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
- package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
- package/skills/cometchat-angular-calls/references/call-session.md +0 -167
- package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
- package/skills/cometchat-angular-calls/references/device-management.md +0 -154
- package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
- package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
- package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
- package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
- package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
- package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
- package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
- package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
- package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
- package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
- package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
- package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
- package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
- package/skills/cometchat-angular-components/SKILL.md +0 -235
- package/skills/cometchat-angular-core/SKILL.md +0 -386
- package/skills/cometchat-angular-customization/SKILL.md +0 -616
- package/skills/cometchat-angular-features/SKILL.md +0 -329
- package/skills/cometchat-angular-patterns/SKILL.md +0 -256
- package/skills/cometchat-angular-placement/SKILL.md +0 -314
- package/skills/cometchat-angular-production/SKILL.md +0 -564
- package/skills/cometchat-angular-push/SKILL.md +0 -389
- package/skills/cometchat-angular-testing/SKILL.md +0 -605
- package/skills/cometchat-angular-theming/SKILL.md +0 -290
- package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
- package/skills/cometchat-astro-patterns/SKILL.md +0 -708
- package/skills/cometchat-calls/SKILL.md +0 -364
- package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
- package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
- package/skills/cometchat-calls/references/use-case-support.md +0 -189
- package/skills/cometchat-calls/references/use-case-team.md +0 -180
- package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
- package/skills/cometchat-components/SKILL.md +0 -1142
- package/skills/cometchat-core/SKILL.md +0 -1048
- package/skills/cometchat-customization/SKILL.md +0 -580
- package/skills/cometchat-customization/references/component-catalog.md +0 -236
- package/skills/cometchat-features/SKILL.md +0 -861
- package/skills/cometchat-flutter-v5/SKILL.md +0 -173
- package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
- package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
- package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
- package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
- package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
- package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
- package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
- package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
- package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
- package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
- package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
- package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
- package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
- package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
- package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
- package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
- package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
- package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
- package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
- package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
- package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
- package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
- package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
- package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
- package/skills/cometchat-flutter-v6/SKILL.md +0 -446
- package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
- package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
- package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
- package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
- package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
- package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
- package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
- package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
- package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
- package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
- package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
- package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
- package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
- package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
- package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
- package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
- package/skills/cometchat-i18n/SKILL.md +0 -419
- package/skills/cometchat-ios/SKILL.md +0 -325
- package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
- package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
- package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
- package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
- package/skills/cometchat-ios-calls/references/call-session.md +0 -218
- package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
- package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
- package/skills/cometchat-ios-calls/references/device-management.md +0 -171
- package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
- package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
- package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
- package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
- package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
- package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
- package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
- package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
- package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
- package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
- package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
- package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
- package/skills/cometchat-ios-production/SKILL.md +0 -738
- package/skills/cometchat-ios-testing/SKILL.md +0 -376
- package/skills/cometchat-ios-theming/SKILL.md +0 -667
- package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
- package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
- package/skills/cometchat-native-calls/SKILL.md +0 -671
- package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
- package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
- package/skills/cometchat-native-calls/references/call-session.md +0 -182
- package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
- package/skills/cometchat-native-calls/references/device-management.md +0 -158
- package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
- package/skills/cometchat-native-calls/references/group-calls.md +0 -296
- package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
- package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
- package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
- package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
- package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
- package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
- package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
- package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
- package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
- package/skills/cometchat-native-calls/references/share-invite.md +0 -146
- package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
- package/skills/cometchat-native-components/SKILL.md +0 -628
- package/skills/cometchat-native-core/SKILL.md +0 -679
- package/skills/cometchat-native-customization/SKILL.md +0 -716
- package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
- package/skills/cometchat-native-features/SKILL.md +0 -638
- package/skills/cometchat-native-placement/SKILL.md +0 -509
- package/skills/cometchat-native-production/SKILL.md +0 -700
- package/skills/cometchat-native-push/SKILL.md +0 -594
- package/skills/cometchat-native-testing/SKILL.md +0 -582
- package/skills/cometchat-native-theming/SKILL.md +0 -681
- package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
- package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
- package/skills/cometchat-placement/SKILL.md +0 -1360
- package/skills/cometchat-production/SKILL.md +0 -1027
- package/skills/cometchat-react-calls/SKILL.md +0 -752
- package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
- package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
- package/skills/cometchat-react-calls/references/call-session.md +0 -235
- package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
- package/skills/cometchat-react-calls/references/device-management.md +0 -210
- package/skills/cometchat-react-calls/references/group-calls.md +0 -257
- package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
- package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
- package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
- package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
- package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
- package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
- package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
- package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
- package/skills/cometchat-react-calls/references/share-invite.md +0 -175
- package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
- package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
- package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
- package/skills/cometchat-react-patterns/SKILL.md +0 -628
- package/skills/cometchat-react-push/SKILL.md +0 -634
- package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
- package/skills/cometchat-react-testing/SKILL.md +0 -413
- package/skills/cometchat-theming/SKILL.md +0 -498
- package/skills/cometchat-troubleshooting/SKILL.md +0 -294
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cometchat-android-v5-features
|
|
3
|
-
description: "Add features (calls, reactions, polls, file sharing, AI, etc.) to an already-integrated CometChat project. Routes to the right sub-flow based on feature type."
|
|
4
|
-
license: "MIT"
|
|
5
|
-
compatibility: "Android 7.0+; Java 8+; Kotlin 1.8+; com.cometchat:chat-uikit-android:5.x"
|
|
6
|
-
metadata:
|
|
7
|
-
author: "CometChat"
|
|
8
|
-
version: "3.0.0"
|
|
9
|
-
tags: "cometchat android features extensions calls reactions polls ai-features"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
> **Ground truth:** `com.cometchat:chat-uikit-android:5.x` (legacy/maintenance-only; +`calls-sdk-android:5.x`) — resolved AAR (javap) + `ui-kit/android`. **Official docs:** https://www.cometchat.com/docs/fundamentals/extensions-overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
|
|
13
|
-
|
|
14
|
-
> **Companion skills:** `cometchat-android-v5-core` covers initialization;
|
|
15
|
-
> `cometchat-android-v5-customization` covers deeper component customization;
|
|
16
|
-
> `cometchat-android-v5-extensions` covers the extension architecture.
|
|
17
|
-
|
|
18
|
-
## Purpose
|
|
19
|
-
|
|
20
|
-
This skill teaches how CometChat features are structured and what work is required to enable each one. Most features require zero code — they are either already built into the UI Kit, toggled via the `cometchat apply-feature` CLI (extensions + AI features), or activated by adding a dependency (calls).
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Use this skill when
|
|
25
|
-
|
|
26
|
-
- "Add reactions to my chat"
|
|
27
|
-
- "Add video calling"
|
|
28
|
-
- "Enable polls"
|
|
29
|
-
- "Add file sharing"
|
|
30
|
-
- "Enable smart replies"
|
|
31
|
-
|
|
32
|
-
## Do not use this skill when
|
|
33
|
-
|
|
34
|
-
- Customizing how a feature looks → use `cometchat-android-v5-customization`
|
|
35
|
-
- Setting up the initial integration → use `cometchat-android-v5-core`
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## 1. Feature types
|
|
40
|
-
|
|
41
|
-
| Type | What it means | Action required |
|
|
42
|
-
|---|---|---|
|
|
43
|
-
| Type 1 — Default | Built into the UI Kit at compile time | None — already there |
|
|
44
|
-
| Type 2a — Extension | Backend extension, pure boolean toggle | `cometchat apply-feature <id> --app-id <X>` (CLI hits dashboard API) |
|
|
45
|
-
| Type 2b — AI feature | Backend AI feature requiring an OpenAI key | `cometchat apply-feature <id> --app-id <X> --openai-key sk-...` |
|
|
46
|
-
| Type 2c — Dashboard-only | Third-party API key / multi-field config (Giphy, Stipop, Tenor, Chatwoot, Intercom) | Open https://app.cometchat.com → Chat & Messaging → Features → configure |
|
|
47
|
-
| Type 3 — Package-install | Requires a separate SDK dependency | Add Gradle dependency |
|
|
48
|
-
| Type 4 — Component-toggle | Hide/show via `setHide*` / `disable*` methods on the relevant component | Call the setter on the component instance (see catalog) |
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## 2. Type 1 — Default features (already enabled)
|
|
53
|
-
|
|
54
|
-
| Feature | Component | Notes |
|
|
55
|
-
|---|---|---|
|
|
56
|
-
| Text messaging | `CometChatMessageComposer` + `CometChatMessageList` | Core feature |
|
|
57
|
-
| Media sharing (image/video/audio/file) | `CometChatMessageComposer` | Attachment button |
|
|
58
|
-
| Read receipts | `CometChatMessageList` | `setReceiptsVisibility()` |
|
|
59
|
-
| Typing indicators | `CometChatMessageList` + `CometChatConversations` | Auto-enabled |
|
|
60
|
-
| User presence (online/offline) | `CometChatConversations`, `CometChatUsers` | Requires `subscribePresenceForAllUsers()` in init |
|
|
61
|
-
| Reactions | `CometChatMessageList` | Long-press message → react |
|
|
62
|
-
| Mentions (@user, @all) | `CometChatMessageComposer` | Type `@` to trigger |
|
|
63
|
-
| Threaded conversations | `CometChatMessageList` | `setReplyInThreadOptionVisibility()` |
|
|
64
|
-
| Quoted replies | `CometChatMessageList` | Swipe to reply |
|
|
65
|
-
| Edit/delete messages | `CometChatMessageList` | Long-press options |
|
|
66
|
-
| Group chat | All components | Use `setGroup()` instead of `setUser()` |
|
|
67
|
-
| Report message | `CometChatMessageList` | Long-press → Report |
|
|
68
|
-
| Search | `CometChatSearch` | Standalone component |
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## 3. Type 2 — Backend toggle features (no code needed)
|
|
73
|
-
|
|
74
|
-
Android projects don't run `cometchat apply`, so call the CLI in stateless mode with `--app-id`:
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
# Pure boolean extensions:
|
|
78
|
-
cometchat apply-feature polls --app-id <your-app-id>
|
|
79
|
-
cometchat apply-feature stickers --app-id <your-app-id>
|
|
80
|
-
|
|
81
|
-
# AI features (require OpenAI key):
|
|
82
|
-
cometchat apply-feature smart-replies --app-id <your-app-id> --openai-key sk-...
|
|
83
|
-
cometchat apply-feature conversation-summary --app-id <your-app-id>
|
|
84
|
-
cometchat apply-feature conversation-starter --app-id <your-app-id>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Requires `cometchat auth login` once per machine.
|
|
88
|
-
|
|
89
|
-
**Extensions (CLI-toggleable — pure boolean):**
|
|
90
|
-
- User Engagement: Polls, Message Translation, Reminders
|
|
91
|
-
- Collaboration: Collaborative Document, Collaborative Whiteboard
|
|
92
|
-
- Security: Disappearing Messages, E2E Encryption (Enterprise)
|
|
93
|
-
- Moderation: Profanity Filter, Image Moderation, Data Masking, Sentiment Analysis, XSS Filter
|
|
94
|
-
|
|
95
|
-
**AI Features (CLI-toggleable — needs `--openai-key`):**
|
|
96
|
-
Conversation Starter, Conversation Summary, Smart Reply
|
|
97
|
-
|
|
98
|
-
**Dashboard-only (third-party config — open https://app.cometchat.com → Chat & Messaging → Features):**
|
|
99
|
-
Stickers (Stipop), Giphy, Tenor, Chatwoot, Intercom — these require API keys / webhooks the user must enter manually.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## 4. Type 3 — Package-install features
|
|
104
|
-
|
|
105
|
-
### Voice/Video Calling
|
|
106
|
-
|
|
107
|
-
Add the calling SDK:
|
|
108
|
-
|
|
109
|
-
```groovy
|
|
110
|
-
implementation 'com.cometchat:calls-sdk-android:5.+'
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
The UI Kit auto-detects the calling SDK and enables call buttons in `CometChatMessageHeader`. No additional code needed — `CometChatIncomingCall`, `CometChatOutgoingCall`, and `CometChatOngoingCall` activate automatically.
|
|
114
|
-
|
|
115
|
-
Configure call buttons visibility:
|
|
116
|
-
|
|
117
|
-
```java
|
|
118
|
-
CometChatMessageHeader header = findViewById(R.id.header);
|
|
119
|
-
header.setVoiceCallButtonVisibility(View.VISIBLE);
|
|
120
|
-
header.setVideoCallButtonVisibility(View.VISIBLE);
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Hard rules
|
|
126
|
-
|
|
127
|
-
- **Don't write code for Type 1 features.** They're already there. Tell the user where to find them.
|
|
128
|
-
- **Don't write code for Type 2a/2b features.** Run `cometchat apply-feature <id> --app-id <X>` (extension) or `... --openai-key sk-...` (ai-feature). The CLI flips the dashboard toggle via API. Never tell the user to "open the dashboard and toggle X" for an extension or ai-feature — that's what the CLI does.
|
|
129
|
-
- **For Type 2c (dashboard-only) features**, the CLI cannot automate (third-party keys / multi-field config). Walk the user through the dashboard path returned by `cometchat apply-feature <id>`'s `manual-action-required` response.
|
|
130
|
-
- **For Type 3 (calls), just add the Gradle dependency.** The UI Kit handles the rest.
|
|
131
|
-
- **Always run `cometchat apply-feature <id>` first** for extensions and AI features. If the user reports a "missing feature," it's almost always an unflipped toggle the CLI can fix in one call.
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cometchat-android-v5-placement
|
|
3
|
-
description: "Where to put CometChat in your Android app — Activity, Fragment, BottomSheet, Dialog, Tab, or embedded patterns."
|
|
4
|
-
license: "MIT"
|
|
5
|
-
compatibility: "Android 7.0+; Java 8+; Kotlin 1.8+; com.cometchat:chat-uikit-android:5.x"
|
|
6
|
-
metadata:
|
|
7
|
-
author: "CometChat"
|
|
8
|
-
version: "3.0.0"
|
|
9
|
-
tags: "chat cometchat android placement activity fragment bottomsheet dialog tabs integration"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
> **Ground truth:** `com.cometchat:chat-uikit-android:5.x` (legacy/maintenance-only) views + `docs/ui-kit/android`. **Official docs:** https://www.cometchat.com/docs/ui-kit/android/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
|
|
13
|
-
|
|
14
|
-
> **Companion skills:** `cometchat-android-v5-core` covers init and login;
|
|
15
|
-
> `cometchat-android-v5-components` provides the component catalog.
|
|
16
|
-
|
|
17
|
-
## Purpose
|
|
18
|
-
|
|
19
|
-
This skill teaches WHERE to put CometChat in an existing Android project. It covers six placement patterns: dedicated Activity, Fragment, BottomSheet, Dialog, Tab/ViewPager, and embedded view. Each pattern includes step-by-step instructions and code examples in both Java and Kotlin.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Use this skill when
|
|
24
|
-
|
|
25
|
-
- Integrating CometChat into an existing Android app
|
|
26
|
-
- Deciding between Activity vs Fragment vs BottomSheet
|
|
27
|
-
- "Where should I put the chat screen?"
|
|
28
|
-
- "How do I add chat as a tab?"
|
|
29
|
-
- "How do I show chat in a bottom sheet?"
|
|
30
|
-
|
|
31
|
-
## Do not use this skill when
|
|
32
|
-
|
|
33
|
-
- Setting up init/login → use `cometchat-android-v5-core`
|
|
34
|
-
- Looking up component APIs → use `cometchat-android-v5-components`
|
|
35
|
-
- Customizing appearance → use `cometchat-android-v5-theming`
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## 1. Placement recommendation
|
|
40
|
-
|
|
41
|
-
| User intent | Recommended placement | Why |
|
|
42
|
-
|---|---|---|
|
|
43
|
-
| Messaging app | Dedicated Activity with bottom tabs | Full-screen chat experience |
|
|
44
|
-
| Marketplace | Chat button → new Activity | Separate context from product browsing |
|
|
45
|
-
| SaaS / dashboard | Fragment in existing Activity | Chat alongside other features |
|
|
46
|
-
| Social / community | ViewPager + BottomNav tabs | Multi-section messenger |
|
|
47
|
-
| Support / helpdesk | BottomSheet overlay | Non-intrusive, dismissible |
|
|
48
|
-
| Quick reply | Dialog | Lightweight, modal |
|
|
49
|
-
| Embedded widget | View in existing layout | Inline chat within a screen |
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## 2. Pattern A — Dedicated Activity
|
|
54
|
-
|
|
55
|
-
The simplest and most common pattern. A full-screen Activity for the message view.
|
|
56
|
-
|
|
57
|
-
**MessagesActivity layout (`activity_messages.xml`):**
|
|
58
|
-
```xml
|
|
59
|
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
60
|
-
android:layout_width="match_parent"
|
|
61
|
-
android:layout_height="match_parent"
|
|
62
|
-
android:orientation="vertical">
|
|
63
|
-
|
|
64
|
-
<com.cometchat.chatuikit.messageheader.CometChatMessageHeader
|
|
65
|
-
android:id="@+id/header"
|
|
66
|
-
android:layout_width="match_parent"
|
|
67
|
-
android:layout_height="wrap_content" />
|
|
68
|
-
|
|
69
|
-
<com.cometchat.chatuikit.messagelist.CometChatMessageList
|
|
70
|
-
android:id="@+id/messageList"
|
|
71
|
-
android:layout_width="match_parent"
|
|
72
|
-
android:layout_height="0dp"
|
|
73
|
-
android:layout_weight="1" />
|
|
74
|
-
|
|
75
|
-
<com.cometchat.chatuikit.messagecomposer.CometChatMessageComposer
|
|
76
|
-
android:id="@+id/composer"
|
|
77
|
-
android:layout_width="match_parent"
|
|
78
|
-
android:layout_height="wrap_content" />
|
|
79
|
-
</LinearLayout>
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**Java:**
|
|
83
|
-
```java
|
|
84
|
-
public class MessagesActivity extends AppCompatActivity {
|
|
85
|
-
@Override
|
|
86
|
-
protected void onCreate(Bundle savedInstanceState) {
|
|
87
|
-
super.onCreate(savedInstanceState);
|
|
88
|
-
setContentView(R.layout.activity_messages);
|
|
89
|
-
|
|
90
|
-
CometChatMessageHeader header = findViewById(R.id.header);
|
|
91
|
-
CometChatMessageList messageList = findViewById(R.id.messageList);
|
|
92
|
-
CometChatMessageComposer composer = findViewById(R.id.composer);
|
|
93
|
-
|
|
94
|
-
String uid = getIntent().getStringExtra("uid");
|
|
95
|
-
String guid = getIntent().getStringExtra("guid");
|
|
96
|
-
|
|
97
|
-
if (uid != null) {
|
|
98
|
-
CometChat.getUser(uid, new CometChat.CallbackListener<User>() {
|
|
99
|
-
@Override
|
|
100
|
-
public void onSuccess(User user) {
|
|
101
|
-
header.setUser(user);
|
|
102
|
-
messageList.setUser(user);
|
|
103
|
-
composer.setUser(user);
|
|
104
|
-
}
|
|
105
|
-
@Override
|
|
106
|
-
public void onError(CometChatException e) { }
|
|
107
|
-
});
|
|
108
|
-
} else if (guid != null) {
|
|
109
|
-
CometChat.getGroup(guid, new CometChat.CallbackListener<Group>() {
|
|
110
|
-
@Override
|
|
111
|
-
public void onSuccess(Group group) {
|
|
112
|
-
header.setGroup(group);
|
|
113
|
-
messageList.setGroup(group);
|
|
114
|
-
composer.setGroup(group);
|
|
115
|
-
}
|
|
116
|
-
@Override
|
|
117
|
-
public void onError(CometChatException e) { }
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
header.setBackIconVisibility(View.VISIBLE);
|
|
122
|
-
header.setOnBackPress(() -> finish());
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Kotlin:**
|
|
128
|
-
```kotlin
|
|
129
|
-
class MessagesActivity : AppCompatActivity() {
|
|
130
|
-
override fun onCreate(savedInstanceState: Bundle?) {
|
|
131
|
-
super.onCreate(savedInstanceState)
|
|
132
|
-
setContentView(R.layout.activity_messages)
|
|
133
|
-
|
|
134
|
-
val header = findViewById<CometChatMessageHeader>(R.id.header)
|
|
135
|
-
val messageList = findViewById<CometChatMessageList>(R.id.messageList)
|
|
136
|
-
val composer = findViewById<CometChatMessageComposer>(R.id.composer)
|
|
137
|
-
|
|
138
|
-
val uid = intent.getStringExtra("uid")
|
|
139
|
-
val guid = intent.getStringExtra("guid")
|
|
140
|
-
|
|
141
|
-
when {
|
|
142
|
-
uid != null -> CometChat.getUser(uid, object : CometChat.CallbackListener<User>() {
|
|
143
|
-
override fun onSuccess(user: User) {
|
|
144
|
-
header.setUser(user)
|
|
145
|
-
messageList.setUser(user)
|
|
146
|
-
composer.setUser(user)
|
|
147
|
-
}
|
|
148
|
-
override fun onError(e: CometChatException) { }
|
|
149
|
-
})
|
|
150
|
-
guid != null -> CometChat.getGroup(guid, object : CometChat.CallbackListener<Group>() {
|
|
151
|
-
override fun onSuccess(group: Group) {
|
|
152
|
-
header.setGroup(group)
|
|
153
|
-
messageList.setGroup(group)
|
|
154
|
-
composer.setGroup(group)
|
|
155
|
-
}
|
|
156
|
-
override fun onError(e: CometChatException) { }
|
|
157
|
-
})
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
header.setBackIconVisibility(View.VISIBLE)
|
|
161
|
-
header.setOnBackPress { finish() }
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## 3. Pattern B — Fragment
|
|
169
|
-
|
|
170
|
-
Embed chat in a Fragment within an existing Activity. Useful for SaaS apps or multi-pane layouts.
|
|
171
|
-
|
|
172
|
-
**Java:**
|
|
173
|
-
```java
|
|
174
|
-
public class ChatFragment extends Fragment {
|
|
175
|
-
@Override
|
|
176
|
-
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
|
177
|
-
View view = inflater.inflate(R.layout.fragment_chat, container, false);
|
|
178
|
-
|
|
179
|
-
CometChatConversations conversations = view.findViewById(R.id.conversations);
|
|
180
|
-
conversations.setOnItemClick((v, position, conversation) -> {
|
|
181
|
-
// Navigate to messages — either replace fragment or start Activity
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
return view;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Kotlin:**
|
|
190
|
-
```kotlin
|
|
191
|
-
class ChatFragment : Fragment() {
|
|
192
|
-
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
|
193
|
-
val view = inflater.inflate(R.layout.fragment_chat, container, false)
|
|
194
|
-
|
|
195
|
-
val conversations = view.findViewById<CometChatConversations>(R.id.conversations)
|
|
196
|
-
conversations.setOnItemClick { v, position, conversation ->
|
|
197
|
-
// Navigate to messages — either replace fragment or start Activity
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return view
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## 4. Pattern C — BottomSheet
|
|
208
|
-
|
|
209
|
-
Show chat as a bottom sheet overlay. Good for support/helpdesk.
|
|
210
|
-
|
|
211
|
-
**Java:**
|
|
212
|
-
```java
|
|
213
|
-
BottomSheetDialog bottomSheet = new BottomSheetDialog(this);
|
|
214
|
-
View view = getLayoutInflater().inflate(R.layout.bottom_sheet_chat, null);
|
|
215
|
-
|
|
216
|
-
CometChatMessageList messageList = view.findViewById(R.id.messageList);
|
|
217
|
-
CometChatMessageComposer composer = view.findViewById(R.id.composer);
|
|
218
|
-
|
|
219
|
-
messageList.setUser(user);
|
|
220
|
-
composer.setUser(user);
|
|
221
|
-
|
|
222
|
-
bottomSheet.setContentView(view);
|
|
223
|
-
bottomSheet.show();
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
**Kotlin:**
|
|
227
|
-
```kotlin
|
|
228
|
-
val bottomSheet = BottomSheetDialog(this)
|
|
229
|
-
val view = layoutInflater.inflate(R.layout.bottom_sheet_chat, null)
|
|
230
|
-
|
|
231
|
-
val messageList = view.findViewById<CometChatMessageList>(R.id.messageList)
|
|
232
|
-
val composer = view.findViewById<CometChatMessageComposer>(R.id.composer)
|
|
233
|
-
|
|
234
|
-
messageList.setUser(user)
|
|
235
|
-
composer.setUser(user)
|
|
236
|
-
|
|
237
|
-
bottomSheet.setContentView(view)
|
|
238
|
-
bottomSheet.show()
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## 5. Pattern D — Bottom Navigation Tabs
|
|
244
|
-
|
|
245
|
-
Full messenger with Conversations, Users, Groups, and Calls as tabs.
|
|
246
|
-
|
|
247
|
-
**Java:**
|
|
248
|
-
```java
|
|
249
|
-
binding.bottomNavigationView.setOnItemSelectedListener(item -> {
|
|
250
|
-
Fragment fragment;
|
|
251
|
-
int id = item.getItemId();
|
|
252
|
-
if (id == R.id.nav_chats) {
|
|
253
|
-
fragment = new ChatsFragment(); // Contains CometChatConversations
|
|
254
|
-
} else if (id == R.id.nav_users) {
|
|
255
|
-
fragment = new UsersFragment(); // Contains CometChatUsers
|
|
256
|
-
} else if (id == R.id.nav_groups) {
|
|
257
|
-
fragment = new GroupsFragment(); // Contains CometChatGroups
|
|
258
|
-
} else if (id == R.id.nav_calls) {
|
|
259
|
-
fragment = new CallsFragment(); // Contains CometChatCallLogs
|
|
260
|
-
} else {
|
|
261
|
-
return false;
|
|
262
|
-
}
|
|
263
|
-
getSupportFragmentManager().beginTransaction()
|
|
264
|
-
.replace(R.id.fragment_container, fragment)
|
|
265
|
-
.commit();
|
|
266
|
-
return true;
|
|
267
|
-
});
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## Hard rules
|
|
273
|
-
|
|
274
|
-
- **Always set `User` or `Group` on message components.** `CometChatMessageList`, `CometChatMessageComposer`, and `CometChatMessageHeader` require either `setUser()` or `setGroup()` — never both, never neither.
|
|
275
|
-
- **Fetch the `User`/`Group` object before setting it.** Use `CometChat.getUser(uid)` or `CometChat.getGroup(guid)` — don't construct objects manually.
|
|
276
|
-
- **Set back icon visibility on `CometChatMessageHeader`.** The method is `setBackIconVisibility()`. Default is `GONE`. Set to `VISIBLE` when the user needs to navigate back.
|
|
277
|
-
- **Register the Activity in `AndroidManifest.xml`.** Every new Activity needs a manifest entry.
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cometchat-android-v5-production
|
|
3
|
-
description: "Production readiness for CometChat Android — server-side token auth, user management CRUD, ProGuard rules, and security checklist."
|
|
4
|
-
license: "MIT"
|
|
5
|
-
compatibility: "Android 7.0+; Java 8+; Kotlin 1.8+; com.cometchat:chat-uikit-android:5.x"
|
|
6
|
-
metadata:
|
|
7
|
-
author: "CometChat"
|
|
8
|
-
version: "3.0.0"
|
|
9
|
-
tags: "cometchat android production auth token security user-management proguard"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
> **Ground truth:** `com.cometchat:chat-uikit-android:5.x` (legacy/maintenance-only; +`calls-sdk-android:5.x`) — resolved AAR (javap) + `ui-kit/android`. **Official docs:** https://www.cometchat.com/docs/fundamentals/user-auth · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
|
|
13
|
-
|
|
14
|
-
> **Companion skills:** `cometchat-android-v5-core` covers dev-mode login;
|
|
15
|
-
> `cometchat-android-v5-push` covers push notification setup for production.
|
|
16
|
-
|
|
17
|
-
## Purpose
|
|
18
|
-
|
|
19
|
-
This skill covers hardening a CometChat Android integration for production: replacing client-side Auth Key with server-side token generation, user management CRUD, ProGuard/R8 rules, and security best practices.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Use this skill when
|
|
24
|
-
|
|
25
|
-
- "Set up production auth"
|
|
26
|
-
- "Replace Auth Key with tokens"
|
|
27
|
-
- "ProGuard is breaking CometChat"
|
|
28
|
-
- "How do I create CometChat users from my backend?"
|
|
29
|
-
|
|
30
|
-
## Do not use this skill when
|
|
31
|
-
|
|
32
|
-
- Setting up dev-mode login → use `cometchat-android-v5-core`
|
|
33
|
-
- Adding features → use `cometchat-android-v5-features`
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 1. Why production auth matters
|
|
38
|
-
|
|
39
|
-
In dev mode, `CometChatUIKit.login(uid)` uses the Auth Key embedded in your app. Anyone can decompile the APK, extract the key, and login as ANY user. Production deployments MUST use server-side token generation.
|
|
40
|
-
|
|
41
|
-
## 2. Token auth flow
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
Client → Your Server → CometChat REST API → auth token → Client
|
|
45
|
-
Client calls CometChatUIKit.loginWithAuthToken(token)
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Your server calls: `POST https://{APP_ID}.api-{REGION}.cometchat.io/v3/users/{uid}/auth_tokens`
|
|
49
|
-
with headers: `appId`, `apiKey` (REST API Key, NOT Auth Key).
|
|
50
|
-
|
|
51
|
-
## 3. Client-side implementation
|
|
52
|
-
|
|
53
|
-
**Java:**
|
|
54
|
-
```java
|
|
55
|
-
// Fetch token from YOUR backend
|
|
56
|
-
String token = fetchTokenFromYourServer(currentUserId);
|
|
57
|
-
|
|
58
|
-
CometChatUIKit.loginWithAuthToken(token, new CometChat.CallbackListener<User>() {
|
|
59
|
-
@Override
|
|
60
|
-
public void onSuccess(User user) {
|
|
61
|
-
// Navigate to chat
|
|
62
|
-
}
|
|
63
|
-
@Override
|
|
64
|
-
public void onError(CometChatException e) {
|
|
65
|
-
// Handle error
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## 4. ProGuard/R8 rules
|
|
71
|
-
|
|
72
|
-
Add to `proguard-rules.pro`:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
-keep class com.cometchat.** { *; }
|
|
76
|
-
-keep class com.cometchat.chatuikit.** { *; }
|
|
77
|
-
-dontwarn com.cometchat.**
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## 5. Security checklist
|
|
81
|
-
|
|
82
|
-
- [ ] Auth Key removed from client code
|
|
83
|
-
- [ ] REST API Key stored server-side only
|
|
84
|
-
- [ ] `loginWithAuthToken()` used instead of `login(uid)`
|
|
85
|
-
- [ ] ProGuard rules added
|
|
86
|
-
- [ ] Network security config allows CometChat domains
|
|
87
|
-
- [ ] Push token unregistered on logout
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Hard rules
|
|
92
|
-
|
|
93
|
-
- **Never ship Auth Key in production APKs.** Use `loginWithAuthToken()`.
|
|
94
|
-
- **REST API Key ≠ Auth Key.** REST API Key is server-only. Auth Key is client-side dev-only.
|
|
95
|
-
- **Add ProGuard keep rules.** R8 can strip CometChat classes needed at runtime.
|