🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@cometchat/skills-cli

Package Overview
Dependencies
Maintainers
14
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cometchat/skills-cli - npm Package Compare versions

Comparing version
2.4.0
to
2.4.1
+599
-135
dist/registry/v6/features/catalog.json

@@ -13,5 +13,20 @@ {

"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.",
"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.",
"moderation": "⚠️ LEGACY moderation extension (config payload: keyword lists, sensitivity, thresholds, quarantine action). The CLI's `apply-feature` POSTs to /apps/{appId}/extensions/{id}/config + enable. **DEPRECATED in favor of Rules Management** — the canonical moderation system (Dashboard → Moderation → Settings → Rules, or the /moderation/rules REST API: rules, keywords, reasons, blocked/flagged/reviewed-messages). Rules auto-apply to all messages with NO client code. CONFLICT: do NOT run a legacy moderation extension AND Rules on the same app — each message gets processed twice (delays + perf issues); disable the legacy extension first. See docs/moderation/overview.",
"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."
},
"tiers": {
"1": "Core Messaging (Zero Setup) — out of the box, no config or code (e.g. Typing Indicators).",
"2": "Builder-Enabled (Config + UI Toggle) — enable via Dashboard API; toggleable/placeable in the UI Kit Builder / Widget Builder (e.g. Polls).",
"3": "Config-Only (Dashboard-Driven) — enable via Dashboard API; works automatically, no UI or code (e.g. Link Preview).",
"4": "Config + Settings (Smart) — enable via Dashboard API + additional dashboard settings (API keys, rules, thresholds); no client code (e.g. Smart Replies).",
"5": "SDK-Integrated (Config + Code) — enable via Dashboard API + custom client code. THE IMPLEMENTATION IS IN THE DOCS (`docs_topic`) — fetch and wire it, do not hand-roll (e.g. Bitly).",
"_comment": "The product's canonical 5-category model (the 'Feature Availability' matrix — columns API Call / Code / Additional Settings are the operative truth, captured per-feature as enable_api(implied by type)/code/dashboard_settings/builder). `feature_types` above is the CLI's enablement MECHANISM; `tier` is the customer-facing WORK-NEEDED category."
},
"code_legend": {
"_comment": "Per-feature `code` field = what client work is needed (from the matrix's Code column).",
"none": "No client code — the UI Kit renders it automatically once enabled (auto_wired_in_uikit:true).",
"stitch-components": "No extension code, but you COMPOSE existing kit components to surface it — see the kit sample apps for the wiring.",
"steps-in-docs": "Follow the documented steps at `docs_topic` to wire it client-side.",
"custom-code": "Substantial custom implementation — the reference code lives at `docs_topic`; fetch and adapt it."
},
"features": [

@@ -23,4 +38,11 @@ {

"description": "Real-time text messaging via CometChatMessageList + CometChatMessageComposer. The core of every chat experience.",
"components": ["CometChatMessageList", "CometChatMessageComposer"],
"docs_topic": "core-features#instant-messaging"
"components": [
"CometChatMessageList",
"CometChatMessageComposer"
],
"docs_topic": "core-features#instant-messaging",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -32,4 +54,10 @@ {

"description": "Send images, videos, audio, and documents within conversations. Built into CometChatMessageComposer's ActionSheet.",
"components": ["CometChatMessageComposer"],
"docs_topic": "core-features#media-sharing"
"components": [
"CometChatMessageComposer"
],
"docs_topic": "core-features#media-sharing",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -41,4 +69,11 @@ {

"description": "See when messages have been delivered and read. Visible in message bubbles and the Conversations list.",
"components": ["CometChatMessageList", "CometChatConversations"],
"docs_topic": "core-features#read-receipts"
"components": [
"CometChatMessageList",
"CometChatConversations"
],
"docs_topic": "core-features#read-receipts",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -50,4 +85,10 @@ {

"description": "Manually mark conversations or messages as unread.",
"components": ["CometChatMessageList"],
"docs_topic": "core-features#mark-as-unread"
"components": [
"CometChatMessageList"
],
"docs_topic": "core-features#mark-as-unread",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -59,4 +100,11 @@ {

"description": "Real-time typing awareness. Shows in CometChatMessageHeader and CometChatConversations.",
"components": ["CometChatMessageHeader", "CometChatConversations"],
"docs_topic": "core-features#typing-indicator"
"components": [
"CometChatMessageHeader",
"CometChatConversations"
],
"docs_topic": "core-features#typing-indicator",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -68,4 +116,13 @@ {

"description": "Online/offline status across Conversations, Message Header, Users, and Group Members.",
"components": ["CometChatConversations", "CometChatMessageHeader", "CometChatUsers", "CometChatGroupMembers"],
"docs_topic": "core-features#user-presence"
"components": [
"CometChatConversations",
"CometChatMessageHeader",
"CometChatUsers",
"CometChatGroupMembers"
],
"docs_topic": "core-features#user-presence",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -77,4 +134,10 @@ {

"description": "React to messages with emojis without typing a full response.",
"components": ["CometChatMessageList"],
"docs_topic": "core-features#reactions"
"components": [
"CometChatMessageList"
],
"docs_topic": "core-features#reactions",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -86,4 +149,11 @@ {

"description": "Address specific users with @username, including @all for groups.",
"components": ["CometChatMessageComposer", "CometChatMessageList"],
"docs_topic": "core-features#mentions"
"components": [
"CometChatMessageComposer",
"CometChatMessageList"
],
"docs_topic": "core-features#mentions",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -95,4 +165,11 @@ {

"description": "Reply to specific messages in a thread, keeping conversations organized.",
"components": ["CometChatMessageList", "CometChatThreadHeader"],
"docs_topic": "core-features#threaded-conversations"
"components": [
"CometChatMessageList",
"CometChatThreadHeader"
],
"docs_topic": "core-features#threaded-conversations",
"tier": 1,
"code": "stitch-components",
"builder": "toggle",
"dashboard_settings": null
},

@@ -104,4 +181,11 @@ {

"description": "Quote a specific message when replying to maintain context.",
"components": ["CometChatMessageComposer", "CometChatMessageList"],
"docs_topic": "core-features#quoted-replies"
"components": [
"CometChatMessageComposer",
"CometChatMessageList"
],
"docs_topic": "core-features#quoted-replies",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -113,4 +197,10 @@ {

"description": "Multi-participant conversations via CometChatGroups.",
"components": ["CometChatGroups"],
"docs_topic": "core-features#group-chat"
"components": [
"CometChatGroups"
],
"docs_topic": "core-features#group-chat",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -122,4 +212,10 @@ {

"description": "Users can flag inappropriate messages with predefined reasons.",
"components": ["CometChatMessageList"],
"docs_topic": "core-features#report-message"
"components": [
"CometChatMessageList"
],
"docs_topic": "core-features#report-message",
"tier": 1,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -131,4 +227,10 @@ {

"description": "Full-text search across conversations, messages, and media.",
"components": ["CometChatSearch"],
"docs_topic": "core-features#search"
"components": [
"CometChatSearch"
],
"docs_topic": "core-features#search",
"tier": 1,
"code": "stitch-components",
"builder": "toggle",
"dashboard_settings": null
},

@@ -139,4 +241,6 @@ {

"type": "default",
"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.",
"components": ["CometChatMessageList"],
"description": "Umbrella entry. The CANONICAL moderation system is **Rules Management** — Dashboard → Moderation → Settings → Rules (or the /moderation/rules REST API: rules, keywords, reasons, blocked/flagged/reviewed-messages). Configure rules once; they auto-apply to every message with NO client code (UI Kit/SDK handle it). The seven entries below (profanity-filter, image-moderation, data-masking, sentiment-analysis, xss-filter, slow-mode, virus-malware-scanner) are the **LEGACY extensions** — still toggle-able but deprecated. ⚠️ Never run a legacy extension AND Rules on the same app: each message is processed twice (delays + perf). Prefer Rules; if migrating, disable the legacy extensions first. Docs: moderation/overview + moderation/rules-management.",
"components": [
"CometChatMessageList"
],
"docs_topic": "core-features#moderation"

@@ -150,12 +254,54 @@ },

"description": "Detects and filters profane language from messages. Replaces matched words with asterisks or rejects the message outright.",
"components": ["CometChatMessageList", "CometChatMessageComposer"],
"components": [
"CometChatMessageList",
"CometChatMessageComposer"
],
"config_schema": {
"case_sensitivity": { "type": "enum", "values": ["case-sensitive", "case-insensitive"], "default": "case-insensitive", "prompt": "Case sensitivity for keyword matching?" },
"filter_profanities_for": { "type": "enum", "values": ["all", "specific-roles"], "default": "all", "prompt": "Apply filter to all users or specific roles?" },
"specific_roles": { "type": "array<string>", "when": { "filter_profanities_for": "specific-roles" }, "prompt": "Comma-separated role names" },
"profane_words": { "type": "array<string>", "default": [], "prompt": "Custom words to add to the profanity list (comma-separated; empty for default list only)" },
"white_listed_words": { "type": "array<string>", "default": [], "prompt": "Words to whitelist that would otherwise match (comma-separated)" },
"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)" }
"case_sensitivity": {
"type": "enum",
"values": [
"case-sensitive",
"case-insensitive"
],
"default": "case-insensitive",
"prompt": "Case sensitivity for keyword matching?"
},
"filter_profanities_for": {
"type": "enum",
"values": [
"all",
"specific-roles"
],
"default": "all",
"prompt": "Apply filter to all users or specific roles?"
},
"specific_roles": {
"type": "array<string>",
"when": {
"filter_profanities_for": "specific-roles"
},
"prompt": "Comma-separated role names"
},
"profane_words": {
"type": "array<string>",
"default": [],
"prompt": "Custom words to add to the profanity list (comma-separated; empty for default list only)"
},
"white_listed_words": {
"type": "array<string>",
"default": [],
"prompt": "Words to whitelist that would otherwise match (comma-separated)"
},
"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)"
}
},
"docs_topic": "extensions#profanity-filter"
"docs_topic": "moderation/rules-management"
},

@@ -168,11 +314,46 @@ {

"description": "Detects unsafe content in images (NSFW, violence, etc.) using ML-based classification. Configurable confidence thresholds.",
"components": ["CometChatMessageList"],
"components": [
"CometChatMessageList"
],
"config_schema": {
"explicit_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for explicit content (0-100; lower = stricter)" },
"suggestive_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for suggestive content" },
"violence_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for violent content" },
"drugs_threshold": { "type": "number", "min": 0, "max": 100, "default": 70, "prompt": "Threshold for drug-related content" },
"rule": { "type": "enum", "values": ["block", "blur", "tag"], "default": "blur", "prompt": "Action for flagged images?" }
"explicit_threshold": {
"type": "number",
"min": 0,
"max": 100,
"default": 70,
"prompt": "Threshold for explicit content (0-100; lower = stricter)"
},
"suggestive_threshold": {
"type": "number",
"min": 0,
"max": 100,
"default": 70,
"prompt": "Threshold for suggestive content"
},
"violence_threshold": {
"type": "number",
"min": 0,
"max": 100,
"default": 70,
"prompt": "Threshold for violent content"
},
"drugs_threshold": {
"type": "number",
"min": 0,
"max": 100,
"default": 70,
"prompt": "Threshold for drug-related content"
},
"rule": {
"type": "enum",
"values": [
"block",
"blur",
"tag"
],
"default": "blur",
"prompt": "Action for flagged images?"
}
},
"docs_topic": "extensions#image-moderation"
"docs_topic": "moderation/rules-management"
},

@@ -185,12 +366,43 @@ {

"description": "Masks PII (phone numbers, email addresses, credit cards, SSNs) in messages. Critical for healthcare, fintech, marketplace apps.",
"components": ["CometChatMessageList"],
"components": [
"CometChatMessageList"
],
"config_schema": {
"mask_phone": { "type": "boolean", "default": true, "prompt": "Mask phone numbers?" },
"mask_email": { "type": "boolean", "default": true, "prompt": "Mask email addresses?" },
"mask_ssn": { "type": "boolean", "default": false, "prompt": "Mask US Social Security Numbers?" },
"mask_credit_card": { "type": "boolean", "default": true, "prompt": "Mask credit card numbers?" },
"custom_patterns": { "type": "array<{name:string,regex:string}>", "default": [], "prompt": "Custom regex patterns to mask (e.g. internal IDs)" },
"rule": { "type": "enum", "values": ["mask", "drop", "tag"], "default": "mask", "prompt": "Action for messages containing matched data?" }
"mask_phone": {
"type": "boolean",
"default": true,
"prompt": "Mask phone numbers?"
},
"mask_email": {
"type": "boolean",
"default": true,
"prompt": "Mask email addresses?"
},
"mask_ssn": {
"type": "boolean",
"default": false,
"prompt": "Mask US Social Security Numbers?"
},
"mask_credit_card": {
"type": "boolean",
"default": true,
"prompt": "Mask credit card numbers?"
},
"custom_patterns": {
"type": "array<{name:string,regex:string}>",
"default": [],
"prompt": "Custom regex patterns to mask (e.g. internal IDs)"
},
"rule": {
"type": "enum",
"values": [
"mask",
"drop",
"tag"
],
"default": "mask",
"prompt": "Action for messages containing matched data?"
}
},
"docs_topic": "extensions#data-masking"
"docs_topic": "moderation/overview"
},

@@ -203,8 +415,25 @@ {

"description": "Detects negative sentiment / toxicity in messages. Optionally surfaces a 'View confidently' confirm dialog before showing flagged messages.",
"components": ["CometChatMessageList"],
"components": [
"CometChatMessageList"
],
"config_schema": {
"threshold": { "type": "number", "min": 0, "max": 100, "default": 50, "prompt": "Sentiment threshold (0-100; lower = more aggressive)" },
"rule": { "type": "enum", "values": ["confirm-view", "tag", "drop"], "default": "confirm-view", "prompt": "Action for flagged messages?" }
"threshold": {
"type": "number",
"min": 0,
"max": 100,
"default": 50,
"prompt": "Sentiment threshold (0-100; lower = more aggressive)"
},
"rule": {
"type": "enum",
"values": [
"confirm-view",
"tag",
"drop"
],
"default": "confirm-view",
"prompt": "Action for flagged messages?"
}
},
"docs_topic": "extensions#sentiment-analysis"
"docs_topic": "moderation/rules-management"
},

@@ -217,8 +446,27 @@ {

"description": "Strips HTML/script injection from messages before delivery. Critical for chat surfaces that render rich text.",
"components": ["CometChatMessageList"],
"components": [
"CometChatMessageList"
],
"config_schema": {
"strict_mode": { "type": "boolean", "default": true, "prompt": "Strict mode (blocks all HTML; safer)?" },
"allowed_tags": { "type": "array<string>", "default": ["b", "i", "u", "strong", "em"], "when": { "strict_mode": false }, "prompt": "Allowed HTML tags (when strict mode off)" }
"strict_mode": {
"type": "boolean",
"default": true,
"prompt": "Strict mode (blocks all HTML; safer)?"
},
"allowed_tags": {
"type": "array<string>",
"default": [
"b",
"i",
"u",
"strong",
"em"
],
"when": {
"strict_mode": false
},
"prompt": "Allowed HTML tags (when strict mode off)"
}
},
"docs_topic": "extensions#xss-filter"
"docs_topic": "moderation/overview"
},

@@ -231,9 +479,32 @@ {

"description": "Rate-limits how often a user can post in a conversation/group. Reduces spam in busy channels.",
"components": ["CometChatMessageComposer"],
"components": [
"CometChatMessageComposer"
],
"config_schema": {
"interval_seconds": { "type": "number", "min": 1, "max": 3600, "default": 5, "prompt": "Minimum seconds between messages from the same user" },
"applies_to": { "type": "enum", "values": ["all", "groups-only", "specific-groups"], "default": "groups-only", "prompt": "Apply slow mode where?" },
"specific_group_ids": { "type": "array<string>", "when": { "applies_to": "specific-groups" }, "prompt": "Group IDs (comma-separated)" }
"interval_seconds": {
"type": "number",
"min": 1,
"max": 3600,
"default": 5,
"prompt": "Minimum seconds between messages from the same user"
},
"applies_to": {
"type": "enum",
"values": [
"all",
"groups-only",
"specific-groups"
],
"default": "groups-only",
"prompt": "Apply slow mode where?"
},
"specific_group_ids": {
"type": "array<string>",
"when": {
"applies_to": "specific-groups"
},
"prompt": "Group IDs (comma-separated)"
}
},
"docs_topic": "extensions#slow-mode"
"docs_topic": "moderation/overview"
},

@@ -246,18 +517,48 @@ {

"description": "Scans uploaded files (images, documents, archives) for malware before delivery. Required for healthcare, legal, finance apps.",
"components": ["CometChatMessageList", "CometChatMessageComposer"],
"components": [
"CometChatMessageList",
"CometChatMessageComposer"
],
"config_schema": {
"scan_images": { "type": "boolean", "default": true, "prompt": "Scan image uploads?" },
"scan_documents": { "type": "boolean", "default": true, "prompt": "Scan document uploads (.pdf, .docx, etc.)?" },
"scan_archives": { "type": "boolean", "default": true, "prompt": "Scan archive uploads (.zip, .tar.gz)?" },
"rule": { "type": "enum", "values": ["block", "quarantine", "tag"], "default": "block", "prompt": "Action when malware detected?" }
"scan_images": {
"type": "boolean",
"default": true,
"prompt": "Scan image uploads?"
},
"scan_documents": {
"type": "boolean",
"default": true,
"prompt": "Scan document uploads (.pdf, .docx, etc.)?"
},
"scan_archives": {
"type": "boolean",
"default": true,
"prompt": "Scan archive uploads (.zip, .tar.gz)?"
},
"rule": {
"type": "enum",
"values": [
"block",
"quarantine",
"tag"
],
"default": "block",
"prompt": "Action when malware detected?"
}
},
"docs_topic": "extensions#virus-malware-scanner"
"docs_topic": "moderation/rules-management"
},
{
"id": "bitly",
"extension_id": "url-shortener-bitly",
"name": "Bitly URL Shortening",
"type": "extension",
"description": "Automatically shorten long URLs in messages using Bitly.",
"dashboard_path": "Extensions → Bitly → Toggle on",
"docs_topic": "extensions#bitly"
"dashboard_path": "Chat & Messaging → Features → Bitly → Toggle on",
"docs_topic": "extensions#bitly",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Bitly Key from Dashboard",
"auto_wired_in_uikit": false
},

@@ -270,4 +571,8 @@ {

"description": "Show URL previews with title, description, and thumbnail. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Link Preview → Toggle on",
"docs_topic": "extensions#link-preview"
"dashboard_path": "Chat & Messaging → Features → Link Preview → Toggle on",
"docs_topic": "extensions#link-preview",
"tier": 2,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -279,4 +584,9 @@ {

"description": "Expand predefined short codes into full messages.",
"dashboard_path": "Extensions → Message Shortcuts → Configure shortcuts",
"docs_topic": "extensions#message-shortcuts"
"dashboard_path": "Chat & Messaging → Features → Message Shortcuts → Configure shortcuts",
"docs_topic": "extensions#message-shortcuts",
"tier": 5,
"code": "steps-in-docs",
"builder": "code",
"dashboard_settings": "Configure predefined templates at global level",
"auto_wired_in_uikit": false
},

@@ -288,12 +598,23 @@ {

"description": "Pin important messages for easy access.",
"dashboard_path": "Extensions → Pin Message → Toggle on",
"docs_topic": "extensions#pin-message"
"dashboard_path": "Chat & Messaging → Features → Pin Message → Toggle on",
"docs_topic": "extensions#pin-message",
"tier": 5,
"code": "steps-in-docs",
"builder": "code",
"dashboard_settings": null,
"auto_wired_in_uikit": false
},
{
"id": "rich-media-preview",
"extension_id": "rich-media",
"name": "Rich Media Preview",
"type": "extension",
"description": "Generate rich preview panels for URLs via iFramely.",
"dashboard_path": "Extensions → Rich Media Preview → Toggle on",
"docs_topic": "extensions#rich-media-preview"
"dashboard_path": "Chat & Messaging → Features → Rich Media Preview → Toggle on",
"docs_topic": "extensions#rich-media-preview",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "API Key",
"auto_wired_in_uikit": false
},

@@ -305,4 +626,9 @@ {

"description": "Bookmark messages privately for later.",
"dashboard_path": "Extensions → Save Message → Toggle on",
"docs_topic": "extensions#save-message"
"dashboard_path": "Chat & Messaging → Features → Save Message → Toggle on",
"docs_topic": "extensions#save-message",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": null,
"auto_wired_in_uikit": false
},

@@ -315,12 +641,22 @@ {

"description": "Auto-generate thumbnails for shared media to reduce bandwidth. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Thumbnail Generation → Toggle on",
"docs_topic": "extensions#thumbnail-generation"
"dashboard_path": "Chat & Messaging → Features → Thumbnail Generation → Toggle on",
"docs_topic": "extensions#thumbnail-generation",
"tier": 2,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},
{
"id": "tinyurl",
"extension_id": "url-shortener-tinyurl",
"name": "TinyURL Shortening",
"type": "extension",
"description": "Shorten URLs using TinyURL service.",
"dashboard_path": "Extensions → TinyURL → Toggle on",
"docs_topic": "extensions#tinyurl"
"dashboard_path": "Chat & Messaging → Features → TinyURL → Toggle on",
"docs_topic": "extensions#tinyurl",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},

@@ -332,4 +668,9 @@ {

"description": "Convert audio messages to text automatically.",
"dashboard_path": "Extensions → Voice Transcription → Toggle on",
"docs_topic": "extensions#voice-transcription"
"dashboard_path": "Chat & Messaging → Features → Voice Transcription → Toggle on",
"docs_topic": "extensions#voice-transcription",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},

@@ -341,4 +682,9 @@ {

"description": "Search and share GIFs from Giphy.",
"dashboard_path": "Extensions → Giphy → Configure API key",
"docs_topic": "extensions#giphy"
"dashboard_path": "Chat & Messaging → Features → Giphy → Configure API key",
"docs_topic": "extensions#giphy",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},

@@ -351,4 +697,8 @@ {

"description": "Translate messages into the user's locale. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Message Translation → Toggle on",
"docs_topic": "extensions#message-translation"
"dashboard_path": "Chat & Messaging → Features → Message Translation → Toggle on",
"docs_topic": "extensions#message-translation",
"tier": 2,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -361,4 +711,8 @@ {

"description": "Create polls in group discussions with preset answers. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Polls → Toggle on",
"docs_topic": "extensions#polls"
"dashboard_path": "Chat & Messaging → Features → Polls → Toggle on",
"docs_topic": "extensions#polls",
"tier": 2,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -370,4 +724,9 @@ {

"description": "Set message reminders or personal notifications via bot.",
"dashboard_path": "Extensions → Reminders → Toggle on",
"docs_topic": "extensions#reminders"
"dashboard_path": "Chat & Messaging → Features → Reminders → Toggle on",
"docs_topic": "extensions#reminders",
"tier": 5,
"code": "steps-in-docs",
"builder": "code",
"dashboard_settings": null,
"auto_wired_in_uikit": false
},

@@ -380,4 +739,8 @@ {

"description": "Send pre-designed stickers in conversations. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Stickers → Toggle on",
"docs_topic": "extensions#stickers"
"dashboard_path": "Chat & Messaging → Features → Stickers → Toggle on",
"docs_topic": "extensions#stickers",
"tier": 4,
"code": "none",
"builder": "toggle",
"dashboard_settings": "All the sticker need to be enable via API"
},

@@ -389,4 +752,9 @@ {

"description": "Integrates the Stipop sticker library.",
"dashboard_path": "Extensions → Stipop → Configure API key",
"docs_topic": "extensions#stipop"
"dashboard_path": "Chat & Messaging → Features → Stipop → Configure API key",
"docs_topic": "extensions#stipop",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},

@@ -398,7 +766,13 @@ {

"description": "Search and share GIFs from Tenor.",
"dashboard_path": "Extensions → Tenor → Configure API key",
"docs_topic": "extensions#tenor"
"dashboard_path": "Chat & Messaging → Features → Tenor → Configure API key",
"docs_topic": "extensions#tenor",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},
{
"id": "collaborative-document",
"extension_id": "document",
"name": "Collaborative Document",

@@ -408,7 +782,12 @@ "type": "extension",

"description": "Real-time shared document editing. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Collaborative Document → Toggle on",
"docs_topic": "extensions#collaborative-document"
"dashboard_path": "Chat & Messaging → Features → Collaborative Document → Toggle on",
"docs_topic": "extensions#collaborative-document",
"tier": 2,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},
{
"id": "collaborative-whiteboard",
"extension_id": "whiteboard",
"name": "Collaborative Whiteboard",

@@ -418,4 +797,8 @@ "type": "extension",

"description": "Shared whiteboard for drawing and brainstorming. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
"dashboard_path": "Extensions → Collaborative Whiteboard → Toggle on",
"docs_topic": "extensions#collaborative-whiteboard"
"dashboard_path": "Chat & Messaging → Features → Collaborative Whiteboard → Toggle on",
"docs_topic": "extensions#collaborative-whiteboard",
"tier": 2,
"code": "none",
"builder": "toggle",
"dashboard_settings": null
},

@@ -427,4 +810,9 @@ {

"description": "Messages auto-delete after a specified interval.",
"dashboard_path": "Extensions → Disappearing Messages → Configure interval",
"docs_topic": "extensions#disappearing-messages"
"dashboard_path": "Chat & Messaging → Features → Disappearing Messages → Configure interval",
"docs_topic": "extensions#disappearing-messages",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": null,
"auto_wired_in_uikit": false
},

@@ -436,4 +824,9 @@ {

"description": "Route messages to Chatwoot for customer support.",
"dashboard_path": "Extensions → Chatwoot → Configure webhook",
"docs_topic": "extensions#chatwoot"
"dashboard_path": "Chat & Messaging → Features → Chatwoot → Configure webhook",
"docs_topic": "extensions#chatwoot",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},

@@ -445,4 +838,9 @@ {

"description": "Integrate Intercom for in-app customer support.",
"dashboard_path": "Extensions → Intercom → Configure API key",
"docs_topic": "extensions#intercom"
"dashboard_path": "Chat & Messaging → Features → Intercom → Configure API key",
"docs_topic": "extensions#intercom",
"tier": 5,
"code": "custom-code",
"builder": "code",
"dashboard_settings": "Configure Key on Dashboard",
"auto_wired_in_uikit": false
},

@@ -456,4 +854,8 @@ {

"description": "AI-generated opening messages for new chats.",
"dashboard_path": "AI Features → Conversation Starter → Toggle on",
"docs_topic": "ai-features#conversation-starter"
"dashboard_path": "Chat & Messaging → Features → Conversation Starter → Toggle on",
"docs_topic": "ai-features#conversation-starter",
"tier": 4,
"code": "none",
"builder": "toggle",
"dashboard_settings": "Configure Key on Dashboard"
},

@@ -467,4 +869,8 @@ {

"description": "AI-generated contextual response suggestions.",
"dashboard_path": "AI Features → Smart Replies → Toggle on",
"docs_topic": "ai-features#smart-replies"
"dashboard_path": "Chat & Messaging → Features → Smart Replies → Toggle on",
"docs_topic": "ai-features#smart-replies",
"tier": 4,
"code": "none",
"builder": "toggle",
"dashboard_settings": "Configure Key on Dashboard"
},

@@ -478,4 +884,8 @@ {

"description": "AI-generated recaps of extended conversations.",
"dashboard_path": "AI Features → Conversation Summary → Toggle on",
"docs_topic": "ai-features#conversation-summary"
"dashboard_path": "Chat & Messaging → Features → Conversation Summary → Toggle on",
"docs_topic": "ai-features#conversation-summary",
"tier": 4,
"code": "none",
"builder": "toggle",
"dashboard_settings": "Configure Key on Dashboard"
},

@@ -496,3 +906,7 @@ {

],
"components": ["CometChatIncomingCall", "CometChatOutgoingCall", "CometChatCallLogs"],
"components": [
"CometChatIncomingCall",
"CometChatOutgoingCall",
"CometChatCallLogs"
],
"docs_topic": "call-features"

@@ -513,6 +927,17 @@ },

"type": "calls-feature",
"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.",
"description": "Server-side call recording to cloud storage. Configured via CallSettingsBuilder (startRecordingOnCallStart, or call startRecording()/stopRecording() at runtime). ENABLEMENT IS NOT SELF-SERVICE: 'Recording must be enabled for your CometChat app — contact CometChat support' (plan add-on). There is no dashboard toggle / API call the CLI can flip. Recordings are then accessed via the Dashboard call logs or the Call Logs API.",
"settings_flag": "startRecordingOnCallStart",
"requires_dashboard_setup": true,
"enablement": "contact-support",
"reference_topic": "recording",
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
"platforms_supported": [
"web",
"react-native",
"angular",
"ios",
"android-v5",
"android-v6",
"flutter-v5",
"flutter-v6"
],
"docs_topic": "calls/recording"

@@ -524,6 +949,15 @@ },

"type": "calls-feature",
"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).",
"settings_flag": "hideScreenShareButton",
"description": "Share screen during a call. Built into Calls SDK; the button shows by default — toggle via CallSettingsBuilder showScreenShareButton(bool) (default-mode / CometChatOngoingCall), or the session-settings object field hideScreenSharingButton (joinSession mode). Mobile platforms have OS-level gating (iOS broadcast extension, Android MediaProjection).",
"settings_flag": "showScreenShareButton",
"reference_topic": "screen-sharing",
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
"platforms_supported": [
"web",
"react-native",
"angular",
"ios",
"android-v5",
"android-v6",
"flutter-v5",
"flutter-v6"
],
"docs_topic": "calls/screen-sharing"

@@ -535,6 +969,9 @@ },

"type": "calls-feature",
"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).",
"settings_flag": "hideVirtualBackgroundButton",
"description": "Blur or replace the user's background during a call. Toggle the control via CallSettingsBuilder showVirtualBackgroundSetting(bool); set a background with setVirtualBackground / enforceBackgroundBlur. JavaScript-only feature — not available on iOS/Android/RN browsers (mobile webviews don't ship the ML Kit needed).",
"settings_flag": "showVirtualBackgroundSetting",
"reference_topic": "virtual-background",
"platforms_supported": ["web", "angular"],
"platforms_supported": [
"web",
"angular"
],
"docs_topic": "calls/virtual-background"

@@ -549,3 +986,12 @@ },

"reference_topic": "raise-hand",
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
"platforms_supported": [
"web",
"react-native",
"angular",
"ios",
"android-v5",
"android-v6",
"flutter-v5",
"flutter-v6"
],
"docs_topic": "calls/raise-hand"

@@ -557,6 +1003,15 @@ },

"type": "calls-feature",
"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+.",
"settings_flag": "hidePIPButton",
"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). PIP is toggled via the STATIC methods CometChatCalls.enablePictureInPictureLayout() / disablePictureInPictureLayout() — NOT a CallSettingsBuilder/settings-object flag (there is no hidePIPButton). Per-platform constraints — iOS PIP requires a multitasking-capable iPad or iOS 15+ iPhone, Android requires API 26+.",
"settings_flag": "disablePictureInPictureLayout",
"reference_topic": "picture-in-picture",
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
"platforms_supported": [
"web",
"react-native",
"angular",
"ios",
"android-v5",
"android-v6",
"flutter-v5",
"flutter-v6"
],
"docs_topic": "calls/picture-in-picture"

@@ -568,6 +1023,15 @@ },

"type": "calls-feature",
"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.",
"settings_flag": "callIdleTime",
"description": "Auto-end a call after a configurable period of no activity. Prevents zombie calls + unbounded billing. Configured via CallSettingsBuilder setIdleTimeoutPeriod(ms) (single period, default-mode), OR the session-settings object fields idleTimeoutPeriodBeforePrompt / idleTimeoutPeriodAfterPrompt in ms (joinSession mode; AfterPrompt has a 60_000ms minimum). There is NO callIdleTime.",
"settings_flag": "setIdleTimeoutPeriod",
"reference_topic": "idle-timeout",
"platforms_supported": ["web", "react-native", "angular", "ios", "android-v5", "android-v6", "flutter-v5", "flutter-v6"],
"platforms_supported": [
"web",
"react-native",
"angular",
"ios",
"android-v5",
"android-v6",
"flutter-v5",
"flutter-v6"
],
"docs_topic": "calls/idle-timeout"

@@ -574,0 +1038,0 @@ }

+1
-1
{
"name": "@cometchat/skills-cli",
"version": "2.4.0",
"version": "2.4.1",
"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,0 +5,0 @@ "type": "module",

Sorry, the diff of this file is too big to display