@cometchat/skills-cli 2.2.0 → 2.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/dist/index.js +4156 -785
- package/dist/registry/v6/experiences/1-conversation-list/templates/astro/CometChatSelector.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs/CometChatSelector.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/1-conversation-list/templates/nextjs-pages/CometChatSelector.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/1-conversation-list/templates/react-router/CometChatSelector.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs/CometChatSelector.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/1-conversation-list/templates/reactjs-dedicated-route/CometChatSelector.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/2-one-to-one/templates/astro/ChatApp.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/2-one-to-one/templates/nextjs/CometChatNoSSR.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/2-one-to-one/templates/react-router/CometChatNoSSR.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs/App.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/2-one-to-one/templates/reactjs-dedicated-route/CometChatMessenger.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/3-tab-based/templates/astro/CometChatTabs.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/3-tab-based/templates/nextjs/CometChatTabs.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/3-tab-based/templates/react-router/CometChatTabs.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/3-tab-based/templates/reactjs/CometChatTabs.tsx.tpl +1 -1
- package/dist/registry/v6/experiences/3-tab-based/templates/reactjs-dedicated-route/CometChatTabs.tsx.tpl +1 -1
- package/dist/registry/v6/features/catalog.json +204 -30
- package/package.json +4 -4
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
CometChatUIKit,
|
|
7
7
|
UIKitSettingsBuilder,
|
|
8
8
|
} from "@cometchat/chat-uikit-react";
|
|
9
|
-
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
9
|
+
import type { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
10
10
|
// IMPORTANT: css-variables.css MUST be imported here (inside the React island)
|
|
11
11
|
// — global stylesheets imported in .astro files do not apply to client:only islands.
|
|
12
12
|
import "@cometchat/chat-uikit-react/css-variables.css";
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
CometChatUIKit,
|
|
8
8
|
UIKitSettingsBuilder,
|
|
9
9
|
} from "@cometchat/chat-uikit-react";
|
|
10
|
-
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
10
|
+
import type { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
11
11
|
// css-variables.css is imported in app/globals.css — do NOT import it here
|
|
12
12
|
import "./CometChatNoSSR.css";
|
|
13
13
|
|
package/dist/registry/v6/experiences/2-one-to-one/templates/react-router/CometChatNoSSR.tsx.tpl
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
CometChatUIKit,
|
|
7
7
|
UIKitSettingsBuilder,
|
|
8
8
|
} from "@cometchat/chat-uikit-react";
|
|
9
|
-
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
9
|
+
import type { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
10
10
|
// css-variables.css is imported in app/app.css — do NOT import it here
|
|
11
11
|
import "./CometChatNoSSR.css";
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
CometChatMessageHeader,
|
|
5
5
|
CometChatMessageList,
|
|
6
6
|
} from "@cometchat/chat-uikit-react";
|
|
7
|
-
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
7
|
+
import type { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
8
8
|
import "./App.css";
|
|
9
9
|
|
|
10
10
|
// The hardcoded user this chat connects to. Change to point at any
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
CometChatMessageHeader,
|
|
5
5
|
CometChatMessageList,
|
|
6
6
|
} from "@cometchat/chat-uikit-react";
|
|
7
|
-
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
7
|
+
import type { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
8
8
|
import "./CometChatMessenger.css";
|
|
9
9
|
|
|
10
10
|
// The hardcoded user this chat connects to. Change to point at any
|
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
"description": "Catalog of CometChat features available in the React UI Kit. Categorized by what work is needed to enable each one. NOTE: this catalog stores OUR taxonomy (default vs dashboard-toggle vs package-install vs component-swap) plus a `dashboard_path` HINT for navigation. The hint is short and intentionally fragile — the canonical source is always the docs URL constructed from `docs_topic`. Agents must query the cometchat-docs MCP at runtime for current dashboard navigation, prop signatures, builder methods, and SDK reference. This catalog is for routing, not for SDK reference.",
|
|
6
6
|
"feature_types": {
|
|
7
7
|
"default": "Already enabled by default in the UI Kit components your integration uses. Zero code changes needed — the skill just shows you which component renders it.",
|
|
8
|
-
"
|
|
8
|
+
"extension": "Pure boolean toggle on a backend extension. The CLI's `apply-feature` command calls POST /apps/{appId}/extensions to enable, no further config needed. Some have their UI decorator auto-attached by the UI Kit (auto_wired_in_uikit: true). Others additionally require passing the extension to UIKitSettingsBuilder.setExtensions([...]) before init.",
|
|
9
|
+
"ai-feature": "Backend AI feature toggle. Requires an OpenAI API key (PUT /apps/{appId}/ai/settings) before the feature can be enabled (POST /apps/{appId}/features/ai.{ai_key}/enabled). The CLI prompts for the key once, stores it on the app's settings, then enables the feature. The `ai_key` field is the API suffix.",
|
|
10
|
+
"dashboard-only": "Requires entering third-party config the user has to fetch themselves (Giphy/Stipop/Tenor API key, Chatwoot webhook URL, Intercom token, etc.) or making a multi-field configuration choice (Disappearing Messages interval, Message Shortcuts list). The CLI cannot automate these — falls back to opening the dashboard. `dashboard_path` is load-bearing for these entries.",
|
|
9
11
|
"package-install": "Requires installing an additional npm package. The UI Kit's initiateAfterLogin() auto-calls enableCalling() which detects the calls SDK and wires up call buttons. Currently calls only.",
|
|
10
|
-
"component-swap": "Requires replacing one UI Kit component with a drop-in variant. One-line change. The SDK currently ships exactly one such variant (CometChatCompactMessageComposer for rich text formatting); more variants will become catalog entries here as the SDK adds them."
|
|
12
|
+
"component-swap": "Requires replacing one UI Kit component with a drop-in variant. One-line change. The SDK currently ships exactly one such variant (CometChatCompactMessageComposer for rich text formatting); more variants will become catalog entries here as the SDK adds them.",
|
|
13
|
+
"moderation": "Backend moderation feature with configuration. Like 'extension' but takes a `config` payload (keyword lists, sensitivity levels, severity thresholds, quarantine action). The CLI's `apply-feature` walks an interactive config-collection step, then POSTs to /apps/{appId}/extensions/{id}/config plus the standard enable POST. `config_schema` describes the fields the user must supply.",
|
|
14
|
+
"calls-feature": "Calls SDK feature configured via CallSettingsBuilder (no backend toggle, no extension). The CLI's `apply-feature` command verifies the calls SDK is installed and points the agent at the matching per-family reference doc (e.g. `cometchat-react-calls/references/raise-hand.md`). The `reference_topic` field maps to the file slug; the `settings_flag` field is the CallSettingsBuilder method involved. Idempotency: persisted in state.applied_features."
|
|
11
15
|
},
|
|
12
16
|
"features": [
|
|
13
17
|
{
|
|
@@ -116,17 +120,121 @@
|
|
|
116
120
|
},
|
|
117
121
|
{
|
|
118
122
|
"id": "moderation",
|
|
119
|
-
"name": "Moderation",
|
|
123
|
+
"name": "Moderation (overview)",
|
|
120
124
|
"type": "default",
|
|
121
|
-
"description": "
|
|
125
|
+
"description": "Umbrella entry — moderation is the family of seven configurable backend features below (profanity-filter, image-moderation, data-masking, sentiment-analysis, xss-filter, slow-mode, virus-malware-scanner). Each has its own catalog entry of type 'moderation' that the CLI can configure interactively.",
|
|
122
126
|
"components": ["CometChatMessageList"],
|
|
123
|
-
"docs_topic": "core-features#moderation"
|
|
124
|
-
|
|
127
|
+
"docs_topic": "core-features#moderation"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "profanity-filter",
|
|
131
|
+
"name": "Profanity Filter",
|
|
132
|
+
"type": "moderation",
|
|
133
|
+
"extension_id": "profanity-filter",
|
|
134
|
+
"description": "Detects and filters profane language from messages. Replaces matched words with asterisks or rejects the message outright.",
|
|
135
|
+
"components": ["CometChatMessageList", "CometChatMessageComposer"],
|
|
136
|
+
"config_schema": {
|
|
137
|
+
"case_sensitivity": { "type": "enum", "values": ["case-sensitive", "case-insensitive"], "default": "case-insensitive", "prompt": "Case sensitivity for keyword matching?" },
|
|
138
|
+
"filter_profanities_for": { "type": "enum", "values": ["all", "specific-roles"], "default": "all", "prompt": "Apply filter to all users or specific roles?" },
|
|
139
|
+
"specific_roles": { "type": "array<string>", "when": { "filter_profanities_for": "specific-roles" }, "prompt": "Comma-separated role names" },
|
|
140
|
+
"profane_words": { "type": "array<string>", "default": [], "prompt": "Custom words to add to the profanity list (comma-separated; empty for default list only)" },
|
|
141
|
+
"white_listed_words": { "type": "array<string>", "default": [], "prompt": "Words to whitelist that would otherwise match (comma-separated)" },
|
|
142
|
+
"rule": { "type": "enum", "values": ["mask", "drop", "tag"], "default": "mask", "prompt": "What to do with matched messages? (mask: replace with ****, drop: reject, tag: deliver but flag)" }
|
|
143
|
+
},
|
|
144
|
+
"docs_topic": "extensions#profanity-filter"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "image-moderation",
|
|
148
|
+
"name": "Image Moderation",
|
|
149
|
+
"type": "moderation",
|
|
150
|
+
"extension_id": "image-moderation",
|
|
151
|
+
"description": "Detects unsafe content in images (NSFW, violence, etc.) using ML-based classification. Configurable confidence thresholds.",
|
|
152
|
+
"components": ["CometChatMessageList"],
|
|
153
|
+
"config_schema": {
|
|
154
|
+
"explicit_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for explicit content (0-100; lower = stricter)" },
|
|
155
|
+
"suggestive_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for suggestive content" },
|
|
156
|
+
"violence_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for violent content" },
|
|
157
|
+
"drugs_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for drug-related content" },
|
|
158
|
+
"rule": { "type": "enum", "values": ["block", "blur", "tag"], "default": "blur", "prompt": "Action for flagged images?" }
|
|
159
|
+
},
|
|
160
|
+
"docs_topic": "extensions#image-moderation"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "data-masking",
|
|
164
|
+
"name": "Data Masking",
|
|
165
|
+
"type": "moderation",
|
|
166
|
+
"extension_id": "data-masking",
|
|
167
|
+
"description": "Masks PII (phone numbers, email addresses, credit cards, SSNs) in messages. Critical for healthcare, fintech, marketplace apps.",
|
|
168
|
+
"components": ["CometChatMessageList"],
|
|
169
|
+
"config_schema": {
|
|
170
|
+
"mask_phone": { "type": "boolean", "default": true, "prompt": "Mask phone numbers?" },
|
|
171
|
+
"mask_email": { "type": "boolean", "default": true, "prompt": "Mask email addresses?" },
|
|
172
|
+
"mask_ssn": { "type": "boolean", "default": false, "prompt": "Mask US Social Security Numbers?" },
|
|
173
|
+
"mask_credit_card": { "type": "boolean", "default": true, "prompt": "Mask credit card numbers?" },
|
|
174
|
+
"custom_patterns": { "type": "array<{name:string,regex:string}>", "default": [], "prompt": "Custom regex patterns to mask (e.g. internal IDs)" },
|
|
175
|
+
"rule": { "type": "enum", "values": ["mask", "drop", "tag"], "default": "mask", "prompt": "Action for messages containing matched data?" }
|
|
176
|
+
},
|
|
177
|
+
"docs_topic": "extensions#data-masking"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"id": "sentiment-analysis",
|
|
181
|
+
"name": "Sentiment Analysis",
|
|
182
|
+
"type": "moderation",
|
|
183
|
+
"extension_id": "sentiment-analysis",
|
|
184
|
+
"description": "Detects negative sentiment / toxicity in messages. Optionally surfaces a 'View confidently' confirm dialog before showing flagged messages.",
|
|
185
|
+
"components": ["CometChatMessageList"],
|
|
186
|
+
"config_schema": {
|
|
187
|
+
"threshold": { "type": "number", "min": 0, "max": 100, "default": 50, "prompt": "Sentiment threshold (0-100; lower = more aggressive)" },
|
|
188
|
+
"rule": { "type": "enum", "values": ["confirm-view", "tag", "drop"], "default": "confirm-view", "prompt": "Action for flagged messages?" }
|
|
189
|
+
},
|
|
190
|
+
"docs_topic": "extensions#sentiment-analysis"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "xss-filter",
|
|
194
|
+
"name": "XSS Filter",
|
|
195
|
+
"type": "moderation",
|
|
196
|
+
"extension_id": "xss-filter",
|
|
197
|
+
"description": "Strips HTML/script injection from messages before delivery. Critical for chat surfaces that render rich text.",
|
|
198
|
+
"components": ["CometChatMessageList"],
|
|
199
|
+
"config_schema": {
|
|
200
|
+
"strict_mode": { "type": "boolean", "default": true, "prompt": "Strict mode (blocks all HTML; safer)?" },
|
|
201
|
+
"allowed_tags": { "type": "array<string>", "default": ["b", "i", "u", "strong", "em"], "when": { "strict_mode": false }, "prompt": "Allowed HTML tags (when strict mode off)" }
|
|
202
|
+
},
|
|
203
|
+
"docs_topic": "extensions#xss-filter"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"id": "slow-mode",
|
|
207
|
+
"name": "Slow Mode",
|
|
208
|
+
"type": "moderation",
|
|
209
|
+
"extension_id": "slow-mode",
|
|
210
|
+
"description": "Rate-limits how often a user can post in a conversation/group. Reduces spam in busy channels.",
|
|
211
|
+
"components": ["CometChatMessageComposer"],
|
|
212
|
+
"config_schema": {
|
|
213
|
+
"interval_seconds": { "type": "number", "min": 1, "max": 3600, "default": 5, "prompt": "Minimum seconds between messages from the same user" },
|
|
214
|
+
"applies_to": { "type": "enum", "values": ["all", "groups-only", "specific-groups"], "default": "groups-only", "prompt": "Apply slow mode where?" },
|
|
215
|
+
"specific_group_ids": { "type": "array<string>", "when": { "applies_to": "specific-groups" }, "prompt": "Group IDs (comma-separated)" }
|
|
216
|
+
},
|
|
217
|
+
"docs_topic": "extensions#slow-mode"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "virus-malware-scanner",
|
|
221
|
+
"name": "Virus / Malware Scanner",
|
|
222
|
+
"type": "moderation",
|
|
223
|
+
"extension_id": "virus-malware-scanner",
|
|
224
|
+
"description": "Scans uploaded files (images, documents, archives) for malware before delivery. Required for healthcare, legal, finance apps.",
|
|
225
|
+
"components": ["CometChatMessageList", "CometChatMessageComposer"],
|
|
226
|
+
"config_schema": {
|
|
227
|
+
"scan_images": { "type": "boolean", "default": true, "prompt": "Scan image uploads?" },
|
|
228
|
+
"scan_documents": { "type": "boolean", "default": true, "prompt": "Scan document uploads (.pdf, .docx, etc.)?" },
|
|
229
|
+
"scan_archives": { "type": "boolean", "default": true, "prompt": "Scan archive uploads (.zip, .tar.gz)?" },
|
|
230
|
+
"rule": { "type": "enum", "values": ["block", "quarantine", "tag"], "default": "block", "prompt": "Action when malware detected?" }
|
|
231
|
+
},
|
|
232
|
+
"docs_topic": "extensions#virus-malware-scanner"
|
|
125
233
|
},
|
|
126
234
|
{
|
|
127
235
|
"id": "bitly",
|
|
128
236
|
"name": "Bitly URL Shortening",
|
|
129
|
-
"type": "
|
|
237
|
+
"type": "extension",
|
|
130
238
|
"description": "Automatically shorten long URLs in messages using Bitly.",
|
|
131
239
|
"dashboard_path": "Extensions → Bitly → Toggle on",
|
|
132
240
|
"docs_topic": "extensions#bitly"
|
|
@@ -134,7 +242,7 @@
|
|
|
134
242
|
{
|
|
135
243
|
"id": "link-preview",
|
|
136
244
|
"name": "Link Preview",
|
|
137
|
-
"type": "
|
|
245
|
+
"type": "extension",
|
|
138
246
|
"auto_wired_in_uikit": true,
|
|
139
247
|
"description": "Show URL previews with title, description, and thumbnail. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
140
248
|
"dashboard_path": "Extensions → Link Preview → Toggle on",
|
|
@@ -143,7 +251,7 @@
|
|
|
143
251
|
{
|
|
144
252
|
"id": "message-shortcuts",
|
|
145
253
|
"name": "Message Shortcuts",
|
|
146
|
-
"type": "dashboard-
|
|
254
|
+
"type": "dashboard-only",
|
|
147
255
|
"description": "Expand predefined short codes into full messages.",
|
|
148
256
|
"dashboard_path": "Extensions → Message Shortcuts → Configure shortcuts",
|
|
149
257
|
"docs_topic": "extensions#message-shortcuts"
|
|
@@ -151,7 +259,7 @@
|
|
|
151
259
|
{
|
|
152
260
|
"id": "pin-message",
|
|
153
261
|
"name": "Pin Message",
|
|
154
|
-
"type": "
|
|
262
|
+
"type": "extension",
|
|
155
263
|
"description": "Pin important messages for easy access.",
|
|
156
264
|
"dashboard_path": "Extensions → Pin Message → Toggle on",
|
|
157
265
|
"docs_topic": "extensions#pin-message"
|
|
@@ -159,7 +267,7 @@
|
|
|
159
267
|
{
|
|
160
268
|
"id": "rich-media-preview",
|
|
161
269
|
"name": "Rich Media Preview",
|
|
162
|
-
"type": "
|
|
270
|
+
"type": "extension",
|
|
163
271
|
"description": "Generate rich preview panels for URLs via iFramely.",
|
|
164
272
|
"dashboard_path": "Extensions → Rich Media Preview → Toggle on",
|
|
165
273
|
"docs_topic": "extensions#rich-media-preview"
|
|
@@ -167,7 +275,7 @@
|
|
|
167
275
|
{
|
|
168
276
|
"id": "save-message",
|
|
169
277
|
"name": "Save Message",
|
|
170
|
-
"type": "
|
|
278
|
+
"type": "extension",
|
|
171
279
|
"description": "Bookmark messages privately for later.",
|
|
172
280
|
"dashboard_path": "Extensions → Save Message → Toggle on",
|
|
173
281
|
"docs_topic": "extensions#save-message"
|
|
@@ -175,7 +283,7 @@
|
|
|
175
283
|
{
|
|
176
284
|
"id": "thumbnail-generation",
|
|
177
285
|
"name": "Thumbnail Generation",
|
|
178
|
-
"type": "
|
|
286
|
+
"type": "extension",
|
|
179
287
|
"auto_wired_in_uikit": true,
|
|
180
288
|
"description": "Auto-generate thumbnails for shared media to reduce bandwidth. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
181
289
|
"dashboard_path": "Extensions → Thumbnail Generation → Toggle on",
|
|
@@ -184,7 +292,7 @@
|
|
|
184
292
|
{
|
|
185
293
|
"id": "tinyurl",
|
|
186
294
|
"name": "TinyURL Shortening",
|
|
187
|
-
"type": "
|
|
295
|
+
"type": "extension",
|
|
188
296
|
"description": "Shorten URLs using TinyURL service.",
|
|
189
297
|
"dashboard_path": "Extensions → TinyURL → Toggle on",
|
|
190
298
|
"docs_topic": "extensions#tinyurl"
|
|
@@ -192,7 +300,7 @@
|
|
|
192
300
|
{
|
|
193
301
|
"id": "voice-transcription",
|
|
194
302
|
"name": "Voice Transcription",
|
|
195
|
-
"type": "
|
|
303
|
+
"type": "extension",
|
|
196
304
|
"description": "Convert audio messages to text automatically.",
|
|
197
305
|
"dashboard_path": "Extensions → Voice Transcription → Toggle on",
|
|
198
306
|
"docs_topic": "extensions#voice-transcription"
|
|
@@ -200,7 +308,7 @@
|
|
|
200
308
|
{
|
|
201
309
|
"id": "giphy",
|
|
202
310
|
"name": "Giphy GIFs",
|
|
203
|
-
"type": "dashboard-
|
|
311
|
+
"type": "dashboard-only",
|
|
204
312
|
"description": "Search and share GIFs from Giphy.",
|
|
205
313
|
"dashboard_path": "Extensions → Giphy → Configure API key",
|
|
206
314
|
"docs_topic": "extensions#giphy"
|
|
@@ -208,7 +316,7 @@
|
|
|
208
316
|
{
|
|
209
317
|
"id": "message-translation",
|
|
210
318
|
"name": "Message Translation",
|
|
211
|
-
"type": "
|
|
319
|
+
"type": "extension",
|
|
212
320
|
"auto_wired_in_uikit": true,
|
|
213
321
|
"description": "Translate messages into the user's locale. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
214
322
|
"dashboard_path": "Extensions → Message Translation → Toggle on",
|
|
@@ -217,7 +325,7 @@
|
|
|
217
325
|
{
|
|
218
326
|
"id": "polls",
|
|
219
327
|
"name": "Polls",
|
|
220
|
-
"type": "
|
|
328
|
+
"type": "extension",
|
|
221
329
|
"auto_wired_in_uikit": true,
|
|
222
330
|
"description": "Create polls in group discussions with preset answers. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
223
331
|
"dashboard_path": "Extensions → Polls → Toggle on",
|
|
@@ -226,7 +334,7 @@
|
|
|
226
334
|
{
|
|
227
335
|
"id": "reminders",
|
|
228
336
|
"name": "Reminders",
|
|
229
|
-
"type": "
|
|
337
|
+
"type": "extension",
|
|
230
338
|
"description": "Set message reminders or personal notifications via bot.",
|
|
231
339
|
"dashboard_path": "Extensions → Reminders → Toggle on",
|
|
232
340
|
"docs_topic": "extensions#reminders"
|
|
@@ -234,7 +342,7 @@
|
|
|
234
342
|
{
|
|
235
343
|
"id": "stickers",
|
|
236
344
|
"name": "Stickers",
|
|
237
|
-
"type": "
|
|
345
|
+
"type": "extension",
|
|
238
346
|
"auto_wired_in_uikit": true,
|
|
239
347
|
"description": "Send pre-designed stickers in conversations. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
240
348
|
"dashboard_path": "Extensions → Stickers → Toggle on",
|
|
@@ -243,7 +351,7 @@
|
|
|
243
351
|
{
|
|
244
352
|
"id": "stipop",
|
|
245
353
|
"name": "Stipop Sticker Library",
|
|
246
|
-
"type": "dashboard-
|
|
354
|
+
"type": "dashboard-only",
|
|
247
355
|
"description": "Integrates the Stipop sticker library.",
|
|
248
356
|
"dashboard_path": "Extensions → Stipop → Configure API key",
|
|
249
357
|
"docs_topic": "extensions#stipop"
|
|
@@ -251,7 +359,7 @@
|
|
|
251
359
|
{
|
|
252
360
|
"id": "tenor",
|
|
253
361
|
"name": "Tenor GIFs",
|
|
254
|
-
"type": "dashboard-
|
|
362
|
+
"type": "dashboard-only",
|
|
255
363
|
"description": "Search and share GIFs from Tenor.",
|
|
256
364
|
"dashboard_path": "Extensions → Tenor → Configure API key",
|
|
257
365
|
"docs_topic": "extensions#tenor"
|
|
@@ -259,7 +367,7 @@
|
|
|
259
367
|
{
|
|
260
368
|
"id": "collaborative-document",
|
|
261
369
|
"name": "Collaborative Document",
|
|
262
|
-
"type": "
|
|
370
|
+
"type": "extension",
|
|
263
371
|
"auto_wired_in_uikit": true,
|
|
264
372
|
"description": "Real-time shared document editing. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
265
373
|
"dashboard_path": "Extensions → Collaborative Document → Toggle on",
|
|
@@ -268,7 +376,7 @@
|
|
|
268
376
|
{
|
|
269
377
|
"id": "collaborative-whiteboard",
|
|
270
378
|
"name": "Collaborative Whiteboard",
|
|
271
|
-
"type": "
|
|
379
|
+
"type": "extension",
|
|
272
380
|
"auto_wired_in_uikit": true,
|
|
273
381
|
"description": "Shared whiteboard for drawing and brainstorming. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
274
382
|
"dashboard_path": "Extensions → Collaborative Whiteboard → Toggle on",
|
|
@@ -277,7 +385,7 @@
|
|
|
277
385
|
{
|
|
278
386
|
"id": "disappearing-messages",
|
|
279
387
|
"name": "Disappearing Messages",
|
|
280
|
-
"type": "dashboard-
|
|
388
|
+
"type": "dashboard-only",
|
|
281
389
|
"description": "Messages auto-delete after a specified interval.",
|
|
282
390
|
"dashboard_path": "Extensions → Disappearing Messages → Configure interval",
|
|
283
391
|
"docs_topic": "extensions#disappearing-messages"
|
|
@@ -285,7 +393,7 @@
|
|
|
285
393
|
{
|
|
286
394
|
"id": "chatwoot",
|
|
287
395
|
"name": "Chatwoot Integration",
|
|
288
|
-
"type": "dashboard-
|
|
396
|
+
"type": "dashboard-only",
|
|
289
397
|
"description": "Route messages to Chatwoot for customer support.",
|
|
290
398
|
"dashboard_path": "Extensions → Chatwoot → Configure webhook",
|
|
291
399
|
"docs_topic": "extensions#chatwoot"
|
|
@@ -293,7 +401,7 @@
|
|
|
293
401
|
{
|
|
294
402
|
"id": "intercom",
|
|
295
403
|
"name": "Intercom Integration",
|
|
296
|
-
"type": "dashboard-
|
|
404
|
+
"type": "dashboard-only",
|
|
297
405
|
"description": "Integrate Intercom for in-app customer support.",
|
|
298
406
|
"dashboard_path": "Extensions → Intercom → Configure API key",
|
|
299
407
|
"docs_topic": "extensions#intercom"
|
|
@@ -301,7 +409,9 @@
|
|
|
301
409
|
{
|
|
302
410
|
"id": "conversation-starter",
|
|
303
411
|
"name": "AI Conversation Starter",
|
|
304
|
-
"type": "
|
|
412
|
+
"type": "ai-feature",
|
|
413
|
+
"ai_key": "conversation-starter",
|
|
414
|
+
"requires": "openai-key",
|
|
305
415
|
"description": "AI-generated opening messages for new chats.",
|
|
306
416
|
"dashboard_path": "AI Features → Conversation Starter → Toggle on",
|
|
307
417
|
"docs_topic": "ai-features#conversation-starter"
|
|
@@ -309,7 +419,9 @@
|
|
|
309
419
|
{
|
|
310
420
|
"id": "smart-replies",
|
|
311
421
|
"name": "AI Smart Replies",
|
|
312
|
-
"type": "
|
|
422
|
+
"type": "ai-feature",
|
|
423
|
+
"ai_key": "smart-replies",
|
|
424
|
+
"requires": "openai-key",
|
|
313
425
|
"description": "AI-generated contextual response suggestions.",
|
|
314
426
|
"dashboard_path": "AI Features → Smart Replies → Toggle on",
|
|
315
427
|
"docs_topic": "ai-features#smart-replies"
|
|
@@ -317,7 +429,9 @@
|
|
|
317
429
|
{
|
|
318
430
|
"id": "conversation-summary",
|
|
319
431
|
"name": "AI Conversation Summary",
|
|
320
|
-
"type": "
|
|
432
|
+
"type": "ai-feature",
|
|
433
|
+
"ai_key": "conversation-summary",
|
|
434
|
+
"requires": "openai-key",
|
|
321
435
|
"description": "AI-generated recaps of extended conversations.",
|
|
322
436
|
"dashboard_path": "AI Features → Conversation Summary → Toggle on",
|
|
323
437
|
"docs_topic": "ai-features#conversation-summary"
|
|
@@ -347,6 +461,66 @@
|
|
|
347
461
|
"swap_from": "CometChatMessageComposer",
|
|
348
462
|
"swap_to": "CometChatCompactMessageComposer",
|
|
349
463
|
"docs_topic": "core-features#rich-text-formatting"
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"id": "call-recording",
|
|
467
|
+
"name": "Call Recording",
|
|
468
|
+
"type": "calls-feature",
|
|
469
|
+
"description": "Record calls to cloud storage. Built into Calls SDK; configured via CallSettingsBuilder. Server-side recording requires the Recording add-on enabled on your CometChat plan.",
|
|
470
|
+
"settings_flag": "startRecordingOnCallStart",
|
|
471
|
+
"reference_topic": "recording",
|
|
472
|
+
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
|
|
473
|
+
"docs_topic": "calls/recording"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"id": "screen-share",
|
|
477
|
+
"name": "Screen Sharing",
|
|
478
|
+
"type": "calls-feature",
|
|
479
|
+
"description": "Share screen during a call. Built into Calls SDK; configured via CallSettingsBuilder hideScreenShareButton flag. Mobile platforms have OS-level gating (iOS broadcast extension, Android MediaProjection).",
|
|
480
|
+
"settings_flag": "hideScreenShareButton",
|
|
481
|
+
"reference_topic": "screen-sharing",
|
|
482
|
+
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
|
|
483
|
+
"docs_topic": "calls/screen-sharing"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"id": "virtual-background",
|
|
487
|
+
"name": "Virtual Background",
|
|
488
|
+
"type": "calls-feature",
|
|
489
|
+
"description": "Blur or replace the user's background during a call. JavaScript-only feature — not available on iOS/Android/RN browsers (mobile webviews don't ship the ML Kit needed).",
|
|
490
|
+
"settings_flag": "hideVirtualBackgroundButton",
|
|
491
|
+
"reference_topic": "virtual-background",
|
|
492
|
+
"platforms_supported": ["web", "angular"],
|
|
493
|
+
"docs_topic": "calls/virtual-background"
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"id": "raise-hand",
|
|
497
|
+
"name": "Raise Hand",
|
|
498
|
+
"type": "calls-feature",
|
|
499
|
+
"description": "Participants can raise a hand to signal they want to speak. Built into Calls SDK.",
|
|
500
|
+
"settings_flag": "hideRaiseHandButton",
|
|
501
|
+
"reference_topic": "raise-hand",
|
|
502
|
+
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
|
|
503
|
+
"docs_topic": "calls/raise-hand"
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"id": "picture-in-picture",
|
|
507
|
+
"name": "Picture-in-Picture",
|
|
508
|
+
"type": "calls-feature",
|
|
509
|
+
"description": "Minimize an in-progress call into a floating window so the user can keep using the rest of your app (or other apps on mobile). Per-platform constraints — iOS PIP requires a multitasking-capable iPad or iOS 15+ iPhone, Android requires API 26+.",
|
|
510
|
+
"settings_flag": "hidePIPButton",
|
|
511
|
+
"reference_topic": "picture-in-picture",
|
|
512
|
+
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
|
|
513
|
+
"docs_topic": "calls/picture-in-picture"
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"id": "idle-timeout",
|
|
517
|
+
"name": "Idle Timeout",
|
|
518
|
+
"type": "calls-feature",
|
|
519
|
+
"description": "Auto-end a call after a configurable period of no activity. Prevents zombie calls + unbounded billing. Built into Calls SDK; configured via CallSettingsBuilder callIdleTime.",
|
|
520
|
+
"settings_flag": "callIdleTime",
|
|
521
|
+
"reference_topic": "idle-timeout",
|
|
522
|
+
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
|
|
523
|
+
"docs_topic": "calls/idle-timeout"
|
|
350
524
|
}
|
|
351
525
|
]
|
|
352
526
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cometchat/skills-cli",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "CLI for the CometChat skills v3 architecture — auth, provision, detect, apply, verify CometChat integrations in React/Next.js/React-Router/Astro/Expo/React-Native projects.",
|
|
3
|
+
"version": "2.4.0",
|
|
4
|
+
"description": "CLI for the CometChat skills v3 architecture — auth, provision, detect, apply, verify CometChat integrations in React/Next.js/React-Router/Astro/Expo/React-Native/Angular/Android/iOS/Flutter projects.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"node": ">=18.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@types/node": "^
|
|
35
|
-
"esbuild": "^0.
|
|
34
|
+
"@types/node": "^25.6.0",
|
|
35
|
+
"esbuild": "^0.28.0",
|
|
36
36
|
"tsx": "^4.19.0",
|
|
37
37
|
"typescript": "^5.6.0"
|
|
38
38
|
},
|