@botonic/plugin-flow-builder 0.55.1 → 0.55.2
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.
|
@@ -27,10 +27,10 @@ async function getContentsByFirstInteraction(context) {
|
|
|
27
27
|
console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (firstInteractionContents
|
|
30
|
+
// Bot actions and AI agents already consume the user input. Matching
|
|
31
|
+
// keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies
|
|
32
|
+
// (e.g. Main start → Go to flow → AI Agents).
|
|
33
|
+
if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {
|
|
34
34
|
return firstInteractionContents;
|
|
35
35
|
}
|
|
36
36
|
if (request.input.nluResolution || (0, input_1.inputHasTextOrTranscript)(request.input)) {
|
|
@@ -39,6 +39,13 @@ async function getContentsByFirstInteraction(context) {
|
|
|
39
39
|
}
|
|
40
40
|
return firstInteractionContents;
|
|
41
41
|
}
|
|
42
|
+
function startContentsAlreadyHandleUserInput(contents) {
|
|
43
|
+
if (contents.at(-1) instanceof content_fields_1.FlowBotAction) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
// 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 => content instanceof content_fields_1.FlowAiAgent || content instanceof content_fields_1.FlowAiAgentRouter);
|
|
48
|
+
}
|
|
42
49
|
async function getContentsByUserInput(context) {
|
|
43
50
|
const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context;
|
|
44
51
|
const payloadByNlu = request.input.nluResolution?.payload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,10 +27,10 @@ async function getContentsByFirstInteraction(context) {
|
|
|
27
27
|
console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (firstInteractionContents
|
|
30
|
+
// Bot actions and AI agents already consume the user input. Matching
|
|
31
|
+
// keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies
|
|
32
|
+
// (e.g. Main start → Go to flow → AI Agents).
|
|
33
|
+
if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {
|
|
34
34
|
return firstInteractionContents;
|
|
35
35
|
}
|
|
36
36
|
if (request.input.nluResolution || (0, input_1.inputHasTextOrTranscript)(request.input)) {
|
|
@@ -39,6 +39,13 @@ async function getContentsByFirstInteraction(context) {
|
|
|
39
39
|
}
|
|
40
40
|
return firstInteractionContents;
|
|
41
41
|
}
|
|
42
|
+
function startContentsAlreadyHandleUserInput(contents) {
|
|
43
|
+
if (contents.at(-1) instanceof content_fields_1.FlowBotAction) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
// 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 => content instanceof content_fields_1.FlowAiAgent || content instanceof content_fields_1.FlowAiAgentRouter);
|
|
48
|
+
}
|
|
42
49
|
async function getContentsByUserInput(context) {
|
|
43
50
|
const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context;
|
|
44
51
|
const payloadByNlu = request.input.nluResolution?.payload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"first-interaction.js","sourceRoot":"","sources":["../../../src/action/first-interaction.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { FlowBuilderApi } from '../api'
|
|
2
2
|
import { MAIN_FLOW_NAME } from '../constants'
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
FlowAiAgent,
|
|
5
|
+
FlowAiAgentRouter,
|
|
6
|
+
FlowBotAction,
|
|
7
|
+
type FlowContent,
|
|
8
|
+
} from '../content-fields'
|
|
4
9
|
import type BotonicPluginFlowBuilder from '../index'
|
|
5
10
|
import { inputHasTextOrTranscript } from '../utils/input'
|
|
6
11
|
import { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'
|
|
@@ -36,10 +41,10 @@ export async function getContentsByFirstInteraction(
|
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (firstInteractionContents
|
|
44
|
+
// Bot actions and AI agents already consume the user input. Matching
|
|
45
|
+
// keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies
|
|
46
|
+
// (e.g. Main start → Go to flow → AI Agents).
|
|
47
|
+
if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {
|
|
43
48
|
return firstInteractionContents
|
|
44
49
|
}
|
|
45
50
|
|
|
@@ -52,6 +57,18 @@ export async function getContentsByFirstInteraction(
|
|
|
52
57
|
return firstInteractionContents
|
|
53
58
|
}
|
|
54
59
|
|
|
60
|
+
function startContentsAlreadyHandleUserInput(contents: FlowContent[]): boolean {
|
|
61
|
+
if (contents.at(-1) instanceof FlowBotAction) {
|
|
62
|
+
return true
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.
|
|
66
|
+
return contents.some(
|
|
67
|
+
content =>
|
|
68
|
+
content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
|
|
55
72
|
async function getContentsByUserInput(
|
|
56
73
|
context: FlowBuilderContext
|
|
57
74
|
): Promise<FlowContent[]> {
|