@cometchat/skills-cli 2.3.0 → 2.4.1
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 +3863 -781
- 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 +711 -81
- package/package.json +1 -1
|
@@ -9,7 +9,24 @@
|
|
|
9
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
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.",
|
|
11
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.",
|
|
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."
|
|
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": "⚠️ 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.",
|
|
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."
|
|
15
|
+
},
|
|
16
|
+
"tiers": {
|
|
17
|
+
"1": "Core Messaging (Zero Setup) — out of the box, no config or code (e.g. Typing Indicators).",
|
|
18
|
+
"2": "Builder-Enabled (Config + UI Toggle) — enable via Dashboard API; toggleable/placeable in the UI Kit Builder / Widget Builder (e.g. Polls).",
|
|
19
|
+
"3": "Config-Only (Dashboard-Driven) — enable via Dashboard API; works automatically, no UI or code (e.g. Link Preview).",
|
|
20
|
+
"4": "Config + Settings (Smart) — enable via Dashboard API + additional dashboard settings (API keys, rules, thresholds); no client code (e.g. Smart Replies).",
|
|
21
|
+
"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).",
|
|
22
|
+
"_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."
|
|
23
|
+
},
|
|
24
|
+
"code_legend": {
|
|
25
|
+
"_comment": "Per-feature `code` field = what client work is needed (from the matrix's Code column).",
|
|
26
|
+
"none": "No client code — the UI Kit renders it automatically once enabled (auto_wired_in_uikit:true).",
|
|
27
|
+
"stitch-components": "No extension code, but you COMPOSE existing kit components to surface it — see the kit sample apps for the wiring.",
|
|
28
|
+
"steps-in-docs": "Follow the documented steps at `docs_topic` to wire it client-side.",
|
|
29
|
+
"custom-code": "Substantial custom implementation — the reference code lives at `docs_topic`; fetch and adapt it."
|
|
13
30
|
},
|
|
14
31
|
"features": [
|
|
15
32
|
{
|
|
@@ -17,121 +34,511 @@
|
|
|
17
34
|
"name": "Instant Messaging",
|
|
18
35
|
"type": "default",
|
|
19
36
|
"description": "Real-time text messaging via CometChatMessageList + CometChatMessageComposer. The core of every chat experience.",
|
|
20
|
-
"components": [
|
|
21
|
-
|
|
37
|
+
"components": [
|
|
38
|
+
"CometChatMessageList",
|
|
39
|
+
"CometChatMessageComposer"
|
|
40
|
+
],
|
|
41
|
+
"docs_topic": "core-features#instant-messaging",
|
|
42
|
+
"tier": 1,
|
|
43
|
+
"code": "none",
|
|
44
|
+
"builder": "toggle",
|
|
45
|
+
"dashboard_settings": null
|
|
22
46
|
},
|
|
23
47
|
{
|
|
24
48
|
"id": "media-sharing",
|
|
25
49
|
"name": "Media Sharing",
|
|
26
50
|
"type": "default",
|
|
27
51
|
"description": "Send images, videos, audio, and documents within conversations. Built into CometChatMessageComposer's ActionSheet.",
|
|
28
|
-
"components": [
|
|
29
|
-
|
|
52
|
+
"components": [
|
|
53
|
+
"CometChatMessageComposer"
|
|
54
|
+
],
|
|
55
|
+
"docs_topic": "core-features#media-sharing",
|
|
56
|
+
"tier": 1,
|
|
57
|
+
"code": "none",
|
|
58
|
+
"builder": "toggle",
|
|
59
|
+
"dashboard_settings": null
|
|
30
60
|
},
|
|
31
61
|
{
|
|
32
62
|
"id": "read-receipts",
|
|
33
63
|
"name": "Read Receipts",
|
|
34
64
|
"type": "default",
|
|
35
65
|
"description": "See when messages have been delivered and read. Visible in message bubbles and the Conversations list.",
|
|
36
|
-
"components": [
|
|
37
|
-
|
|
66
|
+
"components": [
|
|
67
|
+
"CometChatMessageList",
|
|
68
|
+
"CometChatConversations"
|
|
69
|
+
],
|
|
70
|
+
"docs_topic": "core-features#read-receipts",
|
|
71
|
+
"tier": 1,
|
|
72
|
+
"code": "none",
|
|
73
|
+
"builder": "toggle",
|
|
74
|
+
"dashboard_settings": null
|
|
38
75
|
},
|
|
39
76
|
{
|
|
40
77
|
"id": "mark-as-unread",
|
|
41
78
|
"name": "Mark as Unread",
|
|
42
79
|
"type": "default",
|
|
43
80
|
"description": "Manually mark conversations or messages as unread.",
|
|
44
|
-
"components": [
|
|
45
|
-
|
|
81
|
+
"components": [
|
|
82
|
+
"CometChatMessageList"
|
|
83
|
+
],
|
|
84
|
+
"docs_topic": "core-features#mark-as-unread",
|
|
85
|
+
"tier": 1,
|
|
86
|
+
"code": "none",
|
|
87
|
+
"builder": "toggle",
|
|
88
|
+
"dashboard_settings": null
|
|
46
89
|
},
|
|
47
90
|
{
|
|
48
91
|
"id": "typing-indicator",
|
|
49
92
|
"name": "Typing Indicator",
|
|
50
93
|
"type": "default",
|
|
51
94
|
"description": "Real-time typing awareness. Shows in CometChatMessageHeader and CometChatConversations.",
|
|
52
|
-
"components": [
|
|
53
|
-
|
|
95
|
+
"components": [
|
|
96
|
+
"CometChatMessageHeader",
|
|
97
|
+
"CometChatConversations"
|
|
98
|
+
],
|
|
99
|
+
"docs_topic": "core-features#typing-indicator",
|
|
100
|
+
"tier": 1,
|
|
101
|
+
"code": "none",
|
|
102
|
+
"builder": "toggle",
|
|
103
|
+
"dashboard_settings": null
|
|
54
104
|
},
|
|
55
105
|
{
|
|
56
106
|
"id": "user-presence",
|
|
57
107
|
"name": "User Presence",
|
|
58
108
|
"type": "default",
|
|
59
109
|
"description": "Online/offline status across Conversations, Message Header, Users, and Group Members.",
|
|
60
|
-
"components": [
|
|
61
|
-
|
|
110
|
+
"components": [
|
|
111
|
+
"CometChatConversations",
|
|
112
|
+
"CometChatMessageHeader",
|
|
113
|
+
"CometChatUsers",
|
|
114
|
+
"CometChatGroupMembers"
|
|
115
|
+
],
|
|
116
|
+
"docs_topic": "core-features#user-presence",
|
|
117
|
+
"tier": 1,
|
|
118
|
+
"code": "none",
|
|
119
|
+
"builder": "toggle",
|
|
120
|
+
"dashboard_settings": null
|
|
62
121
|
},
|
|
63
122
|
{
|
|
64
123
|
"id": "reactions",
|
|
65
124
|
"name": "Reactions",
|
|
66
125
|
"type": "default",
|
|
67
126
|
"description": "React to messages with emojis without typing a full response.",
|
|
68
|
-
"components": [
|
|
69
|
-
|
|
127
|
+
"components": [
|
|
128
|
+
"CometChatMessageList"
|
|
129
|
+
],
|
|
130
|
+
"docs_topic": "core-features#reactions",
|
|
131
|
+
"tier": 1,
|
|
132
|
+
"code": "none",
|
|
133
|
+
"builder": "toggle",
|
|
134
|
+
"dashboard_settings": null
|
|
70
135
|
},
|
|
71
136
|
{
|
|
72
137
|
"id": "mentions",
|
|
73
138
|
"name": "Mentions",
|
|
74
139
|
"type": "default",
|
|
75
140
|
"description": "Address specific users with @username, including @all for groups.",
|
|
76
|
-
"components": [
|
|
77
|
-
|
|
141
|
+
"components": [
|
|
142
|
+
"CometChatMessageComposer",
|
|
143
|
+
"CometChatMessageList"
|
|
144
|
+
],
|
|
145
|
+
"docs_topic": "core-features#mentions",
|
|
146
|
+
"tier": 1,
|
|
147
|
+
"code": "none",
|
|
148
|
+
"builder": "toggle",
|
|
149
|
+
"dashboard_settings": null
|
|
78
150
|
},
|
|
79
151
|
{
|
|
80
152
|
"id": "threaded-conversations",
|
|
81
153
|
"name": "Threaded Conversations",
|
|
82
154
|
"type": "default",
|
|
83
155
|
"description": "Reply to specific messages in a thread, keeping conversations organized.",
|
|
84
|
-
"components": [
|
|
85
|
-
|
|
156
|
+
"components": [
|
|
157
|
+
"CometChatMessageList",
|
|
158
|
+
"CometChatThreadHeader"
|
|
159
|
+
],
|
|
160
|
+
"docs_topic": "core-features#threaded-conversations",
|
|
161
|
+
"tier": 1,
|
|
162
|
+
"code": "stitch-components",
|
|
163
|
+
"builder": "toggle",
|
|
164
|
+
"dashboard_settings": null
|
|
86
165
|
},
|
|
87
166
|
{
|
|
88
167
|
"id": "quoted-replies",
|
|
89
168
|
"name": "Quoted Replies",
|
|
90
169
|
"type": "default",
|
|
91
170
|
"description": "Quote a specific message when replying to maintain context.",
|
|
92
|
-
"components": [
|
|
93
|
-
|
|
171
|
+
"components": [
|
|
172
|
+
"CometChatMessageComposer",
|
|
173
|
+
"CometChatMessageList"
|
|
174
|
+
],
|
|
175
|
+
"docs_topic": "core-features#quoted-replies",
|
|
176
|
+
"tier": 1,
|
|
177
|
+
"code": "none",
|
|
178
|
+
"builder": "toggle",
|
|
179
|
+
"dashboard_settings": null
|
|
94
180
|
},
|
|
95
181
|
{
|
|
96
182
|
"id": "group-chat",
|
|
97
183
|
"name": "Group Chat",
|
|
98
184
|
"type": "default",
|
|
99
185
|
"description": "Multi-participant conversations via CometChatGroups.",
|
|
100
|
-
"components": [
|
|
101
|
-
|
|
186
|
+
"components": [
|
|
187
|
+
"CometChatGroups"
|
|
188
|
+
],
|
|
189
|
+
"docs_topic": "core-features#group-chat",
|
|
190
|
+
"tier": 1,
|
|
191
|
+
"code": "none",
|
|
192
|
+
"builder": "toggle",
|
|
193
|
+
"dashboard_settings": null
|
|
102
194
|
},
|
|
103
195
|
{
|
|
104
196
|
"id": "report-message",
|
|
105
197
|
"name": "Report Message",
|
|
106
198
|
"type": "default",
|
|
107
199
|
"description": "Users can flag inappropriate messages with predefined reasons.",
|
|
108
|
-
"components": [
|
|
109
|
-
|
|
200
|
+
"components": [
|
|
201
|
+
"CometChatMessageList"
|
|
202
|
+
],
|
|
203
|
+
"docs_topic": "core-features#report-message",
|
|
204
|
+
"tier": 1,
|
|
205
|
+
"code": "none",
|
|
206
|
+
"builder": "toggle",
|
|
207
|
+
"dashboard_settings": null
|
|
110
208
|
},
|
|
111
209
|
{
|
|
112
210
|
"id": "search",
|
|
113
211
|
"name": "Conversation and Advanced Search",
|
|
114
212
|
"type": "default",
|
|
115
213
|
"description": "Full-text search across conversations, messages, and media.",
|
|
116
|
-
"components": [
|
|
117
|
-
|
|
214
|
+
"components": [
|
|
215
|
+
"CometChatSearch"
|
|
216
|
+
],
|
|
217
|
+
"docs_topic": "core-features#search",
|
|
218
|
+
"tier": 1,
|
|
219
|
+
"code": "stitch-components",
|
|
220
|
+
"builder": "toggle",
|
|
221
|
+
"dashboard_settings": null
|
|
118
222
|
},
|
|
119
223
|
{
|
|
120
224
|
"id": "moderation",
|
|
121
|
-
"name": "Moderation",
|
|
225
|
+
"name": "Moderation (overview)",
|
|
122
226
|
"type": "default",
|
|
123
|
-
"description": "
|
|
124
|
-
"components": [
|
|
125
|
-
|
|
126
|
-
|
|
227
|
+
"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.",
|
|
228
|
+
"components": [
|
|
229
|
+
"CometChatMessageList"
|
|
230
|
+
],
|
|
231
|
+
"docs_topic": "core-features#moderation"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "profanity-filter",
|
|
235
|
+
"name": "Profanity Filter",
|
|
236
|
+
"type": "moderation",
|
|
237
|
+
"extension_id": "profanity-filter",
|
|
238
|
+
"description": "Detects and filters profane language from messages. Replaces matched words with asterisks or rejects the message outright.",
|
|
239
|
+
"components": [
|
|
240
|
+
"CometChatMessageList",
|
|
241
|
+
"CometChatMessageComposer"
|
|
242
|
+
],
|
|
243
|
+
"config_schema": {
|
|
244
|
+
"case_sensitivity": {
|
|
245
|
+
"type": "enum",
|
|
246
|
+
"values": [
|
|
247
|
+
"case-sensitive",
|
|
248
|
+
"case-insensitive"
|
|
249
|
+
],
|
|
250
|
+
"default": "case-insensitive",
|
|
251
|
+
"prompt": "Case sensitivity for keyword matching?"
|
|
252
|
+
},
|
|
253
|
+
"filter_profanities_for": {
|
|
254
|
+
"type": "enum",
|
|
255
|
+
"values": [
|
|
256
|
+
"all",
|
|
257
|
+
"specific-roles"
|
|
258
|
+
],
|
|
259
|
+
"default": "all",
|
|
260
|
+
"prompt": "Apply filter to all users or specific roles?"
|
|
261
|
+
},
|
|
262
|
+
"specific_roles": {
|
|
263
|
+
"type": "array<string>",
|
|
264
|
+
"when": {
|
|
265
|
+
"filter_profanities_for": "specific-roles"
|
|
266
|
+
},
|
|
267
|
+
"prompt": "Comma-separated role names"
|
|
268
|
+
},
|
|
269
|
+
"profane_words": {
|
|
270
|
+
"type": "array<string>",
|
|
271
|
+
"default": [],
|
|
272
|
+
"prompt": "Custom words to add to the profanity list (comma-separated; empty for default list only)"
|
|
273
|
+
},
|
|
274
|
+
"white_listed_words": {
|
|
275
|
+
"type": "array<string>",
|
|
276
|
+
"default": [],
|
|
277
|
+
"prompt": "Words to whitelist that would otherwise match (comma-separated)"
|
|
278
|
+
},
|
|
279
|
+
"rule": {
|
|
280
|
+
"type": "enum",
|
|
281
|
+
"values": [
|
|
282
|
+
"mask",
|
|
283
|
+
"drop",
|
|
284
|
+
"tag"
|
|
285
|
+
],
|
|
286
|
+
"default": "mask",
|
|
287
|
+
"prompt": "What to do with matched messages? (mask: replace with ****, drop: reject, tag: deliver but flag)"
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"docs_topic": "moderation/rules-management"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "image-moderation",
|
|
294
|
+
"name": "Image Moderation",
|
|
295
|
+
"type": "moderation",
|
|
296
|
+
"extension_id": "image-moderation",
|
|
297
|
+
"description": "Detects unsafe content in images (NSFW, violence, etc.) using ML-based classification. Configurable confidence thresholds.",
|
|
298
|
+
"components": [
|
|
299
|
+
"CometChatMessageList"
|
|
300
|
+
],
|
|
301
|
+
"config_schema": {
|
|
302
|
+
"explicit_threshold": {
|
|
303
|
+
"type": "number",
|
|
304
|
+
"min": 0,
|
|
305
|
+
"max": 100,
|
|
306
|
+
"default": 70,
|
|
307
|
+
"prompt": "Threshold for explicit content (0-100; lower = stricter)"
|
|
308
|
+
},
|
|
309
|
+
"suggestive_threshold": {
|
|
310
|
+
"type": "number",
|
|
311
|
+
"min": 0,
|
|
312
|
+
"max": 100,
|
|
313
|
+
"default": 70,
|
|
314
|
+
"prompt": "Threshold for suggestive content"
|
|
315
|
+
},
|
|
316
|
+
"violence_threshold": {
|
|
317
|
+
"type": "number",
|
|
318
|
+
"min": 0,
|
|
319
|
+
"max": 100,
|
|
320
|
+
"default": 70,
|
|
321
|
+
"prompt": "Threshold for violent content"
|
|
322
|
+
},
|
|
323
|
+
"drugs_threshold": {
|
|
324
|
+
"type": "number",
|
|
325
|
+
"min": 0,
|
|
326
|
+
"max": 100,
|
|
327
|
+
"default": 70,
|
|
328
|
+
"prompt": "Threshold for drug-related content"
|
|
329
|
+
},
|
|
330
|
+
"rule": {
|
|
331
|
+
"type": "enum",
|
|
332
|
+
"values": [
|
|
333
|
+
"block",
|
|
334
|
+
"blur",
|
|
335
|
+
"tag"
|
|
336
|
+
],
|
|
337
|
+
"default": "blur",
|
|
338
|
+
"prompt": "Action for flagged images?"
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"docs_topic": "moderation/rules-management"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"id": "data-masking",
|
|
345
|
+
"name": "Data Masking",
|
|
346
|
+
"type": "moderation",
|
|
347
|
+
"extension_id": "data-masking",
|
|
348
|
+
"description": "Masks PII (phone numbers, email addresses, credit cards, SSNs) in messages. Critical for healthcare, fintech, marketplace apps.",
|
|
349
|
+
"components": [
|
|
350
|
+
"CometChatMessageList"
|
|
351
|
+
],
|
|
352
|
+
"config_schema": {
|
|
353
|
+
"mask_phone": {
|
|
354
|
+
"type": "boolean",
|
|
355
|
+
"default": true,
|
|
356
|
+
"prompt": "Mask phone numbers?"
|
|
357
|
+
},
|
|
358
|
+
"mask_email": {
|
|
359
|
+
"type": "boolean",
|
|
360
|
+
"default": true,
|
|
361
|
+
"prompt": "Mask email addresses?"
|
|
362
|
+
},
|
|
363
|
+
"mask_ssn": {
|
|
364
|
+
"type": "boolean",
|
|
365
|
+
"default": false,
|
|
366
|
+
"prompt": "Mask US Social Security Numbers?"
|
|
367
|
+
},
|
|
368
|
+
"mask_credit_card": {
|
|
369
|
+
"type": "boolean",
|
|
370
|
+
"default": true,
|
|
371
|
+
"prompt": "Mask credit card numbers?"
|
|
372
|
+
},
|
|
373
|
+
"custom_patterns": {
|
|
374
|
+
"type": "array<{name:string,regex:string}>",
|
|
375
|
+
"default": [],
|
|
376
|
+
"prompt": "Custom regex patterns to mask (e.g. internal IDs)"
|
|
377
|
+
},
|
|
378
|
+
"rule": {
|
|
379
|
+
"type": "enum",
|
|
380
|
+
"values": [
|
|
381
|
+
"mask",
|
|
382
|
+
"drop",
|
|
383
|
+
"tag"
|
|
384
|
+
],
|
|
385
|
+
"default": "mask",
|
|
386
|
+
"prompt": "Action for messages containing matched data?"
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"docs_topic": "moderation/overview"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"id": "sentiment-analysis",
|
|
393
|
+
"name": "Sentiment Analysis",
|
|
394
|
+
"type": "moderation",
|
|
395
|
+
"extension_id": "sentiment-analysis",
|
|
396
|
+
"description": "Detects negative sentiment / toxicity in messages. Optionally surfaces a 'View confidently' confirm dialog before showing flagged messages.",
|
|
397
|
+
"components": [
|
|
398
|
+
"CometChatMessageList"
|
|
399
|
+
],
|
|
400
|
+
"config_schema": {
|
|
401
|
+
"threshold": {
|
|
402
|
+
"type": "number",
|
|
403
|
+
"min": 0,
|
|
404
|
+
"max": 100,
|
|
405
|
+
"default": 50,
|
|
406
|
+
"prompt": "Sentiment threshold (0-100; lower = more aggressive)"
|
|
407
|
+
},
|
|
408
|
+
"rule": {
|
|
409
|
+
"type": "enum",
|
|
410
|
+
"values": [
|
|
411
|
+
"confirm-view",
|
|
412
|
+
"tag",
|
|
413
|
+
"drop"
|
|
414
|
+
],
|
|
415
|
+
"default": "confirm-view",
|
|
416
|
+
"prompt": "Action for flagged messages?"
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
"docs_topic": "moderation/rules-management"
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"id": "xss-filter",
|
|
423
|
+
"name": "XSS Filter",
|
|
424
|
+
"type": "moderation",
|
|
425
|
+
"extension_id": "xss-filter",
|
|
426
|
+
"description": "Strips HTML/script injection from messages before delivery. Critical for chat surfaces that render rich text.",
|
|
427
|
+
"components": [
|
|
428
|
+
"CometChatMessageList"
|
|
429
|
+
],
|
|
430
|
+
"config_schema": {
|
|
431
|
+
"strict_mode": {
|
|
432
|
+
"type": "boolean",
|
|
433
|
+
"default": true,
|
|
434
|
+
"prompt": "Strict mode (blocks all HTML; safer)?"
|
|
435
|
+
},
|
|
436
|
+
"allowed_tags": {
|
|
437
|
+
"type": "array<string>",
|
|
438
|
+
"default": [
|
|
439
|
+
"b",
|
|
440
|
+
"i",
|
|
441
|
+
"u",
|
|
442
|
+
"strong",
|
|
443
|
+
"em"
|
|
444
|
+
],
|
|
445
|
+
"when": {
|
|
446
|
+
"strict_mode": false
|
|
447
|
+
},
|
|
448
|
+
"prompt": "Allowed HTML tags (when strict mode off)"
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
"docs_topic": "moderation/overview"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"id": "slow-mode",
|
|
455
|
+
"name": "Slow Mode",
|
|
456
|
+
"type": "moderation",
|
|
457
|
+
"extension_id": "slow-mode",
|
|
458
|
+
"description": "Rate-limits how often a user can post in a conversation/group. Reduces spam in busy channels.",
|
|
459
|
+
"components": [
|
|
460
|
+
"CometChatMessageComposer"
|
|
461
|
+
],
|
|
462
|
+
"config_schema": {
|
|
463
|
+
"interval_seconds": {
|
|
464
|
+
"type": "number",
|
|
465
|
+
"min": 1,
|
|
466
|
+
"max": 3600,
|
|
467
|
+
"default": 5,
|
|
468
|
+
"prompt": "Minimum seconds between messages from the same user"
|
|
469
|
+
},
|
|
470
|
+
"applies_to": {
|
|
471
|
+
"type": "enum",
|
|
472
|
+
"values": [
|
|
473
|
+
"all",
|
|
474
|
+
"groups-only",
|
|
475
|
+
"specific-groups"
|
|
476
|
+
],
|
|
477
|
+
"default": "groups-only",
|
|
478
|
+
"prompt": "Apply slow mode where?"
|
|
479
|
+
},
|
|
480
|
+
"specific_group_ids": {
|
|
481
|
+
"type": "array<string>",
|
|
482
|
+
"when": {
|
|
483
|
+
"applies_to": "specific-groups"
|
|
484
|
+
},
|
|
485
|
+
"prompt": "Group IDs (comma-separated)"
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
"docs_topic": "moderation/overview"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"id": "virus-malware-scanner",
|
|
492
|
+
"name": "Virus / Malware Scanner",
|
|
493
|
+
"type": "moderation",
|
|
494
|
+
"extension_id": "virus-malware-scanner",
|
|
495
|
+
"description": "Scans uploaded files (images, documents, archives) for malware before delivery. Required for healthcare, legal, finance apps.",
|
|
496
|
+
"components": [
|
|
497
|
+
"CometChatMessageList",
|
|
498
|
+
"CometChatMessageComposer"
|
|
499
|
+
],
|
|
500
|
+
"config_schema": {
|
|
501
|
+
"scan_images": {
|
|
502
|
+
"type": "boolean",
|
|
503
|
+
"default": true,
|
|
504
|
+
"prompt": "Scan image uploads?"
|
|
505
|
+
},
|
|
506
|
+
"scan_documents": {
|
|
507
|
+
"type": "boolean",
|
|
508
|
+
"default": true,
|
|
509
|
+
"prompt": "Scan document uploads (.pdf, .docx, etc.)?"
|
|
510
|
+
},
|
|
511
|
+
"scan_archives": {
|
|
512
|
+
"type": "boolean",
|
|
513
|
+
"default": true,
|
|
514
|
+
"prompt": "Scan archive uploads (.zip, .tar.gz)?"
|
|
515
|
+
},
|
|
516
|
+
"rule": {
|
|
517
|
+
"type": "enum",
|
|
518
|
+
"values": [
|
|
519
|
+
"block",
|
|
520
|
+
"quarantine",
|
|
521
|
+
"tag"
|
|
522
|
+
],
|
|
523
|
+
"default": "block",
|
|
524
|
+
"prompt": "Action when malware detected?"
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
"docs_topic": "moderation/rules-management"
|
|
127
528
|
},
|
|
128
529
|
{
|
|
129
530
|
"id": "bitly",
|
|
531
|
+
"extension_id": "url-shortener-bitly",
|
|
130
532
|
"name": "Bitly URL Shortening",
|
|
131
533
|
"type": "extension",
|
|
132
534
|
"description": "Automatically shorten long URLs in messages using Bitly.",
|
|
133
|
-
"dashboard_path": "
|
|
134
|
-
"docs_topic": "extensions#bitly"
|
|
535
|
+
"dashboard_path": "Chat & Messaging → Features → Bitly → Toggle on",
|
|
536
|
+
"docs_topic": "extensions#bitly",
|
|
537
|
+
"tier": 5,
|
|
538
|
+
"code": "custom-code",
|
|
539
|
+
"builder": "code",
|
|
540
|
+
"dashboard_settings": "Configure Bitly Key from Dashboard",
|
|
541
|
+
"auto_wired_in_uikit": false
|
|
135
542
|
},
|
|
136
543
|
{
|
|
137
544
|
"id": "link-preview",
|
|
@@ -139,40 +546,65 @@
|
|
|
139
546
|
"type": "extension",
|
|
140
547
|
"auto_wired_in_uikit": true,
|
|
141
548
|
"description": "Show URL previews with title, description, and thumbnail. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
142
|
-
"dashboard_path": "
|
|
143
|
-
"docs_topic": "extensions#link-preview"
|
|
549
|
+
"dashboard_path": "Chat & Messaging → Features → Link Preview → Toggle on",
|
|
550
|
+
"docs_topic": "extensions#link-preview",
|
|
551
|
+
"tier": 2,
|
|
552
|
+
"code": "none",
|
|
553
|
+
"builder": "toggle",
|
|
554
|
+
"dashboard_settings": null
|
|
144
555
|
},
|
|
145
556
|
{
|
|
146
557
|
"id": "message-shortcuts",
|
|
147
558
|
"name": "Message Shortcuts",
|
|
148
559
|
"type": "dashboard-only",
|
|
149
560
|
"description": "Expand predefined short codes into full messages.",
|
|
150
|
-
"dashboard_path": "
|
|
151
|
-
"docs_topic": "extensions#message-shortcuts"
|
|
561
|
+
"dashboard_path": "Chat & Messaging → Features → Message Shortcuts → Configure shortcuts",
|
|
562
|
+
"docs_topic": "extensions#message-shortcuts",
|
|
563
|
+
"tier": 5,
|
|
564
|
+
"code": "steps-in-docs",
|
|
565
|
+
"builder": "code",
|
|
566
|
+
"dashboard_settings": "Configure predefined templates at global level",
|
|
567
|
+
"auto_wired_in_uikit": false
|
|
152
568
|
},
|
|
153
569
|
{
|
|
154
570
|
"id": "pin-message",
|
|
155
571
|
"name": "Pin Message",
|
|
156
572
|
"type": "extension",
|
|
157
573
|
"description": "Pin important messages for easy access.",
|
|
158
|
-
"dashboard_path": "
|
|
159
|
-
"docs_topic": "extensions#pin-message"
|
|
574
|
+
"dashboard_path": "Chat & Messaging → Features → Pin Message → Toggle on",
|
|
575
|
+
"docs_topic": "extensions#pin-message",
|
|
576
|
+
"tier": 5,
|
|
577
|
+
"code": "steps-in-docs",
|
|
578
|
+
"builder": "code",
|
|
579
|
+
"dashboard_settings": null,
|
|
580
|
+
"auto_wired_in_uikit": false
|
|
160
581
|
},
|
|
161
582
|
{
|
|
162
583
|
"id": "rich-media-preview",
|
|
584
|
+
"extension_id": "rich-media",
|
|
163
585
|
"name": "Rich Media Preview",
|
|
164
586
|
"type": "extension",
|
|
165
587
|
"description": "Generate rich preview panels for URLs via iFramely.",
|
|
166
|
-
"dashboard_path": "
|
|
167
|
-
"docs_topic": "extensions#rich-media-preview"
|
|
588
|
+
"dashboard_path": "Chat & Messaging → Features → Rich Media Preview → Toggle on",
|
|
589
|
+
"docs_topic": "extensions#rich-media-preview",
|
|
590
|
+
"tier": 5,
|
|
591
|
+
"code": "custom-code",
|
|
592
|
+
"builder": "code",
|
|
593
|
+
"dashboard_settings": "API Key",
|
|
594
|
+
"auto_wired_in_uikit": false
|
|
168
595
|
},
|
|
169
596
|
{
|
|
170
597
|
"id": "save-message",
|
|
171
598
|
"name": "Save Message",
|
|
172
599
|
"type": "extension",
|
|
173
600
|
"description": "Bookmark messages privately for later.",
|
|
174
|
-
"dashboard_path": "
|
|
175
|
-
"docs_topic": "extensions#save-message"
|
|
601
|
+
"dashboard_path": "Chat & Messaging → Features → Save Message → Toggle on",
|
|
602
|
+
"docs_topic": "extensions#save-message",
|
|
603
|
+
"tier": 5,
|
|
604
|
+
"code": "custom-code",
|
|
605
|
+
"builder": "code",
|
|
606
|
+
"dashboard_settings": null,
|
|
607
|
+
"auto_wired_in_uikit": false
|
|
176
608
|
},
|
|
177
609
|
{
|
|
178
610
|
"id": "thumbnail-generation",
|
|
@@ -180,32 +612,52 @@
|
|
|
180
612
|
"type": "extension",
|
|
181
613
|
"auto_wired_in_uikit": true,
|
|
182
614
|
"description": "Auto-generate thumbnails for shared media to reduce bandwidth. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
183
|
-
"dashboard_path": "
|
|
184
|
-
"docs_topic": "extensions#thumbnail-generation"
|
|
615
|
+
"dashboard_path": "Chat & Messaging → Features → Thumbnail Generation → Toggle on",
|
|
616
|
+
"docs_topic": "extensions#thumbnail-generation",
|
|
617
|
+
"tier": 2,
|
|
618
|
+
"code": "none",
|
|
619
|
+
"builder": "toggle",
|
|
620
|
+
"dashboard_settings": null
|
|
185
621
|
},
|
|
186
622
|
{
|
|
187
623
|
"id": "tinyurl",
|
|
624
|
+
"extension_id": "url-shortener-tinyurl",
|
|
188
625
|
"name": "TinyURL Shortening",
|
|
189
626
|
"type": "extension",
|
|
190
627
|
"description": "Shorten URLs using TinyURL service.",
|
|
191
|
-
"dashboard_path": "
|
|
192
|
-
"docs_topic": "extensions#tinyurl"
|
|
628
|
+
"dashboard_path": "Chat & Messaging → Features → TinyURL → Toggle on",
|
|
629
|
+
"docs_topic": "extensions#tinyurl",
|
|
630
|
+
"tier": 5,
|
|
631
|
+
"code": "custom-code",
|
|
632
|
+
"builder": "code",
|
|
633
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
634
|
+
"auto_wired_in_uikit": false
|
|
193
635
|
},
|
|
194
636
|
{
|
|
195
637
|
"id": "voice-transcription",
|
|
196
638
|
"name": "Voice Transcription",
|
|
197
639
|
"type": "extension",
|
|
198
640
|
"description": "Convert audio messages to text automatically.",
|
|
199
|
-
"dashboard_path": "
|
|
200
|
-
"docs_topic": "extensions#voice-transcription"
|
|
641
|
+
"dashboard_path": "Chat & Messaging → Features → Voice Transcription → Toggle on",
|
|
642
|
+
"docs_topic": "extensions#voice-transcription",
|
|
643
|
+
"tier": 5,
|
|
644
|
+
"code": "custom-code",
|
|
645
|
+
"builder": "code",
|
|
646
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
647
|
+
"auto_wired_in_uikit": false
|
|
201
648
|
},
|
|
202
649
|
{
|
|
203
650
|
"id": "giphy",
|
|
204
651
|
"name": "Giphy GIFs",
|
|
205
652
|
"type": "dashboard-only",
|
|
206
653
|
"description": "Search and share GIFs from Giphy.",
|
|
207
|
-
"dashboard_path": "
|
|
208
|
-
"docs_topic": "extensions#giphy"
|
|
654
|
+
"dashboard_path": "Chat & Messaging → Features → Giphy → Configure API key",
|
|
655
|
+
"docs_topic": "extensions#giphy",
|
|
656
|
+
"tier": 5,
|
|
657
|
+
"code": "custom-code",
|
|
658
|
+
"builder": "code",
|
|
659
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
660
|
+
"auto_wired_in_uikit": false
|
|
209
661
|
},
|
|
210
662
|
{
|
|
211
663
|
"id": "message-translation",
|
|
@@ -213,8 +665,12 @@
|
|
|
213
665
|
"type": "extension",
|
|
214
666
|
"auto_wired_in_uikit": true,
|
|
215
667
|
"description": "Translate messages into the user's locale. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
216
|
-
"dashboard_path": "
|
|
217
|
-
"docs_topic": "extensions#message-translation"
|
|
668
|
+
"dashboard_path": "Chat & Messaging → Features → Message Translation → Toggle on",
|
|
669
|
+
"docs_topic": "extensions#message-translation",
|
|
670
|
+
"tier": 2,
|
|
671
|
+
"code": "none",
|
|
672
|
+
"builder": "toggle",
|
|
673
|
+
"dashboard_settings": null
|
|
218
674
|
},
|
|
219
675
|
{
|
|
220
676
|
"id": "polls",
|
|
@@ -222,16 +678,25 @@
|
|
|
222
678
|
"type": "extension",
|
|
223
679
|
"auto_wired_in_uikit": true,
|
|
224
680
|
"description": "Create polls in group discussions with preset answers. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
225
|
-
"dashboard_path": "
|
|
226
|
-
"docs_topic": "extensions#polls"
|
|
681
|
+
"dashboard_path": "Chat & Messaging → Features → Polls → Toggle on",
|
|
682
|
+
"docs_topic": "extensions#polls",
|
|
683
|
+
"tier": 2,
|
|
684
|
+
"code": "none",
|
|
685
|
+
"builder": "toggle",
|
|
686
|
+
"dashboard_settings": null
|
|
227
687
|
},
|
|
228
688
|
{
|
|
229
689
|
"id": "reminders",
|
|
230
690
|
"name": "Reminders",
|
|
231
691
|
"type": "extension",
|
|
232
692
|
"description": "Set message reminders or personal notifications via bot.",
|
|
233
|
-
"dashboard_path": "
|
|
234
|
-
"docs_topic": "extensions#reminders"
|
|
693
|
+
"dashboard_path": "Chat & Messaging → Features → Reminders → Toggle on",
|
|
694
|
+
"docs_topic": "extensions#reminders",
|
|
695
|
+
"tier": 5,
|
|
696
|
+
"code": "steps-in-docs",
|
|
697
|
+
"builder": "code",
|
|
698
|
+
"dashboard_settings": null,
|
|
699
|
+
"auto_wired_in_uikit": false
|
|
235
700
|
},
|
|
236
701
|
{
|
|
237
702
|
"id": "stickers",
|
|
@@ -239,66 +704,105 @@
|
|
|
239
704
|
"type": "extension",
|
|
240
705
|
"auto_wired_in_uikit": true,
|
|
241
706
|
"description": "Send pre-designed stickers in conversations. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
242
|
-
"dashboard_path": "
|
|
243
|
-
"docs_topic": "extensions#stickers"
|
|
707
|
+
"dashboard_path": "Chat & Messaging → Features → Stickers → Toggle on",
|
|
708
|
+
"docs_topic": "extensions#stickers",
|
|
709
|
+
"tier": 4,
|
|
710
|
+
"code": "none",
|
|
711
|
+
"builder": "toggle",
|
|
712
|
+
"dashboard_settings": "All the sticker need to be enable via API"
|
|
244
713
|
},
|
|
245
714
|
{
|
|
246
715
|
"id": "stipop",
|
|
247
716
|
"name": "Stipop Sticker Library",
|
|
248
717
|
"type": "dashboard-only",
|
|
249
718
|
"description": "Integrates the Stipop sticker library.",
|
|
250
|
-
"dashboard_path": "
|
|
251
|
-
"docs_topic": "extensions#stipop"
|
|
719
|
+
"dashboard_path": "Chat & Messaging → Features → Stipop → Configure API key",
|
|
720
|
+
"docs_topic": "extensions#stipop",
|
|
721
|
+
"tier": 5,
|
|
722
|
+
"code": "custom-code",
|
|
723
|
+
"builder": "code",
|
|
724
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
725
|
+
"auto_wired_in_uikit": false
|
|
252
726
|
},
|
|
253
727
|
{
|
|
254
728
|
"id": "tenor",
|
|
255
729
|
"name": "Tenor GIFs",
|
|
256
730
|
"type": "dashboard-only",
|
|
257
731
|
"description": "Search and share GIFs from Tenor.",
|
|
258
|
-
"dashboard_path": "
|
|
259
|
-
"docs_topic": "extensions#tenor"
|
|
732
|
+
"dashboard_path": "Chat & Messaging → Features → Tenor → Configure API key",
|
|
733
|
+
"docs_topic": "extensions#tenor",
|
|
734
|
+
"tier": 5,
|
|
735
|
+
"code": "custom-code",
|
|
736
|
+
"builder": "code",
|
|
737
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
738
|
+
"auto_wired_in_uikit": false
|
|
260
739
|
},
|
|
261
740
|
{
|
|
262
741
|
"id": "collaborative-document",
|
|
742
|
+
"extension_id": "document",
|
|
263
743
|
"name": "Collaborative Document",
|
|
264
744
|
"type": "extension",
|
|
265
745
|
"auto_wired_in_uikit": true,
|
|
266
746
|
"description": "Real-time shared document editing. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
267
|
-
"dashboard_path": "
|
|
268
|
-
"docs_topic": "extensions#collaborative-document"
|
|
747
|
+
"dashboard_path": "Chat & Messaging → Features → Collaborative Document → Toggle on",
|
|
748
|
+
"docs_topic": "extensions#collaborative-document",
|
|
749
|
+
"tier": 2,
|
|
750
|
+
"code": "none",
|
|
751
|
+
"builder": "toggle",
|
|
752
|
+
"dashboard_settings": null
|
|
269
753
|
},
|
|
270
754
|
{
|
|
271
755
|
"id": "collaborative-whiteboard",
|
|
756
|
+
"extension_id": "whiteboard",
|
|
272
757
|
"name": "Collaborative Whiteboard",
|
|
273
758
|
"type": "extension",
|
|
274
759
|
"auto_wired_in_uikit": true,
|
|
275
760
|
"description": "Shared whiteboard for drawing and brainstorming. UI decorator auto-attached by the UI Kit (in defaultExtensions[]).",
|
|
276
|
-
"dashboard_path": "
|
|
277
|
-
"docs_topic": "extensions#collaborative-whiteboard"
|
|
761
|
+
"dashboard_path": "Chat & Messaging → Features → Collaborative Whiteboard → Toggle on",
|
|
762
|
+
"docs_topic": "extensions#collaborative-whiteboard",
|
|
763
|
+
"tier": 2,
|
|
764
|
+
"code": "none",
|
|
765
|
+
"builder": "toggle",
|
|
766
|
+
"dashboard_settings": null
|
|
278
767
|
},
|
|
279
768
|
{
|
|
280
769
|
"id": "disappearing-messages",
|
|
281
770
|
"name": "Disappearing Messages",
|
|
282
771
|
"type": "dashboard-only",
|
|
283
772
|
"description": "Messages auto-delete after a specified interval.",
|
|
284
|
-
"dashboard_path": "
|
|
285
|
-
"docs_topic": "extensions#disappearing-messages"
|
|
773
|
+
"dashboard_path": "Chat & Messaging → Features → Disappearing Messages → Configure interval",
|
|
774
|
+
"docs_topic": "extensions#disappearing-messages",
|
|
775
|
+
"tier": 5,
|
|
776
|
+
"code": "custom-code",
|
|
777
|
+
"builder": "code",
|
|
778
|
+
"dashboard_settings": null,
|
|
779
|
+
"auto_wired_in_uikit": false
|
|
286
780
|
},
|
|
287
781
|
{
|
|
288
782
|
"id": "chatwoot",
|
|
289
783
|
"name": "Chatwoot Integration",
|
|
290
784
|
"type": "dashboard-only",
|
|
291
785
|
"description": "Route messages to Chatwoot for customer support.",
|
|
292
|
-
"dashboard_path": "
|
|
293
|
-
"docs_topic": "extensions#chatwoot"
|
|
786
|
+
"dashboard_path": "Chat & Messaging → Features → Chatwoot → Configure webhook",
|
|
787
|
+
"docs_topic": "extensions#chatwoot",
|
|
788
|
+
"tier": 5,
|
|
789
|
+
"code": "custom-code",
|
|
790
|
+
"builder": "code",
|
|
791
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
792
|
+
"auto_wired_in_uikit": false
|
|
294
793
|
},
|
|
295
794
|
{
|
|
296
795
|
"id": "intercom",
|
|
297
796
|
"name": "Intercom Integration",
|
|
298
797
|
"type": "dashboard-only",
|
|
299
798
|
"description": "Integrate Intercom for in-app customer support.",
|
|
300
|
-
"dashboard_path": "
|
|
301
|
-
"docs_topic": "extensions#intercom"
|
|
799
|
+
"dashboard_path": "Chat & Messaging → Features → Intercom → Configure API key",
|
|
800
|
+
"docs_topic": "extensions#intercom",
|
|
801
|
+
"tier": 5,
|
|
802
|
+
"code": "custom-code",
|
|
803
|
+
"builder": "code",
|
|
804
|
+
"dashboard_settings": "Configure Key on Dashboard",
|
|
805
|
+
"auto_wired_in_uikit": false
|
|
302
806
|
},
|
|
303
807
|
{
|
|
304
808
|
"id": "conversation-starter",
|
|
@@ -307,8 +811,12 @@
|
|
|
307
811
|
"ai_key": "conversation-starter",
|
|
308
812
|
"requires": "openai-key",
|
|
309
813
|
"description": "AI-generated opening messages for new chats.",
|
|
310
|
-
"dashboard_path": "
|
|
311
|
-
"docs_topic": "ai-features#conversation-starter"
|
|
814
|
+
"dashboard_path": "Chat & Messaging → Features → Conversation Starter → Toggle on",
|
|
815
|
+
"docs_topic": "ai-features#conversation-starter",
|
|
816
|
+
"tier": 4,
|
|
817
|
+
"code": "none",
|
|
818
|
+
"builder": "toggle",
|
|
819
|
+
"dashboard_settings": "Configure Key on Dashboard"
|
|
312
820
|
},
|
|
313
821
|
{
|
|
314
822
|
"id": "smart-replies",
|
|
@@ -317,8 +825,12 @@
|
|
|
317
825
|
"ai_key": "smart-replies",
|
|
318
826
|
"requires": "openai-key",
|
|
319
827
|
"description": "AI-generated contextual response suggestions.",
|
|
320
|
-
"dashboard_path": "
|
|
321
|
-
"docs_topic": "ai-features#smart-replies"
|
|
828
|
+
"dashboard_path": "Chat & Messaging → Features → Smart Replies → Toggle on",
|
|
829
|
+
"docs_topic": "ai-features#smart-replies",
|
|
830
|
+
"tier": 4,
|
|
831
|
+
"code": "none",
|
|
832
|
+
"builder": "toggle",
|
|
833
|
+
"dashboard_settings": "Configure Key on Dashboard"
|
|
322
834
|
},
|
|
323
835
|
{
|
|
324
836
|
"id": "conversation-summary",
|
|
@@ -327,8 +839,12 @@
|
|
|
327
839
|
"ai_key": "conversation-summary",
|
|
328
840
|
"requires": "openai-key",
|
|
329
841
|
"description": "AI-generated recaps of extended conversations.",
|
|
330
|
-
"dashboard_path": "
|
|
331
|
-
"docs_topic": "ai-features#conversation-summary"
|
|
842
|
+
"dashboard_path": "Chat & Messaging → Features → Conversation Summary → Toggle on",
|
|
843
|
+
"docs_topic": "ai-features#conversation-summary",
|
|
844
|
+
"tier": 4,
|
|
845
|
+
"code": "none",
|
|
846
|
+
"builder": "toggle",
|
|
847
|
+
"dashboard_settings": "Configure Key on Dashboard"
|
|
332
848
|
},
|
|
333
849
|
{
|
|
334
850
|
"id": "calls",
|
|
@@ -344,7 +860,11 @@
|
|
|
344
860
|
"react-native-callstats",
|
|
345
861
|
"@react-native-community/netinfo"
|
|
346
862
|
],
|
|
347
|
-
"components": [
|
|
863
|
+
"components": [
|
|
864
|
+
"CometChatIncomingCall",
|
|
865
|
+
"CometChatOutgoingCall",
|
|
866
|
+
"CometChatCallLogs"
|
|
867
|
+
],
|
|
348
868
|
"docs_topic": "call-features"
|
|
349
869
|
},
|
|
350
870
|
{
|
|
@@ -355,6 +875,116 @@
|
|
|
355
875
|
"swap_from": "CometChatMessageComposer",
|
|
356
876
|
"swap_to": "CometChatCompactMessageComposer",
|
|
357
877
|
"docs_topic": "core-features#rich-text-formatting"
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"id": "call-recording",
|
|
881
|
+
"name": "Call Recording",
|
|
882
|
+
"type": "calls-feature",
|
|
883
|
+
"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.",
|
|
884
|
+
"settings_flag": "startRecordingOnCallStart",
|
|
885
|
+
"requires_dashboard_setup": true,
|
|
886
|
+
"enablement": "contact-support",
|
|
887
|
+
"reference_topic": "recording",
|
|
888
|
+
"platforms_supported": [
|
|
889
|
+
"web",
|
|
890
|
+
"react-native",
|
|
891
|
+
"angular",
|
|
892
|
+
"ios",
|
|
893
|
+
"android-v5",
|
|
894
|
+
"android-v6",
|
|
895
|
+
"flutter-v5",
|
|
896
|
+
"flutter-v6"
|
|
897
|
+
],
|
|
898
|
+
"docs_topic": "calls/recording"
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"id": "screen-share",
|
|
902
|
+
"name": "Screen Sharing",
|
|
903
|
+
"type": "calls-feature",
|
|
904
|
+
"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).",
|
|
905
|
+
"settings_flag": "showScreenShareButton",
|
|
906
|
+
"reference_topic": "screen-sharing",
|
|
907
|
+
"platforms_supported": [
|
|
908
|
+
"web",
|
|
909
|
+
"react-native",
|
|
910
|
+
"angular",
|
|
911
|
+
"ios",
|
|
912
|
+
"android-v5",
|
|
913
|
+
"android-v6",
|
|
914
|
+
"flutter-v5",
|
|
915
|
+
"flutter-v6"
|
|
916
|
+
],
|
|
917
|
+
"docs_topic": "calls/screen-sharing"
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"id": "virtual-background",
|
|
921
|
+
"name": "Virtual Background",
|
|
922
|
+
"type": "calls-feature",
|
|
923
|
+
"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).",
|
|
924
|
+
"settings_flag": "showVirtualBackgroundSetting",
|
|
925
|
+
"reference_topic": "virtual-background",
|
|
926
|
+
"platforms_supported": [
|
|
927
|
+
"web",
|
|
928
|
+
"angular"
|
|
929
|
+
],
|
|
930
|
+
"docs_topic": "calls/virtual-background"
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"id": "raise-hand",
|
|
934
|
+
"name": "Raise Hand",
|
|
935
|
+
"type": "calls-feature",
|
|
936
|
+
"description": "Participants can raise a hand to signal they want to speak. Built into Calls SDK.",
|
|
937
|
+
"settings_flag": "hideRaiseHandButton",
|
|
938
|
+
"reference_topic": "raise-hand",
|
|
939
|
+
"platforms_supported": [
|
|
940
|
+
"web",
|
|
941
|
+
"react-native",
|
|
942
|
+
"angular",
|
|
943
|
+
"ios",
|
|
944
|
+
"android-v5",
|
|
945
|
+
"android-v6",
|
|
946
|
+
"flutter-v5",
|
|
947
|
+
"flutter-v6"
|
|
948
|
+
],
|
|
949
|
+
"docs_topic": "calls/raise-hand"
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
"id": "picture-in-picture",
|
|
953
|
+
"name": "Picture-in-Picture",
|
|
954
|
+
"type": "calls-feature",
|
|
955
|
+
"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+.",
|
|
956
|
+
"settings_flag": "disablePictureInPictureLayout",
|
|
957
|
+
"reference_topic": "picture-in-picture",
|
|
958
|
+
"platforms_supported": [
|
|
959
|
+
"web",
|
|
960
|
+
"react-native",
|
|
961
|
+
"angular",
|
|
962
|
+
"ios",
|
|
963
|
+
"android-v5",
|
|
964
|
+
"android-v6",
|
|
965
|
+
"flutter-v5",
|
|
966
|
+
"flutter-v6"
|
|
967
|
+
],
|
|
968
|
+
"docs_topic": "calls/picture-in-picture"
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
"id": "idle-timeout",
|
|
972
|
+
"name": "Idle Timeout",
|
|
973
|
+
"type": "calls-feature",
|
|
974
|
+
"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.",
|
|
975
|
+
"settings_flag": "setIdleTimeoutPeriod",
|
|
976
|
+
"reference_topic": "idle-timeout",
|
|
977
|
+
"platforms_supported": [
|
|
978
|
+
"web",
|
|
979
|
+
"react-native",
|
|
980
|
+
"angular",
|
|
981
|
+
"ios",
|
|
982
|
+
"android-v5",
|
|
983
|
+
"android-v6",
|
|
984
|
+
"flutter-v5",
|
|
985
|
+
"flutter-v6"
|
|
986
|
+
],
|
|
987
|
+
"docs_topic": "calls/idle-timeout"
|
|
358
988
|
}
|
|
359
989
|
]
|
|
360
990
|
}
|