@botonic/plugin-flow-builder 0.43.1 → 0.44.0-alpha.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/lib/cjs/action/ai-agent.js +55 -61
- package/lib/cjs/action/ai-agent.js.map +1 -1
- package/lib/cjs/action/fallback.js +28 -32
- package/lib/cjs/action/fallback.js.map +1 -1
- package/lib/cjs/action/first-interaction.js +61 -71
- package/lib/cjs/action/first-interaction.js.map +1 -1
- package/lib/cjs/action/index.js +66 -79
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/knowledge-bases.js +64 -72
- package/lib/cjs/action/knowledge-bases.js.map +1 -1
- package/lib/cjs/action/payload.js +61 -70
- package/lib/cjs/action/payload.js.map +1 -1
- package/lib/cjs/api.d.ts +7 -2
- package/lib/cjs/api.js +58 -36
- package/lib/cjs/api.js.map +1 -1
- package/lib/cjs/constants.d.ts +1 -1
- package/lib/cjs/content-fields/content-fields-base.js +5 -7
- package/lib/cjs/content-fields/content-fields-base.js.map +1 -1
- package/lib/cjs/content-fields/flow-ai-agent.d.ts +0 -1
- package/lib/cjs/content-fields/flow-ai-agent.js +4 -7
- package/lib/cjs/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/cjs/content-fields/flow-bot-action.d.ts +0 -1
- package/lib/cjs/content-fields/flow-bot-action.js +14 -17
- package/lib/cjs/content-fields/flow-bot-action.js.map +1 -1
- package/lib/cjs/content-fields/flow-button.d.ts +0 -1
- package/lib/cjs/content-fields/flow-button.js +10 -16
- package/lib/cjs/content-fields/flow-button.js.map +1 -1
- package/lib/cjs/content-fields/flow-capture-user-input.d.ts +13 -0
- package/lib/cjs/content-fields/flow-capture-user-input.js +43 -0
- package/lib/cjs/content-fields/flow-capture-user-input.js.map +1 -0
- package/lib/cjs/content-fields/flow-carousel.d.ts +0 -1
- package/lib/cjs/content-fields/flow-carousel.js +16 -23
- package/lib/cjs/content-fields/flow-carousel.js.map +1 -1
- package/lib/cjs/content-fields/flow-channel-conditional.d.ts +0 -1
- package/lib/cjs/content-fields/flow-channel-conditional.js +14 -17
- package/lib/cjs/content-fields/flow-channel-conditional.js.map +1 -1
- package/lib/cjs/content-fields/flow-country-conditional.d.ts +0 -1
- package/lib/cjs/content-fields/flow-country-conditional.js +17 -21
- package/lib/cjs/content-fields/flow-country-conditional.js.map +1 -1
- package/lib/cjs/content-fields/flow-custom-conditional.js +18 -22
- package/lib/cjs/content-fields/flow-custom-conditional.js.map +1 -1
- package/lib/cjs/content-fields/flow-element.d.ts +0 -1
- package/lib/cjs/content-fields/flow-element.js +5 -9
- package/lib/cjs/content-fields/flow-element.js.map +1 -1
- package/lib/cjs/content-fields/flow-go-to-flow.d.ts +0 -1
- package/lib/cjs/content-fields/flow-go-to-flow.js +15 -18
- package/lib/cjs/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/cjs/content-fields/flow-handoff.d.ts +0 -1
- package/lib/cjs/content-fields/flow-handoff.js +29 -35
- package/lib/cjs/content-fields/flow-handoff.js.map +1 -1
- package/lib/cjs/content-fields/flow-image.d.ts +0 -1
- package/lib/cjs/content-fields/flow-image.js +2 -5
- package/lib/cjs/content-fields/flow-image.js.map +1 -1
- package/lib/cjs/content-fields/flow-knowledge-base.d.ts +0 -1
- package/lib/cjs/content-fields/flow-knowledge-base.js +5 -8
- package/lib/cjs/content-fields/flow-knowledge-base.js.map +1 -1
- package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +0 -1
- package/lib/cjs/content-fields/flow-queue-status-conditional.js +55 -65
- package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +1 -1
- package/lib/cjs/content-fields/flow-rating.d.ts +0 -1
- package/lib/cjs/content-fields/flow-rating.js +2 -5
- package/lib/cjs/content-fields/flow-rating.js.map +1 -1
- package/lib/cjs/content-fields/flow-text.d.ts +0 -1
- package/lib/cjs/content-fields/flow-text.js +5 -8
- package/lib/cjs/content-fields/flow-text.js.map +1 -1
- package/lib/cjs/content-fields/flow-video.d.ts +0 -1
- package/lib/cjs/content-fields/flow-video.js +2 -5
- package/lib/cjs/content-fields/flow-video.js.map +1 -1
- package/lib/cjs/content-fields/flow-webview.js +15 -18
- package/lib/cjs/content-fields/flow-webview.js.map +1 -1
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +3 -6
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.js +6 -12
- package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +12 -0
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/function.js +1 -1
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/index.d.ts +1 -0
- package/lib/cjs/content-fields/hubtype-fields/index.js +1 -0
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +2 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +4 -3
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +2 -1
- package/lib/cjs/content-fields/hubtype-fields/rating.js +1 -1
- package/lib/cjs/content-fields/hubtype-fields/rating.js.map +1 -1
- package/lib/cjs/content-fields/index.d.ts +3 -2
- package/lib/cjs/content-fields/index.js +3 -1
- package/lib/cjs/content-fields/index.js.map +1 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +2 -5
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +2 -5
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +3 -6
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
- package/lib/cjs/filters/index.js +5 -8
- package/lib/cjs/filters/index.js.map +1 -1
- package/lib/cjs/flow-factory.js +49 -51
- package/lib/cjs/flow-factory.js.map +1 -1
- package/lib/cjs/functions/index.js +18 -21
- package/lib/cjs/functions/index.js.map +1 -1
- package/lib/cjs/helpers.js +1 -2
- package/lib/cjs/helpers.js.map +1 -1
- package/lib/cjs/index.js +68 -73
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/services/hubtype-queues-api.js +10 -12
- package/lib/cjs/services/hubtype-queues-api.js.map +1 -1
- package/lib/cjs/tracking.d.ts +1 -1
- package/lib/cjs/tracking.js +33 -43
- package/lib/cjs/tracking.js.map +1 -1
- package/lib/cjs/types.js +2 -2
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/user-input/capture-user-input-api.d.ts +20 -0
- package/lib/cjs/user-input/capture-user-input-api.js +84 -0
- package/lib/cjs/user-input/capture-user-input-api.js.map +1 -0
- package/lib/cjs/user-input/index.d.ts +1 -2
- package/lib/cjs/user-input/index.js +25 -24
- package/lib/cjs/user-input/index.js.map +1 -1
- package/lib/cjs/user-input/keyword.js +31 -36
- package/lib/cjs/user-input/keyword.js.map +1 -1
- package/lib/cjs/user-input/smart-intent.js +55 -59
- package/lib/cjs/user-input/smart-intent.js.map +1 -1
- package/lib/cjs/utils.js +10 -7
- package/lib/cjs/utils.js.map +1 -1
- package/lib/cjs/webview/contents-context.d.ts +0 -1
- package/lib/cjs/webview/types.js +1 -1
- package/lib/cjs/webview/types.js.map +1 -1
- package/lib/cjs/webview/use-webview-contents.js +10 -9
- package/lib/cjs/webview/use-webview-contents.js.map +1 -1
- package/lib/esm/action/ai-agent.js +61 -63
- package/lib/esm/action/ai-agent.js.map +1 -1
- package/lib/esm/action/fallback.js +32 -32
- package/lib/esm/action/fallback.js.map +1 -1
- package/lib/esm/action/first-interaction.js +69 -75
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/index.js +93 -101
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/knowledge-bases.js +71 -75
- package/lib/esm/action/knowledge-bases.js.map +1 -1
- package/lib/esm/action/payload.js +67 -72
- package/lib/esm/action/payload.js.map +1 -1
- package/lib/esm/api.d.ts +7 -2
- package/lib/esm/api.js +77 -51
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/constants.d.ts +1 -1
- package/lib/esm/constants.js +17 -14
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/content-fields/content-fields-base.js +15 -13
- package/lib/esm/content-fields/content-fields-base.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent.d.ts +0 -1
- package/lib/esm/content-fields/flow-ai-agent.js +18 -17
- package/lib/esm/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/esm/content-fields/flow-bot-action.d.ts +0 -1
- package/lib/esm/content-fields/flow-bot-action.js +25 -24
- package/lib/esm/content-fields/flow-bot-action.js.map +1 -1
- package/lib/esm/content-fields/flow-button.d.ts +0 -1
- package/lib/esm/content-fields/flow-button.js +25 -27
- package/lib/esm/content-fields/flow-button.js.map +1 -1
- package/lib/esm/content-fields/flow-capture-user-input.d.ts +13 -0
- package/lib/esm/content-fields/flow-capture-user-input.js +43 -0
- package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -0
- package/lib/esm/content-fields/flow-carousel.d.ts +0 -1
- package/lib/esm/content-fields/flow-carousel.js +39 -42
- package/lib/esm/content-fields/flow-carousel.js.map +1 -1
- package/lib/esm/content-fields/flow-channel-conditional.d.ts +0 -1
- package/lib/esm/content-fields/flow-channel-conditional.js +24 -23
- package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-country-conditional.d.ts +0 -1
- package/lib/esm/content-fields/flow-country-conditional.js +27 -27
- package/lib/esm/content-fields/flow-country-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-custom-conditional.js +30 -30
- package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-element.d.ts +0 -1
- package/lib/esm/content-fields/flow-element.js +16 -16
- package/lib/esm/content-fields/flow-element.js.map +1 -1
- package/lib/esm/content-fields/flow-go-to-flow.d.ts +0 -1
- package/lib/esm/content-fields/flow-go-to-flow.js +25 -24
- package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/flow-handoff.d.ts +0 -1
- package/lib/esm/content-fields/flow-handoff.js +40 -42
- package/lib/esm/content-fields/flow-handoff.js.map +1 -1
- package/lib/esm/content-fields/flow-image.d.ts +0 -1
- package/lib/esm/content-fields/flow-image.js +12 -11
- package/lib/esm/content-fields/flow-image.js.map +1 -1
- package/lib/esm/content-fields/flow-knowledge-base.d.ts +0 -1
- package/lib/esm/content-fields/flow-knowledge-base.js +15 -14
- package/lib/esm/content-fields/flow-knowledge-base.js.map +1 -1
- package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +0 -1
- package/lib/esm/content-fields/flow-queue-status-conditional.js +67 -73
- package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-rating.d.ts +0 -1
- package/lib/esm/content-fields/flow-rating.js +23 -22
- package/lib/esm/content-fields/flow-rating.js.map +1 -1
- package/lib/esm/content-fields/flow-text.d.ts +0 -1
- package/lib/esm/content-fields/flow-text.js +25 -24
- package/lib/esm/content-fields/flow-text.js.map +1 -1
- package/lib/esm/content-fields/flow-video.d.ts +0 -1
- package/lib/esm/content-fields/flow-video.js +12 -11
- package/lib/esm/content-fields/flow-video.js.map +1 -1
- package/lib/esm/content-fields/flow-webview.js +23 -22
- package/lib/esm/content-fields/flow-webview.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -1
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +31 -30
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-template.d.ts +0 -1
- package/lib/esm/content-fields/flow-whatsapp-template.js +45 -47
- package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/bot-action.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/button.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +12 -0
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/carousel.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/common.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/fallback.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/function.js +5 -2
- package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/handoff.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/image.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/index.d.ts +1 -0
- package/lib/esm/content-fields/hubtype-fields/index.js +27 -23
- package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/keyword.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/knowledge-base.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +2 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.js +10 -6
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +2 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/payload.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/rating.js +5 -2
- package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/text.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/url.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/video.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/webview.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +2 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +2 -1
- package/lib/esm/content-fields/index.d.ts +3 -2
- package/lib/esm/content-fields/index.js +46 -22
- package/lib/esm/content-fields/index.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +10 -9
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +10 -9
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +18 -17
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
- package/lib/esm/filters/index.js +10 -9
- package/lib/esm/filters/index.js.map +1 -1
- package/lib/esm/flow-factory.js +56 -54
- package/lib/esm/flow-factory.js.map +1 -1
- package/lib/esm/functions/index.js +24 -22
- package/lib/esm/functions/index.js.map +1 -1
- package/lib/esm/helpers.js +4 -1
- package/lib/esm/helpers.js.map +1 -1
- package/lib/esm/index.js +101 -99
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/services/hubtype-queues-api.js +17 -15
- package/lib/esm/services/hubtype-queues-api.js.map +1 -1
- package/lib/esm/tracking.d.ts +1 -1
- package/lib/esm/tracking.js +42 -45
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.js +7 -4
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/user-input/capture-user-input-api.d.ts +20 -0
- package/lib/esm/user-input/capture-user-input-api.js +84 -0
- package/lib/esm/user-input/capture-user-input-api.js.map +1 -0
- package/lib/esm/user-input/index.d.ts +1 -2
- package/lib/esm/user-input/index.js +30 -25
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/keyword.js +40 -41
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.js +65 -65
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/lib/esm/utils.js +25 -13
- package/lib/esm/utils.js.map +1 -1
- package/lib/esm/webview/contents-context.d.ts +0 -1
- package/lib/esm/webview/contents-context.js +6 -2
- package/lib/esm/webview/contents-context.js.map +1 -1
- package/lib/esm/webview/index.js +9 -3
- package/lib/esm/webview/index.js.map +1 -1
- package/lib/esm/webview/types.js +5 -2
- package/lib/esm/webview/types.js.map +1 -1
- package/lib/esm/webview/use-webview-contents.js +28 -23
- package/lib/esm/webview/use-webview-contents.js.map +1 -1
- package/package.json +2 -2
- package/src/api.ts +35 -1
- package/src/content-fields/content-fields-base.ts +2 -1
- package/src/content-fields/flow-capture-user-input.tsx +45 -0
- package/src/content-fields/flow-text.tsx +1 -7
- package/src/content-fields/hubtype-fields/capture-user-input.ts +21 -0
- package/src/content-fields/hubtype-fields/index.ts +1 -0
- package/src/content-fields/hubtype-fields/node-types.ts +1 -0
- package/src/content-fields/hubtype-fields/nodes.ts +2 -0
- package/src/content-fields/index.ts +3 -0
- package/src/flow-factory.ts +4 -0
- package/src/index.ts +4 -3
- package/src/tracking.ts +2 -2
- package/src/user-input/capture-user-input-api.ts +134 -0
- package/src/user-input/index.ts +13 -8
- package/src/utils.ts +7 -0
|
@@ -1,71 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getContentsByAiAgent =
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
3
|
+
exports.getContentsByAiAgent = getContentsByAiAgent;
|
|
5
4
|
const core_1 = require("@botonic/core");
|
|
6
5
|
const content_fields_1 = require("../content-fields");
|
|
7
6
|
const helpers_1 = require("../helpers");
|
|
8
7
|
const tracking_1 = require("../tracking");
|
|
9
|
-
function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}));
|
|
33
|
-
if (!aiAgentResponse) {
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
yield trackAiAgentResponse(aiAgentResponse, request, aiAgentContent);
|
|
37
|
-
if (aiAgentResponse.exit) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
aiAgentContent.responses = aiAgentResponse.messages;
|
|
41
|
-
return contents;
|
|
8
|
+
async function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
9
|
+
const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow();
|
|
10
|
+
const isAiAgentEnabled = cmsApi.isAiAgentEnabled();
|
|
11
|
+
if (!startNodeAiAgentFlow || !isAiAgentEnabled) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const contents = await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow);
|
|
15
|
+
const aiAgentContent = contents.find(content => content instanceof content_fields_1.FlowAiAgent);
|
|
16
|
+
if (!aiAgentContent) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
const activeInputGuardrailRules = aiAgentContent.inputGuardrailRules
|
|
20
|
+
?.filter(rule => rule.is_active)
|
|
21
|
+
?.map(rule => ({
|
|
22
|
+
name: rule.name,
|
|
23
|
+
description: rule.description,
|
|
24
|
+
})) || [];
|
|
25
|
+
const aiAgentResponse = await flowBuilderPlugin.getAiAgentResponse?.(request, {
|
|
26
|
+
name: aiAgentContent.name,
|
|
27
|
+
instructions: aiAgentContent.instructions,
|
|
28
|
+
activeTools: aiAgentContent.activeTools,
|
|
29
|
+
inputGuardrailRules: activeInputGuardrailRules,
|
|
30
|
+
sourceIds: aiAgentContent.sources?.map(source => source.id),
|
|
42
31
|
});
|
|
32
|
+
if (!aiAgentResponse) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
await trackAiAgentResponse(aiAgentResponse, request, aiAgentContent);
|
|
36
|
+
if (aiAgentResponse.exit) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
aiAgentContent.responses = aiAgentResponse.messages;
|
|
40
|
+
return contents;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
67
|
-
const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
|
|
68
|
-
yield (0, tracking_1.trackEvent)(request, action, eventArgs);
|
|
69
|
-
});
|
|
42
|
+
async function trackAiAgentResponse(aiAgentResponse, request, aiAgentContent) {
|
|
43
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
44
|
+
const flowId = flowBuilderPlugin.cmsApi.getNodeById(aiAgentContent.id).flow_id;
|
|
45
|
+
const flowName = flowBuilderPlugin.getFlowName(flowId);
|
|
46
|
+
const event = {
|
|
47
|
+
action: core_1.EventAction.AiAgent,
|
|
48
|
+
flowThreadId: request.session.flow_thread_id,
|
|
49
|
+
flowId: flowId,
|
|
50
|
+
flowName: flowName,
|
|
51
|
+
flowNodeId: aiAgentContent.id,
|
|
52
|
+
flowNodeContentId: aiAgentContent.name,
|
|
53
|
+
flowNodeIsMeaningful: true,
|
|
54
|
+
toolsExecuted: aiAgentResponse?.toolsExecuted ?? [],
|
|
55
|
+
memoryLength: aiAgentResponse?.memoryLength ?? 0,
|
|
56
|
+
inputMessageId: request.input.message_id,
|
|
57
|
+
exit: aiAgentResponse?.exit ?? true,
|
|
58
|
+
inputGuardrailsTriggered: aiAgentResponse?.inputGuardrailsTriggered ?? [],
|
|
59
|
+
outputGuardrailsTriggered: [], //aiAgentResponse.outputGuardrailsTriggered,
|
|
60
|
+
error: aiAgentResponse.error,
|
|
61
|
+
};
|
|
62
|
+
const { action, ...eventArgs } = event;
|
|
63
|
+
await (0, tracking_1.trackEvent)(request, action, eventArgs);
|
|
70
64
|
}
|
|
71
65
|
//# sourceMappingURL=ai-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getContentsByFallback =
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
3
|
+
exports.getContentsByFallback = getContentsByFallback;
|
|
5
4
|
const core_1 = require("@botonic/core");
|
|
6
5
|
const tracking_1 = require("../tracking");
|
|
7
|
-
function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, }) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return fallbackContents;
|
|
12
|
-
});
|
|
6
|
+
async function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, }) {
|
|
7
|
+
const fallbackNode = await getFallbackNode(cmsApi, request);
|
|
8
|
+
const fallbackContents = await flowBuilderPlugin.getContentsByNode(fallbackNode);
|
|
9
|
+
return fallbackContents;
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
request.session.user.extra_data = Object.assign(Object.assign({}, request.session.user.extra_data), { isFirstFallbackOption: true });
|
|
20
|
-
}
|
|
21
|
-
const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
|
|
22
|
-
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
23
|
-
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
24
|
-
const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(request, fallbackNode.id);
|
|
25
|
-
const event = {
|
|
26
|
-
action: core_1.EventAction.Fallback,
|
|
27
|
-
flowId,
|
|
28
|
-
flowName,
|
|
29
|
-
flowNodeId,
|
|
30
|
-
flowNodeContentId,
|
|
31
|
-
userInput: request.input.data,
|
|
32
|
-
fallbackOut: isFirstFallbackOption ? 1 : 2,
|
|
33
|
-
fallbackMessageId: request.input.message_id,
|
|
11
|
+
async function getFallbackNode(cmsApi, request) {
|
|
12
|
+
if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {
|
|
13
|
+
request.session.user.extra_data = {
|
|
14
|
+
...request.session.user.extra_data,
|
|
15
|
+
isFirstFallbackOption: true,
|
|
34
16
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
17
|
+
}
|
|
18
|
+
const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
|
|
19
|
+
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
20
|
+
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
21
|
+
const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(request, fallbackNode.id);
|
|
22
|
+
const event = {
|
|
23
|
+
action: core_1.EventAction.Fallback,
|
|
24
|
+
flowId,
|
|
25
|
+
flowName,
|
|
26
|
+
flowNodeId,
|
|
27
|
+
flowNodeContentId,
|
|
28
|
+
userInput: request.input.data,
|
|
29
|
+
fallbackOut: isFirstFallbackOption ? 1 : 2,
|
|
30
|
+
fallbackMessageId: request.input.message_id,
|
|
31
|
+
};
|
|
32
|
+
const { action, ...eventArgs } = event;
|
|
33
|
+
await (0, tracking_1.trackEvent)(request, action, eventArgs);
|
|
34
|
+
return fallbackNode;
|
|
39
35
|
}
|
|
40
36
|
//# sourceMappingURL=fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../../src/action/fallback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../../src/action/fallback.ts"],"names":[],"mappings":";;AAWA,sDAUC;AArBD,wCAA0D;AAK1D,0CAGoB;AAGb,KAAK,UAAU,qBAAqB,CAAC,EAC1C,MAAM,EACN,iBAAiB,EACjB,OAAO,GACY;IACnB,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,gBAAgB,GACpB,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAEzD,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAsB,EAAE,OAAsB;IAC3E,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACzE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG;YAChC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;YAClC,qBAAqB,EAAE,IAAI;SAC5B,CAAA;IACH,CAAC;IAED,MAAM,qBAAqB,GACzB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAA;IACzD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAA;IAClE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,CAAC,qBAAqB,CAAA;IAE9E,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,GACvD,IAAA,oDAAyC,EAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;IAErE,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,kBAAW,CAAC,QAAQ;QAC5B,MAAM;QACN,QAAQ;QACR,UAAU;QACV,iBAAiB;QACjB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAc;QACvC,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;KAC5C,CAAA;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAA;IAEtC,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAE5C,OAAO,YAAY,CAAA;AACrB,CAAC"}
|
|
@@ -1,98 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getContentsByFirstInteraction =
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
3
|
+
exports.getContentsByFirstInteraction = getContentsByFirstInteraction;
|
|
5
4
|
const constants_1 = require("../constants");
|
|
6
5
|
const content_fields_1 = require("../content-fields");
|
|
7
6
|
const utils_1 = require("../utils");
|
|
8
7
|
const ai_agent_1 = require("./ai-agent");
|
|
9
8
|
const knowledge_bases_1 = require("./knowledge-bases");
|
|
10
9
|
const payload_1 = require("./payload");
|
|
11
|
-
function getContentsByFirstInteraction(context) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return contentsByContentID;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
|
|
10
|
+
async function getContentsByFirstInteraction(context) {
|
|
11
|
+
const { contentID, flowBuilderPlugin, request } = context;
|
|
12
|
+
/*
|
|
13
|
+
* If the contentID is provided, the firstInteractionContents are obtained even if they are not used
|
|
14
|
+
* because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.
|
|
15
|
+
* This is needed for example when send a WhatsApp campaign is sent,
|
|
16
|
+
* the bot not receives the message because this message is sent directly by the backend
|
|
17
|
+
* we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.
|
|
18
|
+
*/
|
|
19
|
+
const firstInteractionContents = await flowBuilderPlugin.getStartContents();
|
|
20
|
+
if (contentID) {
|
|
21
|
+
try {
|
|
22
|
+
const contentsByContentID = await flowBuilderPlugin.getContentsByContentID(contentID);
|
|
23
|
+
if (contentsByContentID.length > 0) {
|
|
24
|
+
return contentsByContentID;
|
|
31
25
|
}
|
|
32
26
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*/
|
|
36
|
-
if (firstInteractionContents.at(-1) instanceof content_fields_1.FlowBotAction) {
|
|
37
|
-
return firstInteractionContents;
|
|
38
|
-
}
|
|
39
|
-
if (request.input.nluResolution || (0, utils_1.inputHasTextData)(request.input)) {
|
|
40
|
-
const contentsByUserInput = yield getContentsByUserInput(context);
|
|
41
|
-
return [...firstInteractionContents, ...contentsByUserInput];
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
|
|
42
29
|
}
|
|
30
|
+
}
|
|
31
|
+
/* If the first interaction has a FlowBotAction, it should be the last content
|
|
32
|
+
* and avoid to render the match with keywords,intents or knowledge base
|
|
33
|
+
*/
|
|
34
|
+
if (firstInteractionContents.at(-1) instanceof content_fields_1.FlowBotAction) {
|
|
43
35
|
return firstInteractionContents;
|
|
44
|
-
}
|
|
36
|
+
}
|
|
37
|
+
if (request.input.nluResolution || (0, utils_1.inputHasTextData)(request.input)) {
|
|
38
|
+
const contentsByUserInput = await getContentsByUserInput(context);
|
|
39
|
+
return [...firstInteractionContents, ...contentsByUserInput];
|
|
40
|
+
}
|
|
41
|
+
return firstInteractionContents;
|
|
45
42
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
const conversationStartId = getConversationStartId(cmsApi);
|
|
55
|
-
if (request.input.payload === conversationStartId) {
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
const contentsByKeywordsOrIntents = yield (0, payload_1.getContentsByPayload)({
|
|
59
|
-
cmsApi,
|
|
60
|
-
flowBuilderPlugin,
|
|
61
|
-
request,
|
|
62
|
-
resolvedLocale,
|
|
63
|
-
});
|
|
64
|
-
const hasRepeatedContent = yield checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents);
|
|
65
|
-
if (hasRepeatedContent) {
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
if (contentsByKeywordsOrIntents.length > 0) {
|
|
69
|
-
return contentsByKeywordsOrIntents;
|
|
70
|
-
}
|
|
43
|
+
async function getContentsByUserInput(context) {
|
|
44
|
+
const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context;
|
|
45
|
+
const payloadByNlu = request.input.nluResolution?.payload;
|
|
46
|
+
if (payloadByNlu) {
|
|
47
|
+
request.input.payload = payloadByNlu;
|
|
48
|
+
const conversationStartId = getConversationStartId(cmsApi);
|
|
49
|
+
if (request.input.payload === conversationStartId) {
|
|
50
|
+
return [];
|
|
71
51
|
}
|
|
72
|
-
const
|
|
52
|
+
const contentsByKeywordsOrIntents = await (0, payload_1.getContentsByPayload)({
|
|
73
53
|
cmsApi,
|
|
74
54
|
flowBuilderPlugin,
|
|
75
55
|
request,
|
|
76
56
|
resolvedLocale,
|
|
77
57
|
});
|
|
78
|
-
|
|
79
|
-
|
|
58
|
+
const hasRepeatedContent = await checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents);
|
|
59
|
+
if (hasRepeatedContent) {
|
|
60
|
+
return [];
|
|
80
61
|
}
|
|
81
|
-
|
|
82
|
-
|
|
62
|
+
if (contentsByKeywordsOrIntents.length > 0) {
|
|
63
|
+
return contentsByKeywordsOrIntents;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const contentsByKnowledgeBase = await (0, knowledge_bases_1.getContentsByKnowledgeBase)({
|
|
67
|
+
cmsApi,
|
|
68
|
+
flowBuilderPlugin,
|
|
69
|
+
request,
|
|
70
|
+
resolvedLocale,
|
|
83
71
|
});
|
|
72
|
+
if (contentsByKnowledgeBase.length > 0) {
|
|
73
|
+
return contentsByKnowledgeBase;
|
|
74
|
+
}
|
|
75
|
+
const contentsByAiAgent = await (0, ai_agent_1.getContentsByAiAgent)(context);
|
|
76
|
+
return contentsByAiAgent;
|
|
84
77
|
}
|
|
85
78
|
function getConversationStartId(cmsApi) {
|
|
86
|
-
|
|
87
|
-
const conversationStartId = (_a = cmsApi.flow.flows.find(flow => flow.name === constants_1.MAIN_FLOW_NAME)) === null || _a === void 0 ? void 0 : _a.start_node_id;
|
|
79
|
+
const conversationStartId = cmsApi.flow.flows.find(flow => flow.name === constants_1.MAIN_FLOW_NAME)?.start_node_id;
|
|
88
80
|
return conversationStartId;
|
|
89
81
|
}
|
|
90
|
-
function checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return hasRepeatedContent;
|
|
96
|
-
});
|
|
82
|
+
async function checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents) {
|
|
83
|
+
const startContents = await flowBuilderPlugin.getStartContents();
|
|
84
|
+
const contentIds = new Set(contentsByKeywordsOrIntents.map(content => content.id));
|
|
85
|
+
const hasRepeatedContent = startContents.some(content => contentIds.has(content.id));
|
|
86
|
+
return hasRepeatedContent;
|
|
97
87
|
}
|
|
98
88
|
//# sourceMappingURL=first-interaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/action/index.js
CHANGED
|
@@ -18,50 +18,42 @@ const first_interaction_1 = require("./first-interaction");
|
|
|
18
18
|
const knowledge_bases_1 = require("./knowledge-bases");
|
|
19
19
|
const payload_1 = require("./payload");
|
|
20
20
|
class FlowBuilderAction extends react_2.default.Component {
|
|
21
|
-
static executeConversationStart(request) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return { contents: filteredContents };
|
|
29
|
-
});
|
|
21
|
+
static async executeConversationStart(request) {
|
|
22
|
+
const context = getContext(request);
|
|
23
|
+
const contents = await (0, first_interaction_1.getContentsByFirstInteraction)(context);
|
|
24
|
+
const filteredContents = await filterContents(request, contents);
|
|
25
|
+
await FlowBuilderAction.trackAllContents(request, filteredContents);
|
|
26
|
+
await FlowBuilderAction.doHandoffAndBotActions(request, filteredContents);
|
|
27
|
+
return { contents: filteredContents };
|
|
30
28
|
}
|
|
31
|
-
static botonicInit(request, contentID) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return { contents: filteredContents };
|
|
38
|
-
});
|
|
29
|
+
static async botonicInit(request, contentID) {
|
|
30
|
+
const contents = await getContents(request, contentID);
|
|
31
|
+
const filteredContents = await filterContents(request, contents);
|
|
32
|
+
await FlowBuilderAction.trackAllContents(request, filteredContents);
|
|
33
|
+
await FlowBuilderAction.doHandoffAndBotActions(request, filteredContents);
|
|
34
|
+
return { contents: filteredContents };
|
|
39
35
|
}
|
|
40
|
-
static trackAllContents(request, contents) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
});
|
|
36
|
+
static async trackAllContents(request, contents) {
|
|
37
|
+
for (const content of contents) {
|
|
38
|
+
await content.trackFlow(request);
|
|
39
|
+
}
|
|
46
40
|
}
|
|
47
|
-
static doHandoffAndBotActions(request, contents) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
});
|
|
41
|
+
static async doHandoffAndBotActions(request, contents) {
|
|
42
|
+
const handoffContent = contents.find(content => content instanceof content_fields_1.FlowHandoff);
|
|
43
|
+
if (handoffContent) {
|
|
44
|
+
await handoffContent.doHandoff(request);
|
|
45
|
+
}
|
|
46
|
+
const botActionContent = contents.find(content => content instanceof flow_bot_action_1.FlowBotAction);
|
|
47
|
+
if (botActionContent) {
|
|
48
|
+
botActionContent.doBotAction(request);
|
|
49
|
+
}
|
|
58
50
|
}
|
|
59
51
|
render() {
|
|
60
52
|
const { contents, webchatSettingsParams } = this.props;
|
|
61
53
|
const request = this.context;
|
|
62
54
|
const shouldSendWebchatSettings = ((0, core_1.isWebchat)(request.session) || (0, core_1.isDev)(request.session)) &&
|
|
63
55
|
!!webchatSettingsParams;
|
|
64
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shouldSendWebchatSettings && ((0, jsx_runtime_1.jsx)(react_1.WebchatSettings,
|
|
56
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [shouldSendWebchatSettings && ((0, jsx_runtime_1.jsx)(react_1.WebchatSettings, { ...webchatSettingsParams })), contents.map(content => content.toBotonic(content.id, request))] }));
|
|
65
57
|
}
|
|
66
58
|
}
|
|
67
59
|
exports.FlowBuilderAction = FlowBuilderAction;
|
|
@@ -72,58 +64,53 @@ class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
|
72
64
|
const request = this.context;
|
|
73
65
|
const shouldSendWebchatSettings = ((0, core_1.isWebchat)(request.session) || (0, core_1.isDev)(request.session)) &&
|
|
74
66
|
!!webchatSettingsParams;
|
|
75
|
-
return ((0, jsx_runtime_1.jsxs)(react_1.Multichannel,
|
|
67
|
+
return ((0, jsx_runtime_1.jsxs)(react_1.Multichannel, { text: { buttonsAsText: false }, children: [shouldSendWebchatSettings && ((0, jsx_runtime_1.jsx)(react_1.WebchatSettings, { ...webchatSettingsParams })), contents.map(content => content.toBotonic(content.id, request))] }));
|
|
76
68
|
}
|
|
77
69
|
}
|
|
78
70
|
exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
|
|
79
|
-
function getContents(request, contentID) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
71
|
+
async function getContents(request, contentID) {
|
|
72
|
+
const context = getContext(request, contentID);
|
|
73
|
+
if (request.session.is_first_interaction) {
|
|
74
|
+
return await (0, first_interaction_1.getContentsByFirstInteraction)(context);
|
|
75
|
+
}
|
|
76
|
+
// TODO: Add needed logic when we can define contents for multi locale queue position message
|
|
77
|
+
if (request.input.type === core_1.INPUT.EVENT_QUEUE_POSITION_CHANGED) {
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
if (request.input.payload?.startsWith(constants_1.EMPTY_PAYLOAD)) {
|
|
81
|
+
request.input.payload = undefined;
|
|
82
|
+
}
|
|
83
|
+
if (request.input.payload || contentID) {
|
|
84
|
+
const contentsByPayload = await (0, payload_1.getContentsByPayload)(context);
|
|
85
|
+
if (contentsByPayload.length > 0) {
|
|
86
|
+
return contentsByPayload;
|
|
92
87
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return
|
|
88
|
+
return await (0, fallback_1.getContentsByFallback)(context);
|
|
89
|
+
}
|
|
90
|
+
if ((0, utils_1.inputHasTextData)(request.input)) {
|
|
91
|
+
const aiAgentContents = await (0, ai_agent_1.getContentsByAiAgent)(context);
|
|
92
|
+
if (aiAgentContents.length > 0) {
|
|
93
|
+
return aiAgentContents;
|
|
99
94
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return aiAgentContents;
|
|
104
|
-
}
|
|
105
|
-
const knowledgeBaseContents = yield (0, knowledge_bases_1.getContentsByKnowledgeBase)(context);
|
|
106
|
-
if (knowledgeBaseContents.length > 0) {
|
|
107
|
-
return knowledgeBaseContents;
|
|
108
|
-
}
|
|
95
|
+
const knowledgeBaseContents = await (0, knowledge_bases_1.getContentsByKnowledgeBase)(context);
|
|
96
|
+
if (knowledgeBaseContents.length > 0) {
|
|
97
|
+
return knowledgeBaseContents;
|
|
109
98
|
}
|
|
110
|
-
|
|
111
|
-
|
|
99
|
+
}
|
|
100
|
+
return await (0, fallback_1.getContentsByFallback)(context);
|
|
112
101
|
}
|
|
113
|
-
function filterContents(request, contents) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
filters: contentFilters,
|
|
119
|
-
});
|
|
120
|
-
const filteredContents = [];
|
|
121
|
-
for (const content of contents) {
|
|
122
|
-
const filteredContent = yield contentFilterExecutor.filter(request, content);
|
|
123
|
-
filteredContents.push(filteredContent);
|
|
124
|
-
}
|
|
125
|
-
return filteredContents;
|
|
102
|
+
async function filterContents(request, contents) {
|
|
103
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
104
|
+
const contentFilters = flowBuilderPlugin.contentFilters;
|
|
105
|
+
const contentFilterExecutor = new filters_1.ContentFilterExecutor({
|
|
106
|
+
filters: contentFilters,
|
|
126
107
|
});
|
|
108
|
+
const filteredContents = [];
|
|
109
|
+
for (const content of contents) {
|
|
110
|
+
const filteredContent = await contentFilterExecutor.filter(request, content);
|
|
111
|
+
filteredContents.push(filteredContent);
|
|
112
|
+
}
|
|
113
|
+
return filteredContents;
|
|
127
114
|
}
|
|
128
115
|
function getContext(request, contentID) {
|
|
129
116
|
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":";;;;;AAAA,wCAAmE;AACnE,0CAMuB;AACvB,0DAAyB;AAGzB,4CAA4C;AAC5C,sDAA4D;AAC5D,uEAAiE;AACjE,wCAAkD;AAClD,wCAAiD;AAEjD,oCAA2C;AAC3C,yCAAiD;AACjD,yCAAkD;AAClD,2DAAmE;AACnE,uDAA8D;AAC9D,uCAAgD;AAOhD,MAAa,iBAAkB,SAAQ,eAAK,CAAC,SAAiC;IAI5E,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
|