@chatbotkit/cli 1.23.0 → 1.24.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/cjs/solution/index.cjs +551 -25
- package/dist/cjs/solution/index.d.ts +613 -673
- package/dist/esm/solution/index.d.ts +1926 -552
- package/dist/esm/solution/index.js +535 -24
- package/package.json +3 -3
|
@@ -44,49 +44,342 @@ export function replaceEnvVars(value) {
|
|
|
44
44
|
return value;
|
|
45
45
|
}
|
|
46
46
|
export const BasicResourceConfigSchema = z.object({
|
|
47
|
-
type: z.string(),
|
|
48
47
|
slug: z.string().optional(),
|
|
49
48
|
id: z.string().optional(),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
});
|
|
50
|
+
export const BlueprintResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
51
|
+
type: z.literal('blueprint'),
|
|
52
|
+
properties: z.object({
|
|
53
|
+
name: z.string().optional(),
|
|
54
|
+
description: z.string().optional(),
|
|
55
|
+
meta: z.record(z.unknown()).optional(),
|
|
56
|
+
visibility: z.enum(['private', 'protected', 'public']).optional(),
|
|
57
|
+
}),
|
|
53
58
|
});
|
|
54
59
|
export const BotResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
55
60
|
type: z.literal('bot'),
|
|
56
61
|
properties: z.object({
|
|
62
|
+
name: z.string().optional(),
|
|
63
|
+
description: z.string().optional(),
|
|
64
|
+
meta: z.record(z.unknown()).optional(),
|
|
57
65
|
model: z.string().optional(),
|
|
58
66
|
backstory: z.string().optional(),
|
|
59
67
|
datasetId: z.string().optional(),
|
|
60
68
|
skillsetId: z.string().optional(),
|
|
61
69
|
moderation: z.boolean().optional(),
|
|
62
70
|
privacy: z.boolean().optional(),
|
|
71
|
+
blueprintId: z.string().optional(),
|
|
72
|
+
visibility: z.enum(['private', 'protected', 'public']).optional(),
|
|
63
73
|
}),
|
|
64
74
|
});
|
|
65
75
|
export const DatasetResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
66
76
|
type: z.literal('dataset'),
|
|
67
|
-
properties: z.object({
|
|
77
|
+
properties: z.object({
|
|
78
|
+
name: z.string().optional(),
|
|
79
|
+
description: z.string().optional(),
|
|
80
|
+
meta: z.record(z.unknown()).optional(),
|
|
81
|
+
blueprintId: z.string().optional(),
|
|
82
|
+
store: z.string().optional(),
|
|
83
|
+
reranker: z.string().optional(),
|
|
84
|
+
recordMaxTokens: z.number().optional(),
|
|
85
|
+
searchMinScore: z.number().optional(),
|
|
86
|
+
searchMaxRecords: z.number().optional(),
|
|
87
|
+
searchMaxTokens: z.number().optional(),
|
|
88
|
+
matchInstruction: z.string().optional(),
|
|
89
|
+
mismatchInstruction: z.string().optional(),
|
|
90
|
+
separators: z.string().optional(),
|
|
91
|
+
visibility: z.enum(['private', 'protected', 'public']).optional(),
|
|
92
|
+
}),
|
|
93
|
+
});
|
|
94
|
+
export const FileResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
95
|
+
type: z.literal('file'),
|
|
96
|
+
properties: z.object({
|
|
97
|
+
name: z.string().optional(),
|
|
98
|
+
description: z.string().optional(),
|
|
99
|
+
meta: z.record(z.unknown()).optional(),
|
|
100
|
+
blueprintId: z.string().optional(),
|
|
101
|
+
visibility: z.enum(['private', 'protected', 'public']).optional(),
|
|
102
|
+
}),
|
|
103
|
+
});
|
|
104
|
+
export const SecretResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
105
|
+
type: z.literal('secret'),
|
|
106
|
+
properties: z.object({
|
|
107
|
+
name: z.string().optional(),
|
|
108
|
+
description: z.string().optional(),
|
|
109
|
+
meta: z.record(z.unknown()).optional(),
|
|
110
|
+
blueprintId: z.string().optional(),
|
|
111
|
+
kind: z.enum(['shared', 'personal']).optional(),
|
|
112
|
+
type: z
|
|
113
|
+
.enum(['plain', 'basic', 'bearer', 'oauth', 'template', 'reference'])
|
|
114
|
+
.optional(),
|
|
115
|
+
value: z.string().optional(),
|
|
116
|
+
config: z.record(z.unknown()).optional(),
|
|
117
|
+
visibility: z.enum(['private', 'protected', 'public']).optional(),
|
|
118
|
+
}),
|
|
68
119
|
});
|
|
69
120
|
export const SkillsetResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
70
121
|
type: z.literal('skillset'),
|
|
71
|
-
properties: z.object({
|
|
122
|
+
properties: z.object({
|
|
123
|
+
name: z.string().optional(),
|
|
124
|
+
description: z.string().optional(),
|
|
125
|
+
meta: z.record(z.unknown()).optional(),
|
|
126
|
+
blueprintId: z.string().optional(),
|
|
127
|
+
visibility: z.enum(['private', 'protected', 'public']).optional(),
|
|
128
|
+
}),
|
|
72
129
|
});
|
|
73
130
|
export const WidgetIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
74
131
|
type: z.literal('widgetIntegration'),
|
|
75
|
-
properties: z.object({
|
|
132
|
+
properties: z.object({
|
|
133
|
+
name: z.string().optional(),
|
|
134
|
+
description: z.string().optional(),
|
|
135
|
+
meta: z.record(z.unknown()).optional(),
|
|
136
|
+
blueprintId: z.string().optional(),
|
|
137
|
+
botId: z.string().optional(),
|
|
138
|
+
theme: z.string().optional(),
|
|
139
|
+
layout: z.string().optional(),
|
|
140
|
+
title: z.string().optional(),
|
|
141
|
+
intro: z.string().optional(),
|
|
142
|
+
initial: z.string().optional(),
|
|
143
|
+
placeholder: z.string().optional(),
|
|
144
|
+
origin: z.string().optional(),
|
|
145
|
+
sessionDuration: z.number().optional(),
|
|
146
|
+
language: z.string().optional(),
|
|
147
|
+
plugins: z.string().optional(),
|
|
148
|
+
stream: z.boolean().optional(),
|
|
149
|
+
verbose: z.boolean().optional(),
|
|
150
|
+
tools: z.boolean().optional(),
|
|
151
|
+
unfurl: z.boolean().optional(),
|
|
152
|
+
math: z.boolean().optional(),
|
|
153
|
+
carousel: z.boolean().optional(),
|
|
154
|
+
form: z.boolean().optional(),
|
|
155
|
+
attachments: z.boolean().optional(),
|
|
156
|
+
autoScroll: z.boolean().optional(),
|
|
157
|
+
startFirst: z.boolean().optional(),
|
|
158
|
+
contactCollection: z.boolean().optional(),
|
|
159
|
+
exportConversation: z.boolean().optional(),
|
|
160
|
+
restartConversation: z.boolean().optional(),
|
|
161
|
+
maximize: z.boolean().optional(),
|
|
162
|
+
messagePeek: z.boolean().optional(),
|
|
163
|
+
voiceIn: z.boolean().optional(),
|
|
164
|
+
voiceOut: z.boolean().optional(),
|
|
165
|
+
poweredBy: z.boolean().optional(),
|
|
166
|
+
}),
|
|
76
167
|
});
|
|
77
168
|
export const SitemapIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
78
169
|
type: z.literal('sitemapIntegration'),
|
|
79
170
|
properties: z.object({
|
|
80
|
-
|
|
81
|
-
|
|
171
|
+
name: z.string().optional(),
|
|
172
|
+
description: z.string().optional(),
|
|
173
|
+
meta: z.record(z.unknown()).optional(),
|
|
174
|
+
url: z.string().optional(),
|
|
175
|
+
glob: z.string().optional(),
|
|
176
|
+
datasetId: z.string().optional(),
|
|
177
|
+
blueprintId: z.string().optional(),
|
|
178
|
+
selectors: z.string().optional(),
|
|
179
|
+
expiresIn: z.number().optional(),
|
|
180
|
+
javascript: z.boolean().optional(),
|
|
181
|
+
syncSchedule: z.string().optional(),
|
|
182
|
+
}),
|
|
183
|
+
});
|
|
184
|
+
export const SlackIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
185
|
+
type: z.literal('slackIntegration'),
|
|
186
|
+
properties: z.object({
|
|
187
|
+
name: z.string().optional(),
|
|
188
|
+
description: z.string().optional(),
|
|
189
|
+
meta: z.record(z.unknown()).optional(),
|
|
190
|
+
blueprintId: z.string().optional(),
|
|
191
|
+
botId: z.string().optional(),
|
|
192
|
+
signingSecret: z.string().optional(),
|
|
193
|
+
botToken: z.string().optional(),
|
|
194
|
+
userToken: z.string().optional(),
|
|
195
|
+
contactCollection: z.boolean().optional(),
|
|
196
|
+
sessionDuration: z.number().optional(),
|
|
197
|
+
attachments: z.boolean().optional(),
|
|
198
|
+
references: z.boolean().optional(),
|
|
199
|
+
ratings: z.boolean().optional(),
|
|
200
|
+
visibleMessages: z.number().optional(),
|
|
201
|
+
autoRespond: z.string().optional(),
|
|
202
|
+
}),
|
|
203
|
+
});
|
|
204
|
+
export const DiscordIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
205
|
+
type: z.literal('discordIntegration'),
|
|
206
|
+
properties: z.object({
|
|
207
|
+
name: z.string().optional(),
|
|
208
|
+
description: z.string().optional(),
|
|
209
|
+
meta: z.record(z.unknown()).optional(),
|
|
210
|
+
blueprintId: z.string().optional(),
|
|
211
|
+
botId: z.string().optional(),
|
|
212
|
+
appId: z.string().optional(),
|
|
213
|
+
botToken: z.string().optional(),
|
|
214
|
+
publicKey: z.string().optional(),
|
|
215
|
+
handle: z.string().optional(),
|
|
216
|
+
ephemeral: z.boolean().optional(),
|
|
217
|
+
contactCollection: z.boolean().optional(),
|
|
218
|
+
sessionDuration: z.number().optional(),
|
|
219
|
+
attachments: z.boolean().optional(),
|
|
220
|
+
stream: z.boolean().optional(),
|
|
221
|
+
}),
|
|
222
|
+
});
|
|
223
|
+
export const TelegramIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
224
|
+
type: z.literal('telegramIntegration'),
|
|
225
|
+
properties: z.object({
|
|
226
|
+
name: z.string().optional(),
|
|
227
|
+
description: z.string().optional(),
|
|
228
|
+
meta: z.record(z.unknown()).optional(),
|
|
229
|
+
blueprintId: z.string().optional(),
|
|
230
|
+
botId: z.string().optional(),
|
|
231
|
+
botToken: z.string().optional(),
|
|
232
|
+
contactCollection: z.boolean().optional(),
|
|
233
|
+
sessionDuration: z.number().optional(),
|
|
234
|
+
attachments: z.boolean().optional(),
|
|
235
|
+
}),
|
|
236
|
+
});
|
|
237
|
+
export const WhatsAppIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
238
|
+
type: z.literal('whatsappIntegration'),
|
|
239
|
+
properties: z.object({
|
|
240
|
+
name: z.string().optional(),
|
|
241
|
+
description: z.string().optional(),
|
|
242
|
+
meta: z.record(z.unknown()).optional(),
|
|
243
|
+
blueprintId: z.string().optional(),
|
|
244
|
+
botId: z.string().optional(),
|
|
245
|
+
phoneNumberId: z.string().optional(),
|
|
246
|
+
accessToken: z.string().optional(),
|
|
247
|
+
contactCollection: z.boolean().optional(),
|
|
248
|
+
sessionDuration: z.number().optional(),
|
|
249
|
+
attachments: z.boolean().optional(),
|
|
250
|
+
}),
|
|
251
|
+
});
|
|
252
|
+
export const MessengerIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
253
|
+
type: z.literal('messengerIntegration'),
|
|
254
|
+
properties: z.object({
|
|
255
|
+
name: z.string().optional(),
|
|
256
|
+
description: z.string().optional(),
|
|
257
|
+
meta: z.record(z.unknown()).optional(),
|
|
258
|
+
blueprintId: z.string().optional(),
|
|
259
|
+
botId: z.string().optional(),
|
|
260
|
+
accessToken: z.string().optional(),
|
|
261
|
+
contactCollection: z.boolean().optional(),
|
|
262
|
+
sessionDuration: z.number().optional(),
|
|
263
|
+
attachments: z.boolean().optional(),
|
|
264
|
+
}),
|
|
265
|
+
});
|
|
266
|
+
export const NotionIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
267
|
+
type: z.literal('notionIntegration'),
|
|
268
|
+
properties: z.object({
|
|
269
|
+
name: z.string().optional(),
|
|
270
|
+
description: z.string().optional(),
|
|
271
|
+
meta: z.record(z.unknown()).optional(),
|
|
272
|
+
blueprintId: z.string().optional(),
|
|
273
|
+
datasetId: z.string().optional(),
|
|
274
|
+
token: z.string().optional(),
|
|
275
|
+
syncSchedule: z.string().optional(),
|
|
276
|
+
expiresIn: z.number().optional(),
|
|
277
|
+
}),
|
|
278
|
+
});
|
|
279
|
+
export const EmailIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
280
|
+
type: z.literal('emailIntegration'),
|
|
281
|
+
properties: z.object({
|
|
282
|
+
name: z.string().optional(),
|
|
283
|
+
description: z.string().optional(),
|
|
284
|
+
meta: z.record(z.unknown()).optional(),
|
|
285
|
+
blueprintId: z.string().optional(),
|
|
286
|
+
botId: z.string().optional(),
|
|
287
|
+
contactCollection: z.boolean().optional(),
|
|
288
|
+
sessionDuration: z.number().optional(),
|
|
289
|
+
attachments: z.boolean().optional(),
|
|
290
|
+
}),
|
|
291
|
+
});
|
|
292
|
+
export const TriggerIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
293
|
+
type: z.literal('triggerIntegration'),
|
|
294
|
+
properties: z.object({
|
|
295
|
+
name: z.string().optional(),
|
|
296
|
+
description: z.string().optional(),
|
|
297
|
+
meta: z.record(z.unknown()).optional(),
|
|
298
|
+
blueprintId: z.string().optional(),
|
|
299
|
+
botId: z.string().optional(),
|
|
300
|
+
authenticate: z.boolean().optional(),
|
|
301
|
+
triggerSchedule: z
|
|
302
|
+
.enum([
|
|
303
|
+
'never',
|
|
304
|
+
'quarterhourly',
|
|
305
|
+
'halfhourly',
|
|
306
|
+
'hourly',
|
|
307
|
+
'daily',
|
|
308
|
+
'weekly',
|
|
309
|
+
'monthly',
|
|
310
|
+
])
|
|
311
|
+
.optional(),
|
|
312
|
+
sessionDuration: z.number().optional(),
|
|
313
|
+
}),
|
|
314
|
+
});
|
|
315
|
+
export const SupportIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
316
|
+
type: z.literal('supportIntegration'),
|
|
317
|
+
properties: z.object({
|
|
318
|
+
name: z.string().optional(),
|
|
319
|
+
description: z.string().optional(),
|
|
320
|
+
meta: z.record(z.unknown()).optional(),
|
|
321
|
+
blueprintId: z.string().optional(),
|
|
322
|
+
botId: z.string().optional(),
|
|
323
|
+
email: z.string().optional(),
|
|
324
|
+
trigger: z.string().optional(),
|
|
325
|
+
}),
|
|
326
|
+
});
|
|
327
|
+
export const ExtractIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
328
|
+
type: z.literal('extractIntegration'),
|
|
329
|
+
properties: z.object({
|
|
330
|
+
name: z.string().optional(),
|
|
331
|
+
description: z.string().optional(),
|
|
332
|
+
meta: z.record(z.unknown()).optional(),
|
|
333
|
+
blueprintId: z.string().optional(),
|
|
334
|
+
botId: z.string().optional(),
|
|
335
|
+
schema: z.record(z.unknown()).optional(),
|
|
336
|
+
request: z.string().optional(),
|
|
337
|
+
trigger: z.string().optional(),
|
|
338
|
+
}),
|
|
339
|
+
});
|
|
340
|
+
export const McpServerIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
341
|
+
type: z.literal('mcpserverIntegration'),
|
|
342
|
+
properties: z.object({
|
|
343
|
+
name: z.string().optional(),
|
|
344
|
+
description: z.string().optional(),
|
|
345
|
+
meta: z.record(z.unknown()).optional(),
|
|
346
|
+
blueprintId: z.string().optional(),
|
|
347
|
+
skillsetId: z.string().optional(),
|
|
348
|
+
}),
|
|
349
|
+
});
|
|
350
|
+
export const TwilioIntegrationResourceConfigSchema = BasicResourceConfigSchema.extend({
|
|
351
|
+
type: z.literal('twilioIntegration'),
|
|
352
|
+
properties: z.object({
|
|
353
|
+
name: z.string().optional(),
|
|
354
|
+
description: z.string().optional(),
|
|
355
|
+
meta: z.record(z.unknown()).optional(),
|
|
356
|
+
blueprintId: z.string().optional(),
|
|
357
|
+
botId: z.string().optional(),
|
|
358
|
+
contactCollection: z.boolean().optional(),
|
|
359
|
+
sessionDuration: z.number().optional(),
|
|
82
360
|
}),
|
|
83
361
|
});
|
|
84
362
|
export const ResourceConfigSchema = z.union([
|
|
363
|
+
BlueprintResourceConfigSchema,
|
|
85
364
|
BotResourceConfigSchema,
|
|
86
365
|
DatasetResourceConfigSchema,
|
|
366
|
+
FileResourceConfigSchema,
|
|
367
|
+
SecretResourceConfigSchema,
|
|
87
368
|
SkillsetResourceConfigSchema,
|
|
88
369
|
WidgetIntegrationResourceConfigSchema,
|
|
89
370
|
SitemapIntegrationResourceConfigSchema,
|
|
371
|
+
SlackIntegrationResourceConfigSchema,
|
|
372
|
+
DiscordIntegrationResourceConfigSchema,
|
|
373
|
+
TelegramIntegrationResourceConfigSchema,
|
|
374
|
+
WhatsAppIntegrationResourceConfigSchema,
|
|
375
|
+
MessengerIntegrationResourceConfigSchema,
|
|
376
|
+
NotionIntegrationResourceConfigSchema,
|
|
377
|
+
EmailIntegrationResourceConfigSchema,
|
|
378
|
+
TriggerIntegrationResourceConfigSchema,
|
|
379
|
+
SupportIntegrationResourceConfigSchema,
|
|
380
|
+
ExtractIntegrationResourceConfigSchema,
|
|
381
|
+
McpServerIntegrationResourceConfigSchema,
|
|
382
|
+
TwilioIntegrationResourceConfigSchema,
|
|
90
383
|
]);
|
|
91
384
|
export const SolutionConfigSchema = z.object({
|
|
92
385
|
version: z.literal(1),
|
|
@@ -101,16 +394,19 @@ export class Resource {
|
|
|
101
394
|
}
|
|
102
395
|
get slug() {
|
|
103
396
|
return (this.config.slug ??
|
|
104
|
-
this.config.name
|
|
397
|
+
(this.config.properties.name || 'unnamed')
|
|
398
|
+
.toLowerCase()
|
|
399
|
+
.replace(/\W/g, '_')
|
|
400
|
+
.replace(/_+/g, '_'));
|
|
105
401
|
}
|
|
106
402
|
get id() {
|
|
107
403
|
return this.config.id;
|
|
108
404
|
}
|
|
109
405
|
get name() {
|
|
110
|
-
return this.config.name;
|
|
406
|
+
return this.config.properties.name;
|
|
111
407
|
}
|
|
112
408
|
get description() {
|
|
113
|
-
return this.config.description;
|
|
409
|
+
return this.config.properties.description;
|
|
114
410
|
}
|
|
115
411
|
get baseClient() {
|
|
116
412
|
const client = new ChatBotKit({
|
|
@@ -122,24 +418,27 @@ export class Resource {
|
|
|
122
418
|
get client() {
|
|
123
419
|
throw new Error('Not implemented');
|
|
124
420
|
}
|
|
421
|
+
get createProperties() {
|
|
422
|
+
return this.config.properties;
|
|
423
|
+
}
|
|
424
|
+
get updateProperties() {
|
|
425
|
+
return this.config.properties;
|
|
426
|
+
}
|
|
125
427
|
async sync() {
|
|
126
428
|
if (this.config.id) {
|
|
127
|
-
await this.client.update(this.config.id,
|
|
128
|
-
...this.config.properties,
|
|
129
|
-
name: this.config.name,
|
|
130
|
-
description: this.config.description,
|
|
131
|
-
});
|
|
429
|
+
await this.client.update(this.config.id, this.updateProperties);
|
|
132
430
|
}
|
|
133
431
|
else {
|
|
134
|
-
const { id } = await this.client.create(
|
|
135
|
-
...this.config.properties,
|
|
136
|
-
name: this.config.name,
|
|
137
|
-
description: this.config.description,
|
|
138
|
-
});
|
|
432
|
+
const { id } = await this.client.create(this.createProperties);
|
|
139
433
|
this.config.id = id;
|
|
140
434
|
}
|
|
141
435
|
}
|
|
142
436
|
}
|
|
437
|
+
export class BlueprintResource extends Resource {
|
|
438
|
+
get client() {
|
|
439
|
+
return this.baseClient.blueprint;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
143
442
|
export class BotResource extends Resource {
|
|
144
443
|
get client() {
|
|
145
444
|
return this.baseClient.bot;
|
|
@@ -149,6 +448,22 @@ export class DatasetResource extends Resource {
|
|
|
149
448
|
get client() {
|
|
150
449
|
return this.baseClient.dataset;
|
|
151
450
|
}
|
|
451
|
+
get updateProperties() {
|
|
452
|
+
const updateSchema = DatasetResourceConfigSchema.shape.properties.omit({
|
|
453
|
+
store: true,
|
|
454
|
+
});
|
|
455
|
+
return updateSchema.parse(this.config.properties);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
export class FileResource extends Resource {
|
|
459
|
+
get client() {
|
|
460
|
+
return this.baseClient.file;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
export class SecretResource extends Resource {
|
|
464
|
+
get client() {
|
|
465
|
+
return this.baseClient.secret;
|
|
466
|
+
}
|
|
152
467
|
}
|
|
153
468
|
export class SkillsetResource extends Resource {
|
|
154
469
|
get client() {
|
|
@@ -165,6 +480,66 @@ export class SitemapIntegrationResource extends Resource {
|
|
|
165
480
|
return this.baseClient.integration.sitemap;
|
|
166
481
|
}
|
|
167
482
|
}
|
|
483
|
+
export class SlackIntegrationResource extends Resource {
|
|
484
|
+
get client() {
|
|
485
|
+
return this.baseClient.integration.slack;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
export class DiscordIntegrationResource extends Resource {
|
|
489
|
+
get client() {
|
|
490
|
+
return this.baseClient.integration.discord;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
export class TelegramIntegrationResource extends Resource {
|
|
494
|
+
get client() {
|
|
495
|
+
return this.baseClient.integration.telegram;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
export class WhatsAppIntegrationResource extends Resource {
|
|
499
|
+
get client() {
|
|
500
|
+
return this.baseClient.integration.whatsapp;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
export class MessengerIntegrationResource extends Resource {
|
|
504
|
+
get client() {
|
|
505
|
+
return this.baseClient.integration.messenger;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
export class NotionIntegrationResource extends Resource {
|
|
509
|
+
get client() {
|
|
510
|
+
return this.baseClient.integration.notion;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
export class EmailIntegrationResource extends Resource {
|
|
514
|
+
get client() {
|
|
515
|
+
return this.baseClient.integration.email;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
export class TriggerIntegrationResource extends Resource {
|
|
519
|
+
get client() {
|
|
520
|
+
return this.baseClient.integration.trigger;
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
export class SupportIntegrationResource extends Resource {
|
|
524
|
+
get client() {
|
|
525
|
+
return this.baseClient.integration.support;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
export class ExtractIntegrationResource extends Resource {
|
|
529
|
+
get client() {
|
|
530
|
+
return this.baseClient.integration.extract;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
export class McpServerIntegrationResource extends Resource {
|
|
534
|
+
get client() {
|
|
535
|
+
return this.baseClient.integration.mcpserver;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
export class TwilioIntegrationResource extends Resource {
|
|
539
|
+
get client() {
|
|
540
|
+
return this.baseClient.integration.twilio;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
168
543
|
export class Solution {
|
|
169
544
|
constructor(config) {
|
|
170
545
|
this.config = config;
|
|
@@ -178,12 +553,21 @@ export class Solution {
|
|
|
178
553
|
}
|
|
179
554
|
get resources() {
|
|
180
555
|
return this.config.resources.map((resource) => {
|
|
181
|
-
if (resource.type === '
|
|
556
|
+
if (resource.type === 'blueprint') {
|
|
557
|
+
return new BlueprintResource(resource);
|
|
558
|
+
}
|
|
559
|
+
else if (resource.type === 'bot') {
|
|
182
560
|
return new BotResource(resource);
|
|
183
561
|
}
|
|
184
562
|
else if (resource.type === 'dataset') {
|
|
185
563
|
return new DatasetResource(resource);
|
|
186
564
|
}
|
|
565
|
+
else if (resource.type === 'file') {
|
|
566
|
+
return new FileResource(resource);
|
|
567
|
+
}
|
|
568
|
+
else if (resource.type === 'secret') {
|
|
569
|
+
return new SecretResource(resource);
|
|
570
|
+
}
|
|
187
571
|
else if (resource.type === 'skillset') {
|
|
188
572
|
return new SkillsetResource(resource);
|
|
189
573
|
}
|
|
@@ -193,11 +577,54 @@ export class Solution {
|
|
|
193
577
|
else if (resource.type === 'sitemapIntegration') {
|
|
194
578
|
return new SitemapIntegrationResource(resource);
|
|
195
579
|
}
|
|
580
|
+
else if (resource.type === 'slackIntegration') {
|
|
581
|
+
return new SlackIntegrationResource(resource);
|
|
582
|
+
}
|
|
583
|
+
else if (resource.type === 'discordIntegration') {
|
|
584
|
+
return new DiscordIntegrationResource(resource);
|
|
585
|
+
}
|
|
586
|
+
else if (resource.type === 'telegramIntegration') {
|
|
587
|
+
return new TelegramIntegrationResource(resource);
|
|
588
|
+
}
|
|
589
|
+
else if (resource.type === 'whatsappIntegration') {
|
|
590
|
+
return new WhatsAppIntegrationResource(resource);
|
|
591
|
+
}
|
|
592
|
+
else if (resource.type === 'messengerIntegration') {
|
|
593
|
+
return new MessengerIntegrationResource(resource);
|
|
594
|
+
}
|
|
595
|
+
else if (resource.type === 'notionIntegration') {
|
|
596
|
+
return new NotionIntegrationResource(resource);
|
|
597
|
+
}
|
|
598
|
+
else if (resource.type === 'emailIntegration') {
|
|
599
|
+
return new EmailIntegrationResource(resource);
|
|
600
|
+
}
|
|
601
|
+
else if (resource.type === 'triggerIntegration') {
|
|
602
|
+
return new TriggerIntegrationResource(resource);
|
|
603
|
+
}
|
|
604
|
+
else if (resource.type === 'supportIntegration') {
|
|
605
|
+
return new SupportIntegrationResource(resource);
|
|
606
|
+
}
|
|
607
|
+
else if (resource.type === 'extractIntegration') {
|
|
608
|
+
return new ExtractIntegrationResource(resource);
|
|
609
|
+
}
|
|
610
|
+
else if (resource.type === 'mcpserverIntegration') {
|
|
611
|
+
return new McpServerIntegrationResource(resource);
|
|
612
|
+
}
|
|
613
|
+
else if (resource.type === 'twilioIntegration') {
|
|
614
|
+
return new TwilioIntegrationResource(resource);
|
|
615
|
+
}
|
|
196
616
|
else {
|
|
197
|
-
|
|
617
|
+
const _exhaustiveCheck = (resource);
|
|
618
|
+
throw new Error(`Unknown resource type: ${(_exhaustiveCheck).type}`);
|
|
198
619
|
}
|
|
199
620
|
});
|
|
200
621
|
}
|
|
622
|
+
get blueprints() {
|
|
623
|
+
return (this.resources.filter((resource) => resource instanceof BlueprintResource));
|
|
624
|
+
}
|
|
625
|
+
get blueprint() {
|
|
626
|
+
return getArrayBackedObject(this.blueprints);
|
|
627
|
+
}
|
|
201
628
|
get bots() {
|
|
202
629
|
return (this.resources.filter((resource) => resource instanceof BotResource));
|
|
203
630
|
}
|
|
@@ -210,6 +637,18 @@ export class Solution {
|
|
|
210
637
|
get dataset() {
|
|
211
638
|
return getArrayBackedObject(this.datasets);
|
|
212
639
|
}
|
|
640
|
+
get files() {
|
|
641
|
+
return (this.resources.filter((resource) => resource instanceof FileResource));
|
|
642
|
+
}
|
|
643
|
+
get file() {
|
|
644
|
+
return getArrayBackedObject(this.files);
|
|
645
|
+
}
|
|
646
|
+
get secrets() {
|
|
647
|
+
return (this.resources.filter((resource) => resource instanceof SecretResource));
|
|
648
|
+
}
|
|
649
|
+
get secret() {
|
|
650
|
+
return getArrayBackedObject(this.secrets);
|
|
651
|
+
}
|
|
213
652
|
get skillsets() {
|
|
214
653
|
return (this.resources.filter((resource) => resource instanceof SkillsetResource));
|
|
215
654
|
}
|
|
@@ -228,6 +667,78 @@ export class Solution {
|
|
|
228
667
|
get sitemapIntegration() {
|
|
229
668
|
return getArrayBackedObject(this.sitemapIntegrations);
|
|
230
669
|
}
|
|
670
|
+
get slackIntegrations() {
|
|
671
|
+
return (this.resources.filter((resource) => resource instanceof SlackIntegrationResource));
|
|
672
|
+
}
|
|
673
|
+
get slackIntegration() {
|
|
674
|
+
return getArrayBackedObject(this.slackIntegrations);
|
|
675
|
+
}
|
|
676
|
+
get discordIntegrations() {
|
|
677
|
+
return (this.resources.filter((resource) => resource instanceof DiscordIntegrationResource));
|
|
678
|
+
}
|
|
679
|
+
get discordIntegration() {
|
|
680
|
+
return getArrayBackedObject(this.discordIntegrations);
|
|
681
|
+
}
|
|
682
|
+
get telegramIntegrations() {
|
|
683
|
+
return (this.resources.filter((resource) => resource instanceof TelegramIntegrationResource));
|
|
684
|
+
}
|
|
685
|
+
get telegramIntegration() {
|
|
686
|
+
return getArrayBackedObject(this.telegramIntegrations);
|
|
687
|
+
}
|
|
688
|
+
get whatsappIntegrations() {
|
|
689
|
+
return (this.resources.filter((resource) => resource instanceof WhatsAppIntegrationResource));
|
|
690
|
+
}
|
|
691
|
+
get whatsappIntegration() {
|
|
692
|
+
return getArrayBackedObject(this.whatsappIntegrations);
|
|
693
|
+
}
|
|
694
|
+
get messengerIntegrations() {
|
|
695
|
+
return (this.resources.filter((resource) => resource instanceof MessengerIntegrationResource));
|
|
696
|
+
}
|
|
697
|
+
get messengerIntegration() {
|
|
698
|
+
return getArrayBackedObject(this.messengerIntegrations);
|
|
699
|
+
}
|
|
700
|
+
get notionIntegrations() {
|
|
701
|
+
return (this.resources.filter((resource) => resource instanceof NotionIntegrationResource));
|
|
702
|
+
}
|
|
703
|
+
get notionIntegration() {
|
|
704
|
+
return getArrayBackedObject(this.notionIntegrations);
|
|
705
|
+
}
|
|
706
|
+
get emailIntegrations() {
|
|
707
|
+
return (this.resources.filter((resource) => resource instanceof EmailIntegrationResource));
|
|
708
|
+
}
|
|
709
|
+
get emailIntegration() {
|
|
710
|
+
return getArrayBackedObject(this.emailIntegrations);
|
|
711
|
+
}
|
|
712
|
+
get triggerIntegrations() {
|
|
713
|
+
return (this.resources.filter((resource) => resource instanceof TriggerIntegrationResource));
|
|
714
|
+
}
|
|
715
|
+
get triggerIntegration() {
|
|
716
|
+
return getArrayBackedObject(this.triggerIntegrations);
|
|
717
|
+
}
|
|
718
|
+
get supportIntegrations() {
|
|
719
|
+
return (this.resources.filter((resource) => resource instanceof SupportIntegrationResource));
|
|
720
|
+
}
|
|
721
|
+
get supportIntegration() {
|
|
722
|
+
return getArrayBackedObject(this.supportIntegrations);
|
|
723
|
+
}
|
|
724
|
+
get extractIntegrations() {
|
|
725
|
+
return (this.resources.filter((resource) => resource instanceof ExtractIntegrationResource));
|
|
726
|
+
}
|
|
727
|
+
get extractIntegration() {
|
|
728
|
+
return getArrayBackedObject(this.extractIntegrations);
|
|
729
|
+
}
|
|
730
|
+
get mcpserverIntegrations() {
|
|
731
|
+
return (this.resources.filter((resource) => resource instanceof McpServerIntegrationResource));
|
|
732
|
+
}
|
|
733
|
+
get mcpserverIntegration() {
|
|
734
|
+
return getArrayBackedObject(this.mcpserverIntegrations);
|
|
735
|
+
}
|
|
736
|
+
get twilioIntegrations() {
|
|
737
|
+
return (this.resources.filter((resource) => resource instanceof TwilioIntegrationResource));
|
|
738
|
+
}
|
|
739
|
+
get twilioIntegration() {
|
|
740
|
+
return getArrayBackedObject(this.twilioIntegrations);
|
|
741
|
+
}
|
|
231
742
|
async sync() {
|
|
232
743
|
await Promise.all(this.resources.map((resource) => resource.sync()));
|
|
233
744
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chatbotkit/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.24.0",
|
|
4
4
|
"description": "ChatBotKit command line tools",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"engines": {
|
|
@@ -544,8 +544,8 @@
|
|
|
544
544
|
"js-yaml": "^4.1.0",
|
|
545
545
|
"tslib": "^2.6.2",
|
|
546
546
|
"zod": "^3.25.76",
|
|
547
|
-
"@chatbotkit/
|
|
548
|
-
"@chatbotkit/
|
|
547
|
+
"@chatbotkit/sdk": "1.24.0",
|
|
548
|
+
"@chatbotkit/agent": "1.24.0"
|
|
549
549
|
},
|
|
550
550
|
"devDependencies": {
|
|
551
551
|
"@types/js-yaml": "^4.0.9",
|