@botonic/plugin-flow-builder 0.27.5 → 0.27.7-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.
Files changed (49) hide show
  1. package/lib/cjs/action/first-interaction.d.ts +3 -0
  2. package/lib/cjs/action/first-interaction.js +72 -0
  3. package/lib/cjs/action/first-interaction.js.map +1 -0
  4. package/lib/cjs/action/index.js +10 -16
  5. package/lib/cjs/action/index.js.map +1 -1
  6. package/lib/cjs/action/knowledge-bases.js +7 -16
  7. package/lib/cjs/action/knowledge-bases.js.map +1 -1
  8. package/lib/cjs/action/payload.d.ts +3 -0
  9. package/lib/cjs/action/payload.js +17 -0
  10. package/lib/cjs/action/payload.js.map +1 -0
  11. package/lib/cjs/index.js +1 -3
  12. package/lib/cjs/index.js.map +1 -1
  13. package/lib/cjs/tracking.d.ts +0 -14
  14. package/lib/cjs/tracking.js +13 -14
  15. package/lib/cjs/tracking.js.map +1 -1
  16. package/lib/cjs/user-input/index.js +17 -5
  17. package/lib/cjs/user-input/index.js.map +1 -1
  18. package/lib/cjs/utils.d.ts +2 -1
  19. package/lib/cjs/utils.js +6 -1
  20. package/lib/cjs/utils.js.map +1 -1
  21. package/lib/esm/action/first-interaction.d.ts +3 -0
  22. package/lib/esm/action/first-interaction.js +68 -0
  23. package/lib/esm/action/first-interaction.js.map +1 -0
  24. package/lib/esm/action/index.js +9 -15
  25. package/lib/esm/action/index.js.map +1 -1
  26. package/lib/esm/action/knowledge-bases.js +7 -16
  27. package/lib/esm/action/knowledge-bases.js.map +1 -1
  28. package/lib/esm/action/payload.d.ts +3 -0
  29. package/lib/esm/action/payload.js +13 -0
  30. package/lib/esm/action/payload.js.map +1 -0
  31. package/lib/esm/index.js +2 -4
  32. package/lib/esm/index.js.map +1 -1
  33. package/lib/esm/tracking.d.ts +0 -14
  34. package/lib/esm/tracking.js +13 -13
  35. package/lib/esm/tracking.js.map +1 -1
  36. package/lib/esm/user-input/index.js +17 -5
  37. package/lib/esm/user-input/index.js.map +1 -1
  38. package/lib/esm/utils.d.ts +2 -1
  39. package/lib/esm/utils.js +4 -0
  40. package/lib/esm/utils.js.map +1 -1
  41. package/package.json +2 -2
  42. package/src/action/first-interaction.ts +111 -0
  43. package/src/action/index.tsx +9 -22
  44. package/src/action/knowledge-bases.ts +9 -16
  45. package/src/action/payload.ts +20 -0
  46. package/src/index.ts +2 -3
  47. package/src/tracking.ts +13 -13
  48. package/src/user-input/index.ts +21 -6
  49. package/src/utils.ts +5 -1
@@ -1,18 +1,12 @@
1
1
  import { __awaiter } from "tslib";
2
- import { INPUT } from '@botonic/core';
3
2
  import { FlowKnowledgeBase } from '../content-fields';
4
3
  import { EventAction, KnowledgebaseFailReason, trackEvent } from '../tracking';
5
- import { getContentsByFallback } from './fallback';
4
+ import { inputHasTextData } from '../utils';
6
5
  export function getContentsByKnowledgeBase({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
7
6
  return __awaiter(this, void 0, void 0, function* () {
8
7
  const startNodeKnowledeBaseFlow = cmsApi.getStartNodeKnowledeBaseFlow();
9
8
  if (!startNodeKnowledeBaseFlow) {
10
- return yield getContentsByFallback({
11
- cmsApi,
12
- flowBuilderPlugin,
13
- request,
14
- resolvedLocale,
15
- });
9
+ return [];
16
10
  }
17
11
  const contents = yield flowBuilderPlugin.getContentsByNode(startNodeKnowledeBaseFlow, resolvedLocale);
18
12
  const knowledgeBaseContent = contents.find(content => content instanceof FlowKnowledgeBase);
@@ -20,19 +14,13 @@ export function getContentsByKnowledgeBase({ cmsApi, flowBuilderPlugin, request,
20
14
  return contents;
21
15
  }
22
16
  if (flowBuilderPlugin.getKnowledgeBaseResponse &&
23
- request.input.data &&
24
- request.input.type === INPUT.TEXT) {
17
+ inputHasTextData(request.input)) {
25
18
  const contentsWithKnowledgeResponse = yield getContentsWithKnowledgeResponse(flowBuilderPlugin.getKnowledgeBaseResponse, request, knowledgeBaseContent, contents);
26
19
  if (contentsWithKnowledgeResponse) {
27
20
  return contentsWithKnowledgeResponse;
28
21
  }
29
22
  }
30
- return yield getContentsByFallback({
31
- cmsApi,
32
- flowBuilderPlugin,
33
- request,
34
- resolvedLocale,
35
- });
23
+ return [];
36
24
  });
37
25
  }
38
26
  function getContentsWithKnowledgeResponse(getKnowledgeBaseResponse, request, knowledgeBaseContent, contents) {
@@ -43,6 +31,9 @@ function getContentsWithKnowledgeResponse(getKnowledgeBaseResponse, request, kno
43
31
  !knowledgeBaseResponse.isFaithuful) {
44
32
  return undefined;
45
33
  }
34
+ console.log('KnowledgeBaseResponse:', knowledgeBaseResponse.answer, {
35
+ knowledgeBaseResponse,
36
+ });
46
37
  return updateContentsWithAnswer(contents, knowledgeBaseResponse.answer);
47
38
  });
48
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { FlowContent } from '../content-fields';
2
+ import { FlowBuilderContext } from './index';
3
+ export declare function getContentsByPayload({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }: FlowBuilderContext): Promise<FlowContent[]>;
@@ -0,0 +1,13 @@
1
+ import { __awaiter } from "tslib";
2
+ export function getContentsByPayload({ cmsApi, flowBuilderPlugin, request, resolvedLocale, }) {
3
+ return __awaiter(this, void 0, void 0, function* () {
4
+ const targetNode = request.input.payload
5
+ ? cmsApi.getNodeById(request.input.payload)
6
+ : undefined;
7
+ if (targetNode) {
8
+ return yield flowBuilderPlugin.getContentsByNode(targetNode, resolvedLocale);
9
+ }
10
+ return [];
11
+ });
12
+ }
13
+ //# sourceMappingURL=payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/action/payload.ts"],"names":[],"mappings":";AAIA,MAAM,UAAgB,oBAAoB,CAAC,EACzC,MAAM,EACN,iBAAiB,EACjB,OAAO,EACP,cAAc,GACK;;QACnB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO;YACtC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAoB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,UAAU,EAAE;YACd,OAAO,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;SAC7E;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CAAA"}
package/lib/esm/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { __awaiter } from "tslib";
2
- import { INPUT } from '@botonic/core';
3
2
  import { v4 as uuid } from 'uuid';
4
3
  import { FlowBuilderApi } from './api';
5
4
  import { BOT_ACTION_PAYLOAD_PREFIX, FLOW_BUILDER_API_URL_PROD, SEPARATOR, SOURCE_INFO_SEPARATOR, } from './constants';
@@ -8,7 +7,7 @@ import { HtNodeWithContentType, } from './content-fields/hubtype-fields';
8
7
  import { DEFAULT_FUNCTIONS } from './functions';
9
8
  import { FlowBuilderJSONVersion, } from './types';
10
9
  import { getNodeByUserInput } from './user-input';
11
- import { resolveGetAccessToken } from './utils';
10
+ import { inputHasTextData, resolveGetAccessToken } from './utils';
12
11
  export default class BotonicPluginFlowBuilder {
13
12
  constructor(options) {
14
13
  this.options = options;
@@ -33,8 +32,7 @@ export default class BotonicPluginFlowBuilder {
33
32
  accessToken: this.getAccessToken(request.session),
34
33
  request: this.currentRequest,
35
34
  });
36
- const checkUserTextInput = request.input.data &&
37
- request.input.type === INPUT.TEXT &&
35
+ const checkUserTextInput = inputHasTextData(request.input) &&
38
36
  !request.input.payload &&
39
37
  !request.session.is_first_interaction;
40
38
  if (checkUserTextInput) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,17 +14,3 @@ export declare enum KnowledgebaseFailReason {
14
14
  }
15
15
  export declare function trackEvent(request: ActionRequest, eventAction: EventAction, args?: Record<string, any>): Promise<void>;
16
16
  export declare function trackFlowContent(request: ActionRequest, contents: FlowContent[]): Promise<void>;
17
- export declare function getContentEventArgs(request: ActionRequest, contentInfo: {
18
- code: string;
19
- flowId: string;
20
- flowName: string;
21
- id: string;
22
- isMeaningful: boolean;
23
- }): {
24
- flowThreadId: string;
25
- flowId: string;
26
- flowName: string;
27
- flowNodeId: string;
28
- flowNodeContentId: string;
29
- flowNodeIsMeaningful: boolean;
30
- };
@@ -29,26 +29,26 @@ export function trackFlowContent(request, contents) {
29
29
  return __awaiter(this, void 0, void 0, function* () {
30
30
  const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
31
31
  const cmsApi = flowBuilderPlugin.cmsApi;
32
- const firstNodeContent = cmsApi.getNodeById(contents[0].id);
33
- const flowName = flowBuilderPlugin.getFlowName(firstNodeContent.flow_id);
34
- const eventArgs = getContentEventArgs(request, {
35
- code: firstNodeContent.code,
36
- flowId: firstNodeContent.flow_id,
37
- flowName,
38
- id: firstNodeContent.id,
39
- isMeaningful: (_a = firstNodeContent.is_meaningful) !== null && _a !== void 0 ? _a : false,
40
- });
41
- yield trackEvent(request, EventAction.FlowNode, eventArgs);
32
+ for (const content of contents) {
33
+ const nodeContent = cmsApi.getNodeById(content.id);
34
+ const eventArgs = getContentEventArgs(request, {
35
+ code: nodeContent.code,
36
+ flowId: nodeContent.flow_id,
37
+ flowName: flowBuilderPlugin.getFlowName(nodeContent.flow_id),
38
+ id: nodeContent.id,
39
+ isMeaningful: (_a = nodeContent.is_meaningful) !== null && _a !== void 0 ? _a : false,
40
+ });
41
+ yield trackEvent(request, EventAction.FlowNode, eventArgs);
42
+ }
42
43
  });
43
44
  }
44
- export function getContentEventArgs(request, contentInfo) {
45
+ function getContentEventArgs(request, contentInfo) {
45
46
  var _a;
46
- const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
47
47
  const flowThreadId = (_a = request.session.flow_thread_id) !== null && _a !== void 0 ? _a : uuid();
48
48
  return {
49
49
  flowThreadId,
50
50
  flowId: contentInfo.flowId,
51
- flowName: flowBuilderPlugin.getFlowName(contentInfo.flowId),
51
+ flowName: contentInfo.flowName,
52
52
  flowNodeId: contentInfo.id,
53
53
  flowNodeContentId: contentInfo.code,
54
54
  flowNodeIsMeaningful: contentInfo.isMeaningful,
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,qCAAsB,CAAA;IACtB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,+CAAgC,CAAA;IAChC,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED,MAAM,UAAgB,UAAU,CAC9B,OAAsB,EACtB,WAAwB,EACxB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAChC,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;SAC/D;QACD,OAAM;IACR,CAAC;CAAA;AAED,MAAM,UAAgB,gBAAgB,CACpC,OAAsB,EACtB,QAAuB;;;QAEvB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;QACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAoB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACxE,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE;YAC7C,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,MAAM,EAAE,gBAAgB,CAAC,OAAO;YAChC,QAAQ;YACR,EAAE,EAAE,gBAAgB,CAAC,EAAE;YACvB,YAAY,EAAE,MAAA,gBAAgB,CAAC,aAAa,mCAAI,KAAK;SACtD,CAAC,CAAA;QACF,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;;CAC3D;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,WAMC;;IAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,cAAc,mCAAI,IAAI,EAAE,CAAA;IAC7D,OAAO;QACL,YAAY;QACZ,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3D,UAAU,EAAE,WAAW,CAAC,EAAE;QAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,oBAAoB,EAAE,WAAW,CAAC,YAAY;KAC/C,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,qCAAsB,CAAA;IACtB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,+CAAgC,CAAA;IAChC,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,0DAA+B,CAAA;AACjC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAED,MAAM,UAAgB,UAAU,CAC9B,OAAsB,EACtB,WAAwB,EACxB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAChC,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;SAC/D;QACD,OAAM;IACR,CAAC;CAAA;AAED,MAAM,UAAgB,gBAAgB,CACpC,OAAsB,EACtB,QAAuB;;;QAEvB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAA;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAoB,OAAO,CAAC,EAAE,CAAC,CAAA;YACrE,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE;gBAC7C,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,WAAW,CAAC,OAAO;gBAC3B,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC5D,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,YAAY,EAAE,MAAA,WAAW,CAAC,aAAa,mCAAI,KAAK;aACjD,CAAC,CAAA;YACF,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;SAC3D;;CACF;AAED,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,WAMC;;IAED,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,cAAc,mCAAI,IAAI,EAAE,CAAA;IAC7D,OAAO;QACL,YAAY;QACZ,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,UAAU,EAAE,WAAW,CAAC,EAAE;QAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,oBAAoB,EAAE,WAAW,CAAC,YAAY;KAC/C,CAAA;AACH,CAAC"}
@@ -1,26 +1,38 @@
1
1
  import { __awaiter } from "tslib";
2
- import { INPUT } from '@botonic/core';
2
+ import { inputHasTextData } from '../utils';
3
3
  import { getIntentNodeByInput } from './intent';
4
4
  import { KeywordMatcher } from './keyword';
5
5
  import { SmartIntentsApi } from './smart-intent';
6
6
  export function getNodeByUserInput(cmsApi, locale, request, smartIntentsConfig) {
7
7
  return __awaiter(this, void 0, void 0, function* () {
8
- if (request.input.data && request.input.type === INPUT.TEXT) {
8
+ if (inputHasTextData(request.input)) {
9
9
  const keywordMatcher = new KeywordMatcher({
10
10
  cmsApi,
11
11
  locale,
12
12
  request,
13
13
  });
14
14
  const keywordNode = yield keywordMatcher.getNodeByInput(request.input.data);
15
- if (keywordNode)
15
+ if (keywordNode) {
16
+ console.log('Keyword node found:', keywordNode.content.title, {
17
+ keywordNode,
18
+ });
16
19
  return keywordNode;
20
+ }
17
21
  const smartIntentsApi = new SmartIntentsApi(cmsApi, request, smartIntentsConfig);
18
22
  const smartIntentNode = yield smartIntentsApi.getNodeByInput();
19
- if (smartIntentNode)
23
+ if (smartIntentNode) {
24
+ console.log('Smart intent node found:', smartIntentNode.content.title, {
25
+ smartIntentNode,
26
+ });
20
27
  return smartIntentNode;
28
+ }
21
29
  const intentNode = yield getIntentNodeByInput(cmsApi, locale, request);
22
- if (intentNode)
30
+ if (intentNode) {
31
+ console.log('Intent node found:', intentNode.content.title, {
32
+ intentNode,
33
+ });
23
34
  return intentNode;
35
+ }
24
36
  }
25
37
  return undefined;
26
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AASrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAE7E,MAAM,UAAgB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;;QAE/C,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;YAC3D,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;gBACxC,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC3E,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAA;YAEnC,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;YAC9D,IAAI,eAAe;gBAAE,OAAO,eAAe,CAAA;YAE3C,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACtE,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAA;SAClC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAE7E,MAAM,UAAgB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;;QAE/C,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;gBACxC,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,CAAC,CAAA;YAC5E,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC5D,WAAW;iBACZ,CAAC,CAAA;gBACF,OAAO,WAAW,CAAA;aACnB;YACD,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;YAC9D,IAAI,eAAe,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;oBACrE,eAAe;iBAChB,CAAC,CAAA;gBACF,OAAO,eAAe,CAAA;aACvB;YAED,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACtE,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC1D,UAAU;iBACX,CAAC,CAAA;gBACF,OAAO,UAAU,CAAA;aAClB;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA"}
@@ -1,5 +1,6 @@
1
- import { Session } from '@botonic/core';
1
+ import { Input, Session } from '@botonic/core';
2
2
  import { ActionRequest } from '@botonic/react';
3
3
  import { BotonicPluginFlowBuilderOptions } from './types';
4
4
  export declare function resolveGetAccessToken(options: BotonicPluginFlowBuilderOptions): (session: Session) => string;
5
5
  export declare function getValueFromKeyPath(request: ActionRequest, keyPath: string): any;
6
+ export declare function inputHasTextData(input: Input): boolean;
package/lib/esm/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { INPUT } from '@botonic/core';
1
2
  import { ProcessEnvNodeEnvs } from './types';
2
3
  function getAccessTokenFromSession(session) {
3
4
  if (!session._access_token) {
@@ -31,4 +32,7 @@ function resolveObjectKey(object, key) {
31
32
  }
32
33
  return undefined;
33
34
  }
35
+ export function inputHasTextData(input) {
36
+ return input.data !== undefined && input.type === INPUT.TEXT;
37
+ }
34
38
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmC,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,kBAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;KACnE;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,GAAW;IAChD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QACvC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,eAAe,CAAA;AAGrD,OAAO,EAAmC,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE7E,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwC;IAExC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC5B,KAAK,kBAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,kBAAkB,CAAC,WAAW;YACjC,OAAO,OAAO,CAAC,cAAc,CAAA;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;KAChE;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAChE,OAAO,OAAO;aACX,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;KACnE;IAED,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CACL,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAChC,CAAA;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,GAAW;IAChD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QACvC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAA;AAC9D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/plugin-flow-builder",
3
- "version": "0.27.5",
3
+ "version": "0.27.7-alpha.0",
4
4
  "main": "./lib/cjs/index.js",
5
5
  "module": "./lib/esm/index.js",
6
6
  "description": "Use Flow Builder to show your contents",
@@ -14,7 +14,7 @@
14
14
  "lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
15
15
  },
16
16
  "dependencies": {
17
- "@botonic/react": "^0.27.1",
17
+ "@botonic/react": "^0.27.2",
18
18
  "axios": "^1.6.8",
19
19
  "uuid": "^9.0.1"
20
20
  },
@@ -0,0 +1,111 @@
1
+ import { FlowBuilderApi } from '../api'
2
+ import { BOT_ACTION_PAYLOAD_PREFIX, MAIN_FLOW_NAME } from '../constants'
3
+ import { FlowContent } from '../content-fields'
4
+ import BotonicPluginFlowBuilder from '../index'
5
+ import { getNodeByUserInput } from '../user-input'
6
+ import { inputHasTextData } from '../utils'
7
+ import { FlowBuilderContext } from './index'
8
+ import { getContentsByKnowledgeBase } from './knowledge-bases'
9
+ import { getContentsByPayload } from './payload'
10
+
11
+ export async function getContentsByFirstInteraction({
12
+ cmsApi,
13
+ flowBuilderPlugin,
14
+ request,
15
+ resolvedLocale,
16
+ }: FlowBuilderContext): Promise<FlowContent[]> {
17
+ const firstInteractionContents =
18
+ await flowBuilderPlugin.getStartContents(resolvedLocale)
19
+
20
+ if (inputHasTextData(request.input)) {
21
+ const contentsByUserInput = await getContentsByUserInput({
22
+ cmsApi,
23
+ flowBuilderPlugin,
24
+ request,
25
+ resolvedLocale,
26
+ })
27
+
28
+ return [...firstInteractionContents, ...contentsByUserInput]
29
+ }
30
+
31
+ return firstInteractionContents
32
+ }
33
+
34
+ async function getContentsByUserInput({
35
+ cmsApi,
36
+ flowBuilderPlugin,
37
+ request,
38
+ resolvedLocale,
39
+ }: FlowBuilderContext): Promise<FlowContent[]> {
40
+ const nodeByUserInput = await getNodeByUserInput(
41
+ cmsApi,
42
+ resolvedLocale,
43
+ request,
44
+ flowBuilderPlugin.smartIntentsConfig
45
+ )
46
+
47
+ request.input.payload = cmsApi.getPayload(nodeByUserInput?.target)
48
+ const conversationStartId = getConversationStartId(cmsApi)
49
+
50
+ if (request.input.payload === conversationStartId) {
51
+ return []
52
+ }
53
+
54
+ if (request.input.payload?.startsWith(BOT_ACTION_PAYLOAD_PREFIX)) {
55
+ request.input.payload = flowBuilderPlugin.replaceBotActionPayload(
56
+ request.input.payload
57
+ )
58
+ }
59
+
60
+ const contentsByKeywordsOrIntents = await getContentsByPayload({
61
+ cmsApi,
62
+ flowBuilderPlugin,
63
+ request,
64
+ resolvedLocale,
65
+ })
66
+
67
+ const hasRepeatedContent = await checkRepetedContents(
68
+ flowBuilderPlugin,
69
+ resolvedLocale,
70
+ contentsByKeywordsOrIntents
71
+ )
72
+
73
+ if (hasRepeatedContent) {
74
+ return []
75
+ }
76
+
77
+ if (contentsByKeywordsOrIntents.length > 0) {
78
+ return contentsByKeywordsOrIntents
79
+ }
80
+
81
+ return await getContentsByKnowledgeBase({
82
+ cmsApi,
83
+ flowBuilderPlugin,
84
+ request,
85
+ resolvedLocale,
86
+ })
87
+ }
88
+
89
+ function getConversationStartId(cmsApi: FlowBuilderApi) {
90
+ const conversationStartId = cmsApi.flow.flows.find(
91
+ flow => flow.name === MAIN_FLOW_NAME
92
+ )?.start_node_id
93
+
94
+ return conversationStartId
95
+ }
96
+
97
+ async function checkRepetedContents(
98
+ flowBuilderPlugin: BotonicPluginFlowBuilder,
99
+ resolvedLocale: string,
100
+ contentsByKeywordsOrIntents: FlowContent[]
101
+ ) {
102
+ const startContents = await flowBuilderPlugin.getStartContents(resolvedLocale)
103
+ const contentIds = new Set(
104
+ contentsByKeywordsOrIntents.map(content => content.id)
105
+ )
106
+ const hasRepeatedContent = startContents.some(content =>
107
+ contentIds.has(content.id)
108
+ )
109
+
110
+ return hasRepeatedContent
111
+ }
@@ -1,15 +1,16 @@
1
- import { INPUT } from '@botonic/core'
2
1
  import { ActionRequest, Multichannel, RequestContext } from '@botonic/react'
3
2
  import React from 'react'
4
3
 
5
4
  import { FlowBuilderApi } from '../api'
6
5
  import { FlowContent, FlowHandoff } from '../content-fields'
7
- import { HtNodeWithContent } from '../content-fields/hubtype-fields'
8
6
  import { getFlowBuilderPlugin } from '../helpers'
9
7
  import BotonicPluginFlowBuilder from '../index'
10
8
  import { trackFlowContent } from '../tracking'
9
+ import { inputHasTextData } from '../utils'
11
10
  import { getContentsByFallback } from './fallback'
11
+ import { getContentsByFirstInteraction } from './first-interaction'
12
12
  import { getContentsByKnowledgeBase } from './knowledge-bases'
13
+ import { getContentsByPayload } from './payload'
13
14
 
14
15
  export type FlowBuilderActionProps = {
15
16
  contents: FlowContent[]
@@ -66,15 +67,18 @@ async function getContents(request: ActionRequest): Promise<FlowContent[]> {
66
67
  }
67
68
 
68
69
  if (request.session.is_first_interaction) {
69
- return await flowBuilderPlugin.getStartContents(resolvedLocale)
70
+ return await getContentsByFirstInteraction(context)
70
71
  }
71
72
 
72
73
  if (request.input.payload) {
73
74
  return await getContentsByPayload(context)
74
75
  }
75
76
 
76
- if (request.input.data && request.input.type === INPUT.TEXT) {
77
- return await getContentsByKnowledgeBase(context)
77
+ if (inputHasTextData(request.input)) {
78
+ const knowledgeBaseContents = await getContentsByKnowledgeBase(context)
79
+ if (knowledgeBaseContents.length > 0) {
80
+ return knowledgeBaseContents
81
+ }
78
82
  }
79
83
 
80
84
  return await getContentsByFallback(context)
@@ -86,20 +90,3 @@ export interface FlowBuilderContext {
86
90
  request: ActionRequest
87
91
  resolvedLocale: string
88
92
  }
89
-
90
- async function getContentsByPayload({
91
- cmsApi,
92
- flowBuilderPlugin,
93
- request,
94
- resolvedLocale,
95
- }: FlowBuilderContext): Promise<FlowContent[]> {
96
- const targetNode = request.input.payload
97
- ? cmsApi.getNodeById<HtNodeWithContent>(request.input.payload)
98
- : undefined
99
-
100
- if (targetNode) {
101
- return await flowBuilderPlugin.getContentsByNode(targetNode, resolvedLocale)
102
- }
103
-
104
- return []
105
- }
@@ -1,10 +1,9 @@
1
- import { INPUT } from '@botonic/core'
2
1
  import { ActionRequest } from '@botonic/react'
3
2
 
4
3
  import { FlowContent, FlowKnowledgeBase } from '../content-fields'
5
4
  import { EventAction, KnowledgebaseFailReason, trackEvent } from '../tracking'
6
5
  import { KnowledgeBaseFunction, KnowledgeBaseResponse } from '../types'
7
- import { getContentsByFallback } from './fallback'
6
+ import { inputHasTextData } from '../utils'
8
7
  import { FlowBuilderContext } from './index'
9
8
 
10
9
  export async function getContentsByKnowledgeBase({
@@ -16,12 +15,7 @@ export async function getContentsByKnowledgeBase({
16
15
  const startNodeKnowledeBaseFlow = cmsApi.getStartNodeKnowledeBaseFlow()
17
16
 
18
17
  if (!startNodeKnowledeBaseFlow) {
19
- return await getContentsByFallback({
20
- cmsApi,
21
- flowBuilderPlugin,
22
- request,
23
- resolvedLocale,
24
- })
18
+ return []
25
19
  }
26
20
 
27
21
  const contents = await flowBuilderPlugin.getContentsByNode(
@@ -39,8 +33,7 @@ export async function getContentsByKnowledgeBase({
39
33
 
40
34
  if (
41
35
  flowBuilderPlugin.getKnowledgeBaseResponse &&
42
- request.input.data &&
43
- request.input.type === INPUT.TEXT
36
+ inputHasTextData(request.input)
44
37
  ) {
45
38
  const contentsWithKnowledgeResponse =
46
39
  await getContentsWithKnowledgeResponse(
@@ -55,12 +48,7 @@ export async function getContentsByKnowledgeBase({
55
48
  }
56
49
  }
57
50
 
58
- return await getContentsByFallback({
59
- cmsApi,
60
- flowBuilderPlugin,
61
- request,
62
- resolvedLocale,
63
- })
51
+ return []
64
52
  }
65
53
 
66
54
  async function getContentsWithKnowledgeResponse(
@@ -82,6 +70,9 @@ async function getContentsWithKnowledgeResponse(
82
70
  ) {
83
71
  return undefined
84
72
  }
73
+ console.log('KnowledgeBaseResponse:', knowledgeBaseResponse.answer, {
74
+ knowledgeBaseResponse,
75
+ })
85
76
 
86
77
  return updateContentsWithAnswer(contents, knowledgeBaseResponse.answer)
87
78
  }
@@ -113,9 +104,11 @@ async function trackKnowledgeBase(
113
104
  const knowledgebaseMessageId = request.input.message_id
114
105
 
115
106
  let knowledgebaseFailReason: KnowledgebaseFailReason | undefined
107
+
116
108
  if (!response.isFaithuful) {
117
109
  knowledgebaseFailReason = KnowledgebaseFailReason.Hallucination
118
110
  }
111
+
119
112
  if (!response.hasKnowledge) {
120
113
  knowledgebaseFailReason = KnowledgebaseFailReason.NoKnowledge
121
114
  }
@@ -0,0 +1,20 @@
1
+ import { FlowContent } from '../content-fields'
2
+ import { HtNodeWithContent } from '../content-fields/hubtype-fields'
3
+ import { FlowBuilderContext } from './index'
4
+
5
+ export async function getContentsByPayload({
6
+ cmsApi,
7
+ flowBuilderPlugin,
8
+ request,
9
+ resolvedLocale,
10
+ }: FlowBuilderContext): Promise<FlowContent[]> {
11
+ const targetNode = request.input.payload
12
+ ? cmsApi.getNodeById<HtNodeWithContent>(request.input.payload)
13
+ : undefined
14
+
15
+ if (targetNode) {
16
+ return await flowBuilderPlugin.getContentsByNode(targetNode, resolvedLocale)
17
+ }
18
+
19
+ return []
20
+ }
package/src/index.ts CHANGED
@@ -40,7 +40,7 @@ import {
40
40
  } from './types'
41
41
  import { getNodeByUserInput } from './user-input'
42
42
  import { SmartIntentsInferenceConfig } from './user-input/smart-intent'
43
- import { resolveGetAccessToken } from './utils'
43
+ import { inputHasTextData, resolveGetAccessToken } from './utils'
44
44
  export default class BotonicPluginFlowBuilder implements Plugin {
45
45
  public cmsApi: FlowBuilderApi
46
46
  private flowUrl: string
@@ -80,8 +80,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
80
80
  })
81
81
 
82
82
  const checkUserTextInput =
83
- request.input.data &&
84
- request.input.type === INPUT.TEXT &&
83
+ inputHasTextData(request.input) &&
85
84
  !request.input.payload &&
86
85
  !request.session.is_first_interaction
87
86