@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.
Files changed (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -12
  3. package/bin/install.js +59 -4
  4. package/package.json +14 -1
  5. package/skills/cometchat/SKILL.md +460 -77
  6. package/skills/cometchat/references/asking-questions.md +48 -0
  7. package/skills/cometchat-a11y/SKILL.md +3 -2
  8. package/skills/cometchat-android-v5/SKILL.md +2 -1
  9. package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
  10. package/skills/cometchat-android-v5-calls/references/README.md +1 -1
  11. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
  12. package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
  13. package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
  14. package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
  15. package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
  16. package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
  17. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
  18. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
  19. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
  20. package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
  21. package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
  22. package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
  23. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
  24. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
  25. package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
  26. package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
  27. package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
  28. package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
  29. package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
  30. package/skills/cometchat-android-v5-components/SKILL.md +4 -3
  31. package/skills/cometchat-android-v5-core/SKILL.md +20 -2
  32. package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
  33. package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
  34. package/skills/cometchat-android-v5-features/SKILL.md +5 -4
  35. package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
  36. package/skills/cometchat-android-v5-production/SKILL.md +2 -1
  37. package/skills/cometchat-android-v5-push/SKILL.md +2 -3
  38. package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
  39. package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
  40. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
  41. package/skills/cometchat-android-v6/SKILL.md +2 -1
  42. package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
  43. package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
  44. package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
  45. package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
  46. package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
  47. package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
  48. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
  49. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
  50. package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
  51. package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
  52. package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
  53. package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
  54. package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
  55. package/skills/cometchat-android-v6-core/SKILL.md +389 -9
  56. package/skills/cometchat-android-v6-events/SKILL.md +4 -1
  57. package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
  58. package/skills/cometchat-android-v6-features/SKILL.md +26 -2
  59. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
  60. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
  61. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
  62. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
  63. package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
  64. package/skills/cometchat-android-v6-production/SKILL.md +6 -3
  65. package/skills/cometchat-android-v6-push/SKILL.md +43 -2
  66. package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
  67. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
  68. package/skills/cometchat-angular-calls/SKILL.md +256 -389
  69. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
  70. package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
  71. package/skills/cometchat-angular-calls/references/call-session.md +2 -2
  72. package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
  73. package/skills/cometchat-angular-calls/references/device-management.md +53 -34
  74. package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
  75. package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
  76. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
  77. package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
  78. package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
  79. package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
  80. package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
  81. package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
  82. package/skills/cometchat-angular-components/SKILL.md +149 -620
  83. package/skills/cometchat-angular-core/SKILL.md +235 -293
  84. package/skills/cometchat-angular-customization/SKILL.md +415 -223
  85. package/skills/cometchat-angular-features/SKILL.md +216 -334
  86. package/skills/cometchat-angular-patterns/SKILL.md +168 -359
  87. package/skills/cometchat-angular-placement/SKILL.md +189 -560
  88. package/skills/cometchat-angular-production/SKILL.md +241 -92
  89. package/skills/cometchat-angular-push/SKILL.md +280 -294
  90. package/skills/cometchat-angular-testing/SKILL.md +430 -158
  91. package/skills/cometchat-angular-theming/SKILL.md +190 -265
  92. package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
  93. package/skills/cometchat-astro-patterns/SKILL.md +22 -1
  94. package/skills/cometchat-calls/SKILL.md +25 -19
  95. package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
  96. package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
  97. package/skills/cometchat-calls/references/use-case-support.md +3 -4
  98. package/skills/cometchat-calls/references/use-case-team.md +23 -12
  99. package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
  100. package/skills/cometchat-components/SKILL.md +163 -25
  101. package/skills/cometchat-core/SKILL.md +412 -13
  102. package/skills/cometchat-customization/SKILL.md +50 -25
  103. package/skills/cometchat-features/SKILL.md +313 -34
  104. package/skills/cometchat-flutter-v5/SKILL.md +10 -4
  105. package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
  106. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
  107. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
  108. package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
  109. package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
  110. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
  111. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
  112. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
  113. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
  114. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
  115. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
  116. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
  117. package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
  118. package/skills/cometchat-flutter-v5-core/SKILL.md +20 -2
  119. package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
  120. package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
  121. package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
  122. package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
  123. package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
  124. package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
  125. package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
  126. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
  127. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
  128. package/skills/cometchat-flutter-v6/SKILL.md +17 -16
  129. package/skills/cometchat-flutter-v6-calls/SKILL.md +78 -63
  130. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +8 -6
  131. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
  132. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
  133. package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
  134. package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
  135. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
  136. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
  137. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
  138. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
  139. package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
  140. package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
  141. package/skills/cometchat-flutter-v6-core/SKILL.md +348 -10
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
  145. package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
  146. package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
  147. package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
  148. package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
  149. package/skills/cometchat-flutter-v6-push/SKILL.md +43 -21
  150. package/skills/cometchat-flutter-v6-testing/SKILL.md +6 -6
  151. package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
  153. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
  154. package/skills/cometchat-i18n/SKILL.md +139 -78
  155. package/skills/cometchat-ios/SKILL.md +4 -2
  156. package/skills/cometchat-ios-calls/SKILL.md +225 -95
  157. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
  158. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
  159. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
  160. package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
  161. package/skills/cometchat-ios-calls/references/call-session.md +51 -54
  162. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
  163. package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
  164. package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
  165. package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
  166. package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
  167. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
  168. package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
  169. package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
  170. package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
  171. package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
  172. package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
  173. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
  174. package/skills/cometchat-ios-components/SKILL.md +200 -12
  175. package/skills/cometchat-ios-core/SKILL.md +281 -11
  176. package/skills/cometchat-ios-customization/SKILL.md +276 -110
  177. package/skills/cometchat-ios-features/SKILL.md +64 -36
  178. package/skills/cometchat-ios-placement/SKILL.md +15 -12
  179. package/skills/cometchat-ios-production/SKILL.md +12 -4
  180. package/skills/cometchat-ios-push/SKILL.md +53 -19
  181. package/skills/cometchat-ios-testing/SKILL.md +14 -9
  182. package/skills/cometchat-ios-theming/SKILL.md +39 -3
  183. package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
  184. package/skills/cometchat-native-bare-patterns/SKILL.md +56 -18
  185. package/skills/cometchat-native-calls/SKILL.md +89 -19
  186. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
  187. package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
  188. package/skills/cometchat-native-calls/references/call-session.md +2 -2
  189. package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
  190. package/skills/cometchat-native-calls/references/device-management.md +53 -30
  191. package/skills/cometchat-native-calls/references/group-calls.md +35 -30
  192. package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
  193. package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
  194. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
  195. package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
  196. package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
  197. package/skills/cometchat-native-calls/references/share-invite.md +7 -5
  198. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
  199. package/skills/cometchat-native-components/SKILL.md +91 -57
  200. package/skills/cometchat-native-core/SKILL.md +281 -9
  201. package/skills/cometchat-native-customization/SKILL.md +150 -28
  202. package/skills/cometchat-native-expo-patterns/SKILL.md +77 -27
  203. package/skills/cometchat-native-features/SKILL.md +79 -49
  204. package/skills/cometchat-native-placement/SKILL.md +19 -10
  205. package/skills/cometchat-native-production/SKILL.md +9 -3
  206. package/skills/cometchat-native-push/SKILL.md +2 -1
  207. package/skills/cometchat-native-testing/SKILL.md +1 -2
  208. package/skills/cometchat-native-theming/SKILL.md +54 -29
  209. package/skills/cometchat-native-troubleshooting/SKILL.md +71 -3
  210. package/skills/cometchat-nextjs-patterns/SKILL.md +48 -6
  211. package/skills/cometchat-placement/SKILL.md +42 -3
  212. package/skills/cometchat-production/SKILL.md +12 -5
  213. package/skills/cometchat-react-calls/SKILL.md +220 -10
  214. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
  215. package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
  216. package/skills/cometchat-react-calls/references/call-session.md +1 -1
  217. package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
  218. package/skills/cometchat-react-calls/references/device-management.md +55 -51
  219. package/skills/cometchat-react-calls/references/group-calls.md +18 -23
  220. package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
  221. package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
  222. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
  223. package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
  224. package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
  225. package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
  226. package/skills/cometchat-react-calls/references/share-invite.md +4 -5
  227. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
  228. package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
  229. package/skills/cometchat-react-patterns/SKILL.md +57 -4
  230. package/skills/cometchat-react-push/SKILL.md +258 -72
  231. package/skills/cometchat-react-router-patterns/SKILL.md +43 -4
  232. package/skills/cometchat-react-testing/SKILL.md +14 -5
  233. package/skills/cometchat-theming/SKILL.md +181 -18
  234. 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 | Status |
91
- |---|---|
92
- | React.js / Vite / CRA | ✅ (`@cometchat/skills`) |
93
- | Next.js (App Router + Pages Router) | ✅ (`@cometchat/skills`) |
94
- | React Router v6 / v7 | ✅ (`@cometchat/skills`) |
95
- | Astro (React islands) | ✅ (`@cometchat/skills`) |
96
- | Expo (managed + Expo Router) | ✅ (`@cometchat/skills`) |
97
- | Bare React Native (CLI) | ✅ (`@cometchat/skills`) |
98
- | Angular 12-15 | ✅ (`@cometchat/skills`) |
99
- | Android (V5 stable + V6 beta) | ✅ (`@cometchat/skills`) |
100
- | Flutter (V5 stable + V6 beta) | ✅ (`@cometchat/skills`) |
101
- | iOS (V5 stable) | ✅ (`@cometchat/skills`) |
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("npx", npxArgs, {
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.2.1",
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",