@cometchat/skills 4.2.1 → 4.4.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/LICENSE +21 -0
- package/README.md +33 -12
- package/bin/install.js +59 -4
- package/package.json +14 -1
- package/skills/cometchat/SKILL.md +460 -77
- package/skills/cometchat/references/asking-questions.md +48 -0
- package/skills/cometchat-a11y/SKILL.md +3 -2
- package/skills/cometchat-android-v5/SKILL.md +2 -1
- package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
- package/skills/cometchat-android-v5-calls/references/README.md +1 -1
- package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
- package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
- package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
- package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
- package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
- package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
- package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
- package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
- package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
- package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
- package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
- package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
- package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
- package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
- package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
- package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
- package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
- package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
- package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
- package/skills/cometchat-android-v5-components/SKILL.md +4 -3
- package/skills/cometchat-android-v5-core/SKILL.md +20 -2
- package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
- package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
- package/skills/cometchat-android-v5-features/SKILL.md +5 -4
- package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
- package/skills/cometchat-android-v5-production/SKILL.md +2 -1
- package/skills/cometchat-android-v5-push/SKILL.md +2 -3
- package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
- package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
- package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
- package/skills/cometchat-android-v6/SKILL.md +2 -1
- package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
- package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
- package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
- package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
- package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
- package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
- package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
- package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
- package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
- package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
- package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
- package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
- package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
- package/skills/cometchat-android-v6-core/SKILL.md +389 -9
- package/skills/cometchat-android-v6-events/SKILL.md +4 -1
- package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
- package/skills/cometchat-android-v6-features/SKILL.md +26 -2
- package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
- package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
- package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
- package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
- package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
- package/skills/cometchat-android-v6-production/SKILL.md +6 -3
- package/skills/cometchat-android-v6-push/SKILL.md +43 -2
- package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
- package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
- package/skills/cometchat-angular-calls/SKILL.md +256 -389
- package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
- package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
- package/skills/cometchat-angular-calls/references/call-session.md +2 -2
- package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
- package/skills/cometchat-angular-calls/references/device-management.md +53 -34
- package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
- package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
- package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
- package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
- package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
- package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
- package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
- package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
- package/skills/cometchat-angular-components/SKILL.md +149 -620
- package/skills/cometchat-angular-core/SKILL.md +235 -293
- package/skills/cometchat-angular-customization/SKILL.md +415 -223
- package/skills/cometchat-angular-features/SKILL.md +216 -334
- package/skills/cometchat-angular-patterns/SKILL.md +168 -359
- package/skills/cometchat-angular-placement/SKILL.md +189 -560
- package/skills/cometchat-angular-production/SKILL.md +241 -92
- package/skills/cometchat-angular-push/SKILL.md +280 -294
- package/skills/cometchat-angular-testing/SKILL.md +430 -158
- package/skills/cometchat-angular-theming/SKILL.md +190 -265
- package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
- package/skills/cometchat-astro-patterns/SKILL.md +22 -1
- package/skills/cometchat-calls/SKILL.md +25 -19
- package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
- package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
- package/skills/cometchat-calls/references/use-case-support.md +3 -4
- package/skills/cometchat-calls/references/use-case-team.md +23 -12
- package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
- package/skills/cometchat-components/SKILL.md +163 -25
- package/skills/cometchat-core/SKILL.md +412 -13
- package/skills/cometchat-customization/SKILL.md +50 -25
- package/skills/cometchat-features/SKILL.md +313 -34
- package/skills/cometchat-flutter-v5/SKILL.md +10 -4
- package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
- package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
- package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
- package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
- package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
- package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
- package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
- package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
- package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
- package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
- package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
- package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
- package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-core/SKILL.md +20 -2
- package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
- package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
- package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
- package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
- package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
- package/skills/cometchat-flutter-v6/SKILL.md +17 -16
- package/skills/cometchat-flutter-v6-calls/SKILL.md +78 -63
- package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +8 -6
- package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
- package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
- package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
- package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
- package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
- package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
- package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
- package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
- package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
- package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
- package/skills/cometchat-flutter-v6-core/SKILL.md +348 -10
- package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
- package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
- package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
- package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
- package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
- package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
- package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
- package/skills/cometchat-flutter-v6-push/SKILL.md +43 -21
- package/skills/cometchat-flutter-v6-testing/SKILL.md +6 -6
- package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
- package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
- package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
- package/skills/cometchat-i18n/SKILL.md +139 -78
- package/skills/cometchat-ios/SKILL.md +4 -2
- package/skills/cometchat-ios-calls/SKILL.md +225 -95
- package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
- package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
- package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
- package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
- package/skills/cometchat-ios-calls/references/call-session.md +51 -54
- package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
- package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
- package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
- package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
- package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
- package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
- package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
- package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
- package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
- package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
- package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
- package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
- package/skills/cometchat-ios-components/SKILL.md +200 -12
- package/skills/cometchat-ios-core/SKILL.md +281 -11
- package/skills/cometchat-ios-customization/SKILL.md +276 -110
- package/skills/cometchat-ios-features/SKILL.md +64 -36
- package/skills/cometchat-ios-placement/SKILL.md +15 -12
- package/skills/cometchat-ios-production/SKILL.md +12 -4
- package/skills/cometchat-ios-push/SKILL.md +53 -19
- package/skills/cometchat-ios-testing/SKILL.md +14 -9
- package/skills/cometchat-ios-theming/SKILL.md +39 -3
- package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
- package/skills/cometchat-native-bare-patterns/SKILL.md +56 -18
- package/skills/cometchat-native-calls/SKILL.md +89 -19
- package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
- package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
- package/skills/cometchat-native-calls/references/call-session.md +2 -2
- package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
- package/skills/cometchat-native-calls/references/device-management.md +53 -30
- package/skills/cometchat-native-calls/references/group-calls.md +35 -30
- package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
- package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
- package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
- package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
- package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
- package/skills/cometchat-native-calls/references/share-invite.md +7 -5
- package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
- package/skills/cometchat-native-components/SKILL.md +91 -57
- package/skills/cometchat-native-core/SKILL.md +281 -9
- package/skills/cometchat-native-customization/SKILL.md +150 -28
- package/skills/cometchat-native-expo-patterns/SKILL.md +77 -27
- package/skills/cometchat-native-features/SKILL.md +79 -49
- package/skills/cometchat-native-placement/SKILL.md +19 -10
- package/skills/cometchat-native-production/SKILL.md +9 -3
- package/skills/cometchat-native-push/SKILL.md +2 -1
- package/skills/cometchat-native-testing/SKILL.md +1 -2
- package/skills/cometchat-native-theming/SKILL.md +54 -29
- package/skills/cometchat-native-troubleshooting/SKILL.md +71 -3
- package/skills/cometchat-nextjs-patterns/SKILL.md +48 -6
- package/skills/cometchat-placement/SKILL.md +42 -3
- package/skills/cometchat-production/SKILL.md +12 -5
- package/skills/cometchat-react-calls/SKILL.md +220 -10
- package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
- package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
- package/skills/cometchat-react-calls/references/call-session.md +1 -1
- package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
- package/skills/cometchat-react-calls/references/device-management.md +55 -51
- package/skills/cometchat-react-calls/references/group-calls.md +18 -23
- package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
- package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
- package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
- package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
- package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
- package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
- package/skills/cometchat-react-calls/references/share-invite.md +4 -5
- package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
- package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
- package/skills/cometchat-react-patterns/SKILL.md +57 -4
- package/skills/cometchat-react-push/SKILL.md +258 -72
- package/skills/cometchat-react-router-patterns/SKILL.md +43 -4
- package/skills/cometchat-react-testing/SKILL.md +14 -5
- package/skills/cometchat-theming/SKILL.md +181 -18
- package/skills/cometchat-troubleshooting/SKILL.md +40 -20
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 CometChat
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -74,6 +74,21 @@ Then in your IDE:
|
|
|
74
74
|
/cometchat add chat to my app
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
+
Or add voice & video calling (new in v4.2):
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
/cometchat add voice and video calls to my app
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
When integrating chat, the dispatcher now asks **how** you want to customize (new in v4.3):
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
◉ Visually — drag-and-drop in browser
|
|
87
|
+
○ In code — code-driven defaults
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Pick **Visually** and the dispatcher opens CometChat's Visual Builder in your browser, waits while you customize colors / layout / features, then fetches the config and emits the integration into your existing app — no ZIP downloads, no manual file copying. Works for React, React Native, iOS, Android v6, and Flutter v6. Angular customers auto-route to the In-code path (Visual Builder doesn't ship Angular code yet).
|
|
91
|
+
|
|
77
92
|
## What happens
|
|
78
93
|
|
|
79
94
|
1. **Detects** your framework (React / Next.js / React Router / Astro / Expo / bare React Native / Angular / Android / Flutter / iOS), router, env prefix, existing auth system
|
|
@@ -87,18 +102,24 @@ No templates, no experiences to pick — the agent writes real code that fits yo
|
|
|
87
102
|
|
|
88
103
|
## Supported frameworks
|
|
89
104
|
|
|
90
|
-
| Framework |
|
|
91
|
-
|
|
92
|
-
| React.js / Vite / CRA | ✅ (
|
|
93
|
-
| Next.js (App Router + Pages Router) | ✅ (
|
|
94
|
-
| React Router v6 / v7 | ✅ (
|
|
95
|
-
| Astro (React islands) | ✅ (
|
|
96
|
-
| Expo (managed + Expo Router) | ✅ (
|
|
97
|
-
| Bare React Native (CLI) | ✅ (
|
|
98
|
-
| Angular 12-15 | ✅ (
|
|
99
|
-
| Android (V5 stable + V6 beta) | ✅ (
|
|
100
|
-
| Flutter (V5 stable + V6 beta) | ✅ (
|
|
101
|
-
| iOS (V5 stable) | ✅
|
|
105
|
+
| Framework | Chat | Voice & Video Calls | Visual Builder |
|
|
106
|
+
|---|---|---|---|
|
|
107
|
+
| React.js / Vite / CRA | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
|
|
108
|
+
| Next.js (App Router + Pages Router) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
|
|
109
|
+
| React Router v6 / v7 | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
|
|
110
|
+
| Astro (React islands) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
|
|
111
|
+
| Expo (managed + Expo Router) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
|
|
112
|
+
| Bare React Native (CLI) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
|
|
113
|
+
| Angular 12-15 | ✅ | ✅ Ringing + Session | ❌ (auto-falls back to In code) |
|
|
114
|
+
| Android (V5 stable + V6 beta) | ✅ | ✅ Ringing + Session | ✅ V6 (v4.3) |
|
|
115
|
+
| Flutter (V5 stable + V6 beta) | ✅ | ✅ Ringing + Session | ✅ V6 chat-only (v4.3) |
|
|
116
|
+
| iOS (V5 stable) | ✅ | ✅ Ringing + Session | ⏸ Pending Xcode 26 vendor fix |
|
|
117
|
+
|
|
118
|
+
**Calling modes:**
|
|
119
|
+
- **Ringing** — kit-driven incoming/outgoing call surfaces, system-level VoIP push (CallKit on iOS, ConnectionService on Android, web push fallback on browsers). Production-grade for 1:1 + group calls.
|
|
120
|
+
- **Session** — both peers join a shared `/meet/:sessionId` URL. No ringing. For embedded meetings, scheduled calls, support flows, broadcast use-cases.
|
|
121
|
+
|
|
122
|
+
The dispatcher asks Ringing vs Session up front in Step 3.0.
|
|
102
123
|
|
|
103
124
|
## After the first integration
|
|
104
125
|
|
package/bin/install.js
CHANGED
|
@@ -652,11 +652,39 @@ async function delegateToSkillsCli({ skills, families, isGlobal }) {
|
|
|
652
652
|
];
|
|
653
653
|
if (isGlobal) npxArgs.push("-g");
|
|
654
654
|
|
|
655
|
+
// F42 (2026-05-22) + F79 (2026-05-28): on Windows, `npx` is `npx.cmd` /
|
|
656
|
+
// `npx.ps1` and Node's spawn can't resolve the shim cleanly. The original
|
|
657
|
+
// F42 fix used `shell: true`, but that still fails in some Windows envs
|
|
658
|
+
// (nested npx, PowerShell execution-policy restrictions) with
|
|
659
|
+
// `spawn npx ENOENT` — reported by a customer on 2026-05-28.
|
|
660
|
+
//
|
|
661
|
+
// F79: on Windows, resolve npm's bundled `npx-cli.js` next to the running
|
|
662
|
+
// Node binary and invoke it directly via `process.execPath`. This bypasses
|
|
663
|
+
// the .cmd/.ps1 shim entirely. Falls back to the F42 `shell: true` path if
|
|
664
|
+
// npx-cli.js can't be located (pnpm / yarn / custom Node installs without
|
|
665
|
+
// a bundled npm). macOS/Linux keep the plain `spawn("npx")` path unchanged.
|
|
666
|
+
const isWindows = process.platform === "win32";
|
|
667
|
+
|
|
668
|
+
let spawnCmd = "npx";
|
|
669
|
+
let spawnArgs = npxArgs;
|
|
670
|
+
let spawnOpts = { stdio: "inherit" };
|
|
671
|
+
|
|
672
|
+
if (isWindows) {
|
|
673
|
+
// npm ships npx-cli.js at <node-dir>/node_modules/npm/bin/npx-cli.js
|
|
674
|
+
const nodeDir = path.dirname(process.execPath);
|
|
675
|
+
const npxCli = path.join(nodeDir, "node_modules", "npm", "bin", "npx-cli.js");
|
|
676
|
+
if (fs.existsSync(npxCli)) {
|
|
677
|
+
spawnCmd = process.execPath; // the current node binary
|
|
678
|
+
spawnArgs = [npxCli, ...npxArgs];
|
|
679
|
+
spawnOpts = { stdio: "inherit" }; // no shell needed — direct node invocation
|
|
680
|
+
} else {
|
|
681
|
+
// Fallback: F42 path (shim via shell). Covers pnpm/yarn/custom installs.
|
|
682
|
+
spawnOpts = { stdio: "inherit", shell: true };
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
|
|
655
686
|
return new Promise((resolve) => {
|
|
656
|
-
const child = spawn(
|
|
657
|
-
stdio: "inherit",
|
|
658
|
-
shell: false,
|
|
659
|
-
});
|
|
687
|
+
const child = spawn(spawnCmd, spawnArgs, spawnOpts);
|
|
660
688
|
child.on("close", (code) => {
|
|
661
689
|
if (code === 0) {
|
|
662
690
|
// Post-spawn success: celebrate + concrete next steps
|
|
@@ -895,6 +923,33 @@ async function main() {
|
|
|
895
923
|
console.log(`\n ${c.bold(c.cyan("CometChat Skills"))} — ${ide} — ${c.bold(familyLabel)} family\n`);
|
|
896
924
|
console.log(` Scope: ${scopeLabel}\n`);
|
|
897
925
|
|
|
926
|
+
// ENG-35720: warn if cometchat-* skills already exist at a DIFFERENT IDE target.
|
|
927
|
+
// Reading skills from two paths (e.g. `.agents/skills/` + `.kiro/skills/`) works
|
|
928
|
+
// for agents that scan both (Kiro), but is fragile and confusing. Surface the
|
|
929
|
+
// mismatch so the integrator can clean up the older path.
|
|
930
|
+
if (!isGlobal) {
|
|
931
|
+
const conflictingPaths = Object.entries(IDE_TARGETS)
|
|
932
|
+
.filter(([otherIde, otherTarget]) =>
|
|
933
|
+
otherIde !== ide &&
|
|
934
|
+
otherTarget.mode === "multi" &&
|
|
935
|
+
otherTarget.local !== target.local
|
|
936
|
+
)
|
|
937
|
+
.map(([otherIde, otherTarget]) => ({ ide: otherIde, path: path.join(process.cwd(), otherTarget.local) }))
|
|
938
|
+
.filter(({ path: p }) => {
|
|
939
|
+
try {
|
|
940
|
+
if (!fs.existsSync(p)) return false;
|
|
941
|
+
return fs.readdirSync(p).some(d => d.startsWith("cometchat-"));
|
|
942
|
+
} catch { return false; }
|
|
943
|
+
});
|
|
944
|
+
if (conflictingPaths.length > 0) {
|
|
945
|
+
console.log(` ${c.yellow("⚠")} Existing CometChat skills found at:`);
|
|
946
|
+
for (const { ide: oIde, path: p } of conflictingPaths) {
|
|
947
|
+
console.log(` ${c.dim("•")} ${p}/ (from --ide ${oIde})`);
|
|
948
|
+
}
|
|
949
|
+
console.log(` ${c.dim("Multi-path skill installs work for IDEs that scan all locations (e.g. Kiro), but are fragile.")}\n ${c.dim("Consider removing the older path or staying on a single --ide flag across re-runs.\n")}`);
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
|
|
898
953
|
ensureDir(baseDir);
|
|
899
954
|
|
|
900
955
|
// --clean: wipe existing cometchat-* skill dirs in baseDir before install.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cometchat/skills",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -48,6 +48,19 @@
|
|
|
48
48
|
},
|
|
49
49
|
"scripts": {
|
|
50
50
|
"setup": "node bin/install.js add",
|
|
51
|
+
"catalog:extract": "node test-suite/scripts/extract-catalog.mjs",
|
|
52
|
+
"test:skill-content": "node --test test-suite/tests/skill-content.test.ts",
|
|
53
|
+
"verify:fences:web": "npm --prefix test-suite/typecheck/web ci --no-audit --no-fund && node test-suite/scripts/typecheck-fences.mjs --project test-suite/typecheck/web --tsconfig tsconfig.json --discover web",
|
|
54
|
+
"verify:fences:rn": "npm --prefix test-suite/typecheck/rn ci --no-audit --no-fund && node test-suite/scripts/typecheck-fences.mjs --project test-suite/typecheck/rn --tsconfig tsconfig.json --discover rn",
|
|
55
|
+
"verify:fences:angular": "npm --prefix test-suite/typecheck/angular ci --no-audit --no-fund && node test-suite/scripts/typecheck-fences.mjs --project test-suite/typecheck/angular --tsconfig tsconfig.json --discover angular",
|
|
56
|
+
"verify:fences:flutter-v6": "(cd test-suite/typecheck/flutter-v6 && flutter pub get) && node test-suite/scripts/typecheck-fences-dart.mjs --project test-suite/typecheck/flutter-v6 --discover flutter-v6",
|
|
57
|
+
"verify:fences:flutter-v5": "(cd test-suite/typecheck/flutter-v5 && flutter pub get) && node test-suite/scripts/typecheck-fences-dart.mjs --project test-suite/typecheck/flutter-v5 --discover flutter-v5",
|
|
58
|
+
"verify:fences:ios": "node test-suite/scripts/typecheck-fences-swift.mjs --discover ios",
|
|
59
|
+
"verify:fences:android-v5": "node test-suite/scripts/typecheck-fences-kotlin.mjs --project test-suite/typecheck/android --module v5 --discover android-v5",
|
|
60
|
+
"verify:fences:android-v6": "node test-suite/scripts/typecheck-fences-kotlin.mjs --project test-suite/typecheck/android --module v6 --discover android-v6",
|
|
61
|
+
"verify:fences:android-v6-compose": "node test-suite/scripts/typecheck-fences-kotlin.mjs --project test-suite/typecheck/android --module v6compose --discover android-v6-compose",
|
|
62
|
+
"verify:fences:android": "npm run verify:fences:android-v5 && npm run verify:fences:android-v6 && npm run verify:fences:android-v6-compose",
|
|
63
|
+
"verify:fences": "npm run verify:fences:web && npm run verify:fences:rn && npm run verify:fences:angular && npm run verify:fences:flutter-v6 && npm run verify:fences:flutter-v5 && npm run verify:fences:ios && npm run verify:fences:android",
|
|
51
64
|
"test": "bash test-suite/scripts/run-matrix.sh --models claude-sonnet-4-6 --experiences 1 --projects fresh --ide cli",
|
|
52
65
|
"test:quick": "bash test-suite/scripts/run-test.sh --framework reactjs --experience 1 --model claude-sonnet-4-6 --project fresh --keep",
|
|
53
66
|
"test:matrix": "bash test-suite/scripts/run-matrix.sh",
|