@botonic/plugin-flow-builder 0.56.0-alpha.0 → 0.57.0-rslib-esm.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/esm/action/ai-agent-from-user-input.d.ts +2 -2
- package/lib/esm/action/ai-agent-from-user-input.js +9 -6
- package/lib/esm/action/ai-agent-from-user-input.js.map +1 -1
- package/lib/esm/action/context.d.ts +2 -2
- package/lib/esm/action/context.js +9 -6
- package/lib/esm/action/context.js.map +1 -1
- package/lib/esm/action/fallback.d.ts +2 -2
- package/lib/esm/action/fallback.js +16 -11
- package/lib/esm/action/fallback.js.map +1 -1
- package/lib/esm/action/first-interaction.d.ts +2 -2
- package/lib/esm/action/first-interaction.js +39 -27
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/get-contents.d.ts +1 -1
- package/lib/esm/action/get-contents.js +37 -20
- package/lib/esm/action/get-contents.js.map +1 -1
- package/lib/esm/action/index.d.ts +1 -1
- package/lib/esm/action/index.js +68 -32
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/payload.d.ts +2 -2
- package/lib/esm/action/payload.js +27 -23
- package/lib/esm/action/payload.js.map +1 -1
- package/lib/esm/api.d.ts +2 -2
- package/lib/esm/api.js +55 -44
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/constants.js +16 -18
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/content-fields/content-fields-base.d.ts +2 -2
- package/lib/esm/content-fields/content-fields-base.js +33 -29
- package/lib/esm/content-fields/content-fields-base.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +35 -33
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js +15 -15
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +2 -2
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js +50 -35
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent-base.d.ts +4 -4
- package/lib/esm/content-fields/flow-ai-agent-base.js +50 -47
- package/lib/esm/content-fields/flow-ai-agent-base.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent-router.d.ts +5 -5
- package/lib/esm/content-fields/flow-ai-agent-router.js +57 -46
- package/lib/esm/content-fields/flow-ai-agent-router.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent.d.ts +4 -4
- package/lib/esm/content-fields/flow-ai-agent.js +33 -22
- package/lib/esm/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/esm/content-fields/flow-bot-action.d.ts +3 -3
- package/lib/esm/content-fields/flow-bot-action.js +23 -15
- package/lib/esm/content-fields/flow-bot-action.js.map +1 -1
- package/lib/esm/content-fields/flow-button.d.ts +5 -5
- package/lib/esm/content-fields/flow-button.js +48 -29
- package/lib/esm/content-fields/flow-button.js.map +1 -1
- package/lib/esm/content-fields/flow-capture-user-input.d.ts +2 -2
- package/lib/esm/content-fields/flow-capture-user-input.js +24 -23
- package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -1
- package/lib/esm/content-fields/flow-carousel.d.ts +4 -4
- package/lib/esm/content-fields/flow-carousel.js +99 -58
- package/lib/esm/content-fields/flow-carousel.js.map +1 -1
- package/lib/esm/content-fields/flow-channel-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-channel-conditional.js +26 -22
- package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-country-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-country-conditional.js +26 -21
- package/lib/esm/content-fields/flow-country-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-custom-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-custom-conditional.js +31 -33
- package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-element.d.ts +4 -4
- package/lib/esm/content-fields/flow-element.js +37 -20
- package/lib/esm/content-fields/flow-element.js.map +1 -1
- package/lib/esm/content-fields/flow-go-to-flow.d.ts +3 -3
- package/lib/esm/content-fields/flow-go-to-flow.js +25 -20
- package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/flow-handoff.d.ts +3 -3
- package/lib/esm/content-fields/flow-handoff.js +30 -19
- package/lib/esm/content-fields/flow-handoff.js.map +1 -1
- package/lib/esm/content-fields/flow-image.d.ts +2 -2
- package/lib/esm/content-fields/flow-image.js +24 -15
- package/lib/esm/content-fields/flow-image.js.map +1 -1
- package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-queue-status-conditional.js +45 -40
- package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-rating.d.ts +3 -3
- package/lib/esm/content-fields/flow-rating.js +62 -40
- package/lib/esm/content-fields/flow-rating.js.map +1 -1
- package/lib/esm/content-fields/flow-text.d.ts +4 -4
- package/lib/esm/content-fields/flow-text.js +51 -29
- package/lib/esm/content-fields/flow-text.js.map +1 -1
- package/lib/esm/content-fields/flow-video.d.ts +2 -2
- package/lib/esm/content-fields/flow-video.js +24 -15
- package/lib/esm/content-fields/flow-video.js.map +1 -1
- package/lib/esm/content-fields/flow-webview.d.ts +2 -2
- package/lib/esm/content-fields/flow-webview.js +31 -28
- package/lib/esm/content-fields/flow-webview.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +3 -3
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +91 -52
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.d.ts +3 -4
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js +32 -26
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-template.d.ts +2 -2
- package/lib/esm/content-fields/flow-whatsapp-template.js +119 -102
- package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/bot-action.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/bot-action.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/button.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/button.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/button.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/carousel.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/carousel.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/common.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/common.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/common.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/country-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js +15 -15
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/fallback.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/fallback.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/fallback.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/function.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/function.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/handoff.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/handoff.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/handoff.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/image.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/image.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/image.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/index.d.ts +27 -27
- package/lib/esm/content-fields/hubtype-fields/index.js +56 -30
- package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/keyword.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/keyword.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/keyword.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.js +12 -12
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +23 -23
- package/lib/esm/content-fields/hubtype-fields/nodes.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/nodes.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/payload.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/payload.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/payload.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/rating.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/rating.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/smart-intent.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/text.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/text.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/text.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/url.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/url.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/url.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/video.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/video.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/video.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/webview.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/webview.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/index.d.ts +23 -23
- package/lib/esm/content-fields/index.js +72 -51
- package/lib/esm/content-fields/index.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +3 -3
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +16 -14
- 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.d.ts +4 -4
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +20 -15
- 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 +4 -4
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -26
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/index.d.ts +3 -3
- package/lib/esm/content-fields/whatsapp-button-list/index.js +11 -9
- package/lib/esm/content-fields/whatsapp-button-list/index.js.map +1 -1
- package/lib/esm/filters/index.d.ts +2 -2
- package/lib/esm/filters/index.js +8 -9
- package/lib/esm/filters/index.js.map +1 -1
- package/lib/esm/flow-factory.d.ts +3 -3
- package/lib/esm/flow-factory.js +57 -51
- package/lib/esm/flow-factory.js.map +1 -1
- package/lib/esm/functions/index.d.ts +1 -1
- package/lib/esm/functions/index.js +25 -19
- package/lib/esm/functions/index.js.map +1 -1
- package/lib/esm/index.d.ts +12 -12
- package/lib/esm/index.js +94 -77
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/package.json +3 -0
- package/lib/esm/services/hubtype-queues-api.js +14 -14
- package/lib/esm/services/hubtype-queues-api.js.map +1 -1
- package/lib/esm/structured-output/flow-builder-content.js +14 -13
- package/lib/esm/structured-output/flow-builder-content.js.map +1 -1
- package/lib/esm/tracking.d.ts +2 -2
- package/lib/esm/tracking.js +27 -21
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.d.ts +5 -5
- package/lib/esm/types.js +9 -9
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/user-input/capture-user-input-api.d.ts +2 -2
- package/lib/esm/user-input/capture-user-input-api.js +44 -33
- package/lib/esm/user-input/capture-user-input-api.js.map +1 -1
- package/lib/esm/user-input/index.d.ts +2 -2
- package/lib/esm/user-input/index.js +23 -14
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/keyword.d.ts +2 -2
- package/lib/esm/user-input/keyword.js +31 -26
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.d.ts +2 -2
- package/lib/esm/user-input/smart-intent.js +36 -32
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/lib/esm/utils/ai-agent.d.ts +3 -3
- package/lib/esm/utils/ai-agent.js +17 -12
- package/lib/esm/utils/ai-agent.js.map +1 -1
- package/lib/esm/utils/authentication.js +10 -7
- package/lib/esm/utils/authentication.js.map +1 -1
- package/lib/esm/utils/flow-locale.js +14 -18
- package/lib/esm/utils/flow-locale.js.map +1 -1
- package/lib/esm/utils/get-flow-builder-plugin.d.ts +1 -1
- package/lib/esm/utils/get-flow-builder-plugin.js +4 -4
- package/lib/esm/utils/get-flow-builder-plugin.js.map +1 -1
- package/lib/esm/utils/hubtype-assistant-content.d.ts +1 -2
- package/lib/esm/utils/hubtype-assistant-content.js +57 -54
- package/lib/esm/utils/hubtype-assistant-content.js.map +1 -1
- package/lib/esm/utils/input.js +16 -14
- package/lib/esm/utils/input.js.map +1 -1
- package/lib/esm/webview/contents-context.d.ts +1 -1
- package/lib/esm/webview/contents-context.js +13 -11
- package/lib/esm/webview/contents-context.js.map +1 -1
- package/lib/esm/webview/index.d.ts +3 -3
- package/lib/esm/webview/index.js +10 -9
- package/lib/esm/webview/index.js.map +1 -1
- package/lib/esm/webview/types.d.ts +1 -1
- package/lib/esm/webview/types.js +6 -6
- package/lib/esm/webview/types.js.map +1 -1
- package/lib/esm/webview/use-webview-contents.d.ts +1 -1
- package/lib/esm/webview/use-webview-contents.js +46 -39
- package/lib/esm/webview/use-webview-contents.js.map +1 -1
- package/package.json +8 -7
- package/src/content-fields/flow-ai-agent-base.tsx +0 -11
- package/src/content-fields/flow-whatsapp-request-contact-info.tsx +1 -17
- package/src/index.ts +5 -5
- package/src/types.ts +6 -6
- package/src/utils/hubtype-assistant-content.ts +0 -14
- package/lib/cjs/action/ai-agent-from-user-input.d.ts +0 -3
- package/lib/cjs/action/ai-agent-from-user-input.js +0 -32
- package/lib/cjs/action/ai-agent-from-user-input.js.map +0 -1
- package/lib/cjs/action/context.d.ts +0 -11
- package/lib/cjs/action/context.js +0 -17
- package/lib/cjs/action/context.js.map +0 -1
- package/lib/cjs/action/fallback.d.ts +0 -3
- package/lib/cjs/action/fallback.js +0 -36
- package/lib/cjs/action/fallback.js.map +0 -1
- package/lib/cjs/action/first-interaction.d.ts +0 -3
- package/lib/cjs/action/first-interaction.js +0 -88
- package/lib/cjs/action/first-interaction.js.map +0 -1
- package/lib/cjs/action/get-contents.d.ts +0 -3
- package/lib/cjs/action/get-contents.js +0 -39
- package/lib/cjs/action/get-contents.js.map +0 -1
- package/lib/cjs/action/index.d.ts +0 -25
- package/lib/cjs/action/index.js +0 -90
- package/lib/cjs/action/index.js.map +0 -1
- package/lib/cjs/action/payload.d.ts +0 -3
- package/lib/cjs/action/payload.js +0 -74
- package/lib/cjs/action/payload.js.map +0 -1
- package/lib/cjs/api.d.ts +0 -40
- package/lib/cjs/api.js +0 -205
- package/lib/cjs/api.js.map +0 -1
- package/lib/cjs/constants.d.ts +0 -13
- package/lib/cjs/constants.js +0 -19
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/content-fields/content-fields-base.d.ts +0 -20
- package/lib/cjs/content-fields/content-fields-base.js +0 -74
- package/lib/cjs/content-fields/content-fields-base.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +0 -15
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +0 -71
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +0 -9
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js +0 -58
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +0 -17
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js +0 -79
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent-base.d.ts +0 -25
- package/lib/cjs/content-fields/flow-ai-agent-base.js +0 -97
- package/lib/cjs/content-fields/flow-ai-agent-base.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent-router.d.ts +0 -21
- package/lib/cjs/content-fields/flow-ai-agent-router.js +0 -125
- package/lib/cjs/content-fields/flow-ai-agent-router.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent.d.ts +0 -17
- package/lib/cjs/content-fields/flow-ai-agent.js +0 -64
- package/lib/cjs/content-fields/flow-ai-agent.js.map +0 -1
- package/lib/cjs/content-fields/flow-bot-action.d.ts +0 -14
- package/lib/cjs/content-fields/flow-bot-action.js +0 -45
- package/lib/cjs/content-fields/flow-bot-action.js.map +0 -1
- package/lib/cjs/content-fields/flow-button.d.ts +0 -31
- package/lib/cjs/content-fields/flow-button.js +0 -86
- package/lib/cjs/content-fields/flow-button.js.map +0 -1
- package/lib/cjs/content-fields/flow-capture-user-input.d.ts +0 -14
- package/lib/cjs/content-fields/flow-capture-user-input.js +0 -45
- package/lib/cjs/content-fields/flow-capture-user-input.js.map +0 -1
- package/lib/cjs/content-fields/flow-carousel.d.ts +0 -22
- package/lib/cjs/content-fields/flow-carousel.js +0 -152
- package/lib/cjs/content-fields/flow-carousel.js.map +0 -1
- package/lib/cjs/content-fields/flow-channel-conditional.d.ts +0 -14
- package/lib/cjs/content-fields/flow-channel-conditional.js +0 -57
- package/lib/cjs/content-fields/flow-channel-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-country-conditional.d.ts +0 -13
- package/lib/cjs/content-fields/flow-country-conditional.js +0 -59
- package/lib/cjs/content-fields/flow-country-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-custom-conditional.d.ts +0 -17
- package/lib/cjs/content-fields/flow-custom-conditional.js +0 -89
- package/lib/cjs/content-fields/flow-custom-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-element.d.ts +0 -22
- package/lib/cjs/content-fields/flow-element.js +0 -50
- package/lib/cjs/content-fields/flow-element.js.map +0 -1
- package/lib/cjs/content-fields/flow-go-to-flow.d.ts +0 -13
- package/lib/cjs/content-fields/flow-go-to-flow.js +0 -51
- package/lib/cjs/content-fields/flow-go-to-flow.js.map +0 -1
- package/lib/cjs/content-fields/flow-handoff.d.ts +0 -17
- package/lib/cjs/content-fields/flow-handoff.js +0 -68
- package/lib/cjs/content-fields/flow-handoff.js.map +0 -1
- package/lib/cjs/content-fields/flow-image.d.ts +0 -10
- package/lib/cjs/content-fields/flow-image.js +0 -33
- package/lib/cjs/content-fields/flow-image.js.map +0 -1
- package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +0 -30
- package/lib/cjs/content-fields/flow-queue-status-conditional.js +0 -95
- package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-rating.d.ts +0 -15
- package/lib/cjs/content-fields/flow-rating.js +0 -66
- package/lib/cjs/content-fields/flow-rating.js.map +0 -1
- package/lib/cjs/content-fields/flow-text.d.ts +0 -15
- package/lib/cjs/content-fields/flow-text.js +0 -60
- package/lib/cjs/content-fields/flow-text.js.map +0 -1
- package/lib/cjs/content-fields/flow-video.d.ts +0 -10
- package/lib/cjs/content-fields/flow-video.js +0 -33
- package/lib/cjs/content-fields/flow-video.js.map +0 -1
- package/lib/cjs/content-fields/flow-webview.d.ts +0 -16
- package/lib/cjs/content-fields/flow-webview.js +0 -78
- package/lib/cjs/content-fields/flow-webview.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -21
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +0 -92
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.d.ts +0 -11
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js +0 -45
- package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +0 -37
- package/lib/cjs/content-fields/flow-whatsapp-template.js +0 -264
- package/lib/cjs/content-fields/flow-whatsapp-template.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.d.ts +0 -21
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/button.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/button.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/button.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +0 -19
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +0 -12
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/carousel.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/carousel.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/common.d.ts +0 -83
- package/lib/cjs/content-fields/hubtype-fields/common.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/common.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.d.ts +0 -56
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js +0 -36
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/fallback.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/fallback.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/fallback.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/function.d.ts +0 -30
- package/lib/cjs/content-fields/hubtype-fields/function.js +0 -11
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/handoff.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/handoff.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/handoff.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/image.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/image.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/image.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/index.d.ts +0 -27
- package/lib/cjs/content-fields/hubtype-fields/index.js +0 -31
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/keyword.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/keyword.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/keyword.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +0 -31
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +0 -38
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +0 -26
- package/lib/cjs/content-fields/hubtype-fields/nodes.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/nodes.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/payload.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/payload.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/payload.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/rating.d.ts +0 -23
- package/lib/cjs/content-fields/hubtype-fields/rating.js +0 -9
- package/lib/cjs/content-fields/hubtype-fields/rating.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.d.ts +0 -12
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/text.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/text.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/text.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/url.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/url.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/url.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/video.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/video.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/video.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/webview.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/webview.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.d.ts +0 -21
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +0 -96
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +0 -9
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +0 -1
- package/lib/cjs/content-fields/index.d.ts +0 -25
- package/lib/cjs/content-fields/index.js +0 -52
- package/lib/cjs/content-fields/index.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +0 -14
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +0 -41
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +0 -13
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +0 -36
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -14
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +0 -46
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/index.d.ts +0 -3
- package/lib/cjs/content-fields/whatsapp-button-list/index.js +0 -10
- package/lib/cjs/content-fields/whatsapp-button-list/index.js.map +0 -1
- package/lib/cjs/filters/index.d.ts +0 -12
- package/lib/cjs/filters/index.js +0 -17
- package/lib/cjs/filters/index.js.map +0 -1
- package/lib/cjs/flow-factory.d.ts +0 -12
- package/lib/cjs/flow-factory.js +0 -69
- package/lib/cjs/flow-factory.js.map +0 -1
- package/lib/cjs/functions/index.d.ts +0 -11
- package/lib/cjs/functions/index.js +0 -49
- package/lib/cjs/functions/index.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -45
- package/lib/cjs/index.js +0 -178
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/services/hubtype-queues-api.d.ts +0 -14
- package/lib/cjs/services/hubtype-queues-api.js +0 -26
- package/lib/cjs/services/hubtype-queues-api.js.map +0 -1
- package/lib/cjs/structured-output/flow-builder-content.d.ts +0 -13
- package/lib/cjs/structured-output/flow-builder-content.js +0 -15
- package/lib/cjs/structured-output/flow-builder-content.js.map +0 -1
- package/lib/cjs/tracking.d.ts +0 -16
- package/lib/cjs/tracking.js +0 -71
- package/lib/cjs/tracking.js.map +0 -1
- package/lib/cjs/types.d.ts +0 -62
- package/lib/cjs/types.js +0 -14
- package/lib/cjs/types.js.map +0 -1
- package/lib/cjs/user-input/capture-user-input-api.d.ts +0 -21
- package/lib/cjs/user-input/capture-user-input-api.js +0 -88
- package/lib/cjs/user-input/capture-user-input-api.js.map +0 -1
- package/lib/cjs/user-input/index.d.ts +0 -4
- package/lib/cjs/user-input/index.js +0 -37
- package/lib/cjs/user-input/index.js.map +0 -1
- package/lib/cjs/user-input/keyword.d.ts +0 -27
- package/lib/cjs/user-input/keyword.js +0 -84
- package/lib/cjs/user-input/keyword.js.map +0 -1
- package/lib/cjs/user-input/smart-intent.d.ts +0 -24
- package/lib/cjs/user-input/smart-intent.js +0 -89
- package/lib/cjs/user-input/smart-intent.js.map +0 -1
- package/lib/cjs/utils/ai-agent.d.ts +0 -11
- package/lib/cjs/utils/ai-agent.js +0 -28
- package/lib/cjs/utils/ai-agent.js.map +0 -1
- package/lib/cjs/utils/authentication.d.ts +0 -2
- package/lib/cjs/utils/authentication.js +0 -21
- package/lib/cjs/utils/authentication.js.map +0 -1
- package/lib/cjs/utils/flow-locale.d.ts +0 -22
- package/lib/cjs/utils/flow-locale.js +0 -79
- package/lib/cjs/utils/flow-locale.js.map +0 -1
- package/lib/cjs/utils/get-flow-builder-plugin.d.ts +0 -3
- package/lib/cjs/utils/get-flow-builder-plugin.js +0 -16
- package/lib/cjs/utils/get-flow-builder-plugin.js.map +0 -1
- package/lib/cjs/utils/hubtype-assistant-content.d.ts +0 -13
- package/lib/cjs/utils/hubtype-assistant-content.js +0 -184
- package/lib/cjs/utils/hubtype-assistant-content.js.map +0 -1
- package/lib/cjs/utils/input.d.ts +0 -6
- package/lib/cjs/utils/input.js +0 -35
- package/lib/cjs/utils/input.js.map +0 -1
- package/lib/cjs/webview/contents-context.d.ts +0 -2
- package/lib/cjs/webview/contents-context.js +0 -12
- package/lib/cjs/webview/contents-context.js.map +0 -1
- package/lib/cjs/webview/index.d.ts +0 -3
- package/lib/cjs/webview/index.js +0 -10
- package/lib/cjs/webview/index.js.map +0 -1
- package/lib/cjs/webview/types.d.ts +0 -47
- package/lib/cjs/webview/types.js +0 -9
- package/lib/cjs/webview/types.js.map +0 -1
- package/lib/cjs/webview/use-webview-contents.d.ts +0 -2
- package/lib/cjs/webview/use-webview-contents.js +0 -83
- package/lib/cjs/webview/use-webview-contents.js.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FlowContent } from '../content-fields/index';
|
|
2
|
-
import type { FlowBuilderContext } from './context';
|
|
1
|
+
import type { FlowContent } from '../content-fields/index.js';
|
|
2
|
+
import type { FlowBuilderContext } from './context.js';
|
|
3
3
|
export declare function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request, }: FlowBuilderContext): Promise<FlowContent[]>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
async function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request
|
|
1
|
+
import { splitAiAgentContents } from "../utils/ai-agent.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
async function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request }) {
|
|
6
6
|
const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow();
|
|
7
7
|
const isAiAgentEnabled = cmsApi.isAiAgentEnabled();
|
|
8
8
|
if (!startNodeAiAgentFlow || !isAiAgentEnabled) {
|
|
9
9
|
return [];
|
|
10
10
|
}
|
|
11
11
|
const contents = await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow);
|
|
12
|
-
const splitContents =
|
|
12
|
+
const splitContents = splitAiAgentContents(contents);
|
|
13
13
|
if (!splitContents) {
|
|
14
14
|
return [];
|
|
15
15
|
}
|
|
@@ -29,4 +29,7 @@ async function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, re
|
|
|
29
29
|
}
|
|
30
30
|
return contents;
|
|
31
31
|
}
|
|
32
|
+
|
|
33
|
+
export { getContentsByAiAgentFromUserInput };
|
|
34
|
+
|
|
32
35
|
//# sourceMappingURL=ai-agent-from-user-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent-from-user-input.js","
|
|
1
|
+
{"version":3,"file":"action/ai-agent-from-user-input.js","sources":["../../../src/action/ai-agent-from-user-input.ts"],"sourcesContent":["import type { FlowContent } from '../content-fields/index'\nimport { splitAiAgentContents } from '../utils/ai-agent'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByAiAgentFromUserInput({\n cmsApi,\n flowBuilderPlugin,\n request,\n}: FlowBuilderContext): Promise<FlowContent[]> {\n const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow()\n const isAiAgentEnabled = cmsApi.isAiAgentEnabled()\n if (!startNodeAiAgentFlow || !isAiAgentEnabled) {\n return []\n }\n\n const contents =\n await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow)\n\n const splitContents = splitAiAgentContents(contents)\n\n if (!splitContents) {\n return []\n }\n\n if ('aiAgentRouterContent' in splitContents) {\n const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents\n const aiAgentResponse = await aiAgentRouterContent.resolveAIAgentResponse(\n request,\n contentsBeforeAiAgentRouter\n )\n\n if (!aiAgentResponse || aiAgentResponse.exit) {\n return []\n }\n }\n\n if ('aiAgentWorkerContent' in splitContents) {\n const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents\n const aiAgentResponse = await aiAgentWorkerContent.resolveAIAgentResponse(\n request,\n contentsBeforeAiAgentWorker\n )\n\n if (!aiAgentResponse || aiAgentResponse.exit) {\n return []\n }\n }\n\n return contents\n}\n"],"names":["splitAiAgentContents","getContentsByAiAgentFromUserInput","cmsApi","flowBuilderPlugin","request","startNodeAiAgentFlow","isAiAgentEnabled","contents","splitContents","aiAgentRouterContent","contentsBeforeAiAgentRouter","aiAgentResponse","aiAgentWorkerContent","contentsBeforeAiAgentWorker"],"mappings":";;;AACwD;AAGjD,eAAeC,iCAAiCA,CAAC,EACtDC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACY;IACnB,MAAMC,uBAAuBH,OAAO,uBAAuB;IAC3D,MAAMI,mBAAmBJ,OAAO,gBAAgB;IAChD,IAAI,CAACG,wBAAwB,CAACC,kBAAkB;QAC9C,OAAO,EAAE;IACX;IAEA,MAAMC,WACJ,MAAMJ,kBAAkB,iBAAiB,CAACE;IAE5C,MAAMG,gBAAgBR,oBAAoBA,CAACO;IAE3C,IAAI,CAACC,eAAe;QAClB,OAAO,EAAE;IACX;IAEA,IAAI,0BAA0BA,eAAe;QAC3C,MAAM,EAAEC,oBAAoB,EAAEC,2BAA2B,EAAE,GAAGF;QAC9D,MAAMG,kBAAkB,MAAMF,qBAAqB,sBAAsB,CACvEL,SACAM;QAGF,IAAI,CAACC,mBAAmBA,gBAAgB,IAAI,EAAE;YAC5C,OAAO,EAAE;QACX;IACF;IAEA,IAAI,0BAA0BH,eAAe;QAC3C,MAAM,EAAEI,oBAAoB,EAAEC,2BAA2B,EAAE,GAAGL;QAC9D,MAAMG,kBAAkB,MAAMC,qBAAqB,sBAAsB,CACvER,SACAS;QAGF,IAAI,CAACF,mBAAmBA,gBAAgB,IAAI,EAAE;YAC5C,OAAO,EAAE;QACX;IACF;IAEA,OAAOJ;AACT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BotContext } from '@botonic/core';
|
|
2
|
-
import type { FlowBuilderApi } from '../api';
|
|
3
|
-
import type BotonicPluginFlowBuilder from '../index';
|
|
2
|
+
import type { FlowBuilderApi } from '../api.js';
|
|
3
|
+
import type BotonicPluginFlowBuilder from '../index.js';
|
|
4
4
|
export interface FlowBuilderContext {
|
|
5
5
|
cmsApi: FlowBuilderApi;
|
|
6
6
|
flowBuilderPlugin: BotonicPluginFlowBuilder;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { getFlowBuilderPlugin } from "../utils/get-flow-builder-plugin.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
5
|
function getFlowBuilderActionContext(request, contentID) {
|
|
6
|
-
const flowBuilderPlugin =
|
|
6
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
7
7
|
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
8
8
|
const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale();
|
|
9
9
|
return {
|
|
@@ -11,7 +11,10 @@ function getFlowBuilderActionContext(request, contentID) {
|
|
|
11
11
|
flowBuilderPlugin,
|
|
12
12
|
request,
|
|
13
13
|
resolvedLocale,
|
|
14
|
-
contentID
|
|
14
|
+
contentID
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
+
|
|
18
|
+
export { getFlowBuilderActionContext };
|
|
19
|
+
|
|
17
20
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","
|
|
1
|
+
{"version":3,"file":"action/context.js","sources":["../../../src/action/context.ts"],"sourcesContent":["import type { BotContext } from '@botonic/core'\n\nimport type { FlowBuilderApi } from '../api'\nimport type BotonicPluginFlowBuilder from '../index'\nimport { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'\n\nexport interface FlowBuilderContext {\n cmsApi: FlowBuilderApi\n flowBuilderPlugin: BotonicPluginFlowBuilder\n request: BotContext\n resolvedLocale: string\n contentID?: string\n}\n\nexport function getFlowBuilderActionContext(\n request: BotContext,\n contentID?: string\n): FlowBuilderContext {\n const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)\n const cmsApi = flowBuilderPlugin.cmsApi\n const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale()\n return {\n cmsApi,\n flowBuilderPlugin,\n request,\n resolvedLocale,\n contentID,\n }\n}\n"],"names":["getFlowBuilderPlugin","getFlowBuilderActionContext","request","contentID","flowBuilderPlugin","cmsApi","resolvedLocale"],"mappings":";;;AAIuE;AAUhE,SAASC,2BAA2BA,CACzCC,OAAmB,EACnBC,SAAkB;IAElB,MAAMC,oBAAoBJ,oBAAoBA,CAACE,QAAQ,OAAO;IAC9D,MAAMG,SAASD,kBAAkB,MAAM;IACvC,MAAME,iBAAiBF,kBAAkB,MAAM,CAAC,iBAAiB;IACjE,OAAO;QACLC;QACAD;QACAF;QACAI;QACAH;IACF;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { FlowContent } from '../content-fields';
|
|
2
|
-
import type { FlowBuilderContext } from './context';
|
|
1
|
+
import type { FlowContent } from '../content-fields/index.js';
|
|
2
|
+
import type { FlowBuilderContext } from './context.js';
|
|
3
3
|
export declare function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, }: FlowBuilderContext): Promise<FlowContent[]>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { EventAction } from "@botonic/core";
|
|
2
|
+
import { getCommonFlowContentEventArgsForContentId, trackEvent } from "../tracking.js";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
async function getContentsByFallback({ cmsApi, flowBuilderPlugin, request }) {
|
|
7
9
|
const fallbackNode = await getFallbackNode(cmsApi, request);
|
|
8
10
|
const fallbackContents = await flowBuilderPlugin.getContentsByNode(fallbackNode);
|
|
9
11
|
return fallbackContents;
|
|
@@ -12,25 +14,28 @@ async function getFallbackNode(cmsApi, request) {
|
|
|
12
14
|
if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {
|
|
13
15
|
request.session.user.extra_data = {
|
|
14
16
|
...request.session.user.extra_data,
|
|
15
|
-
isFirstFallbackOption: true
|
|
17
|
+
isFirstFallbackOption: true
|
|
16
18
|
};
|
|
17
19
|
}
|
|
18
20
|
const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
|
|
19
21
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
20
22
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
21
|
-
const { flowId, flowName, flowNodeId, flowNodeContentId } =
|
|
23
|
+
const { flowId, flowName, flowNodeId, flowNodeContentId } = getCommonFlowContentEventArgsForContentId(request, fallbackNode.id);
|
|
22
24
|
const event = {
|
|
23
|
-
action:
|
|
25
|
+
action: EventAction.Fallback,
|
|
24
26
|
flowId,
|
|
25
27
|
flowName,
|
|
26
28
|
flowNodeId,
|
|
27
29
|
flowNodeContentId,
|
|
28
30
|
userInput: request.input.data,
|
|
29
31
|
fallbackOut: isFirstFallbackOption ? 1 : 2,
|
|
30
|
-
fallbackMessageId: request.input.message_id
|
|
32
|
+
fallbackMessageId: request.input.message_id
|
|
31
33
|
};
|
|
32
34
|
const { action, ...eventArgs } = event;
|
|
33
|
-
await
|
|
35
|
+
await trackEvent(request, action, eventArgs);
|
|
34
36
|
return fallbackNode;
|
|
35
37
|
}
|
|
38
|
+
|
|
39
|
+
export { getContentsByFallback };
|
|
40
|
+
|
|
36
41
|
//# sourceMappingURL=fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","
|
|
1
|
+
{"version":3,"file":"action/fallback.js","sources":["../../../src/action/fallback.ts"],"sourcesContent":["import { EventAction, type EventFallback } from '@botonic/core'\nimport type { ActionRequest } from '@botonic/react'\n\nimport type { FlowBuilderApi } from '../api'\nimport type { FlowContent } from '../content-fields'\nimport {\n getCommonFlowContentEventArgsForContentId,\n trackEvent,\n} from '../tracking'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByFallback({\n cmsApi,\n flowBuilderPlugin,\n request,\n}: FlowBuilderContext): Promise<FlowContent[]> {\n const fallbackNode = await getFallbackNode(cmsApi, request)\n const fallbackContents =\n await flowBuilderPlugin.getContentsByNode(fallbackNode)\n\n return fallbackContents\n}\n\nasync function getFallbackNode(cmsApi: FlowBuilderApi, request: ActionRequest) {\n if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {\n request.session.user.extra_data = {\n ...request.session.user.extra_data,\n isFirstFallbackOption: true,\n }\n }\n\n const isFirstFallbackOption =\n !!request.session.user.extra_data.isFirstFallbackOption\n const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption)\n request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption\n\n const { flowId, flowName, flowNodeId, flowNodeContentId } =\n getCommonFlowContentEventArgsForContentId(request, fallbackNode.id)\n\n const event: EventFallback = {\n action: EventAction.Fallback,\n flowId,\n flowName,\n flowNodeId,\n flowNodeContentId,\n userInput: request.input.data as string,\n fallbackOut: isFirstFallbackOption ? 1 : 2,\n fallbackMessageId: request.input.message_id,\n }\n const { action, ...eventArgs } = event\n\n await trackEvent(request, action, eventArgs)\n\n return fallbackNode\n}\n"],"names":["EventAction","getCommonFlowContentEventArgsForContentId","trackEvent","getContentsByFallback","cmsApi","flowBuilderPlugin","request","fallbackNode","getFallbackNode","fallbackContents","undefined","isFirstFallbackOption","flowId","flowName","flowNodeId","flowNodeContentId","event","action","eventArgs"],"mappings":";;;;;AAA+D;AAQ3C;AAGb,eAAeG,qBAAqBA,CAAC,EAC1CC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACY;IACnB,MAAMC,eAAe,MAAMC,eAAeA,CAACJ,QAAQE;IACnD,MAAMG,mBACJ,MAAMJ,kBAAkB,iBAAiB,CAACE;IAE5C,OAAOE;AACT;AAEA,eAAeD,eAAeA,CAACJ,MAAsB,EAAEE,OAAsB;IAC3E,IAAIA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,0BAA0BI,WAAW;QACxEJ,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG;YAChC,GAAGA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU;YAClC,uBAAuB;QACzB;IACF;IAEA,MAAMK,wBACJ,CAAC,CAACL,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB;IACzD,MAAMC,eAAeH,OAAO,eAAe,CAACO;IAC5CL,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,CAACK;IAEzD,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,iBAAiB,EAAE,GACvDd,yCAAyCA,CAACK,SAASC,aAAa,EAAE;IAEpE,MAAMS,QAAuB;QAC3B,QAAQhB,oBAAoB;QAC5BY;QACAC;QACAC;QACAC;QACA,WAAWT,QAAQ,KAAK,CAAC,IAAI;QAC7B,aAAaK,wBAAwB,IAAI;QACzC,mBAAmBL,QAAQ,KAAK,CAAC,UAAU;IAC7C;IACA,MAAM,EAAEW,MAAM,EAAE,GAAGC,WAAW,GAAGF;IAEjC,MAAMd,UAAUA,CAACI,SAASW,QAAQC;IAElC,OAAOX;AACT"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type FlowContent } from '../content-fields';
|
|
2
|
-
import type { FlowBuilderContext } from './context';
|
|
1
|
+
import { type FlowContent } from '../content-fields/index.js';
|
|
2
|
+
import type { FlowBuilderContext } from './context.js';
|
|
3
3
|
export declare function getContentsByFirstInteraction(context: FlowBuilderContext): Promise<FlowContent[]>;
|
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { MAIN_FLOW_NAME } from "../constants.js";
|
|
2
|
+
import { FlowAiAgent, FlowAiAgentRouter, FlowBotAction } from "../content-fields/index.js";
|
|
3
|
+
import { inputHasTextOrTranscript } from "../utils/input.js";
|
|
4
|
+
import { getContentsByAiAgentFromUserInput } from "./ai-agent-from-user-input.js";
|
|
5
|
+
import { getContentsByPayload } from "./payload.js";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
9
17
|
async function getContentsByFirstInteraction(context) {
|
|
10
18
|
const { contentID, flowBuilderPlugin, request } = context;
|
|
11
19
|
/*
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const firstInteractionContents = await flowBuilderPlugin.getStartContents();
|
|
20
|
+
* If the contentID is provided, the firstInteractionContents are obtained even if they are not used
|
|
21
|
+
* because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.
|
|
22
|
+
* This is needed for example when send a WhatsApp campaign is sent,
|
|
23
|
+
* the bot not receives the message because this message is sent directly by the backend
|
|
24
|
+
* we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.
|
|
25
|
+
*/ const firstInteractionContents = await flowBuilderPlugin.getStartContents();
|
|
19
26
|
if (contentID) {
|
|
20
27
|
try {
|
|
21
28
|
const contentsByContentID = await flowBuilderPlugin.getContentsByContentID(contentID);
|
|
22
29
|
if (contentsByContentID.length > 0) {
|
|
23
30
|
return contentsByContentID;
|
|
24
31
|
}
|
|
25
|
-
}
|
|
26
|
-
catch (_error) {
|
|
32
|
+
} catch (_error) {
|
|
27
33
|
console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
|
|
28
34
|
}
|
|
29
35
|
}
|
|
@@ -33,18 +39,21 @@ async function getContentsByFirstInteraction(context) {
|
|
|
33
39
|
if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {
|
|
34
40
|
return firstInteractionContents;
|
|
35
41
|
}
|
|
36
|
-
if (request.input.nluResolution ||
|
|
42
|
+
if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {
|
|
37
43
|
const contentsByUserInput = await getContentsByUserInput(context);
|
|
38
|
-
return [
|
|
44
|
+
return [
|
|
45
|
+
...firstInteractionContents,
|
|
46
|
+
...contentsByUserInput
|
|
47
|
+
];
|
|
39
48
|
}
|
|
40
49
|
return firstInteractionContents;
|
|
41
50
|
}
|
|
42
51
|
function startContentsAlreadyHandleUserInput(contents) {
|
|
43
|
-
if (contents.at(-1) instanceof
|
|
52
|
+
if (contents.at(-1) instanceof FlowBotAction) {
|
|
44
53
|
return true;
|
|
45
54
|
}
|
|
46
55
|
// To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.
|
|
47
|
-
return contents.some(content
|
|
56
|
+
return contents.some((content)=>content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter);
|
|
48
57
|
}
|
|
49
58
|
async function getContentsByUserInput(context) {
|
|
50
59
|
const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context;
|
|
@@ -55,11 +64,11 @@ async function getContentsByUserInput(context) {
|
|
|
55
64
|
if (request.input.payload === conversationStartId) {
|
|
56
65
|
return [];
|
|
57
66
|
}
|
|
58
|
-
const contentsByKeywordsOrIntents = await
|
|
67
|
+
const contentsByKeywordsOrIntents = await getContentsByPayload({
|
|
59
68
|
cmsApi,
|
|
60
69
|
flowBuilderPlugin,
|
|
61
70
|
request,
|
|
62
|
-
resolvedLocale
|
|
71
|
+
resolvedLocale
|
|
63
72
|
});
|
|
64
73
|
const hasRepeatedContent = await checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents);
|
|
65
74
|
if (hasRepeatedContent) {
|
|
@@ -70,19 +79,22 @@ async function getContentsByUserInput(context) {
|
|
|
70
79
|
}
|
|
71
80
|
}
|
|
72
81
|
if (!flowBuilderPlugin.disableAIAgentInFirstInteraction) {
|
|
73
|
-
const contentsByAiAgent = await
|
|
82
|
+
const contentsByAiAgent = await getContentsByAiAgentFromUserInput(context);
|
|
74
83
|
return contentsByAiAgent;
|
|
75
84
|
}
|
|
76
85
|
return [];
|
|
77
86
|
}
|
|
78
87
|
function getConversationStartId(cmsApi) {
|
|
79
|
-
const conversationStartId = cmsApi.flow.flows.find(flow
|
|
88
|
+
const conversationStartId = cmsApi.flow.flows.find((flow)=>flow.name === MAIN_FLOW_NAME)?.start_node_id;
|
|
80
89
|
return conversationStartId;
|
|
81
90
|
}
|
|
82
91
|
async function checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents) {
|
|
83
92
|
const startContents = await flowBuilderPlugin.getStartContents();
|
|
84
|
-
const contentIds = new Set(contentsByKeywordsOrIntents.map(content
|
|
85
|
-
const hasRepeatedContent = startContents.some(content
|
|
93
|
+
const contentIds = new Set(contentsByKeywordsOrIntents.map((content)=>content.id));
|
|
94
|
+
const hasRepeatedContent = startContents.some((content)=>contentIds.has(content.id));
|
|
86
95
|
return hasRepeatedContent;
|
|
87
96
|
}
|
|
97
|
+
|
|
98
|
+
export { getContentsByFirstInteraction };
|
|
99
|
+
|
|
88
100
|
//# sourceMappingURL=first-interaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-interaction.js","
|
|
1
|
+
{"version":3,"file":"action/first-interaction.js","sources":["../../../src/action/first-interaction.ts"],"sourcesContent":["import type { FlowBuilderApi } from '../api'\nimport { MAIN_FLOW_NAME } from '../constants'\nimport {\n FlowAiAgent,\n FlowAiAgentRouter,\n FlowBotAction,\n type FlowContent,\n} from '../content-fields'\nimport type BotonicPluginFlowBuilder from '../index'\nimport { inputHasTextOrTranscript } from '../utils/input'\nimport { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'\nimport type { FlowBuilderContext } from './context'\nimport { getContentsByPayload } from './payload'\n\nexport async function getContentsByFirstInteraction(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { contentID, flowBuilderPlugin, request } = context\n\n /*\n * If the contentID is provided, the firstInteractionContents are obtained even if they are not used\n * because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.\n * This is needed for example when send a WhatsApp campaign is sent,\n * the bot not receives the message because this message is sent directly by the backend\n * we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.\n */\n const firstInteractionContents = await flowBuilderPlugin.getStartContents()\n\n if (contentID) {\n try {\n const contentsByContentID =\n await flowBuilderPlugin.getContentsByContentID(contentID)\n\n if (contentsByContentID.length > 0) {\n return contentsByContentID\n }\n } catch (_error) {\n console.warn(\n `The contentID ${contentID} is not found. Returning the firstInteractionContents`\n )\n }\n }\n\n // Bot actions and AI agents already consume the user input. Matching\n // keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies\n // (e.g. Main start → Go to flow → AI Agents).\n if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {\n return firstInteractionContents\n }\n\n if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {\n const contentsByUserInput = await getContentsByUserInput(context)\n\n return [...firstInteractionContents, ...contentsByUserInput]\n }\n\n return firstInteractionContents\n}\n\nfunction startContentsAlreadyHandleUserInput(contents: FlowContent[]): boolean {\n if (contents.at(-1) instanceof FlowBotAction) {\n return true\n }\n\n // To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.\n return contents.some(\n content =>\n content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter\n )\n}\n\nasync function getContentsByUserInput(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context\n const payloadByNlu = request.input.nluResolution?.payload\n\n if (payloadByNlu) {\n request.input.payload = payloadByNlu\n const conversationStartId = getConversationStartId(cmsApi)\n\n if (request.input.payload === conversationStartId) {\n return []\n }\n\n const contentsByKeywordsOrIntents = await getContentsByPayload({\n cmsApi,\n flowBuilderPlugin,\n request,\n resolvedLocale,\n })\n\n const hasRepeatedContent = await checkRepeatedContents(\n flowBuilderPlugin,\n contentsByKeywordsOrIntents\n )\n\n if (hasRepeatedContent) {\n return []\n }\n\n if (contentsByKeywordsOrIntents.length > 0) {\n return contentsByKeywordsOrIntents\n }\n }\n\n if (!flowBuilderPlugin.disableAIAgentInFirstInteraction) {\n const contentsByAiAgent = await getContentsByAiAgentFromUserInput(context)\n return contentsByAiAgent\n }\n\n return []\n}\n\nfunction getConversationStartId(cmsApi: FlowBuilderApi) {\n const conversationStartId = cmsApi.flow.flows.find(\n flow => flow.name === MAIN_FLOW_NAME\n )?.start_node_id\n\n return conversationStartId\n}\n\nasync function checkRepeatedContents(\n flowBuilderPlugin: BotonicPluginFlowBuilder,\n contentsByKeywordsOrIntents: FlowContent[]\n) {\n const startContents = await flowBuilderPlugin.getStartContents()\n const contentIds = new Set(\n contentsByKeywordsOrIntents.map(content => content.id)\n )\n const hasRepeatedContent = startContents.some(content =>\n contentIds.has(content.id)\n )\n\n return hasRepeatedContent\n}\n"],"names":["MAIN_FLOW_NAME","FlowAiAgent","FlowAiAgentRouter","FlowBotAction","inputHasTextOrTranscript","getContentsByAiAgentFromUserInput","getContentsByPayload","getContentsByFirstInteraction","context","contentID","flowBuilderPlugin","request","firstInteractionContents","contentsByContentID","_error","console","startContentsAlreadyHandleUserInput","contentsByUserInput","getContentsByUserInput","contents","content","cmsApi","resolvedLocale","payloadByNlu","conversationStartId","getConversationStartId","contentsByKeywordsOrIntents","hasRepeatedContent","checkRepeatedContents","contentsByAiAgent","flow","startContents","contentIds","Set"],"mappings":";;;;;;;;;;;AAC6C;AAMnB;AAE+B;AACqB;AAE9B;AAEzC,eAAeO,6BAA6BA,CACjDC,OAA2B;IAE3B,MAAM,EAAEC,SAAS,EAAEC,iBAAiB,EAAEC,OAAO,EAAE,GAAGH;IAElD;;;;;;GAMC,GACD,MAAMI,2BAA2B,MAAMF,kBAAkB,gBAAgB;IAEzE,IAAID,WAAW;QACb,IAAI;YACF,MAAMI,sBACJ,MAAMH,kBAAkB,sBAAsB,CAACD;YAEjD,IAAII,oBAAoB,MAAM,GAAG,GAAG;gBAClC,OAAOA;YACT;QACF,EAAE,OAAOC,QAAQ;YACfC,QAAQ,IAAI,CACV,CAAC,cAAc,EAAEN,UAAU,qDAAqD,CAAC;QAErF;IACF;IAEA,qEAAqE;IACrE,8EAA8E;IAC9E,8CAA8C;IAC9C,IAAIO,mCAAmCA,CAACJ,2BAA2B;QACjE,OAAOA;IACT;IAEA,IAAID,QAAQ,KAAK,CAAC,aAAa,IAAIP,wBAAwBA,CAACO,QAAQ,KAAK,GAAG;QAC1E,MAAMM,sBAAsB,MAAMC,sBAAsBA,CAACV;QAEzD,OAAO;eAAII;eAA6BK;SAAoB;IAC9D;IAEA,OAAOL;AACT;AAEA,SAASI,mCAAmCA,CAACG,QAAuB;IAClE,IAAIA,SAAS,EAAE,CAAC,CAAC,cAAchB,aAAaA,EAAE;QAC5C,OAAO;IACT;IAEA,gIAAgI;IAChI,OAAOgB,SAAS,IAAI,CAClBC,CAAAA,UACEA,mBAAmBnB,WAAWA,IAAImB,mBAAmBlB,iBAAiBA;AAE5E;AAEA,eAAegB,sBAAsBA,CACnCV,OAA2B;IAE3B,MAAM,EAAEa,MAAM,EAAEX,iBAAiB,EAAEC,OAAO,EAAEW,cAAc,EAAE,GAAGd;IAC/D,MAAMe,eAAeZ,QAAQ,KAAK,CAAC,aAAa,EAAE;IAElD,IAAIY,cAAc;QAChBZ,QAAQ,KAAK,CAAC,OAAO,GAAGY;QACxB,MAAMC,sBAAsBC,sBAAsBA,CAACJ;QAEnD,IAAIV,QAAQ,KAAK,CAAC,OAAO,KAAKa,qBAAqB;YACjD,OAAO,EAAE;QACX;QAEA,MAAME,8BAA8B,MAAMpB,oBAAoBA,CAAC;YAC7De;YACAX;YACAC;YACAW;QACF;QAEA,MAAMK,qBAAqB,MAAMC,qBAAqBA,CACpDlB,mBACAgB;QAGF,IAAIC,oBAAoB;YACtB,OAAO,EAAE;QACX;QAEA,IAAID,4BAA4B,MAAM,GAAG,GAAG;YAC1C,OAAOA;QACT;IACF;IAEA,IAAI,CAAChB,kBAAkB,gCAAgC,EAAE;QACvD,MAAMmB,oBAAoB,MAAMxB,iCAAiCA,CAACG;QAClE,OAAOqB;IACT;IAEA,OAAO,EAAE;AACX;AAEA,SAASJ,sBAAsBA,CAACJ,MAAsB;IACpD,MAAMG,sBAAsBH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAChDS,CAAAA,OAAQA,KAAK,IAAI,KAAK9B,cAAcA,GACnC;IAEH,OAAOwB;AACT;AAEA,eAAeI,qBAAqBA,CAClClB,iBAA2C,EAC3CgB,2BAA0C;IAE1C,MAAMK,gBAAgB,MAAMrB,kBAAkB,gBAAgB;IAC9D,MAAMsB,aAAa,IAAIC,IACrBP,4BAA4B,GAAG,CAACN,CAAAA,UAAWA,QAAQ,EAAE;IAEvD,MAAMO,qBAAqBI,cAAc,IAAI,CAACX,CAAAA,UAC5CY,WAAW,GAAG,CAACZ,QAAQ,EAAE;IAG3B,OAAOO;AACT"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type BotContext } from '@botonic/core';
|
|
2
|
-
import type { FlowContent } from '../content-fields';
|
|
2
|
+
import type { FlowContent } from '../content-fields/index.js';
|
|
3
3
|
export declare function getContents(botContext: BotContext, contentID?: string): Promise<FlowContent[]>;
|
|
@@ -1,39 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { INPUT } from "@botonic/core";
|
|
2
|
+
import { EMPTY_PAYLOAD } from "../constants.js";
|
|
3
|
+
import { inputHasTextOrTranscript } from "../utils/input.js";
|
|
4
|
+
import { getContentsByAiAgentFromUserInput } from "./ai-agent-from-user-input.js";
|
|
5
|
+
import { getFlowBuilderActionContext } from "./context.js";
|
|
6
|
+
import { getContentsByFallback } from "./fallback.js";
|
|
7
|
+
import { getContentsByFirstInteraction } from "./first-interaction.js";
|
|
8
|
+
import { getContentsByPayload } from "./payload.js";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
12
26
|
async function getContents(botContext, contentID) {
|
|
13
|
-
const context =
|
|
27
|
+
const context = getFlowBuilderActionContext(botContext, contentID);
|
|
14
28
|
if (botContext.session.is_first_interaction) {
|
|
15
|
-
return await
|
|
29
|
+
return await getContentsByFirstInteraction(context);
|
|
16
30
|
}
|
|
17
31
|
// TODO: Add needed logic when we can define contents for multi locale queue position message
|
|
18
|
-
if (botContext.input.type ===
|
|
32
|
+
if (botContext.input.type === INPUT.EVENT_QUEUE_POSITION_CHANGED) {
|
|
19
33
|
return [];
|
|
20
34
|
}
|
|
21
|
-
if (botContext.input.payload?.startsWith(
|
|
35
|
+
if (botContext.input.payload?.startsWith(EMPTY_PAYLOAD)) {
|
|
22
36
|
botContext.input.payload = undefined;
|
|
23
37
|
}
|
|
24
38
|
if (botContext.input.payload || contentID) {
|
|
25
|
-
const contentsByPayload = await
|
|
39
|
+
const contentsByPayload = await getContentsByPayload(context);
|
|
26
40
|
if (contentsByPayload.length > 0) {
|
|
27
41
|
return contentsByPayload;
|
|
28
42
|
}
|
|
29
|
-
return await
|
|
43
|
+
return await getContentsByFallback(context);
|
|
30
44
|
}
|
|
31
|
-
if (
|
|
32
|
-
const aiAgentContents = await
|
|
45
|
+
if (inputHasTextOrTranscript(botContext.input)) {
|
|
46
|
+
const aiAgentContents = await getContentsByAiAgentFromUserInput(context);
|
|
33
47
|
if (aiAgentContents.length > 0) {
|
|
34
48
|
return aiAgentContents;
|
|
35
49
|
}
|
|
36
50
|
}
|
|
37
|
-
return await
|
|
51
|
+
return await getContentsByFallback(context);
|
|
38
52
|
}
|
|
53
|
+
|
|
54
|
+
export { getContents };
|
|
55
|
+
|
|
39
56
|
//# sourceMappingURL=get-contents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-contents.js","
|
|
1
|
+
{"version":3,"file":"action/get-contents.js","sources":["../../../src/action/get-contents.ts"],"sourcesContent":["import { type BotContext, INPUT } from '@botonic/core'\nimport { EMPTY_PAYLOAD } from '../constants'\nimport type { FlowContent } from '../content-fields'\nimport { inputHasTextOrTranscript } from '../utils/input'\nimport { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'\nimport { getFlowBuilderActionContext } from './context'\nimport { getContentsByFallback } from './fallback'\nimport { getContentsByFirstInteraction } from './first-interaction'\nimport { getContentsByPayload } from './payload'\n\nexport async function getContents(\n botContext: BotContext,\n contentID?: string\n): Promise<FlowContent[]> {\n const context = getFlowBuilderActionContext(botContext, contentID)\n\n if (botContext.session.is_first_interaction) {\n return await getContentsByFirstInteraction(context)\n }\n // TODO: Add needed logic when we can define contents for multi locale queue position message\n if (botContext.input.type === INPUT.EVENT_QUEUE_POSITION_CHANGED) {\n return []\n }\n\n if (botContext.input.payload?.startsWith(EMPTY_PAYLOAD)) {\n botContext.input.payload = undefined\n }\n\n if (botContext.input.payload || contentID) {\n const contentsByPayload = await getContentsByPayload(context)\n if (contentsByPayload.length > 0) {\n return contentsByPayload\n }\n\n return await getContentsByFallback(context)\n }\n\n if (inputHasTextOrTranscript(botContext.input)) {\n const aiAgentContents = await getContentsByAiAgentFromUserInput(context)\n if (aiAgentContents.length > 0) {\n return aiAgentContents\n }\n }\n\n return await getContentsByFallback(context)\n}\n"],"names":["INPUT","EMPTY_PAYLOAD","inputHasTextOrTranscript","getContentsByAiAgentFromUserInput","getFlowBuilderActionContext","getContentsByFallback","getContentsByFirstInteraction","getContentsByPayload","getContents","botContext","contentID","context","undefined","contentsByPayload","aiAgentContents"],"mappings":";;;;;;;;;;;;;;;;;AAAsD;AACV;AAEa;AACqB;AACvB;AACL;AACiB;AACnB;AAEzC,eAAeQ,WAAWA,CAC/BC,UAAsB,EACtBC,SAAkB;IAElB,MAAMC,UAAUP,2BAA2BA,CAACK,YAAYC;IAExD,IAAID,WAAW,OAAO,CAAC,oBAAoB,EAAE;QAC3C,OAAO,MAAMH,6BAA6BA,CAACK;IAC7C;IACA,6FAA6F;IAC7F,IAAIF,WAAW,KAAK,CAAC,IAAI,KAAKT,kCAAkC,EAAE;QAChE,OAAO,EAAE;IACX;IAEA,IAAIS,WAAW,KAAK,CAAC,OAAO,EAAE,WAAWR,aAAaA,GAAG;QACvDQ,WAAW,KAAK,CAAC,OAAO,GAAGG;IAC7B;IAEA,IAAIH,WAAW,KAAK,CAAC,OAAO,IAAIC,WAAW;QACzC,MAAMG,oBAAoB,MAAMN,oBAAoBA,CAACI;QACrD,IAAIE,kBAAkB,MAAM,GAAG,GAAG;YAChC,OAAOA;QACT;QAEA,OAAO,MAAMR,qBAAqBA,CAACM;IACrC;IAEA,IAAIT,wBAAwBA,CAACO,WAAW,KAAK,GAAG;QAC9C,MAAMK,kBAAkB,MAAMX,iCAAiCA,CAACQ;QAChE,IAAIG,gBAAgB,MAAM,GAAG,GAAG;YAC9B,OAAOA;QACT;IACF;IAEA,OAAO,MAAMT,qBAAqBA,CAACM;AACrC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type BotContext } from '@botonic/core';
|
|
2
2
|
import { RequestContext, type WebchatSettingsProps } from '@botonic/react';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { type FlowContent } from '../content-fields';
|
|
4
|
+
import { type FlowContent } from '../content-fields/index.js';
|
|
5
5
|
export type FlowBuilderActionProps = {
|
|
6
6
|
contents: FlowContent[];
|
|
7
7
|
webchatSettingsParams?: WebchatSettingsProps;
|
package/lib/esm/action/index.js
CHANGED
|
@@ -1,30 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { isDev, isWebchat } from "@botonic/core";
|
|
3
|
+
import { Multichannel, RequestContext, WebchatSettings } from "@botonic/react";
|
|
4
|
+
import react from "react";
|
|
5
|
+
import { FlowAiAgent, FlowAiAgentRouter } from "../content-fields/index.js";
|
|
6
|
+
import { splitAiAgentContents } from "../utils/ai-agent.js";
|
|
7
|
+
import { getFlowBuilderActionContext } from "./context.js";
|
|
8
|
+
import { getContentsByFirstInteraction } from "./first-interaction.js";
|
|
9
|
+
import { getContents } from "./get-contents.js";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class FlowBuilderAction extends react.Component {
|
|
15
30
|
static async executeConversationStart(botContext) {
|
|
16
|
-
const context =
|
|
17
|
-
const contents = await
|
|
31
|
+
const context = getFlowBuilderActionContext(botContext);
|
|
32
|
+
const contents = await getContentsByFirstInteraction(context);
|
|
18
33
|
const filteredContents = await FlowBuilderAction.prepareContentsToRender(botContext, contents);
|
|
19
|
-
return {
|
|
34
|
+
return {
|
|
35
|
+
contents: filteredContents
|
|
36
|
+
};
|
|
20
37
|
}
|
|
21
38
|
static async botonicInit(botContext, contentID) {
|
|
22
|
-
const contents = await
|
|
39
|
+
const contents = await getContents(botContext, contentID);
|
|
23
40
|
const contentsToRender = await FlowBuilderAction.prepareContentsToRender(botContext, contents);
|
|
24
|
-
return {
|
|
41
|
+
return {
|
|
42
|
+
contents: contentsToRender
|
|
43
|
+
};
|
|
25
44
|
}
|
|
26
45
|
static async prepareContentsToRender(botContext, contents) {
|
|
27
|
-
for (const content of contents)
|
|
46
|
+
for (const content of contents){
|
|
28
47
|
if (FlowBuilderAction.isAiAgentContent(content)) {
|
|
29
48
|
await FlowBuilderAction.processAiAgentContent(botContext, contents);
|
|
30
49
|
continue;
|
|
@@ -34,11 +53,11 @@ class FlowBuilderAction extends react_2.default.Component {
|
|
|
34
53
|
return contents;
|
|
35
54
|
}
|
|
36
55
|
static isAiAgentContent(content) {
|
|
37
|
-
return
|
|
56
|
+
return content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter;
|
|
38
57
|
}
|
|
39
58
|
// TODO: Refactor this to be more generic and reusable
|
|
40
59
|
static async processAiAgentContent(botContext, contents) {
|
|
41
|
-
const splitContents =
|
|
60
|
+
const splitContents = splitAiAgentContents(contents);
|
|
42
61
|
if (!splitContents) {
|
|
43
62
|
return;
|
|
44
63
|
}
|
|
@@ -58,33 +77,50 @@ class FlowBuilderAction extends react_2.default.Component {
|
|
|
58
77
|
...webchatSettingsParams,
|
|
59
78
|
user: {
|
|
60
79
|
...webchatSettingsParams?.user,
|
|
61
|
-
system_locale: botContext.session.user.system_locale
|
|
62
|
-
}
|
|
80
|
+
system_locale: botContext.session.user.system_locale
|
|
81
|
+
}
|
|
63
82
|
};
|
|
64
83
|
}
|
|
65
|
-
const shouldSendWebchatSettings = (
|
|
66
|
-
!!webchatSettingsParams;
|
|
84
|
+
const shouldSendWebchatSettings = (isWebchat(botContext.session) || isDev(botContext.session)) && !!webchatSettingsParams;
|
|
67
85
|
return {
|
|
68
86
|
shouldSendWebchatSettings,
|
|
69
|
-
webchatSettingsParams
|
|
87
|
+
webchatSettingsParams
|
|
70
88
|
};
|
|
71
89
|
}
|
|
72
90
|
render() {
|
|
73
91
|
const { contents } = this.props;
|
|
74
92
|
const botContext = this.context;
|
|
75
93
|
const { shouldSendWebchatSettings, webchatSettingsParams } = this.getWebchatSettingsParams(botContext);
|
|
76
|
-
return
|
|
94
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
95
|
+
children: [
|
|
96
|
+
shouldSendWebchatSettings && /*#__PURE__*/ jsx(WebchatSettings, {
|
|
97
|
+
...webchatSettingsParams
|
|
98
|
+
}),
|
|
99
|
+
contents.map((content)=>content.toBotonic(botContext))
|
|
100
|
+
]
|
|
101
|
+
});
|
|
77
102
|
}
|
|
78
103
|
}
|
|
79
|
-
|
|
80
|
-
FlowBuilderAction.contextType = react_1.RequestContext;
|
|
104
|
+
FlowBuilderAction.contextType = RequestContext;
|
|
81
105
|
class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
82
106
|
render() {
|
|
83
107
|
const { contents } = this.props;
|
|
84
108
|
const botContext = this.context;
|
|
85
109
|
const { shouldSendWebchatSettings, webchatSettingsParams } = this.getWebchatSettingsParams(botContext);
|
|
86
|
-
return
|
|
110
|
+
return /*#__PURE__*/ jsxs(Multichannel, {
|
|
111
|
+
text: {
|
|
112
|
+
buttonsAsText: false
|
|
113
|
+
},
|
|
114
|
+
children: [
|
|
115
|
+
shouldSendWebchatSettings && /*#__PURE__*/ jsx(WebchatSettings, {
|
|
116
|
+
...webchatSettingsParams
|
|
117
|
+
}),
|
|
118
|
+
contents.map((content)=>content.toBotonic(botContext))
|
|
119
|
+
]
|
|
120
|
+
});
|
|
87
121
|
}
|
|
88
122
|
}
|
|
89
|
-
|
|
123
|
+
|
|
124
|
+
export { FlowBuilderAction, FlowBuilderMultichannelAction };
|
|
125
|
+
|
|
90
126
|
//# sourceMappingURL=index.js.map
|