@botpress/cli 4.17.19 → 4.18.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/.turbo/turbo-build.log +9 -9
- package/dist/api/bot-body.js +15 -5
- package/dist/api/bot-body.js.map +2 -2
- package/dist/api/integration-body.d.ts +1 -1
- package/dist/api/integration-body.js +18 -6
- package/dist/api/integration-body.js.map +2 -2
- package/dist/api/interface-body.d.ts +1 -1
- package/dist/api/interface-body.js +15 -5
- package/dist/api/interface-body.js.map +2 -2
- package/dist/api/plugin-body.d.ts +1 -1
- package/dist/api/plugin-body.js +15 -5
- package/dist/api/plugin-body.js.map +2 -2
- package/dist/chat/index.js +4 -4
- package/dist/chat/index.js.map +3 -3
- package/dist/command-implementations/add-command.js +2 -6
- package/dist/command-implementations/add-command.js.map +2 -2
- package/dist/command-implementations/deploy-command.js +5 -0
- package/dist/command-implementations/deploy-command.js.map +2 -2
- package/dist/command-implementations/project-command.js +6 -2
- package/dist/command-implementations/project-command.js.map +2 -2
- package/dist/linter/rulesets/integration.ruleset.js +2 -2
- package/dist/linter/rulesets/integration.ruleset.js.map +1 -1
- package/dist/utils/schema-utils.d.ts +4 -1
- package/dist/utils/schema-utils.js +7 -2
- package/dist/utils/schema-utils.js.map +2 -2
- package/package.json +3 -3
- package/templates/empty-bot/package.json +1 -1
- package/templates/empty-integration/package.json +1 -1
- package/templates/empty-plugin/package.json +1 -1
- package/templates/hello-world/package.json +1 -1
- package/templates/webhook-message/package.json +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
|
|
2
|
-
> @botpress/cli@4.
|
|
2
|
+
> @botpress/cli@4.18.0 build /home/runner/work/botpress/botpress/packages/cli
|
|
3
3
|
> pnpm run build:types && pnpm run bundle && pnpm run template:gen
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @botpress/cli@4.
|
|
6
|
+
> @botpress/cli@4.18.0 build:types /home/runner/work/botpress/botpress/packages/cli
|
|
7
7
|
> tsc -p ./tsconfig.build.json
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @botpress/cli@4.
|
|
10
|
+
> @botpress/cli@4.18.0 bundle /home/runner/work/botpress/botpress/packages/cli
|
|
11
11
|
> ts-node -T build.ts
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
> @botpress/cli@4.
|
|
14
|
+
> @botpress/cli@4.18.0 template:gen /home/runner/work/botpress/botpress/packages/cli
|
|
15
15
|
> pnpm -r --stream -F @bp-templates/* exec bp gen
|
|
16
16
|
|
|
17
|
-
🤖 Botpress CLI v4.
|
|
18
|
-
🤖 Botpress CLI v4.
|
|
19
|
-
🤖 Botpress CLI v4.
|
|
20
|
-
🤖 Botpress CLI v4.
|
|
17
|
+
🤖 Botpress CLI v4.18.0
|
|
18
|
+
🤖 Botpress CLI v4.18.0
|
|
19
|
+
🤖 Botpress CLI v4.18.0
|
|
20
|
+
🤖 Botpress CLI v4.18.0
|
|
21
21
|
○ Generating typings for integration hello-world...
|
|
22
22
|
○ Generating typings for bot...
|
|
23
23
|
✓ Typings available at .botpress
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
○ Generating typings for plugin empty-plugin...
|
|
31
31
|
✓ Typings available at .botpress
|
|
32
32
|
|
|
33
|
-
🤖 Botpress CLI v4.
|
|
33
|
+
🤖 Botpress CLI v4.18.0
|
|
34
34
|
○ Generating typings for integration webhook-message...
|
|
35
35
|
✓ Typings available at .botpress
|
|
36
36
|
|
package/dist/api/bot-body.js
CHANGED
|
@@ -42,25 +42,35 @@ const prepareCreateBotBody = async (bot) => ({
|
|
|
42
42
|
...action,
|
|
43
43
|
input: {
|
|
44
44
|
...action.input,
|
|
45
|
-
schema: await utils.schema.mapZodToJsonSchema(action.input
|
|
45
|
+
schema: await utils.schema.mapZodToJsonSchema(action.input, {
|
|
46
|
+
useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer
|
|
47
|
+
})
|
|
46
48
|
},
|
|
47
49
|
output: {
|
|
48
50
|
...action.output,
|
|
49
|
-
schema: await utils.schema.mapZodToJsonSchema(action.output
|
|
51
|
+
schema: await utils.schema.mapZodToJsonSchema(action.output, {
|
|
52
|
+
useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer
|
|
53
|
+
})
|
|
50
54
|
}
|
|
51
55
|
})) : void 0,
|
|
52
56
|
configuration: bot.configuration ? {
|
|
53
57
|
...bot.configuration,
|
|
54
|
-
schema: await utils.schema.mapZodToJsonSchema(bot.configuration
|
|
58
|
+
schema: await utils.schema.mapZodToJsonSchema(bot.configuration, {
|
|
59
|
+
useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer
|
|
60
|
+
})
|
|
55
61
|
} : void 0,
|
|
56
62
|
events: bot.events ? await utils.records.mapValuesAsync(bot.events, async (event) => ({
|
|
57
63
|
...event,
|
|
58
|
-
schema: await utils.schema.mapZodToJsonSchema(event
|
|
64
|
+
schema: await utils.schema.mapZodToJsonSchema(event, {
|
|
65
|
+
useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer
|
|
66
|
+
})
|
|
59
67
|
})) : void 0,
|
|
60
68
|
states: bot.states ? utils.records.filterValues(
|
|
61
69
|
await utils.records.mapValuesAsync(bot.states, async (state) => ({
|
|
62
70
|
...state,
|
|
63
|
-
schema: await utils.schema.mapZodToJsonSchema(state
|
|
71
|
+
schema: await utils.schema.mapZodToJsonSchema(state, {
|
|
72
|
+
useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer
|
|
73
|
+
})
|
|
64
74
|
})),
|
|
65
75
|
({ type }) => type !== "workflow"
|
|
66
76
|
) : void 0,
|
package/dist/api/bot-body.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/api/bot-body.ts"],
|
|
4
|
-
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreateBotBody = async (bot: sdk.BotDefinition): Promise<types.CreateBotRequestBody> => ({\n user: bot.user,\n conversation: bot.conversation,\n message: bot.message,\n recurringEvents: bot.recurringEvents,\n actions: bot.actions\n ? await utils.records.mapValuesAsync(bot.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output),\n },\n }))\n : undefined,\n configuration: bot.configuration\n ? {\n ...bot.configuration,\n schema: await utils.schema.mapZodToJsonSchema(bot.configuration),\n }\n : undefined,\n events: bot.events\n ? await utils.records.mapValuesAsync(bot.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event),\n }))\n : undefined,\n states: bot.states\n ? (utils.records.filterValues(\n await utils.records.mapValuesAsync(bot.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state),\n })),\n ({ type }) => type !== 'workflow'\n ) as types.CreateBotRequestBody['states'])\n : undefined,\n tags: bot.attributes,\n})\n\nexport const prepareUpdateBotBody = (\n localBot: types.UpdateBotRequestBody,\n remoteBot: client.Bot\n): types.UpdateBotRequestBody => ({\n ...localBot,\n states: utils.records.setNullOnMissingValues(localBot.states, remoteBot.states),\n recurringEvents: utils.records.setNullOnMissingValues(localBot.recurringEvents, remoteBot.recurringEvents),\n events: utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localBot.events, remoteBot.events),\n remoteItems: remoteBot.events,\n }),\n actions: utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localBot.actions, remoteBot.actions),\n remoteItems: remoteBot.actions,\n }),\n user: {\n ...localBot.user,\n tags: utils.records.setNullOnMissingValues(localBot.user?.tags, remoteBot.user?.tags),\n },\n conversation: {\n ...localBot.conversation,\n tags: utils.records.setNullOnMissingValues(localBot.conversation?.tags, remoteBot.conversation?.tags),\n },\n message: {\n ...localBot.message,\n tags: utils.records.setNullOnMissingValues(localBot.message?.tags, remoteBot.message?.tags),\n },\n integrations: utils.records.setNullOnMissingValues(localBot.integrations, remoteBot.integrations),\n plugins: utils.records.setNullOnMissingValues(localBot.plugins, remoteBot.plugins),\n tags: localBot.tags, // TODO: allow removing bot tags (aka attributes) by setting to null\n})\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAGhB,MAAM,uBAAuB,OAAO,SAAiE;AAAA,EAC1G,MAAM,IAAI;AAAA,EACV,cAAc,IAAI;AAAA,EAClB,SAAS,IAAI;AAAA,EACb,iBAAiB,IAAI;AAAA,EACrB,SAAS,IAAI,UACT,MAAM,MAAM,QAAQ,eAAe,IAAI,SAAS,OAAO,YAAY;AAAA,IACjE,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,
|
|
4
|
+
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreateBotBody = async (bot: sdk.BotDefinition): Promise<types.CreateBotRequestBody> => ({\n user: bot.user,\n conversation: bot.conversation,\n message: bot.message,\n recurringEvents: bot.recurringEvents,\n actions: bot.actions\n ? await utils.records.mapValuesAsync(bot.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input, {\n useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer,\n }),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output, {\n useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer,\n }),\n },\n }))\n : undefined,\n configuration: bot.configuration\n ? {\n ...bot.configuration,\n schema: await utils.schema.mapZodToJsonSchema(bot.configuration, {\n useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer,\n }),\n }\n : undefined,\n events: bot.events\n ? await utils.records.mapValuesAsync(bot.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event, {\n useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : undefined,\n states: bot.states\n ? (utils.records.filterValues(\n await utils.records.mapValuesAsync(bot.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state, {\n useLegacyZuiTransformer: bot.__advanced?.useLegacyZuiTransformer,\n }),\n })),\n ({ type }) => type !== 'workflow'\n ) as types.CreateBotRequestBody['states'])\n : undefined,\n tags: bot.attributes,\n})\n\nexport const prepareUpdateBotBody = (\n localBot: types.UpdateBotRequestBody,\n remoteBot: client.Bot\n): types.UpdateBotRequestBody => ({\n ...localBot,\n states: utils.records.setNullOnMissingValues(localBot.states, remoteBot.states),\n recurringEvents: utils.records.setNullOnMissingValues(localBot.recurringEvents, remoteBot.recurringEvents),\n events: utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localBot.events, remoteBot.events),\n remoteItems: remoteBot.events,\n }),\n actions: utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localBot.actions, remoteBot.actions),\n remoteItems: remoteBot.actions,\n }),\n user: {\n ...localBot.user,\n tags: utils.records.setNullOnMissingValues(localBot.user?.tags, remoteBot.user?.tags),\n },\n conversation: {\n ...localBot.conversation,\n tags: utils.records.setNullOnMissingValues(localBot.conversation?.tags, remoteBot.conversation?.tags),\n },\n message: {\n ...localBot.message,\n tags: utils.records.setNullOnMissingValues(localBot.message?.tags, remoteBot.message?.tags),\n },\n integrations: utils.records.setNullOnMissingValues(localBot.integrations, remoteBot.integrations),\n plugins: utils.records.setNullOnMissingValues(localBot.plugins, remoteBot.plugins),\n tags: localBot.tags, // TODO: allow removing bot tags (aka attributes) by setting to null\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as client from '@botpress/client';
|
|
2
2
|
import * as sdk from '@botpress/sdk';
|
|
3
3
|
import * as types from './types';
|
|
4
|
-
export declare const prepareCreateIntegrationBody: (integration: sdk.IntegrationDefinition
|
|
4
|
+
export declare const prepareCreateIntegrationBody: (integration: sdk.IntegrationDefinition) => Promise<types.CreateIntegrationRequestBody>;
|
|
5
5
|
export declare const prepareUpdateIntegrationBody: (localIntegration: types.UpdateIntegrationRequestBody, remoteIntegration: client.Integration) => types.UpdateIntegrationRequestBody;
|
|
@@ -41,33 +41,45 @@ const prepareCreateIntegrationBody = async (integration) => ({
|
|
|
41
41
|
user: integration.user,
|
|
42
42
|
events: integration.events ? await utils.records.mapValuesAsync(integration.events, async (event) => ({
|
|
43
43
|
...event,
|
|
44
|
-
schema: await utils.schema.mapZodToJsonSchema(event
|
|
44
|
+
schema: await utils.schema.mapZodToJsonSchema(event, {
|
|
45
|
+
useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer
|
|
46
|
+
})
|
|
45
47
|
})) : void 0,
|
|
46
48
|
actions: integration.actions ? await utils.records.mapValuesAsync(integration.actions, async (action) => ({
|
|
47
49
|
...action,
|
|
48
50
|
input: {
|
|
49
51
|
...action.input,
|
|
50
|
-
schema: await utils.schema.mapZodToJsonSchema(action.input
|
|
52
|
+
schema: await utils.schema.mapZodToJsonSchema(action.input, {
|
|
53
|
+
useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer
|
|
54
|
+
})
|
|
51
55
|
},
|
|
52
56
|
output: {
|
|
53
57
|
...action.output,
|
|
54
|
-
schema: await utils.schema.mapZodToJsonSchema(action.output
|
|
58
|
+
schema: await utils.schema.mapZodToJsonSchema(action.output, {
|
|
59
|
+
useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer
|
|
60
|
+
})
|
|
55
61
|
}
|
|
56
62
|
})) : void 0,
|
|
57
63
|
channels: integration.channels ? await utils.records.mapValuesAsync(integration.channels, async (channel) => ({
|
|
58
64
|
...channel,
|
|
59
65
|
messages: await utils.records.mapValuesAsync(channel.messages, async (message) => ({
|
|
60
66
|
...message,
|
|
61
|
-
schema: await utils.schema.mapZodToJsonSchema(message
|
|
67
|
+
schema: await utils.schema.mapZodToJsonSchema(message, {
|
|
68
|
+
useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer
|
|
69
|
+
})
|
|
62
70
|
}))
|
|
63
71
|
})) : void 0,
|
|
64
72
|
states: integration.states ? await utils.records.mapValuesAsync(integration.states, async (state) => ({
|
|
65
73
|
...state,
|
|
66
|
-
schema: await utils.schema.mapZodToJsonSchema(state
|
|
74
|
+
schema: await utils.schema.mapZodToJsonSchema(state, {
|
|
75
|
+
useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer
|
|
76
|
+
})
|
|
67
77
|
})) : void 0,
|
|
68
78
|
entities: integration.entities ? await utils.records.mapValuesAsync(integration.entities, async (entity) => ({
|
|
69
79
|
...entity,
|
|
70
|
-
schema: await utils.schema.mapZodToJsonSchema(entity
|
|
80
|
+
schema: await utils.schema.mapZodToJsonSchema(entity, {
|
|
81
|
+
useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer
|
|
82
|
+
})
|
|
71
83
|
})) : void 0,
|
|
72
84
|
attributes: integration.attributes,
|
|
73
85
|
extraOperations: "__advanced" in integration ? integration.__advanced?.extraOperations : void 0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/api/integration-body.ts"],
|
|
4
|
-
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreateIntegrationBody = async (\n integration: sdk.IntegrationDefinition
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAGhB,MAAM,+BAA+B,OAC1C,iBACiD;AAAA,EACjD,MAAM,YAAY;AAAA,EAClB,SAAS,YAAY;AAAA,EACrB,OAAO,WAAW,cAAc,YAAY,QAAQ;AAAA,EACpD,aAAa,iBAAiB,cAAc,YAAY,cAAc;AAAA,EACtE,MAAM,YAAY;AAAA,EAClB,QAAQ,YAAY,SAChB,MAAM,MAAM,QAAQ,eAAe,YAAY,QAAQ,OAAO,WAAW;AAAA,IACvE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,
|
|
4
|
+
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreateIntegrationBody = async (\n integration: sdk.IntegrationDefinition\n): Promise<types.CreateIntegrationRequestBody> => ({\n name: integration.name,\n version: integration.version,\n title: 'title' in integration ? integration.title : undefined,\n description: 'description' in integration ? integration.description : undefined,\n user: integration.user,\n events: integration.events\n ? await utils.records.mapValuesAsync(integration.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event, {\n useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : undefined,\n actions: integration.actions\n ? await utils.records.mapValuesAsync(integration.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input, {\n useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer,\n }),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output, {\n useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer,\n }),\n },\n }))\n : undefined,\n channels: integration.channels\n ? await utils.records.mapValuesAsync(integration.channels, async (channel) => ({\n ...channel,\n messages: await utils.records.mapValuesAsync(channel.messages, async (message) => ({\n ...message,\n schema: await utils.schema.mapZodToJsonSchema(message, {\n useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer,\n }),\n })),\n }))\n : undefined,\n states: integration.states\n ? await utils.records.mapValuesAsync(integration.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state, {\n useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : undefined,\n entities: integration.entities\n ? await utils.records.mapValuesAsync(integration.entities, async (entity) => ({\n ...entity,\n schema: await utils.schema.mapZodToJsonSchema(entity, {\n useLegacyZuiTransformer: integration.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : undefined,\n attributes: integration.attributes,\n extraOperations: '__advanced' in integration ? integration.__advanced?.extraOperations : undefined,\n})\n\ntype UpdateIntegrationChannelsBody = NonNullable<types.UpdateIntegrationRequestBody['channels']>\ntype UpdateIntegrationChannelBody = UpdateIntegrationChannelsBody[string]\ntype Channels = client.Integration['channels']\ntype Channel = client.Integration['channels'][string]\nexport const prepareUpdateIntegrationBody = (\n localIntegration: types.UpdateIntegrationRequestBody,\n remoteIntegration: client.Integration\n): types.UpdateIntegrationRequestBody => {\n const actions = utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localIntegration.actions, remoteIntegration.actions),\n remoteItems: remoteIntegration.actions,\n })\n const events = utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localIntegration.events, remoteIntegration.events),\n remoteItems: remoteIntegration.events,\n })\n const states = utils.records.setNullOnMissingValues(localIntegration.states, remoteIntegration.states)\n const entities = utils.records.setNullOnMissingValues(localIntegration.entities, remoteIntegration.entities)\n const user = {\n ...localIntegration.user,\n tags: utils.records.setNullOnMissingValues(localIntegration.user?.tags, remoteIntegration.user?.tags),\n }\n\n const channels = _prepareUpdateIntegrationChannelsBody(localIntegration.channels ?? {}, remoteIntegration.channels)\n\n const interfaces = utils.records.setNullOnMissingValues(localIntegration.interfaces, remoteIntegration.interfaces)\n\n const configurations = utils.records.setNullOnMissingValues(\n localIntegration.configurations,\n remoteIntegration.configurations\n )\n\n const readme = localIntegration.readme\n const icon = localIntegration.icon\n\n const attributes = utils.records.setNullOnMissingValues(localIntegration.attributes, remoteIntegration.attributes)\n\n const extraOperations = localIntegration.extraOperations\n return {\n ..._maybeRemoveVrlScripts(localIntegration, remoteIntegration),\n actions,\n events,\n states,\n entities,\n user,\n channels,\n interfaces,\n configurations,\n readme,\n icon,\n attributes,\n extraOperations,\n }\n}\n\nconst _maybeRemoveVrlScripts = (\n localIntegration: types.UpdateIntegrationRequestBody,\n remoteIntegration: client.Integration\n): types.UpdateIntegrationRequestBody => {\n const newIntegration = structuredClone(localIntegration)\n\n if (\n remoteIntegration.configuration?.identifier?.linkTemplateScript &&\n !localIntegration.configuration?.identifier?.linkTemplateScript\n ) {\n newIntegration.configuration ??= remoteIntegration.configuration\n newIntegration.configuration.identifier ??= remoteIntegration.configuration.identifier\n newIntegration.configuration.identifier.linkTemplateScript = null\n newIntegration.configuration.identifier.required = false\n }\n\n if (remoteIntegration.identifier.extractScript && !localIntegration.identifier?.extractScript) {\n newIntegration.identifier ??= remoteIntegration.identifier\n newIntegration.identifier.extractScript = null\n }\n\n if (remoteIntegration.identifier.fallbackHandlerScript && !localIntegration.identifier?.fallbackHandlerScript) {\n newIntegration.identifier ??= remoteIntegration.identifier\n newIntegration.identifier.fallbackHandlerScript = null\n }\n\n for (const configName of Object.keys(localIntegration.configurations ?? {})) {\n if (\n remoteIntegration.configurations[configName]?.identifier.linkTemplateScript &&\n !localIntegration.configurations?.[configName]?.identifier?.linkTemplateScript\n ) {\n newIntegration.configurations ??= remoteIntegration.configurations\n newIntegration.configurations[configName] ??= remoteIntegration.configurations[configName]\n newIntegration.configurations[configName].identifier ??= remoteIntegration.configurations[configName].identifier\n newIntegration.configurations[configName].identifier.linkTemplateScript = null\n newIntegration.configurations[configName].identifier.required = false\n }\n }\n\n return newIntegration\n}\n\nconst _prepareUpdateIntegrationChannelsBody = (\n localChannels: UpdateIntegrationChannelsBody,\n remoteChannels: Channels\n): UpdateIntegrationChannelsBody => {\n const channelBody: UpdateIntegrationChannelsBody = {}\n\n const zipped = utils.records.zipObjects(localChannels, remoteChannels)\n for (const [channelName, [localChannel, remoteChannel]] of Object.entries(zipped)) {\n if (localChannel && remoteChannel) {\n // channel has to be updated\n channelBody[channelName] = _prepareUpdateIntegrationChannelBody(localChannel, remoteChannel)\n } else if (localChannel) {\n // channel has to be created\n channelBody[channelName] = localChannel\n continue\n } else if (remoteChannel) {\n // channel has to be deleted\n channelBody[channelName] = null\n continue\n }\n }\n\n return channelBody\n}\n\nconst _prepareUpdateIntegrationChannelBody = (\n localChannel: UpdateIntegrationChannelBody,\n remoteChannel: Channel\n): UpdateIntegrationChannelBody => ({\n ...localChannel,\n messages: utils.records.setNullOnMissingValues(localChannel?.messages, remoteChannel.messages),\n message: {\n ...localChannel?.message,\n tags: utils.records.setNullOnMissingValues(localChannel?.message?.tags, remoteChannel.message.tags),\n },\n conversation: {\n ...localChannel?.conversation,\n tags: utils.records.setNullOnMissingValues(localChannel?.conversation?.tags, remoteChannel.conversation.tags),\n },\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as client from '@botpress/client';
|
|
2
2
|
import * as sdk from '@botpress/sdk';
|
|
3
3
|
import * as types from './types';
|
|
4
|
-
export declare const prepareCreateInterfaceBody: (intrface: sdk.InterfaceDefinition
|
|
4
|
+
export declare const prepareCreateInterfaceBody: (intrface: sdk.InterfaceDefinition) => Promise<types.CreateInterfaceRequestBody>;
|
|
5
5
|
export declare const prepareUpdateInterfaceBody: (localInterface: types.CreateInterfaceRequestBody & {
|
|
6
6
|
id: string;
|
|
7
7
|
}, remoteInterface: client.Interface) => types.UpdateInterfaceRequestBody;
|
|
@@ -40,28 +40,38 @@ const prepareCreateInterfaceBody = async (intrface) => ({
|
|
|
40
40
|
description: "description" in intrface ? intrface.description : void 0,
|
|
41
41
|
entities: intrface.entities ? await utils.records.mapValuesAsync(intrface.entities, async (entity) => ({
|
|
42
42
|
...entity,
|
|
43
|
-
schema: await utils.schema.mapZodToJsonSchema(entity
|
|
43
|
+
schema: await utils.schema.mapZodToJsonSchema(entity, {
|
|
44
|
+
useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer
|
|
45
|
+
})
|
|
44
46
|
})) : {},
|
|
45
47
|
events: intrface.events ? await utils.records.mapValuesAsync(intrface.events, async (event) => ({
|
|
46
48
|
...event,
|
|
47
|
-
schema: await utils.schema.mapZodToJsonSchema(event
|
|
49
|
+
schema: await utils.schema.mapZodToJsonSchema(event, {
|
|
50
|
+
useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer
|
|
51
|
+
})
|
|
48
52
|
})) : {},
|
|
49
53
|
actions: intrface.actions ? await utils.records.mapValuesAsync(intrface.actions, async (action) => ({
|
|
50
54
|
...action,
|
|
51
55
|
input: {
|
|
52
56
|
...action.input,
|
|
53
|
-
schema: await utils.schema.mapZodToJsonSchema(action.input
|
|
57
|
+
schema: await utils.schema.mapZodToJsonSchema(action.input, {
|
|
58
|
+
useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer
|
|
59
|
+
})
|
|
54
60
|
},
|
|
55
61
|
output: {
|
|
56
62
|
...action.output,
|
|
57
|
-
schema: await utils.schema.mapZodToJsonSchema(action.output
|
|
63
|
+
schema: await utils.schema.mapZodToJsonSchema(action.output, {
|
|
64
|
+
useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer
|
|
65
|
+
})
|
|
58
66
|
}
|
|
59
67
|
})) : {},
|
|
60
68
|
channels: intrface.channels ? await utils.records.mapValuesAsync(intrface.channels, async (channel) => ({
|
|
61
69
|
...channel,
|
|
62
70
|
messages: await utils.records.mapValuesAsync(channel.messages, async (message) => ({
|
|
63
71
|
...message,
|
|
64
|
-
schema: await utils.schema.mapZodToJsonSchema(message
|
|
72
|
+
schema: await utils.schema.mapZodToJsonSchema(message, {
|
|
73
|
+
useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer
|
|
74
|
+
})
|
|
65
75
|
}))
|
|
66
76
|
})) : {},
|
|
67
77
|
attributes: intrface.attributes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/api/interface-body.ts"],
|
|
4
|
-
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreateInterfaceBody = async (\n intrface: sdk.InterfaceDefinition
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAGhB,MAAM,6BAA6B,OACxC,cAC+C;AAAA,EAC/C,MAAM,SAAS;AAAA,EACf,SAAS,SAAS;AAAA,EAClB,OAAO,WAAW,WAAW,SAAS,QAAQ;AAAA,EAC9C,aAAa,iBAAiB,WAAW,SAAS,cAAc;AAAA,EAChE,UAAU,SAAS,WACf,MAAM,MAAM,QAAQ,eAAe,SAAS,UAAU,OAAO,YAAY;AAAA,IACvE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,
|
|
4
|
+
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreateInterfaceBody = async (\n intrface: sdk.InterfaceDefinition\n): Promise<types.CreateInterfaceRequestBody> => ({\n name: intrface.name,\n version: intrface.version,\n title: 'title' in intrface ? intrface.title : undefined,\n description: 'description' in intrface ? intrface.description : undefined,\n entities: intrface.entities\n ? await utils.records.mapValuesAsync(intrface.entities, async (entity) => ({\n ...entity,\n schema: await utils.schema.mapZodToJsonSchema(entity, {\n useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : {},\n events: intrface.events\n ? await utils.records.mapValuesAsync(intrface.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event, {\n useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : {},\n actions: intrface.actions\n ? await utils.records.mapValuesAsync(intrface.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input, {\n useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer,\n }),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output, {\n useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer,\n }),\n },\n }))\n : {},\n channels: intrface.channels\n ? await utils.records.mapValuesAsync(intrface.channels, async (channel) => ({\n ...channel,\n messages: await utils.records.mapValuesAsync(channel.messages, async (message) => ({\n ...message,\n schema: await utils.schema.mapZodToJsonSchema(message, {\n useLegacyZuiTransformer: intrface.__advanced?.useLegacyZuiTransformer,\n }),\n })),\n }))\n : {},\n attributes: intrface.attributes,\n})\n\nexport const prepareUpdateInterfaceBody = (\n localInterface: types.CreateInterfaceRequestBody & { id: string },\n remoteInterface: client.Interface\n): types.UpdateInterfaceRequestBody => {\n const actions = utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localInterface.actions, remoteInterface.actions),\n remoteItems: remoteInterface.actions,\n })\n const events = utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localInterface.events, remoteInterface.events),\n remoteItems: remoteInterface.events,\n })\n const entities = utils.records.setNullOnMissingValues(localInterface.entities, remoteInterface.entities)\n\n const currentChannels: types.UpdateInterfaceRequestBody['channels'] = localInterface.channels\n ? utils.records.mapValues(localInterface.channels, (channel, channelName) => ({\n ...channel,\n messages: utils.records.setNullOnMissingValues(\n channel?.messages,\n remoteInterface.channels[channelName]?.messages\n ),\n }))\n : undefined\n\n const channels = utils.records.setNullOnMissingValues(currentChannels, remoteInterface.channels)\n\n const attributes = utils.records.setNullOnMissingValues(localInterface.attributes, remoteInterface.attributes)\n\n return {\n ...localInterface,\n entities,\n actions,\n events,\n channels,\n attributes,\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as client from '@botpress/client';
|
|
2
2
|
import * as sdk from '@botpress/sdk';
|
|
3
3
|
import * as types from './types';
|
|
4
|
-
export declare const prepareCreatePluginBody: (plugin: sdk.PluginDefinition
|
|
4
|
+
export declare const prepareCreatePluginBody: (plugin: sdk.PluginDefinition) => Promise<types.CreatePluginRequestBody>;
|
|
5
5
|
export declare const prepareUpdatePluginBody: (localPlugin: types.UpdatePluginRequestBody, remotePlugin: client.Plugin) => types.UpdatePluginRequestBody;
|
package/dist/api/plugin-body.js
CHANGED
|
@@ -46,27 +46,37 @@ const prepareCreatePluginBody = async (plugin) => ({
|
|
|
46
46
|
},
|
|
47
47
|
configuration: plugin.configuration ? {
|
|
48
48
|
...plugin.configuration,
|
|
49
|
-
schema: await utils.schema.mapZodToJsonSchema(plugin.configuration
|
|
49
|
+
schema: await utils.schema.mapZodToJsonSchema(plugin.configuration, {
|
|
50
|
+
useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer
|
|
51
|
+
})
|
|
50
52
|
} : void 0,
|
|
51
53
|
events: plugin.events ? await utils.records.mapValuesAsync(plugin.events, async (event) => ({
|
|
52
54
|
...event,
|
|
53
|
-
schema: await utils.schema.mapZodToJsonSchema(event
|
|
55
|
+
schema: await utils.schema.mapZodToJsonSchema(event, {
|
|
56
|
+
useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer
|
|
57
|
+
})
|
|
54
58
|
})) : void 0,
|
|
55
59
|
actions: plugin.actions ? await utils.records.mapValuesAsync(plugin.actions, async (action) => ({
|
|
56
60
|
...action,
|
|
57
61
|
input: {
|
|
58
62
|
...action.input,
|
|
59
|
-
schema: await utils.schema.mapZodToJsonSchema(action.input
|
|
63
|
+
schema: await utils.schema.mapZodToJsonSchema(action.input, {
|
|
64
|
+
useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer
|
|
65
|
+
})
|
|
60
66
|
},
|
|
61
67
|
output: {
|
|
62
68
|
...action.output,
|
|
63
|
-
schema: await utils.schema.mapZodToJsonSchema(action.output
|
|
69
|
+
schema: await utils.schema.mapZodToJsonSchema(action.output, {
|
|
70
|
+
useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer
|
|
71
|
+
})
|
|
64
72
|
}
|
|
65
73
|
})) : void 0,
|
|
66
74
|
states: plugin.states ? utils.records.filterValues(
|
|
67
75
|
await utils.records.mapValuesAsync(plugin.states, async (state) => ({
|
|
68
76
|
...state,
|
|
69
|
-
schema: await utils.schema.mapZodToJsonSchema(state
|
|
77
|
+
schema: await utils.schema.mapZodToJsonSchema(state, {
|
|
78
|
+
useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer
|
|
79
|
+
})
|
|
70
80
|
})),
|
|
71
81
|
({ type }) => type !== "workflow"
|
|
72
82
|
) : void 0,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/api/plugin-body.ts"],
|
|
4
|
-
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreatePluginBody = async (\n plugin: sdk.PluginDefinition
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAGhB,MAAM,0BAA0B,OACrC,YAC4C;AAAA,EAC5C,MAAM,OAAO;AAAA,EACb,SAAS,OAAO;AAAA,EAChB,OAAO,WAAW,SAAS,OAAO,QAAQ;AAAA,EAC1C,aAAa,iBAAiB,SAAS,OAAO,cAAc;AAAA,EAC5D,MAAM;AAAA,IACJ,MAAM,OAAO,MAAM,QAAQ,CAAC;AAAA,EAC9B;AAAA,EACA,cAAc;AAAA,IACZ,MAAM,OAAO,cAAc,QAAQ,CAAC;AAAA,EACtC;AAAA,EACA,eAAe,OAAO,gBAClB;AAAA,IACE,GAAG,OAAO;AAAA,IACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,
|
|
4
|
+
"sourcesContent": ["import * as client from '@botpress/client'\nimport * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\nimport * as types from './types'\n\nexport const prepareCreatePluginBody = async (\n plugin: sdk.PluginDefinition\n): Promise<types.CreatePluginRequestBody> => ({\n name: plugin.name,\n version: plugin.version,\n title: 'title' in plugin ? plugin.title : undefined,\n description: 'description' in plugin ? plugin.description : undefined,\n user: {\n tags: plugin.user?.tags ?? {},\n },\n conversation: {\n tags: plugin.conversation?.tags ?? {},\n },\n configuration: plugin.configuration\n ? {\n ...plugin.configuration,\n schema: await utils.schema.mapZodToJsonSchema(plugin.configuration, {\n useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer,\n }),\n }\n : undefined,\n events: plugin.events\n ? await utils.records.mapValuesAsync(plugin.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event, {\n useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer,\n }),\n }))\n : undefined,\n actions: plugin.actions\n ? await utils.records.mapValuesAsync(plugin.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input, {\n useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer,\n }),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output, {\n useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer,\n }),\n },\n }))\n : undefined,\n states: plugin.states\n ? (utils.records.filterValues(\n await utils.records.mapValuesAsync(plugin.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state, {\n useLegacyZuiTransformer: plugin.__advanced?.useLegacyZuiTransformer,\n }),\n })),\n ({ type }) => type !== 'workflow'\n ) as types.CreatePluginRequestBody['states'])\n : undefined,\n attributes: plugin.attributes,\n})\n\nexport const prepareUpdatePluginBody = (\n localPlugin: types.UpdatePluginRequestBody,\n remotePlugin: client.Plugin\n): types.UpdatePluginRequestBody => {\n const actions = utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localPlugin.actions, remotePlugin.actions),\n remoteItems: remotePlugin.actions,\n })\n const events = utils.attributes.prepareAttributeUpdateBody({\n localItems: utils.records.setNullOnMissingValues(localPlugin.events, remotePlugin.events),\n remoteItems: remotePlugin.events,\n })\n const states = utils.records.setNullOnMissingValues(localPlugin.states, remotePlugin.states)\n\n const attributes = utils.records.setNullOnMissingValues(localPlugin.attributes, remotePlugin.attributes)\n\n const dependencies: types.UpdatePluginRequestBody['dependencies'] = {\n integrations: utils.records.setNullOnMissingValues(\n localPlugin.dependencies?.integrations,\n remotePlugin.dependencies?.integrations\n ),\n interfaces: utils.records.setNullOnMissingValues(\n localPlugin.dependencies?.interfaces,\n remotePlugin.dependencies?.interfaces\n ),\n }\n\n return {\n ...localPlugin,\n actions,\n events,\n states,\n user: localPlugin.user, // TODO: allow deleting user tags with null\n attributes,\n dependencies,\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/chat/index.js
CHANGED
|
@@ -31,7 +31,7 @@ __export(chat_exports, {
|
|
|
31
31
|
Chat: () => Chat
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(chat_exports);
|
|
34
|
-
var
|
|
34
|
+
var import_chalk = __toESM(require("chalk"));
|
|
35
35
|
var readline = __toESM(require("readline"));
|
|
36
36
|
var uuid = __toESM(require("uuid"));
|
|
37
37
|
var utils = __toESM(require("../utils"));
|
|
@@ -145,7 +145,7 @@ class Chat {
|
|
|
145
145
|
for (const message of this._state.messages) {
|
|
146
146
|
const prefix = USER_ICONS[message.source];
|
|
147
147
|
const text = this._messageToText(message);
|
|
148
|
-
const coloredText = message.source === "bot" ? text :
|
|
148
|
+
const coloredText = message.source === "bot" ? text : import_chalk.default.gray(text);
|
|
149
149
|
process.stdout.write(`${prefix} ${coloredText}
|
|
150
150
|
`);
|
|
151
151
|
}
|
|
@@ -153,8 +153,8 @@ class Chat {
|
|
|
153
153
|
this._state.keyboard.prompt(true);
|
|
154
154
|
};
|
|
155
155
|
_printHeader = () => {
|
|
156
|
-
process.stdout.write(
|
|
157
|
-
process.stdout.write(
|
|
156
|
+
process.stdout.write(import_chalk.default.bold("Botpress Chat\n"));
|
|
157
|
+
process.stdout.write(import_chalk.default.gray('Type "exit" or press ESC key to quit\n'));
|
|
158
158
|
};
|
|
159
159
|
_switchAlternateScreenBuffer = () => {
|
|
160
160
|
process.stdout.write("\x1B[?1049h");
|
package/dist/chat/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/chat/index.ts"],
|
|
4
|
-
"sourcesContent": ["import * as chat from '@botpress/chat'\nimport
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import * as chat from '@botpress/chat'\nimport chalk from 'chalk'\nimport * as readline from 'readline'\nimport * as uuid from 'uuid'\nimport * as utils from '../utils'\n\ntype MessageSource = 'myself' | 'bot' | 'other'\ntype ChatMessage = chat.Message & { source: MessageSource }\ntype ChatState =\n | {\n status: 'stopped'\n }\n | {\n status: 'running'\n messages: ChatMessage[]\n connection: chat.SignalListener\n keyboard: readline.Interface\n }\n\nconst USER_ICONS: Record<MessageSource, string> = {\n myself: '\uD83D\uDC64',\n bot: '\uD83E\uDD16',\n other: '\uD83D\uDC65',\n}\n\nconst MESSAGE_ICONS: Record<chat.Message['payload']['type'], string> = {\n audio: '\uD83C\uDFB5',\n card: '\uD83C\uDCCF',\n carousel: '\uD83C\uDFA0',\n choice: '\uD83D\uDD3D',\n dropdown: '\uD83D\uDD3D',\n file: '\uD83D\uDCC1',\n image: '\uD83C\uDF05',\n location: '\uD83D\uDCCD',\n text: '',\n video: '\uD83C\uDFA5',\n markdown: '',\n bloc: '\uD83E\uDDF1',\n}\n\nconst EXIT_KEYWORDS = ['exit', '.exit']\n\nexport type ChatProps = {\n client: chat.AuthenticatedClient\n conversationId: string\n}\n\nexport class Chat {\n private _events = new utils.emitter.EventEmitter<{ state: ChatState }>()\n private _state: ChatState = { status: 'stopped' }\n\n public static launch(props: ChatProps): Chat {\n const instance = new Chat(props)\n void instance._run()\n return instance\n }\n\n private constructor(private _props: ChatProps) {}\n\n private async _run() {\n this._switchAlternateScreenBuffer()\n this._events.on('state', this._renderMessages)\n\n const connection = await this._props.client.listenConversation({ id: this._props.conversationId })\n const keyboard = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n })\n\n connection.on('message_created', (m) => void this._onMessageReceived(m))\n keyboard.on('line', (l) => void this._onKeyboardInput(l))\n process.stdin.on('keypress', (_, key) => {\n if (key.name === 'escape') {\n void this._onExit()\n }\n })\n\n this._setState({ status: 'running', messages: [], connection, keyboard })\n }\n\n private _setState = (newState: ChatState) => {\n this._state = newState\n this._events.emit('state', this._state)\n }\n\n private _onMessageReceived = async (message: chat.Signals['message_created']) => {\n if (this._state.status === 'stopped') {\n return\n }\n if (message.userId === this._props.client.user.id) {\n return\n }\n const source: MessageSource = message.isBot ? 'bot' : 'other'\n this._setState({ ...this._state, messages: [...this._state.messages, { ...message, source }] })\n }\n\n private _onKeyboardInput = async (line: string) => {\n if (this._state.status === 'stopped') {\n return\n }\n\n if (EXIT_KEYWORDS.includes(line)) {\n await this._onExit()\n return\n }\n\n if (!line) {\n this._setState({ ...this._state })\n return\n }\n\n const message = this._textToMessage(line)\n this._setState({ ...this._state, messages: [...this._state.messages, message] })\n await this._props.client.createMessage(message)\n }\n\n private _onExit = async () => {\n if (this._state.status === 'stopped') {\n return\n }\n const { connection, keyboard } = this._state\n await connection.disconnect()\n connection.cleanup()\n keyboard.close()\n this._setState({ status: 'stopped' })\n this._clearStdOut()\n this._restoreOriginalScreenBuffer()\n }\n\n public wait(): Promise<void> {\n return new Promise<void>((resolve) => {\n const cb = (state: ChatState) => {\n if (state.status === 'stopped') {\n this._events.off('state', cb)\n resolve()\n }\n }\n this._events.on('state', cb)\n })\n }\n\n private _renderMessages = () => {\n if (this._state.status === 'stopped') {\n return\n }\n\n this._clearStdOut()\n this._printHeader()\n\n for (const message of this._state.messages) {\n const prefix = USER_ICONS[message.source]\n const text = this._messageToText(message)\n const coloredText = message.source === 'bot' ? text : chalk.gray(text)\n process.stdout.write(`${prefix} ${coloredText}\\n`)\n }\n\n this._state.keyboard.setPrompt('>> ')\n this._state.keyboard.prompt(true) // Redisplay the prompt and maintain current input\n }\n\n private _printHeader = () => {\n process.stdout.write(chalk.bold('Botpress Chat\\n'))\n process.stdout.write(chalk.gray('Type \"exit\" or press ESC key to quit\\n'))\n }\n\n private _switchAlternateScreenBuffer = () => {\n process.stdout.write('\\x1B[?1049h')\n }\n\n private _restoreOriginalScreenBuffer = () => {\n process.stdout.write('\\x1B[?1049l')\n }\n\n private _clearStdOut = () => {\n process.stdout.write('\\x1B[2J\\x1B[0;0H')\n }\n\n private _messageToText = (message: Pick<chat.Message, 'payload'>): string => {\n const prefix = MESSAGE_ICONS[message.payload.type]\n switch (message.payload.type) {\n case 'audio':\n return prefix + message.payload.audioUrl\n case 'card':\n return prefix + JSON.stringify(message.payload)\n case 'carousel':\n return prefix + JSON.stringify(message.payload)\n case 'choice':\n return (\n prefix +\n [message.payload.text, ...message.payload.options.map((o) => ` - ${o.label} (${o.value})`)].join('\\n')\n )\n case 'dropdown':\n return (\n prefix +\n [message.payload.text, ...message.payload.options.map((o) => ` - ${o.label} (${o.value})`)].join('\\n')\n )\n case 'file':\n return prefix + message.payload.fileUrl\n case 'image':\n return prefix + message.payload.imageUrl\n case 'location':\n return prefix + `${message.payload.latitude},${message.payload.longitude} (${message.payload.address})`\n case 'text':\n return prefix + message.payload.text\n case 'video':\n return prefix + message.payload.videoUrl\n case 'markdown':\n return prefix + message.payload.markdown\n case 'bloc':\n return [\n prefix,\n ...message.payload.items.map((item) => this._messageToText({ payload: item })).map((l) => `\\t${l}`),\n ].join('\\n')\n default:\n type _assertion = utils.types.AssertNever<typeof message.payload>\n return '<unknown>'\n }\n }\n\n private _textToMessage = (text: string): ChatMessage => {\n return {\n id: uuid.v4(),\n userId: this._props.client.user.id,\n source: 'myself',\n conversationId: this._props.conversationId,\n createdAt: new Date().toISOString(),\n payload: { type: 'text', text },\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["chalk"]
|
|
7
7
|
}
|
|
@@ -225,12 +225,8 @@ class AddCommand extends import_global_command.GlobalCommand {
|
|
|
225
225
|
plugin: {
|
|
226
226
|
...createPluginReqBody,
|
|
227
227
|
dependencies: {
|
|
228
|
-
interfaces:
|
|
229
|
-
|
|
230
|
-
),
|
|
231
|
-
integrations: await utils.promises.awaitRecord(
|
|
232
|
-
utils.records.mapValues(pluginDefinition.integrations ?? {}, apiUtils.prepareCreateIntegrationBody)
|
|
233
|
-
)
|
|
228
|
+
interfaces: pluginDefinition.interfaces,
|
|
229
|
+
integrations: pluginDefinition.integrations
|
|
234
230
|
},
|
|
235
231
|
recurringEvents: pluginDefinition.recurringEvents
|
|
236
232
|
}
|