@botonic/plugin-flow-builder 0.43.2 → 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 +3 -6
- 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 +7 -9
- 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 +13 -12
- 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 +22 -15
- 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/flow-capture-user-input.tsx +45 -0
- 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/lib/esm/action/index.js
CHANGED
|
@@ -1,127 +1,119 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowBuilderMultichannelAction = exports.FlowBuilderAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const core_1 = require("@botonic/core");
|
|
7
|
+
const react_1 = require("@botonic/react");
|
|
8
|
+
const react_2 = tslib_1.__importDefault(require("react"));
|
|
9
|
+
const constants_1 = require("../constants");
|
|
10
|
+
const content_fields_1 = require("../content-fields");
|
|
11
|
+
const flow_bot_action_1 = require("../content-fields/flow-bot-action");
|
|
12
|
+
const filters_1 = require("../filters");
|
|
13
|
+
const helpers_1 = require("../helpers");
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
const ai_agent_1 = require("./ai-agent");
|
|
16
|
+
const fallback_1 = require("./fallback");
|
|
17
|
+
const first_interaction_1 = require("./first-interaction");
|
|
18
|
+
const knowledge_bases_1 = require("./knowledge-bases");
|
|
19
|
+
const payload_1 = require("./payload");
|
|
20
|
+
class FlowBuilderAction extends react_2.default.Component {
|
|
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 };
|
|
27
28
|
}
|
|
28
|
-
static botonicInit(request, contentID) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return { contents: filteredContents };
|
|
35
|
-
});
|
|
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 };
|
|
36
35
|
}
|
|
37
|
-
static trackAllContents(request, contents) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
});
|
|
36
|
+
static async trackAllContents(request, contents) {
|
|
37
|
+
for (const content of contents) {
|
|
38
|
+
await content.trackFlow(request);
|
|
39
|
+
}
|
|
43
40
|
}
|
|
44
|
-
static doHandoffAndBotActions(request, contents) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
});
|
|
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
|
+
}
|
|
55
50
|
}
|
|
56
51
|
render() {
|
|
57
52
|
const { contents, webchatSettingsParams } = this.props;
|
|
58
53
|
const request = this.context;
|
|
59
|
-
const shouldSendWebchatSettings = (isWebchat(request.session) || isDev(request.session)) &&
|
|
54
|
+
const shouldSendWebchatSettings = ((0, core_1.isWebchat)(request.session) || (0, core_1.isDev)(request.session)) &&
|
|
60
55
|
!!webchatSettingsParams;
|
|
61
|
-
return (
|
|
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))] }));
|
|
62
57
|
}
|
|
63
58
|
}
|
|
64
|
-
FlowBuilderAction
|
|
65
|
-
|
|
59
|
+
exports.FlowBuilderAction = FlowBuilderAction;
|
|
60
|
+
FlowBuilderAction.contextType = react_1.RequestContext;
|
|
61
|
+
class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
66
62
|
render() {
|
|
67
63
|
const { contents, webchatSettingsParams } = this.props;
|
|
68
64
|
const request = this.context;
|
|
69
|
-
const shouldSendWebchatSettings = (isWebchat(request.session) || isDev(request.session)) &&
|
|
65
|
+
const shouldSendWebchatSettings = ((0, core_1.isWebchat)(request.session) || (0, core_1.isDev)(request.session)) &&
|
|
70
66
|
!!webchatSettingsParams;
|
|
71
|
-
return (
|
|
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))] }));
|
|
72
68
|
}
|
|
73
69
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
70
|
+
exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
|
|
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;
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
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;
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return aiAgentContents;
|
|
99
|
-
}
|
|
100
|
-
const knowledgeBaseContents = yield getContentsByKnowledgeBase(context);
|
|
101
|
-
if (knowledgeBaseContents.length > 0) {
|
|
102
|
-
return knowledgeBaseContents;
|
|
103
|
-
}
|
|
95
|
+
const knowledgeBaseContents = await (0, knowledge_bases_1.getContentsByKnowledgeBase)(context);
|
|
96
|
+
if (knowledgeBaseContents.length > 0) {
|
|
97
|
+
return knowledgeBaseContents;
|
|
104
98
|
}
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
}
|
|
100
|
+
return await (0, fallback_1.getContentsByFallback)(context);
|
|
107
101
|
}
|
|
108
|
-
function filterContents(request, contents) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
filters: contentFilters,
|
|
114
|
-
});
|
|
115
|
-
const filteredContents = [];
|
|
116
|
-
for (const content of contents) {
|
|
117
|
-
const filteredContent = yield contentFilterExecutor.filter(request, content);
|
|
118
|
-
filteredContents.push(filteredContent);
|
|
119
|
-
}
|
|
120
|
-
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,
|
|
121
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;
|
|
122
114
|
}
|
|
123
115
|
function getContext(request, contentID) {
|
|
124
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
116
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
125
117
|
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
126
118
|
const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale();
|
|
127
119
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"
|
|
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,CAAC,KAAK,CAAC,wBAAwB,CACnC,OAAsB;QAEtB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAA,iDAA6B,EAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAChE,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QACnE,MAAM,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAEzE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,OAAsB,EACtB,SAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACtD,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAChE,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QACnE,MAAM,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAEzE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,OAAsB,EACtB,QAAuB;QAEvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACjC,OAAsB,EACtB,QAAuB;QAEvB,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAClC,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,4BAAW,CAC3B,CAAA;QAChB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CACpC,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,+BAAa,CAC3B,CAAA;QAClB,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAwB,CAAA;QAC7C,MAAM,yBAAyB,GAC7B,CAAC,IAAA,gBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC,CAAC,qBAAqB,CAAA;QAEzB,OAAO,CACL,6DACG,yBAAyB,IAAI,CAC5B,uBAAC,uBAAe,OAAK,qBAAqB,GAAI,CAC/C,EACA,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAC/D,CACJ,CAAA;IACH,CAAC;;AAvEH,8CAwEC;AAvEQ,6BAAW,GAAG,sBAAc,CAAA;AAyErC,MAAa,6BAA8B,SAAQ,iBAAiB;IAClE,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAwB,CAAA;QAC7C,MAAM,yBAAyB,GAC7B,CAAC,IAAA,gBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC,CAAC,qBAAqB,CAAA;QAEzB,OAAO,CACL,wBAAC,oBAAY,IAAC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aACzC,yBAAyB,IAAI,CAC5B,uBAAC,uBAAe,OAAK,qBAAqB,GAAI,CAC/C,EACA,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IACnD,CAChB,CAAA;IACH,CAAC;CACF;AAjBD,sEAiBC;AAED,KAAK,UAAU,WAAW,CACxB,OAAsB,EACtB,SAAkB;IAElB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAE9C,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACzC,OAAO,MAAM,IAAA,iDAA6B,EAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IACD,6FAA6F;IAC7F,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,4BAA4B,EAAE,CAAC;QAC9D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,yBAAa,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,MAAM,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAA;QAC7D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,OAAO,MAAM,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,MAAM,IAAA,+BAAoB,EAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,eAAe,CAAA;QACxB,CAAC;QACD,MAAM,qBAAqB,GAAG,MAAM,IAAA,4CAA0B,EAAC,OAAO,CAAC,CAAA;QACvE,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,qBAAqB,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAmB,EACnB,QAAuB;IAEvB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAA;IACvD,MAAM,qBAAqB,GAAG,IAAI,+BAAqB,CAAC;QACtD,OAAO,EAAE,cAAc;KACxB,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAkB,EAAE,CAAA;IAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC5E,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAUD,SAAS,UAAU,CACjB,OAAsB,EACtB,SAAkB;IAElB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;IACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAA;IACnE,OAAO;QACL,MAAM;QACN,iBAAiB;QACjB,OAAO;QACP,cAAc;QACd,SAAS;KACV,CAAA;AACH,CAAC"}
|
|
@@ -1,89 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const sourceIds = knowledgeBaseContent.sourcesData.map(source => source.id);
|
|
20
|
-
if (flowBuilderPlugin.getKnowledgeBaseResponse &&
|
|
21
|
-
inputHasTextData(request.input) &&
|
|
22
|
-
sourceIds.length > 0) {
|
|
23
|
-
const contentsWithKnowledgeResponse = yield getContentsWithKnowledgeResponse(flowBuilderPlugin.getKnowledgeBaseResponse, request, contents, knowledgeBaseContent);
|
|
24
|
-
if (contentsWithKnowledgeResponse) {
|
|
25
|
-
return contentsWithKnowledgeResponse;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getContentsByKnowledgeBase = getContentsByKnowledgeBase;
|
|
4
|
+
const core_1 = require("@botonic/core");
|
|
5
|
+
const content_fields_1 = require("../content-fields");
|
|
6
|
+
const tracking_1 = require("../tracking");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
async function getContentsByKnowledgeBase({ cmsApi, flowBuilderPlugin, request, }) {
|
|
9
|
+
if ((0, utils_1.isKnowledgeBasesAllowed)(request)) {
|
|
10
|
+
const startNodeKnowledgeBaseFlow = cmsApi.getStartNodeKnowledgeBaseFlow();
|
|
11
|
+
const isKnowledgeBaseEnabled = cmsApi.isKnowledgeBaseEnabled();
|
|
12
|
+
if (!startNodeKnowledgeBaseFlow || !isKnowledgeBaseEnabled) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
const contents = await flowBuilderPlugin.getContentsByNode(startNodeKnowledgeBaseFlow);
|
|
16
|
+
const knowledgeBaseContent = contents.find(content => content instanceof content_fields_1.FlowKnowledgeBase);
|
|
17
|
+
if (!knowledgeBaseContent) {
|
|
18
|
+
return contents;
|
|
28
19
|
}
|
|
29
|
-
return [];
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
function getContentsWithKnowledgeResponse(getKnowledgeBaseResponse, request, contents, knowledgeBaseContent) {
|
|
33
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
34
20
|
const sourceIds = knowledgeBaseContent.sourcesData.map(source => source.id);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (!knowledgeBaseResponse.hasKnowledge ||
|
|
43
|
-
!knowledgeBaseResponse.isFaithful) {
|
|
44
|
-
return undefined;
|
|
21
|
+
if (flowBuilderPlugin.getKnowledgeBaseResponse &&
|
|
22
|
+
(0, utils_1.inputHasTextData)(request.input) &&
|
|
23
|
+
sourceIds.length > 0) {
|
|
24
|
+
const contentsWithKnowledgeResponse = await getContentsWithKnowledgeResponse(flowBuilderPlugin.getKnowledgeBaseResponse, request, contents, knowledgeBaseContent);
|
|
25
|
+
if (contentsWithKnowledgeResponse) {
|
|
26
|
+
return contentsWithKnowledgeResponse;
|
|
27
|
+
}
|
|
45
28
|
}
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
}
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
async function getContentsWithKnowledgeResponse(getKnowledgeBaseResponse, request, contents, knowledgeBaseContent) {
|
|
33
|
+
const sourceIds = knowledgeBaseContent.sourcesData.map(source => source.id);
|
|
34
|
+
const instructions = knowledgeBaseContent.instructions;
|
|
35
|
+
const messageId = request.input.message_id;
|
|
36
|
+
const memoryLength = knowledgeBaseContent.hasMemory
|
|
37
|
+
? knowledgeBaseContent.memoryLength
|
|
38
|
+
: content_fields_1.DISABLED_MEMORY_LENGTH;
|
|
39
|
+
const knowledgeBaseResponse = await getKnowledgeBaseResponse(request, sourceIds, instructions, messageId, memoryLength);
|
|
40
|
+
await trackKnowledgeBase(knowledgeBaseResponse, request, knowledgeBaseContent);
|
|
41
|
+
if (!knowledgeBaseResponse.hasKnowledge ||
|
|
42
|
+
!knowledgeBaseResponse.isFaithful) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return updateContentsWithResponse(contents, knowledgeBaseResponse);
|
|
48
46
|
}
|
|
49
47
|
function updateContentsWithResponse(contents, response) {
|
|
50
48
|
return contents.map(content => {
|
|
51
|
-
if (content instanceof FlowKnowledgeBase) {
|
|
49
|
+
if (content instanceof content_fields_1.FlowKnowledgeBase) {
|
|
52
50
|
content.text = response.answer;
|
|
53
51
|
content.inferenceId = response.inferenceId;
|
|
54
52
|
}
|
|
55
53
|
return content;
|
|
56
54
|
});
|
|
57
55
|
}
|
|
58
|
-
function trackKnowledgeBase(response, request, knowledgeBaseContent) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
yield trackEvent(request, action, eventArgs);
|
|
87
|
-
});
|
|
56
|
+
async function trackKnowledgeBase(response, request, knowledgeBaseContent) {
|
|
57
|
+
const getKnowledgeFailReason = () => {
|
|
58
|
+
let knowledgebaseFailReason;
|
|
59
|
+
if (!response.isFaithful) {
|
|
60
|
+
knowledgebaseFailReason = core_1.KnowledgebaseFailReason.Hallucination;
|
|
61
|
+
}
|
|
62
|
+
if (!response.hasKnowledge) {
|
|
63
|
+
knowledgebaseFailReason = core_1.KnowledgebaseFailReason.NoKnowledge;
|
|
64
|
+
}
|
|
65
|
+
return knowledgebaseFailReason;
|
|
66
|
+
};
|
|
67
|
+
const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(request, knowledgeBaseContent.id);
|
|
68
|
+
const event = {
|
|
69
|
+
action: core_1.EventAction.Knowledgebase,
|
|
70
|
+
knowledgebaseInferenceId: response.inferenceId,
|
|
71
|
+
knowledgebaseFailReason: getKnowledgeFailReason(),
|
|
72
|
+
knowledgebaseSourcesIds: knowledgeBaseContent.sourcesData.map(source => source.id),
|
|
73
|
+
knowledgebaseChunksIds: response.chunkIds,
|
|
74
|
+
knowledgebaseMessageId: request.input.message_id,
|
|
75
|
+
userInput: request.input.data,
|
|
76
|
+
flowThreadId: request.session.flow_thread_id,
|
|
77
|
+
flowId,
|
|
78
|
+
flowName,
|
|
79
|
+
flowNodeId,
|
|
80
|
+
flowNodeContentId,
|
|
81
|
+
};
|
|
82
|
+
const { action, ...eventArgs } = event;
|
|
83
|
+
await (0, tracking_1.trackEvent)(request, action, eventArgs);
|
|
88
84
|
}
|
|
89
85
|
//# sourceMappingURL=knowledge-bases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,79 +1,74 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getContentsByPayload = getContentsByPayload;
|
|
4
|
+
const core_1 = require("@botonic/core");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const tracking_1 = require("../tracking");
|
|
8
|
+
async function getContentsByPayload(context) {
|
|
9
|
+
const { cmsApi, flowBuilderPlugin, request, contentID } = context;
|
|
10
|
+
if (request.input.payload?.startsWith(constants_1.AGENT_RATING_PAYLOAD)) {
|
|
11
|
+
return await resolveRatingPayload(context);
|
|
12
|
+
}
|
|
13
|
+
if (request.input.payload?.startsWith(constants_1.PUSH_FLOW_PAYLOAD)) {
|
|
14
|
+
return await resolvePushFlowPayload(context);
|
|
15
|
+
}
|
|
16
|
+
const id = contentID
|
|
17
|
+
? cmsApi.getNodeByContentID(contentID)?.id
|
|
18
|
+
: request.input.payload;
|
|
19
|
+
const targetNode = id ? cmsApi.getNodeById(id) : undefined;
|
|
20
|
+
if (targetNode) {
|
|
21
|
+
return await flowBuilderPlugin.getContentsByNode(targetNode);
|
|
22
|
+
}
|
|
23
|
+
return [];
|
|
25
24
|
}
|
|
26
|
-
function resolveRatingPayload(context) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (!request.input.payload) {
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
const { target, text, value, possibleOptions, possibleValues } = flowBuilderPlugin.getRatingSubmittedInfo(request.input.payload);
|
|
33
|
-
if (request.session._hubtype_case_id) {
|
|
34
|
-
const event = {
|
|
35
|
-
action: EventAction.FeedbackCase,
|
|
36
|
-
feedbackTargetId: request.session._hubtype_case_id,
|
|
37
|
-
feedbackGroupId: uuid().toString(),
|
|
38
|
-
possibleOptions,
|
|
39
|
-
possibleValues,
|
|
40
|
-
option: text,
|
|
41
|
-
value,
|
|
42
|
-
};
|
|
43
|
-
yield storeCaseRating(request.session, value);
|
|
44
|
-
yield trackEvent(request, EventAction.FeedbackCase, event);
|
|
45
|
-
}
|
|
46
|
-
const targetNode = target
|
|
47
|
-
? cmsApi.getNodeById(target.id)
|
|
48
|
-
: undefined;
|
|
49
|
-
if (targetNode) {
|
|
50
|
-
return yield flowBuilderPlugin.getContentsByNode(targetNode);
|
|
51
|
-
}
|
|
25
|
+
async function resolveRatingPayload(context) {
|
|
26
|
+
const { cmsApi, flowBuilderPlugin, request } = context;
|
|
27
|
+
if (!request.input.payload) {
|
|
52
28
|
return [];
|
|
53
|
-
}
|
|
29
|
+
}
|
|
30
|
+
const { target, text, value, possibleOptions, possibleValues } = flowBuilderPlugin.getRatingSubmittedInfo(request.input.payload);
|
|
31
|
+
if (request.session._hubtype_case_id) {
|
|
32
|
+
const event = {
|
|
33
|
+
action: core_1.EventAction.FeedbackCase,
|
|
34
|
+
feedbackTargetId: request.session._hubtype_case_id,
|
|
35
|
+
feedbackGroupId: (0, uuid_1.v7)().toString(),
|
|
36
|
+
possibleOptions,
|
|
37
|
+
possibleValues,
|
|
38
|
+
option: text,
|
|
39
|
+
value,
|
|
40
|
+
};
|
|
41
|
+
await (0, core_1.storeCaseRating)(request.session, value);
|
|
42
|
+
await (0, tracking_1.trackEvent)(request, core_1.EventAction.FeedbackCase, event);
|
|
43
|
+
}
|
|
44
|
+
const targetNode = target
|
|
45
|
+
? cmsApi.getNodeById(target.id)
|
|
46
|
+
: undefined;
|
|
47
|
+
if (targetNode) {
|
|
48
|
+
return await flowBuilderPlugin.getContentsByNode(targetNode);
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
54
51
|
}
|
|
55
|
-
function resolvePushFlowPayload(context) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (!pushFlowNode) {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
return yield flowBuilderPlugin.getContentsByNode(pushFlowNode);
|
|
72
|
-
}
|
|
73
|
-
catch (_a) {
|
|
74
|
-
// Campaign not found - return empty to trigger fallback
|
|
52
|
+
async function resolvePushFlowPayload(context) {
|
|
53
|
+
const { cmsApi, flowBuilderPlugin, request } = context;
|
|
54
|
+
if (!request.input.payload) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
const parts = request.input.payload.split(constants_1.SEPARATOR);
|
|
58
|
+
const pushFlowId = parts.length > 1 ? parts[1] : '';
|
|
59
|
+
if (!pushFlowId) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
const pushFlowNode = cmsApi.getNodeByCampaignId(pushFlowId);
|
|
64
|
+
if (!pushFlowNode) {
|
|
75
65
|
return [];
|
|
76
66
|
}
|
|
77
|
-
|
|
67
|
+
return await flowBuilderPlugin.getContentsByNode(pushFlowNode);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Campaign not found - return empty to trigger fallback
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
78
73
|
}
|
|
79
74
|
//# sourceMappingURL=payload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/action/payload.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/action/payload.ts"],"names":[],"mappings":"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"}
|