@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
|
@@ -0,0 +1,694 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generatedFrom": [
|
|
3
|
+
"catalogs/angular-v5.json (@cometchat/chat-uikit-angular@5.1.0)",
|
|
4
|
+
"features.angular-v5.json",
|
|
5
|
+
"https://www.cometchat.com/docs/ui-kit/angular (v5 pages only)"
|
|
6
|
+
],
|
|
7
|
+
"schemaNotes": "min_capabilities = the MINIMUM a skill's emitted code must make reachable for this target. G4 (contract coverage) fails the row if any is missing. ANGULAR-ONLY capabilities, present on every app-level surface floor because they are the three ways an Angular integration fails that a React one cannot: standalone-imports-declared (a component used in a template must be in the standalone component's imports[] or a declaring NgModule — omitting it is a silent no-render, the single most common Angular integration bug); environment-ts-config (config comes from src/environments/environment.ts via build-time file replacement — Angular does NOT read .env, so every 'put it in .env' instruction ported from React is wrong); rxjs-teardown-on-destroy (subscriptions and CometChat listeners must be torn down in ngOnDestroy or the app leaks across route changes — see guides/subscription-patterns). The sdk-chat-surface floor adds zoneless-repaint-for-sdk-callbacks: state set from async SDK callbacks must schedule change detection — a signal write or ChangeDetectorRef.markForCheck() — or the view never refreshes (Angular 21 is zoneless by default, so NgZone.run() is not a remedy). The web layout floor (prepared-ancestor-chain / pinned-viewport-height / column-min-height-0 / no-load-transition-reflow) carries over from react-v7 unchanged — both families render into the DOM, so the reflow-free sizing recipe is identical. COMPONENT CONTRACTS name the exported CLASS (CometChatConversationsComponent). The bare form is internal-only and not importable; templates use the kebab-case selector. RESOLUTION: the `contracts` key on the family entry in families.json is now honoured by BOTH consumers — build-registry.mjs resolves it per family, and the reviewer's G4 (tools/check-contract.mjs) reads it to evaluate min_capabilities against the emit. G4 reports pass / partial / fail: `partial` means every in-scope capability was satisfied but at least one has no detector yet, and predicate.mjs refuses to mark a feature done on `partial` — a capability that was never checked can never read as verified. docs_topic is a PATH, not an absolute URL — prefix it with DOCS_BASE (cometchat-angular-v5-core/references/docs-map.md) before fetching. Absolute URLs pinned the oracle to production and silently bypassed the docs preview, so an agent following a feature's docs_topic read the OLD page while DOCS_BASE pointed at a branch with the improvements on it. One swap point now governs every fetch.",
|
|
8
|
+
"family": "web-angular",
|
|
9
|
+
"major": "v5",
|
|
10
|
+
"contracts": [
|
|
11
|
+
{
|
|
12
|
+
"for": "core-chat-surface",
|
|
13
|
+
"kind": "feature",
|
|
14
|
+
"min_capabilities": [
|
|
15
|
+
"error-boundary-wrap",
|
|
16
|
+
"init-login-gate",
|
|
17
|
+
"conversations-list",
|
|
18
|
+
"message-pane-header-list-composer",
|
|
19
|
+
"threaded-replies-panel-default",
|
|
20
|
+
"thread-surface-differentiated",
|
|
21
|
+
"in-chat-message-search-default",
|
|
22
|
+
"global-conversation-search",
|
|
23
|
+
"affordances-wired-or-hidden",
|
|
24
|
+
"active-item-reflected",
|
|
25
|
+
"panel-close-round-trip",
|
|
26
|
+
"prepared-ancestor-chain",
|
|
27
|
+
"pinned-viewport-height",
|
|
28
|
+
"column-min-height-0",
|
|
29
|
+
"no-load-transition-reflow",
|
|
30
|
+
"responsive-one-pane-on-mobile",
|
|
31
|
+
"prod-auth-token-guidance",
|
|
32
|
+
"standalone-imports-declared",
|
|
33
|
+
"environment-ts-config",
|
|
34
|
+
"rxjs-teardown-on-destroy",
|
|
35
|
+
"conversation-subject-discriminated",
|
|
36
|
+
"login-uid-confirmed-with-developer"
|
|
37
|
+
],
|
|
38
|
+
"docs_topic": "/ui-kit/angular/overview",
|
|
39
|
+
"notes": "APP-LEVEL floor for an unscoped 'add chat' — the production-ready CORE surface (features.angular-v5.json 'core-chat-surface'). init-login-gate in Angular means CometChatUIKit.init() resolves BEFORE bootstrapApplication/login, wired through provideAppInitializer (or APP_INITIALIZER) rather than a React root effect — and login must be guarded by an in-flight promise, not a bare call. conversation-subject-discriminated: (itemClick) emits a Conversation, never a User/Group. Resolve with getConversationWith() and branch on getConversationType(); a Conversation has no getGuid(), so duck-typing routes every GROUP into the [user] slot and the header/list/composer throw 'getUid is not a function'. 1:1 chats keep working, so this ships looking correct. login-uid-confirmed-with-developer: the startup UID is a value only the developer knows — ASK, never bake cometchat-uid-1 as a silent default; on an app without seeded samples it logs in nowhere and renders blank."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"for": "chat-experience",
|
|
43
|
+
"kind": "feature",
|
|
44
|
+
"min_capabilities": [
|
|
45
|
+
"error-boundary-wrap",
|
|
46
|
+
"selector-conversations",
|
|
47
|
+
"selector-users-groups-calls-tabs",
|
|
48
|
+
"message-pane-header-list-composer",
|
|
49
|
+
"side-panel-user-group-details",
|
|
50
|
+
"side-panel-thread",
|
|
51
|
+
"side-panel-or-column-search",
|
|
52
|
+
"incoming-call-handling",
|
|
53
|
+
"active-item-reflected",
|
|
54
|
+
"panel-close-round-trip",
|
|
55
|
+
"prepared-ancestor-chain",
|
|
56
|
+
"pinned-viewport-height",
|
|
57
|
+
"column-min-height-0",
|
|
58
|
+
"no-load-transition-reflow",
|
|
59
|
+
"responsive-one-pane-on-mobile",
|
|
60
|
+
"no-dead-end-affordances",
|
|
61
|
+
"standalone-imports-declared",
|
|
62
|
+
"environment-ts-config",
|
|
63
|
+
"rxjs-teardown-on-destroy"
|
|
64
|
+
],
|
|
65
|
+
"docs_topic": "/ui-kit/angular/angular-tab-based-chat",
|
|
66
|
+
"notes": "APP-LEVEL floor for the full tabbed experience. active-item-reflected is satisfiable through the exported ChatStateService, which is Angular's single source of truth for the active User/Group/Conversation — React has no equivalent and reflects state through props."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"for": "CometChatConversationsComponent",
|
|
70
|
+
"kind": "component",
|
|
71
|
+
"min_capabilities": [
|
|
72
|
+
"conversation-list",
|
|
73
|
+
"last-message-preview",
|
|
74
|
+
"unread-count",
|
|
75
|
+
"delete-conversation",
|
|
76
|
+
"search",
|
|
77
|
+
"presence",
|
|
78
|
+
"receipts",
|
|
79
|
+
"infinite-scroll",
|
|
80
|
+
"realtime-updates",
|
|
81
|
+
"subject-discriminated-on-click"
|
|
82
|
+
],
|
|
83
|
+
"docs_topic": "/ui-kit/angular/components/cometchat-conversations",
|
|
84
|
+
"notes": "The click handler must branch on getConversationType(), not on the presence of a method."
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"for": "CometChatGroupMembersComponent",
|
|
88
|
+
"kind": "component",
|
|
89
|
+
"min_capabilities": [
|
|
90
|
+
"view-members",
|
|
91
|
+
"kick-member",
|
|
92
|
+
"ban-member",
|
|
93
|
+
"view-banned-members",
|
|
94
|
+
"change-scope",
|
|
95
|
+
"search-members"
|
|
96
|
+
],
|
|
97
|
+
"docs_topic": "/ui-kit/angular/components/cometchat-group-members",
|
|
98
|
+
"notes": "change-scope is served by the exported CometChatChangeScopeComponent; banned members come via the SDK when no dedicated component exists."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"for": "CometChatMessageListComponent",
|
|
102
|
+
"kind": "component",
|
|
103
|
+
"min_capabilities": [
|
|
104
|
+
"render-messages",
|
|
105
|
+
"message-bubbles-by-type",
|
|
106
|
+
"delivery-read-receipts",
|
|
107
|
+
"reactions-when-enabled",
|
|
108
|
+
"thread-open",
|
|
109
|
+
"realtime-updates"
|
|
110
|
+
],
|
|
111
|
+
"docs_topic": "/ui-kit/angular/components/cometchat-message-list"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"for": "CometChatMessageComposerComponent",
|
|
115
|
+
"kind": "component",
|
|
116
|
+
"min_capabilities": [
|
|
117
|
+
"send-text",
|
|
118
|
+
"attach-media-file",
|
|
119
|
+
"emoji",
|
|
120
|
+
"voice-recording"
|
|
121
|
+
],
|
|
122
|
+
"docs_topic": "/ui-kit/angular/components/cometchat-message-composer",
|
|
123
|
+
"notes": "voice-recording is backed by CometChatMediaRecorderComponent; emoji by CometChatEmojiKeyboardComponent. Rich text (bold/italic/links) is a separate opt-in surface — see the rich-text-editing feature."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"for": "CometChatSearchComponent",
|
|
127
|
+
"kind": "component",
|
|
128
|
+
"min_capabilities": [
|
|
129
|
+
"global-conversation-search",
|
|
130
|
+
"in-chat-message-scope",
|
|
131
|
+
"result-navigation"
|
|
132
|
+
],
|
|
133
|
+
"docs_topic": "/ui-kit/angular/guides/search-messages",
|
|
134
|
+
"notes": "ANGULAR-ONLY contract — react-v7 has no component-level search contract. Angular splits search into a shell plus CometChatSearchConversationsListComponent / CometChatSearchMessagesListComponent, with scope set through the exported CometChatSearchScope."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"for": "voice-video-calls",
|
|
138
|
+
"kind": "feature",
|
|
139
|
+
"min_capabilities": [
|
|
140
|
+
"initiate-call",
|
|
141
|
+
"incoming-call-ui",
|
|
142
|
+
"outgoing-call-ui",
|
|
143
|
+
"call-logs"
|
|
144
|
+
],
|
|
145
|
+
"docs_topic": "/ui-kit/angular/call-features"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"for": "sdk-chat-surface",
|
|
149
|
+
"kind": "feature",
|
|
150
|
+
"min_capabilities": [
|
|
151
|
+
"init-before-anything",
|
|
152
|
+
"init-then-login-ordering",
|
|
153
|
+
"prod-auth-token-guidance",
|
|
154
|
+
"send-message",
|
|
155
|
+
"receive-via-listener",
|
|
156
|
+
"listener-register-with-id",
|
|
157
|
+
"listener-remove-on-teardown",
|
|
158
|
+
"sdk-error-handling",
|
|
159
|
+
"pagination-via-request-builder",
|
|
160
|
+
"production-ready-design-system",
|
|
161
|
+
"sized-shell-no-overflow",
|
|
162
|
+
"conversations-users-groups-lists",
|
|
163
|
+
"list-search",
|
|
164
|
+
"delete-conversation",
|
|
165
|
+
"message-actions-working",
|
|
166
|
+
"thread-panel",
|
|
167
|
+
"user-group-detail-with-actions",
|
|
168
|
+
"optimistic-ui-mutations",
|
|
169
|
+
"loading-empty-error-states",
|
|
170
|
+
"rxjs-teardown-on-destroy",
|
|
171
|
+
"zoneless-repaint-for-sdk-callbacks"
|
|
172
|
+
],
|
|
173
|
+
"docs_topic": "/ui-kit/angular/methods",
|
|
174
|
+
"notes": "Floor for the headless JS-SDK surface consumed from Angular (same @cometchat/chat-sdk-javascript@4 as react-v7 — there is no Angular-specific SDK). Two capabilities are Angular-only: listener teardown must happen in ngOnDestroy alongside RxJS unsubscribe, and state set from async SDK callbacks must schedule change detection (signal write or markForCheck(); Angular 21 is zoneless by default, so NgZone.run() does not) or the view will not refresh. Neither failure mode exists in React."
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"for": "onboarding-plan",
|
|
178
|
+
"kind": "plan",
|
|
179
|
+
"min_capabilities": [
|
|
180
|
+
"discovery-summary",
|
|
181
|
+
"intent-capability-map",
|
|
182
|
+
"numbered-actions",
|
|
183
|
+
"files-that-change",
|
|
184
|
+
"packages",
|
|
185
|
+
"credential-auth-strategy",
|
|
186
|
+
"modify-or-approve-gate"
|
|
187
|
+
],
|
|
188
|
+
"docs_topic": "/ui-kit/angular/quickstart",
|
|
189
|
+
"notes": "Cross-family plan floor, inherited from the shared onboarding journey — identical to react-v7."
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"capabilityDetectors": {
|
|
193
|
+
"error-boundary-wrap": {
|
|
194
|
+
"kind": "regex",
|
|
195
|
+
"why": "the surface is wrapped in the kit's error boundary",
|
|
196
|
+
"any": [
|
|
197
|
+
"<cometchat-error-boundary"
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"standalone-imports-declared": {
|
|
201
|
+
"kind": "regex",
|
|
202
|
+
"why": "kit components are declared in imports[] or they render nothing, silently",
|
|
203
|
+
"any": [
|
|
204
|
+
"imports\\s*:\\s*\\["
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
"rxjs-teardown-on-destroy": {
|
|
208
|
+
"kind": "regex",
|
|
209
|
+
"why": "subscriptions/listeners released in ngOnDestroy",
|
|
210
|
+
"all": [
|
|
211
|
+
"ngOnDestroy",
|
|
212
|
+
"(takeUntil|unsubscribe|remove\\w*Listener|destroy\\$)"
|
|
213
|
+
]
|
|
214
|
+
},
|
|
215
|
+
"zoneless-repaint-for-sdk-callbacks": {
|
|
216
|
+
"kind": "regex",
|
|
217
|
+
"why": "state set from SDK callbacks must schedule CD — a signal write or markForCheck() (Angular 21 is zoneless by default; NgZone.run() alone does not repaint)",
|
|
218
|
+
"any": [
|
|
219
|
+
"\\bsignal\\s*[<(]",
|
|
220
|
+
"WritableSignal\\s*<",
|
|
221
|
+
"\\.markForCheck\\s*\\("
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
"listener-register-with-id": {
|
|
225
|
+
"kind": "regex",
|
|
226
|
+
"why": "listener registered with a stable id",
|
|
227
|
+
"any": [
|
|
228
|
+
"add(Message|Group|User|Call|Connection)Listener\\s*\\("
|
|
229
|
+
]
|
|
230
|
+
},
|
|
231
|
+
"listener-remove-on-teardown": {
|
|
232
|
+
"kind": "regex",
|
|
233
|
+
"why": "listener removed with the same id",
|
|
234
|
+
"any": [
|
|
235
|
+
"remove(Message|Group|User|Call|Connection)Listener"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
"conversations-list": {
|
|
239
|
+
"kind": "regex",
|
|
240
|
+
"why": "conversation list rendered",
|
|
241
|
+
"any": [
|
|
242
|
+
"<cometchat-conversations"
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
"conversation-list": {
|
|
246
|
+
"kind": "regex",
|
|
247
|
+
"why": "conversation list rendered",
|
|
248
|
+
"any": [
|
|
249
|
+
"<cometchat-conversations"
|
|
250
|
+
]
|
|
251
|
+
},
|
|
252
|
+
"selector-conversations": {
|
|
253
|
+
"kind": "regex",
|
|
254
|
+
"why": "conversation list rendered",
|
|
255
|
+
"any": [
|
|
256
|
+
"<cometchat-conversations"
|
|
257
|
+
]
|
|
258
|
+
},
|
|
259
|
+
"message-pane-header-list-composer": {
|
|
260
|
+
"kind": "regex",
|
|
261
|
+
"why": "the full message pane",
|
|
262
|
+
"all": [
|
|
263
|
+
"<cometchat-message-header",
|
|
264
|
+
"<cometchat-message-list",
|
|
265
|
+
"<cometchat-message-composer"
|
|
266
|
+
]
|
|
267
|
+
},
|
|
268
|
+
"render-messages": {
|
|
269
|
+
"kind": "regex",
|
|
270
|
+
"why": "message list rendered",
|
|
271
|
+
"any": [
|
|
272
|
+
"<cometchat-message-list"
|
|
273
|
+
]
|
|
274
|
+
},
|
|
275
|
+
"call-logs": {
|
|
276
|
+
"kind": "regex",
|
|
277
|
+
"why": "call logs rendered",
|
|
278
|
+
"any": [
|
|
279
|
+
"<cometchat-call-logs"
|
|
280
|
+
]
|
|
281
|
+
},
|
|
282
|
+
"incoming-call-ui": {
|
|
283
|
+
"kind": "regex",
|
|
284
|
+
"why": "incoming call UI mounted",
|
|
285
|
+
"any": [
|
|
286
|
+
"<cometchat-incoming-call"
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"incoming-call-handling": {
|
|
290
|
+
"kind": "regex",
|
|
291
|
+
"why": "incoming call UI mounted",
|
|
292
|
+
"any": [
|
|
293
|
+
"<cometchat-incoming-call"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
"outgoing-call-ui": {
|
|
297
|
+
"kind": "regex",
|
|
298
|
+
"why": "outgoing call UI is kit-driven once calling is enabled",
|
|
299
|
+
"any": [
|
|
300
|
+
"<cometchat-outgoing-call",
|
|
301
|
+
"callsSDK"
|
|
302
|
+
]
|
|
303
|
+
},
|
|
304
|
+
"thread-panel": {
|
|
305
|
+
"kind": "regex",
|
|
306
|
+
"why": "thread panel rendered",
|
|
307
|
+
"any": [
|
|
308
|
+
"<cometchat-thread-header"
|
|
309
|
+
]
|
|
310
|
+
},
|
|
311
|
+
"side-panel-thread": {
|
|
312
|
+
"kind": "regex",
|
|
313
|
+
"why": "thread panel rendered",
|
|
314
|
+
"any": [
|
|
315
|
+
"<cometchat-thread-header"
|
|
316
|
+
]
|
|
317
|
+
},
|
|
318
|
+
"threaded-replies-panel-default": {
|
|
319
|
+
"kind": "regex",
|
|
320
|
+
"why": "thread panel bound to the parent message",
|
|
321
|
+
"all": [
|
|
322
|
+
"<cometchat-thread-header",
|
|
323
|
+
"parentMessageId"
|
|
324
|
+
]
|
|
325
|
+
},
|
|
326
|
+
"view-members": {
|
|
327
|
+
"kind": "regex",
|
|
328
|
+
"why": "group members rendered",
|
|
329
|
+
"any": [
|
|
330
|
+
"<cometchat-group-members"
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
"conversations-users-groups-lists": {
|
|
334
|
+
"kind": "regex",
|
|
335
|
+
"why": "all three lists",
|
|
336
|
+
"all": [
|
|
337
|
+
"<cometchat-conversations",
|
|
338
|
+
"<cometchat-users",
|
|
339
|
+
"<cometchat-groups"
|
|
340
|
+
]
|
|
341
|
+
},
|
|
342
|
+
"selector-users-groups-calls-tabs": {
|
|
343
|
+
"kind": "regex",
|
|
344
|
+
"why": "tabbed selector",
|
|
345
|
+
"all": [
|
|
346
|
+
"<cometchat-users",
|
|
347
|
+
"<cometchat-groups",
|
|
348
|
+
"<cometchat-call-logs"
|
|
349
|
+
]
|
|
350
|
+
},
|
|
351
|
+
"search": {
|
|
352
|
+
"kind": "regex",
|
|
353
|
+
"why": "search component rendered",
|
|
354
|
+
"any": [
|
|
355
|
+
"<cometchat-search"
|
|
356
|
+
]
|
|
357
|
+
},
|
|
358
|
+
"list-search": {
|
|
359
|
+
"kind": "regex",
|
|
360
|
+
"why": "search component rendered",
|
|
361
|
+
"any": [
|
|
362
|
+
"<cometchat-search"
|
|
363
|
+
]
|
|
364
|
+
},
|
|
365
|
+
"global-conversation-search": {
|
|
366
|
+
"kind": "regex",
|
|
367
|
+
"why": "global search is rendered AND entered from the conversation list's OWN search bar affordance (showSearchBar + (searchBarClick)) — NOT a standalone <cometchat-search> stacked above the header. The Conversations component owns the search entry; clicking its search bar opens the search view (parity with React onSearchBarClicked / iOS onSearchClick).",
|
|
368
|
+
"all": [
|
|
369
|
+
"<cometchat-search",
|
|
370
|
+
"searchBarClick"
|
|
371
|
+
]
|
|
372
|
+
},
|
|
373
|
+
"side-panel-or-column-search": {
|
|
374
|
+
"kind": "regex",
|
|
375
|
+
"why": "search component rendered",
|
|
376
|
+
"any": [
|
|
377
|
+
"<cometchat-search"
|
|
378
|
+
]
|
|
379
|
+
},
|
|
380
|
+
"in-chat-message-search-default": {
|
|
381
|
+
"kind": "regex",
|
|
382
|
+
"why": "search scoped to the open chat",
|
|
383
|
+
"all": [
|
|
384
|
+
"<cometchat-search",
|
|
385
|
+
"\\[(uid|guid)\\]"
|
|
386
|
+
]
|
|
387
|
+
},
|
|
388
|
+
"in-chat-message-scope": {
|
|
389
|
+
"kind": "regex",
|
|
390
|
+
"why": "uid/guid passed so search is chat-scoped",
|
|
391
|
+
"any": [
|
|
392
|
+
"\\[(uid|guid)\\]"
|
|
393
|
+
]
|
|
394
|
+
},
|
|
395
|
+
"conversation-subject-discriminated": {
|
|
396
|
+
"kind": "regex",
|
|
397
|
+
"why": "Conversation asked its type, not duck-typed",
|
|
398
|
+
"any": [
|
|
399
|
+
"getConversationType\\(\\)"
|
|
400
|
+
]
|
|
401
|
+
},
|
|
402
|
+
"subject-discriminated-on-click": {
|
|
403
|
+
"kind": "regex",
|
|
404
|
+
"why": "Conversation asked its type, not duck-typed",
|
|
405
|
+
"any": [
|
|
406
|
+
"getConversationType\\(\\)"
|
|
407
|
+
]
|
|
408
|
+
},
|
|
409
|
+
"active-item-reflected": {
|
|
410
|
+
"kind": "regex",
|
|
411
|
+
"why": "the open row is highlighted",
|
|
412
|
+
"any": [
|
|
413
|
+
"\\[active(Conversation|User|Group)\\]"
|
|
414
|
+
]
|
|
415
|
+
},
|
|
416
|
+
"thread-open": {
|
|
417
|
+
"kind": "regex",
|
|
418
|
+
"why": "reply indicator wired OR hidden — wire-or-hide (RULES §12). The thread-reply indicator renders on any message that HAS replies and is clickable whether or not (threadRepliesClick) is bound; leaving it unbound AND unhidden is a dead affordance. A minimal message pane that does not open a thread panel MUST hide it with [hideReplyInThreadOption]=\"true\".",
|
|
419
|
+
"any": [
|
|
420
|
+
"\\(threadRepliesClick\\)",
|
|
421
|
+
"\\[hideReplyInThreadOption\\]"
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
"panel-close-round-trip": {
|
|
425
|
+
"kind": "regex",
|
|
426
|
+
"why": "an opened panel can be closed",
|
|
427
|
+
"any": [
|
|
428
|
+
"\\((backClick|closeClick)\\)"
|
|
429
|
+
]
|
|
430
|
+
},
|
|
431
|
+
"result-navigation": {
|
|
432
|
+
"kind": "regex",
|
|
433
|
+
"why": "a search hit lands somewhere",
|
|
434
|
+
"any": [
|
|
435
|
+
"\\((conversationClick|messageClick)\\)"
|
|
436
|
+
]
|
|
437
|
+
},
|
|
438
|
+
"side-panel-user-group-details": {
|
|
439
|
+
"kind": "regex",
|
|
440
|
+
"why": "details panel with a close path",
|
|
441
|
+
"all": [
|
|
442
|
+
"<cometchat-group-members",
|
|
443
|
+
"\\(click\\)=\\\"[^\\\"]*(close|Details)"
|
|
444
|
+
]
|
|
445
|
+
},
|
|
446
|
+
"pinned-viewport-height": {
|
|
447
|
+
"kind": "regex",
|
|
448
|
+
"why": "content-independent height",
|
|
449
|
+
"any": [
|
|
450
|
+
"height:\\s*(100dvh|100%|\\d+px)"
|
|
451
|
+
]
|
|
452
|
+
},
|
|
453
|
+
"column-min-height-0": {
|
|
454
|
+
"kind": "regex",
|
|
455
|
+
"why": "panes can shrink so children scroll",
|
|
456
|
+
"any": [
|
|
457
|
+
"min-height:\\s*0"
|
|
458
|
+
]
|
|
459
|
+
},
|
|
460
|
+
"sized-shell-no-overflow": {
|
|
461
|
+
"kind": "regex",
|
|
462
|
+
"why": "shell clips instead of spilling",
|
|
463
|
+
"any": [
|
|
464
|
+
"overflow:\\s*hidden"
|
|
465
|
+
]
|
|
466
|
+
},
|
|
467
|
+
"responsive-one-pane-on-mobile": {
|
|
468
|
+
"kind": "regex",
|
|
469
|
+
"why": "collapses on small viewports",
|
|
470
|
+
"any": [
|
|
471
|
+
"@media",
|
|
472
|
+
"matchMedia"
|
|
473
|
+
]
|
|
474
|
+
},
|
|
475
|
+
"thread-surface-differentiated": {
|
|
476
|
+
"kind": "regex",
|
|
477
|
+
"any": [
|
|
478
|
+
"\\.cc-panel[^{]*\\{[^}]*background",
|
|
479
|
+
"--cometchat-message-list-background"
|
|
480
|
+
],
|
|
481
|
+
"why": "the thread panel sets its own background; Angular's message-list background is transparent by default, so a wrapper background suffices (React's opaque-token override does not apply)"
|
|
482
|
+
},
|
|
483
|
+
"no-load-transition-reflow": {
|
|
484
|
+
"kind": "regex",
|
|
485
|
+
"why": "pinned height, no content-driven min-height on the shell",
|
|
486
|
+
"all": [
|
|
487
|
+
"height:\\s*(100dvh|100%|\\d+px)"
|
|
488
|
+
],
|
|
489
|
+
"none": [
|
|
490
|
+
"min-height:\\s*[^0\\s;]"
|
|
491
|
+
]
|
|
492
|
+
},
|
|
493
|
+
"send-message": {
|
|
494
|
+
"kind": "regex",
|
|
495
|
+
"any": [
|
|
496
|
+
"<cometchat-message-composer",
|
|
497
|
+
"send(Text|Media|Custom)?Message\\s*\\("
|
|
498
|
+
],
|
|
499
|
+
"why": "the composer sends, or the host calls the SDK directly"
|
|
500
|
+
},
|
|
501
|
+
"send-text": {
|
|
502
|
+
"kind": "regex",
|
|
503
|
+
"any": [
|
|
504
|
+
"<cometchat-message-composer",
|
|
505
|
+
"sendMessage\\s*\\(",
|
|
506
|
+
"new CometChat\\.TextMessage"
|
|
507
|
+
],
|
|
508
|
+
"why": "text sending is the composer's own job; mounting it IS the capability"
|
|
509
|
+
},
|
|
510
|
+
"receive-via-listener": {
|
|
511
|
+
"kind": "regex",
|
|
512
|
+
"why": "messages arrive through a listener",
|
|
513
|
+
"any": [
|
|
514
|
+
"add(Message)?Listener\\s*\\("
|
|
515
|
+
]
|
|
516
|
+
},
|
|
517
|
+
"pagination-via-request-builder": {
|
|
518
|
+
"kind": "regex",
|
|
519
|
+
"why": "paginated via a request builder",
|
|
520
|
+
"all": [
|
|
521
|
+
"RequestBuilder",
|
|
522
|
+
"fetchNext\\s*\\("
|
|
523
|
+
]
|
|
524
|
+
},
|
|
525
|
+
"init-then-login-ordering": {
|
|
526
|
+
"kind": "unchecked",
|
|
527
|
+
"why": "the reviewer mounts a feature component inside an already-initialised, logged-in harness; init/login is app-level, not emit-level"
|
|
528
|
+
},
|
|
529
|
+
"init-before-anything": {
|
|
530
|
+
"kind": "unchecked",
|
|
531
|
+
"why": "the reviewer mounts a feature component inside an already-initialised, logged-in harness; init/login is app-level, not emit-level"
|
|
532
|
+
},
|
|
533
|
+
"init-login-gate": {
|
|
534
|
+
"kind": "unchecked",
|
|
535
|
+
"why": "the reviewer mounts a feature component inside an already-initialised, logged-in harness; init/login is app-level, not emit-level"
|
|
536
|
+
},
|
|
537
|
+
"sdk-error-handling": {
|
|
538
|
+
"kind": "regex",
|
|
539
|
+
"why": "SDK calls handle failure",
|
|
540
|
+
"any": [
|
|
541
|
+
"\\.catch\\(",
|
|
542
|
+
"catch\\s*[({]"
|
|
543
|
+
]
|
|
544
|
+
},
|
|
545
|
+
"environment-ts-config": {
|
|
546
|
+
"kind": "unchecked",
|
|
547
|
+
"why": "config lives in the app's environment.ts, which the harness owns — not in a feature emit"
|
|
548
|
+
},
|
|
549
|
+
"credential-auth-strategy": {
|
|
550
|
+
"kind": "unchecked",
|
|
551
|
+
"why": "credentials are harness/app-level, outside a per-feature emit"
|
|
552
|
+
},
|
|
553
|
+
"packages": {
|
|
554
|
+
"kind": "unchecked",
|
|
555
|
+
"why": "install state is the app's, not the emit's"
|
|
556
|
+
},
|
|
557
|
+
"prepared-ancestor-chain": {
|
|
558
|
+
"kind": "unchecked",
|
|
559
|
+
"why": "html/body height lives in the app's global stylesheet, not a component"
|
|
560
|
+
},
|
|
561
|
+
"prod-auth-token-guidance": {
|
|
562
|
+
"kind": "unchecked",
|
|
563
|
+
"why": "guidance the SKILL gives the developer — G7's job, not a code check"
|
|
564
|
+
},
|
|
565
|
+
"login-uid-confirmed-with-developer": {
|
|
566
|
+
"kind": "unchecked",
|
|
567
|
+
"why": "a conversation with the developer, not emitted code"
|
|
568
|
+
},
|
|
569
|
+
"discovery-summary": {
|
|
570
|
+
"kind": "unchecked",
|
|
571
|
+
"why": "an onboarding output, not emitted code"
|
|
572
|
+
},
|
|
573
|
+
"intent-capability-map": {
|
|
574
|
+
"kind": "unchecked",
|
|
575
|
+
"why": "an onboarding plan artifact"
|
|
576
|
+
},
|
|
577
|
+
"files-that-change": {
|
|
578
|
+
"kind": "unchecked",
|
|
579
|
+
"why": "an onboarding plan artifact"
|
|
580
|
+
},
|
|
581
|
+
"numbered-actions": {
|
|
582
|
+
"kind": "unchecked",
|
|
583
|
+
"why": "an onboarding plan artifact"
|
|
584
|
+
},
|
|
585
|
+
"modify-or-approve-gate": {
|
|
586
|
+
"kind": "unchecked",
|
|
587
|
+
"why": "an onboarding interaction"
|
|
588
|
+
},
|
|
589
|
+
"production-ready-design-system": {
|
|
590
|
+
"kind": "unchecked",
|
|
591
|
+
"why": "a judgement about visual quality; the smoke gate covers collapse/dimensions"
|
|
592
|
+
},
|
|
593
|
+
"affordances-wired-or-hidden": {
|
|
594
|
+
"kind": "unchecked",
|
|
595
|
+
"why": "verified at runtime by G3, the dead-affordance checker"
|
|
596
|
+
},
|
|
597
|
+
"no-dead-end-affordances": {
|
|
598
|
+
"kind": "unchecked",
|
|
599
|
+
"why": "verified at runtime by G3"
|
|
600
|
+
},
|
|
601
|
+
"loading-empty-error-states": {
|
|
602
|
+
"kind": "unchecked",
|
|
603
|
+
"why": "verified at runtime by G6, which renders the empty state"
|
|
604
|
+
},
|
|
605
|
+
"message-actions-working": {
|
|
606
|
+
"kind": "unchecked",
|
|
607
|
+
"why": "needs interaction; G6's action driver covers it, not a static match"
|
|
608
|
+
},
|
|
609
|
+
"realtime-updates": {
|
|
610
|
+
"kind": "unchecked",
|
|
611
|
+
"why": "needs a second client; not evidenceable from one emit"
|
|
612
|
+
},
|
|
613
|
+
"optimistic-ui-mutations": {
|
|
614
|
+
"kind": "unchecked",
|
|
615
|
+
"why": "kit-internal behaviour, not host code"
|
|
616
|
+
},
|
|
617
|
+
"infinite-scroll": {
|
|
618
|
+
"kind": "unchecked",
|
|
619
|
+
"why": "kit-internal paginated-list behaviour"
|
|
620
|
+
},
|
|
621
|
+
"last-message-preview": {
|
|
622
|
+
"kind": "unchecked",
|
|
623
|
+
"why": "kit-rendered inside the conversation row"
|
|
624
|
+
},
|
|
625
|
+
"unread-count": {
|
|
626
|
+
"kind": "unchecked",
|
|
627
|
+
"why": "kit-rendered inside the conversation row"
|
|
628
|
+
},
|
|
629
|
+
"message-bubbles-by-type": {
|
|
630
|
+
"kind": "unchecked",
|
|
631
|
+
"why": "kit routes bubbles internally"
|
|
632
|
+
},
|
|
633
|
+
"delivery-read-receipts": {
|
|
634
|
+
"kind": "unchecked",
|
|
635
|
+
"why": "kit-rendered inside the message list"
|
|
636
|
+
},
|
|
637
|
+
"receipts": {
|
|
638
|
+
"kind": "unchecked",
|
|
639
|
+
"why": "kit-rendered inside the message list"
|
|
640
|
+
},
|
|
641
|
+
"presence": {
|
|
642
|
+
"kind": "unchecked",
|
|
643
|
+
"why": "enabled in init settings; kit renders the indicator"
|
|
644
|
+
},
|
|
645
|
+
"reactions-when-enabled": {
|
|
646
|
+
"kind": "unchecked",
|
|
647
|
+
"why": "on by default in the kit; no host code"
|
|
648
|
+
},
|
|
649
|
+
"emoji": {
|
|
650
|
+
"kind": "unchecked",
|
|
651
|
+
"why": "built into the composer"
|
|
652
|
+
},
|
|
653
|
+
"voice-recording": {
|
|
654
|
+
"kind": "unchecked",
|
|
655
|
+
"why": "built into the composer"
|
|
656
|
+
},
|
|
657
|
+
"attach-media-file": {
|
|
658
|
+
"kind": "unchecked",
|
|
659
|
+
"why": "built into the composer"
|
|
660
|
+
},
|
|
661
|
+
"search-members": {
|
|
662
|
+
"kind": "unchecked",
|
|
663
|
+
"why": "built into cometchat-group-members"
|
|
664
|
+
},
|
|
665
|
+
"ban-member": {
|
|
666
|
+
"kind": "unchecked",
|
|
667
|
+
"why": "built into cometchat-group-members"
|
|
668
|
+
},
|
|
669
|
+
"kick-member": {
|
|
670
|
+
"kind": "unchecked",
|
|
671
|
+
"why": "built into cometchat-group-members"
|
|
672
|
+
},
|
|
673
|
+
"change-scope": {
|
|
674
|
+
"kind": "unchecked",
|
|
675
|
+
"why": "built into cometchat-group-members"
|
|
676
|
+
},
|
|
677
|
+
"view-banned-members": {
|
|
678
|
+
"kind": "unchecked",
|
|
679
|
+
"why": "host-composed against the SDK; shape varies too much for a static match"
|
|
680
|
+
},
|
|
681
|
+
"delete-conversation": {
|
|
682
|
+
"kind": "unchecked",
|
|
683
|
+
"why": "kit context-menu action"
|
|
684
|
+
},
|
|
685
|
+
"initiate-call": {
|
|
686
|
+
"kind": "unchecked",
|
|
687
|
+
"why": "kit-rendered call buttons once calling is enabled"
|
|
688
|
+
},
|
|
689
|
+
"user-group-detail-with-actions": {
|
|
690
|
+
"kind": "unchecked",
|
|
691
|
+
"why": "host-composed; shape varies"
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
}
|