@botonic/plugin-flow-builder 0.45.0-alpha.1 → 0.46.0-alpha-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/action/ai-agent.js +2 -0
- package/lib/cjs/action/ai-agent.js.map +1 -1
- package/lib/cjs/action/first-interaction.js +1 -1
- package/lib/cjs/action/first-interaction.js.map +1 -1
- package/lib/cjs/action/index.js +1 -1
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/knowledge-bases.js +1 -1
- package/lib/cjs/action/knowledge-bases.js.map +1 -1
- package/lib/cjs/api.d.ts +1 -0
- package/lib/cjs/api.js +4 -0
- package/lib/cjs/api.js.map +1 -1
- package/lib/cjs/content-fields/flow-ai-agent.d.ts +3 -1
- package/lib/cjs/content-fields/flow-ai-agent.js +5 -0
- package/lib/cjs/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/cjs/content-fields/flow-go-to-flow.d.ts +1 -0
- package/lib/cjs/content-fields/flow-go-to-flow.js +8 -0
- package/lib/cjs/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +2 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.js +13 -5
- package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +3 -0
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +11 -8
- package/lib/cjs/flow-factory.js +1 -1
- package/lib/cjs/flow-factory.js.map +1 -1
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.js +8 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/user-input/capture-user-input-api.d.ts +2 -1
- package/lib/cjs/user-input/capture-user-input-api.js +6 -5
- package/lib/cjs/user-input/capture-user-input-api.js.map +1 -1
- package/lib/cjs/user-input/index.js +6 -4
- package/lib/cjs/user-input/index.js.map +1 -1
- package/lib/cjs/user-input/keyword.d.ts +4 -2
- package/lib/cjs/user-input/keyword.js +5 -4
- package/lib/cjs/user-input/keyword.js.map +1 -1
- package/lib/cjs/user-input/smart-intent.d.ts +2 -2
- package/lib/cjs/user-input/smart-intent.js +5 -5
- package/lib/cjs/user-input/smart-intent.js.map +1 -1
- package/lib/cjs/utils.d.ts +2 -1
- package/lib/cjs/utils.js +16 -3
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/action/ai-agent.js +2 -0
- package/lib/esm/action/ai-agent.js.map +1 -1
- package/lib/esm/action/first-interaction.js +1 -1
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/index.js +1 -1
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/knowledge-bases.js +1 -1
- package/lib/esm/action/knowledge-bases.js.map +1 -1
- package/lib/esm/api.d.ts +1 -0
- package/lib/esm/api.js +4 -0
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent.d.ts +3 -1
- package/lib/esm/content-fields/flow-ai-agent.js +5 -0
- package/lib/esm/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/esm/content-fields/flow-go-to-flow.d.ts +1 -0
- package/lib/esm/content-fields/flow-go-to-flow.js +8 -0
- package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-template.d.ts +2 -1
- package/lib/esm/content-fields/flow-whatsapp-template.js +13 -5
- package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +3 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +11 -8
- package/lib/esm/flow-factory.js +1 -1
- package/lib/esm/flow-factory.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +8 -3
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/user-input/capture-user-input-api.d.ts +2 -1
- package/lib/esm/user-input/capture-user-input-api.js +6 -5
- package/lib/esm/user-input/capture-user-input-api.js.map +1 -1
- package/lib/esm/user-input/index.js +6 -4
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/keyword.d.ts +4 -2
- package/lib/esm/user-input/keyword.js +5 -4
- 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 +5 -5
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/lib/esm/utils.d.ts +2 -1
- package/lib/esm/utils.js +16 -3
- package/lib/esm/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/action/ai-agent.ts +2 -0
- package/src/action/first-interaction.ts +2 -2
- package/src/action/index.tsx +2 -2
- package/src/action/knowledge-bases.ts +2 -2
- package/src/api.ts +5 -0
- package/src/content-fields/flow-ai-agent.tsx +5 -1
- package/src/content-fields/flow-go-to-flow.tsx +13 -1
- package/src/content-fields/flow-whatsapp-template.tsx +26 -5
- package/src/content-fields/hubtype-fields/ai-agent.ts +3 -0
- package/src/content-fields/hubtype-fields/whatsapp-template.ts +13 -9
- package/src/flow-factory.ts +1 -1
- package/src/index.ts +19 -5
- package/src/user-input/capture-user-input-api.ts +12 -6
- package/src/user-input/index.ts +9 -7
- package/src/user-input/keyword.ts +10 -4
- package/src/user-input/smart-intent.ts +4 -4
- package/src/utils.ts +18 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-factory.js","sourceRoot":"","sources":["../../src/flow-factory.ts"],"names":[],"mappings":";;;AAGA,qDAmByB;AACzB,sFAA+E;AAC/E,oEAIwC;AAExC,MAAa,WAAW;IAKtB,YAAY,OAAsB,EAAE,MAAsB,EAAE,MAAc;QACxE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,cAA+B;QAE/B,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,sCAAqB,CAAC,IAAI;gBAC7B,OAAO,yBAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1E,KAAK,sCAAqB,CAAC,KAAK;gBAC9B,OAAO,0BAAS,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9D,KAAK,sCAAqB,CAAC,QAAQ;gBACjC,OAAO,6BAAY,CAAC,cAAc,CAChC,cAAc,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACZ,CAAA;YACH,KAAK,sCAAqB,CAAC,KAAK;gBAC9B,OAAO,0BAAS,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9D,KAAK,sCAAqB,CAAC,oBAAoB;gBAC7C,OAAO,uCAAsB,CAAC,cAAc,CAC1C,cAAc,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACZ,CAAA;YACH,KAAK,sCAAqB,CAAC,uBAAuB;gBAChD,OAAO,6CAA4B,CAAC,cAAc,CAChD,cAAc,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACZ,CAAA;YACH,KAAK,sCAAqB,CAAC,OAAO;gBAChC,OAAO,4BAAW,CAAC,cAAc,CAC/B,cAAc,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACZ,CAAA;YAEH,KAAK,sCAAqB,CAAC,cAAc;gBACvC,OAAO,kCAAiB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;YAEzD,KAAK,sCAAqB,CAAC,QAAQ;gBACjC,OAAO,4BAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;YAEnD,KAAK,sCAAqB,CAAC,MAAM;gBAC/B,OAAO,2BAAU,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAE/D,KAAK,sCAAqB,CAAC,UAAU;gBACnC,OAAO,8BAAa,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAElE,KAAK,sCAAqB,CAAC,QAAQ;gBACjC,OAAO,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAA;YAExD,KAAK,sCAAqB,CAAC,UAAU;gBACnC,OAAO,6BAAY,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAEjE,KAAK,sCAAqB,CAAC,iBAAiB;gBAC1C,OAAO,qCAAoB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"flow-factory.js","sourceRoot":"","sources":["../../src/flow-factory.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Plugin, type PluginPreRequest, type ResolvedPlugins, type Session } from '@botonic/core';
|
|
2
2
|
import { FlowBuilderApi } from './api';
|
|
3
|
-
import type
|
|
3
|
+
import { type FlowContent } from './content-fields';
|
|
4
4
|
import { type HtNodeWithContent } from './content-fields/hubtype-fields';
|
|
5
5
|
import { type AiAgentFunction, type BotonicPluginFlowBuilderOptions, type ContentFilter, FlowBuilderJSONVersion, type InShadowingConfig, type KnowledgeBaseFunction, type PayloadParamsBase, type RatingSubmittedInfo, type TrackEventFunction } from './types';
|
|
6
6
|
import type { SmartIntentsInferenceConfig } from './user-input/smart-intent';
|
package/lib/esm/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const core_1 = require("@botonic/core");
|
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
7
|
const api_1 = require("./api");
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
|
+
const content_fields_1 = require("./content-fields");
|
|
9
10
|
const hubtype_fields_1 = require("./content-fields/hubtype-fields");
|
|
10
11
|
const flow_factory_1 = require("./flow-factory");
|
|
11
12
|
const functions_1 = require("./functions");
|
|
@@ -57,13 +58,13 @@ class BotonicPluginFlowBuilder {
|
|
|
57
58
|
accessToken: this.getAccessToken(request.session),
|
|
58
59
|
request: this.currentRequest,
|
|
59
60
|
});
|
|
60
|
-
const checkUserTextInput = (0, utils_1.
|
|
61
|
+
const checkUserTextInput = (0, utils_1.inputHasTextOrTranscript)(request.input) && !request.input.payload;
|
|
61
62
|
if (checkUserTextInput) {
|
|
62
63
|
const resolvedLocale = this.cmsApi.getResolvedLocale();
|
|
63
64
|
const nextPayload = await (0, user_input_1.getNextPayloadByUserInput)(this.cmsApi, resolvedLocale, request, this.smartIntentsConfig);
|
|
64
65
|
request.input.payload = nextPayload;
|
|
65
66
|
}
|
|
66
|
-
this.updateRequestBeforeRoutes(request);
|
|
67
|
+
await this.updateRequestBeforeRoutes(request);
|
|
67
68
|
}
|
|
68
69
|
convertWhatsappAiAgentEmptyPayloads(request) {
|
|
69
70
|
if (request.session.user.provider === core_1.PROVIDER.WHATSAPP) {
|
|
@@ -75,7 +76,7 @@ class BotonicPluginFlowBuilder {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
updateRequestBeforeRoutes(request) {
|
|
79
|
+
async updateRequestBeforeRoutes(request) {
|
|
79
80
|
this.cmsApi.removeCaptureUserInputId();
|
|
80
81
|
if (request.input.payload) {
|
|
81
82
|
request.input.payload = this.removeSourceSuffix(request.input.payload);
|
|
@@ -87,6 +88,10 @@ class BotonicPluginFlowBuilder {
|
|
|
87
88
|
// the case that a BotAction has a payload equals to EMPTY_PAYLOAD
|
|
88
89
|
this.convertWhatsappAiAgentEmptyPayloads(request);
|
|
89
90
|
}
|
|
91
|
+
if (this.cmsApi.isGoToFlow(request.input.payload)) {
|
|
92
|
+
const cmsGoToFlow = this.cmsApi.getNodeById(request.input.payload);
|
|
93
|
+
await content_fields_1.FlowGoToFlow.resolveToAiAgentsFlow(request, cmsGoToFlow, this.cmsApi);
|
|
94
|
+
}
|
|
90
95
|
}
|
|
91
96
|
}
|
|
92
97
|
removeSourceSuffix(payload) {
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,wCAOsB;AAEtB,+BAAmC;AAEnC,+BAAsC;AACtC,2CAKoB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,8 @@ type AiCaptureResponse = AiCaptureResponseSuccess | AiCaptureResponseFailure;
|
|
|
12
12
|
export declare class CaptureUserInputApi {
|
|
13
13
|
private cmsApi;
|
|
14
14
|
private request;
|
|
15
|
-
|
|
15
|
+
private textOrTranscript;
|
|
16
|
+
constructor(cmsApi: FlowBuilderApi, request: ActionRequest, textOrTranscript: string);
|
|
16
17
|
getNextNodeId(): Promise<string | undefined>;
|
|
17
18
|
getAiCaptureResponse(captureUserInputNode: HtCaptureUserInputNode): Promise<AiCaptureResponse>;
|
|
18
19
|
trackUserInputCapture(captureUserInputNode: HtCaptureUserInputNode, captureSuccess: boolean): Promise<void>;
|
|
@@ -10,20 +10,21 @@ const helpers_1 = require("../helpers");
|
|
|
10
10
|
const tracking_1 = require("../tracking");
|
|
11
11
|
const utils_1 = require("../utils");
|
|
12
12
|
class CaptureUserInputApi {
|
|
13
|
-
constructor(cmsApi, request) {
|
|
13
|
+
constructor(cmsApi, request, textOrTranscript) {
|
|
14
14
|
this.cmsApi = cmsApi;
|
|
15
15
|
this.request = request;
|
|
16
|
+
this.textOrTranscript = textOrTranscript;
|
|
16
17
|
}
|
|
17
18
|
async getNextNodeId() {
|
|
18
|
-
if ((0, utils_1.
|
|
19
|
+
if ((0, utils_1.inputHasTextOrTranscript)(this.request.input) &&
|
|
19
20
|
this.cmsApi.shouldCaptureUserInput()) {
|
|
20
21
|
const captureUserInputNode = this.cmsApi.getCaptureUserInputNode();
|
|
21
|
-
if (!captureUserInputNode) {
|
|
22
|
+
if (!captureUserInputNode || !this.textOrTranscript) {
|
|
22
23
|
return undefined;
|
|
23
24
|
}
|
|
24
25
|
const captureUserInput = content_fields_1.FlowCaptureUserInput.fromHubtypeCMS(captureUserInputNode);
|
|
25
26
|
if (captureUserInput.aiValidationType === hubtype_fields_1.HtAiValidationType.NONE) {
|
|
26
|
-
this.cmsApi.setUserExtraDataVariable(captureUserInputNode.content.field_name, this.
|
|
27
|
+
this.cmsApi.setUserExtraDataVariable(captureUserInputNode.content.field_name, this.textOrTranscript);
|
|
27
28
|
await this.trackUserInputCapture(captureUserInputNode, true);
|
|
28
29
|
return captureUserInput.captureSuccessId;
|
|
29
30
|
}
|
|
@@ -44,7 +45,7 @@ class CaptureUserInputApi {
|
|
|
44
45
|
const data = {
|
|
45
46
|
field_name: captureUserInputNode.content.field_name,
|
|
46
47
|
validation_instructions: captureUserInputNode.content.ai_validation_instructions,
|
|
47
|
-
user_input: this.
|
|
48
|
+
user_input: this.textOrTranscript,
|
|
48
49
|
};
|
|
49
50
|
const pluginFlowBuilder = (0, helpers_1.getFlowBuilderPlugin)(this.request.plugins);
|
|
50
51
|
const token = pluginFlowBuilder.getAccessToken(this.request.session);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-user-input-api.js","sourceRoot":"","sources":["../../../src/user-input/capture-user-input-api.ts"],"names":[],"mappings":";;;;AAAA,wCAAuE;AAEvE,0DAAyB;AAGzB,sDAAwD;AACxD,qEAGyC;AACzC,wCAAiD;AACjD,0CAGoB;AACpB,
|
|
1
|
+
{"version":3,"file":"capture-user-input-api.js","sourceRoot":"","sources":["../../../src/user-input/capture-user-input-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,10 @@ const capture_user_input_api_1 = require("./capture-user-input-api");
|
|
|
6
6
|
const keyword_1 = require("./keyword");
|
|
7
7
|
const smart_intent_1 = require("./smart-intent");
|
|
8
8
|
async function getNextPayloadByUserInput(cmsApi, locale, request, smartIntentsConfig) {
|
|
9
|
-
|
|
9
|
+
const userTextOrTranscript = (0, utils_1.getTextOrTranscript)(request.input);
|
|
10
|
+
if (userTextOrTranscript) {
|
|
10
11
|
if (cmsApi.shouldCaptureUserInput()) {
|
|
11
|
-
const captureUserInputApi = new capture_user_input_api_1.CaptureUserInputApi(cmsApi, request);
|
|
12
|
+
const captureUserInputApi = new capture_user_input_api_1.CaptureUserInputApi(cmsApi, request, userTextOrTranscript);
|
|
12
13
|
return await captureUserInputApi.getNextNodeId();
|
|
13
14
|
}
|
|
14
15
|
if ((0, utils_1.isKeywordsAllowed)(request)) {
|
|
@@ -16,14 +17,15 @@ async function getNextPayloadByUserInput(cmsApi, locale, request, smartIntentsCo
|
|
|
16
17
|
cmsApi,
|
|
17
18
|
locale,
|
|
18
19
|
request,
|
|
20
|
+
userTextOrTranscript,
|
|
19
21
|
});
|
|
20
|
-
const keywordNode = await keywordMatcher.getNodeByInput(
|
|
22
|
+
const keywordNode = await keywordMatcher.getNodeByInput();
|
|
21
23
|
if (keywordNode) {
|
|
22
24
|
return cmsApi.getPayload(keywordNode.target);
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
if ((0, utils_1.isSmartIntentsAllowed)(request)) {
|
|
26
|
-
const smartIntentsApi = new smart_intent_1.SmartIntentsApi(cmsApi, request, smartIntentsConfig);
|
|
28
|
+
const smartIntentsApi = new smart_intent_1.SmartIntentsApi(cmsApi, request, smartIntentsConfig, userTextOrTranscript);
|
|
27
29
|
const smartIntentNode = await smartIntentsApi.getNodeByInput();
|
|
28
30
|
if (smartIntentNode) {
|
|
29
31
|
return cmsApi.getPayload(smartIntentNode.target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";;AAeA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";;AAeA,8DA6CC;AAzDD,oCAIiB;AACjB,qEAA8D;AAC9D,uCAA0C;AAC1C,iDAGuB;AAEhB,KAAK,UAAU,yBAAyB,CAC7C,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;IAE/C,MAAM,oBAAoB,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/D,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC;YACpC,MAAM,mBAAmB,GAAG,IAAI,4CAAmB,CACjD,MAAM,EACN,OAAO,EACP,oBAAoB,CACrB,CAAA;YACD,OAAO,MAAM,mBAAmB,CAAC,aAAa,EAAE,CAAA;QAClD,CAAC;QAED,IAAI,IAAA,yBAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC;gBACxC,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,oBAAoB;aACrB,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAA;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG,IAAI,8BAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,oBAAoB,CACrB,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;YAC9D,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -5,6 +5,7 @@ interface KeywordProps {
|
|
|
5
5
|
cmsApi: FlowBuilderApi;
|
|
6
6
|
locale: string;
|
|
7
7
|
request: ActionRequest;
|
|
8
|
+
userTextOrTranscript: string;
|
|
8
9
|
}
|
|
9
10
|
export declare class KeywordMatcher {
|
|
10
11
|
cmsApi: FlowBuilderApi;
|
|
@@ -14,8 +15,9 @@ export declare class KeywordMatcher {
|
|
|
14
15
|
matchedKeyword?: string;
|
|
15
16
|
keywordNodeId?: string;
|
|
16
17
|
flowId?: string;
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
userTextOrTranscript: string;
|
|
19
|
+
constructor({ cmsApi, locale, request, userTextOrTranscript }: KeywordProps);
|
|
20
|
+
getNodeByInput(): Promise<HtKeywordNode | undefined>;
|
|
19
21
|
private getNodeByKeyword;
|
|
20
22
|
private matchKeywords;
|
|
21
23
|
private inputMatchesAnyKeyword;
|
|
@@ -5,15 +5,16 @@ const core_1 = require("@botonic/core");
|
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
6
|
const tracking_1 = require("../tracking");
|
|
7
7
|
class KeywordMatcher {
|
|
8
|
-
constructor({ cmsApi, locale, request }) {
|
|
8
|
+
constructor({ cmsApi, locale, request, userTextOrTranscript }) {
|
|
9
9
|
this.cmsApi = cmsApi;
|
|
10
10
|
this.locale = locale;
|
|
11
11
|
this.request = request;
|
|
12
12
|
this.isRegExp = false;
|
|
13
|
+
this.userTextOrTranscript = userTextOrTranscript;
|
|
13
14
|
}
|
|
14
|
-
async getNodeByInput(
|
|
15
|
+
async getNodeByInput() {
|
|
15
16
|
const keywordNodes = this.cmsApi.getKeywordNodes();
|
|
16
|
-
const keywordNode = this.getNodeByKeyword(
|
|
17
|
+
const keywordNode = this.getNodeByKeyword(this.userTextOrTranscript, keywordNodes);
|
|
17
18
|
if (!keywordNode || !this.matchedKeyword) {
|
|
18
19
|
return undefined;
|
|
19
20
|
}
|
|
@@ -73,7 +74,7 @@ class KeywordMatcher {
|
|
|
73
74
|
nluKeywordName: this.matchedKeyword,
|
|
74
75
|
nluKeywordIsRegex: this.isRegExp,
|
|
75
76
|
nluKeywordMessageId: this.request.input.message_id,
|
|
76
|
-
userInput: this.
|
|
77
|
+
userInput: this.userTextOrTranscript,
|
|
77
78
|
};
|
|
78
79
|
const { action, ...eventArgs } = event;
|
|
79
80
|
await (0, tracking_1.trackEvent)(this.request, action, eventArgs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":";;;AAAA,wCAAuE;AAIvE,4CAA8C;AAK9C,0CAGoB;
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ export declare class SmartIntentsApi {
|
|
|
15
15
|
cmsApi: FlowBuilderApi;
|
|
16
16
|
currentRequest: ActionRequest;
|
|
17
17
|
smartIntentsConfig: SmartIntentsInferenceConfig;
|
|
18
|
-
|
|
19
|
-
constructor(cmsApi: FlowBuilderApi, currentRequest: ActionRequest, smartIntentsConfig: SmartIntentsInferenceConfig,
|
|
18
|
+
userTextOrTranscript: string;
|
|
19
|
+
constructor(cmsApi: FlowBuilderApi, currentRequest: ActionRequest, smartIntentsConfig: SmartIntentsInferenceConfig, userTextOrTranscript: string);
|
|
20
20
|
getNodeByInput(): Promise<HtSmartIntentNode | undefined>;
|
|
21
21
|
private resolveUseLatest;
|
|
22
22
|
private getInference;
|
|
@@ -7,14 +7,14 @@ const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
|
7
7
|
const helpers_1 = require("../helpers");
|
|
8
8
|
const tracking_1 = require("../tracking");
|
|
9
9
|
class SmartIntentsApi {
|
|
10
|
-
constructor(cmsApi, currentRequest, smartIntentsConfig,
|
|
10
|
+
constructor(cmsApi, currentRequest, smartIntentsConfig, userTextOrTranscript) {
|
|
11
11
|
this.cmsApi = cmsApi;
|
|
12
12
|
this.currentRequest = currentRequest;
|
|
13
13
|
this.smartIntentsConfig = smartIntentsConfig;
|
|
14
|
-
this.
|
|
14
|
+
this.userTextOrTranscript = userTextOrTranscript;
|
|
15
15
|
}
|
|
16
16
|
async getNodeByInput() {
|
|
17
|
-
if (!this.
|
|
17
|
+
if (!this.userTextOrTranscript) {
|
|
18
18
|
return undefined;
|
|
19
19
|
}
|
|
20
20
|
const smartIntentNodes = this.cmsApi.getSmartIntentNodes();
|
|
@@ -23,7 +23,7 @@ class SmartIntentsApi {
|
|
|
23
23
|
}
|
|
24
24
|
const params = {
|
|
25
25
|
bot_id: this.currentRequest.session.bot.id,
|
|
26
|
-
text: this.
|
|
26
|
+
text: this.userTextOrTranscript,
|
|
27
27
|
num_smart_intents_to_use: this.smartIntentsConfig.numSmartIntentsToUse,
|
|
28
28
|
use_latest: this.resolveUseLatest(),
|
|
29
29
|
};
|
|
@@ -43,7 +43,7 @@ class SmartIntentsApi {
|
|
|
43
43
|
nluIntentSmartTitle: response.data.smart_intent_title,
|
|
44
44
|
nluIntentSmartNumUsed: response.data.smart_intents_used.length,
|
|
45
45
|
nluIntentSmartMessageId: this.currentRequest.input.message_id,
|
|
46
|
-
userInput: this.
|
|
46
|
+
userInput: this.userTextOrTranscript,
|
|
47
47
|
flowThreadId: this.currentRequest.session.flow_thread_id,
|
|
48
48
|
flowId,
|
|
49
49
|
flowName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":";;;;AAAA,wCAA2E;AAE3E,0DAAyB;AAIzB,wCAAiD;AACjD,0CAGoB;AAepB,MAAa,eAAe;IAC1B,YACS,MAAsB,EACtB,cAA6B,EAC7B,kBAA+C,EAC/C,
|
|
1
|
+
{"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type Input, type Session } from '@botonic/core';
|
|
2
2
|
import type { ActionRequest } from '@botonic/react';
|
|
3
3
|
export declare function resolveGetAccessToken(getAccessToken: (session: Session) => string): (session: Session) => string;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function inputHasTextOrTranscript(input: Input): boolean;
|
|
5
|
+
export declare function getTextOrTranscript(input: Input): string | undefined;
|
|
5
6
|
export declare function isKeywordsAllowed(request: ActionRequest): boolean;
|
|
6
7
|
export declare function isSmartIntentsAllowed(request: ActionRequest): boolean;
|
|
7
8
|
export declare function isKnowledgeBasesAllowed(request: ActionRequest): boolean;
|
package/lib/esm/utils.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveGetAccessToken = resolveGetAccessToken;
|
|
4
|
-
exports.
|
|
4
|
+
exports.inputHasTextOrTranscript = inputHasTextOrTranscript;
|
|
5
|
+
exports.getTextOrTranscript = getTextOrTranscript;
|
|
5
6
|
exports.isKeywordsAllowed = isKeywordsAllowed;
|
|
6
7
|
exports.isSmartIntentsAllowed = isSmartIntentsAllowed;
|
|
7
8
|
exports.isKnowledgeBasesAllowed = isKnowledgeBasesAllowed;
|
|
@@ -24,8 +25,20 @@ function resolveGetAccessToken(getAccessToken) {
|
|
|
24
25
|
throw new Error('No method defined for getting access token');
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
-
|
|
28
|
+
function inputHasTextOrTranscript(input) {
|
|
29
|
+
const isTextInput = Boolean(input.data) && input.type === core_1.INPUT.TEXT;
|
|
30
|
+
const isTranscriptText = Boolean(input.transcript) && input.type === core_1.INPUT.AUDIO;
|
|
31
|
+
return isTextInput || isTranscriptText;
|
|
32
|
+
}
|
|
33
|
+
function getTextOrTranscript(input) {
|
|
34
|
+
if (input.type === core_1.INPUT.TEXT && input.data) {
|
|
35
|
+
return input.data;
|
|
36
|
+
}
|
|
37
|
+
if (input.type === core_1.INPUT.AUDIO && input.transcript) {
|
|
38
|
+
return input.transcript;
|
|
39
|
+
}
|
|
40
|
+
console.error('No text or transcript found in input', input);
|
|
41
|
+
return undefined;
|
|
29
42
|
}
|
|
30
43
|
function isNluAllowed(request, nluFlag) {
|
|
31
44
|
const shadowing = Boolean(request.session._shadowing);
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAaA,sDAWC;AAED,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAaA,sDAWC;AAED,4DAMC;AAED,kDAUC;AAWD,8CAEC;AAED,sDAEC;AAED,0DAEC;AAjED,wCAA+D;AAG/D,uCAAgD;AAChD,mCAAoE;AAEpE,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,OAAO,CAAC,aAAa,CAAA;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CACnC,cAA4C;IAE5C,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,KAAK,0BAAkB,CAAC,UAAU;YAChC,OAAO,yBAAyB,CAAA;QAClC,KAAK,0BAAkB,CAAC,WAAW;YACjC,OAAO,cAAc,CAAA;QACvB;YACE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IACjE,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAAY;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,IAAI,CAAA;IACpE,MAAM,gBAAgB,GACpB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,KAAK,CAAA;IAEzD,OAAO,WAAW,IAAI,gBAAgB,CAAA;AACxC,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC,UAAU,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;IAC5D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CACnB,OAAsB,EACtB,OAAgC;IAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,OAAO,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,SAAgB,iBAAiB,CAAC,OAAsB;IACtD,OAAO,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAsB;IAC1D,OAAO,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;AACnD,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAAsB;IAC5D,OAAO,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAA;AACrD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0-alpha-3",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"format": "biome format --write src/ tests/"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@botonic/react": "^0.
|
|
19
|
-
"axios": "^1.13.
|
|
18
|
+
"@botonic/react": "^0.46.0-alpha-3",
|
|
19
|
+
"axios": "^1.13.6",
|
|
20
20
|
"uuid": "^10.0.0"
|
|
21
21
|
},
|
|
22
22
|
"repository": {
|
package/src/action/ai-agent.ts
CHANGED
|
@@ -47,6 +47,8 @@ export async function getContentsByAiAgent({
|
|
|
47
47
|
{
|
|
48
48
|
name: aiAgentContent.name,
|
|
49
49
|
instructions: aiAgentContent.instructions,
|
|
50
|
+
model: aiAgentContent.model,
|
|
51
|
+
verbosity: aiAgentContent.verbosity,
|
|
50
52
|
activeTools: aiAgentContent.activeTools,
|
|
51
53
|
inputGuardrailRules: activeInputGuardrailRules,
|
|
52
54
|
sourceIds: aiAgentContent.sources?.map(source => source.id),
|
|
@@ -2,7 +2,7 @@ import type { FlowBuilderApi } from '../api'
|
|
|
2
2
|
import { MAIN_FLOW_NAME } from '../constants'
|
|
3
3
|
import { FlowBotAction, type FlowContent } from '../content-fields'
|
|
4
4
|
import type BotonicPluginFlowBuilder from '../index'
|
|
5
|
-
import {
|
|
5
|
+
import { inputHasTextOrTranscript } from '../utils'
|
|
6
6
|
import { getContentsByAiAgent } from './ai-agent'
|
|
7
7
|
import type { FlowBuilderContext } from './index'
|
|
8
8
|
import { getContentsByKnowledgeBase } from './knowledge-bases'
|
|
@@ -44,7 +44,7 @@ export async function getContentsByFirstInteraction(
|
|
|
44
44
|
return firstInteractionContents
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
if (request.input.nluResolution ||
|
|
47
|
+
if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {
|
|
48
48
|
const contentsByUserInput = await getContentsByUserInput(context)
|
|
49
49
|
|
|
50
50
|
return [...firstInteractionContents, ...contentsByUserInput]
|
package/src/action/index.tsx
CHANGED
|
@@ -15,7 +15,7 @@ import { FlowBotAction } from '../content-fields/flow-bot-action'
|
|
|
15
15
|
import { ContentFilterExecutor } from '../filters'
|
|
16
16
|
import { getFlowBuilderPlugin } from '../helpers'
|
|
17
17
|
import type BotonicPluginFlowBuilder from '../index'
|
|
18
|
-
import {
|
|
18
|
+
import { inputHasTextOrTranscript } from '../utils'
|
|
19
19
|
import { getContentsByAiAgent } from './ai-agent'
|
|
20
20
|
import { getContentsByFallback } from './fallback'
|
|
21
21
|
import { getContentsByFirstInteraction } from './first-interaction'
|
|
@@ -147,7 +147,7 @@ async function getContents(
|
|
|
147
147
|
return await getContentsByFallback(context)
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
if (
|
|
150
|
+
if (inputHasTextOrTranscript(request.input)) {
|
|
151
151
|
const aiAgentContents = await getContentsByAiAgent(context)
|
|
152
152
|
if (aiAgentContents.length > 0) {
|
|
153
153
|
return aiAgentContents
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
trackEvent,
|
|
18
18
|
} from '../tracking'
|
|
19
19
|
import type { KnowledgeBaseFunction } from '../types'
|
|
20
|
-
import {
|
|
20
|
+
import { inputHasTextOrTranscript, isKnowledgeBasesAllowed } from '../utils'
|
|
21
21
|
import type { FlowBuilderContext } from './index'
|
|
22
22
|
|
|
23
23
|
export async function getContentsByKnowledgeBase({
|
|
@@ -49,7 +49,7 @@ export async function getContentsByKnowledgeBase({
|
|
|
49
49
|
|
|
50
50
|
if (
|
|
51
51
|
flowBuilderPlugin.getKnowledgeBaseResponse &&
|
|
52
|
-
|
|
52
|
+
inputHasTextOrTranscript(request.input) &&
|
|
53
53
|
sourceIds.length > 0
|
|
54
54
|
) {
|
|
55
55
|
const contentsWithKnowledgeResponse =
|
package/src/api.ts
CHANGED
|
@@ -204,6 +204,11 @@ export class FlowBuilderApi {
|
|
|
204
204
|
return UUID_REGEXP.test(str)
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
isGoToFlow(id: string): boolean {
|
|
208
|
+
const node = this.getNodeById(id)
|
|
209
|
+
return node?.type === HtNodeWithContentType.GO_TO_FLOW
|
|
210
|
+
}
|
|
211
|
+
|
|
207
212
|
createPayloadWithParams(botActionNode: HtBotActionNode): string {
|
|
208
213
|
const payloadId = botActionNode.content.payload_id
|
|
209
214
|
const payloadNode = this.getNodeById<HtPayloadNode>(payloadId)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AgenticOutputMessage, VerbosityLevel } from '@botonic/core'
|
|
2
2
|
import type { ActionRequest } from '@botonic/react'
|
|
3
3
|
|
|
4
4
|
import { trackOneContent } from '../tracking'
|
|
@@ -13,6 +13,8 @@ import type {
|
|
|
13
13
|
export class FlowAiAgent extends ContentFieldsBase {
|
|
14
14
|
public name: string = ''
|
|
15
15
|
public instructions: string = ''
|
|
16
|
+
public model: string = ''
|
|
17
|
+
public verbosity: VerbosityLevel = VerbosityLevel.Medium
|
|
16
18
|
public activeTools?: { name: string }[]
|
|
17
19
|
public inputGuardrailRules: HtInputGuardrailRule[]
|
|
18
20
|
public sources?: { id: string; name: string }[]
|
|
@@ -24,6 +26,8 @@ export class FlowAiAgent extends ContentFieldsBase {
|
|
|
24
26
|
newAiAgent.code = component.code
|
|
25
27
|
newAiAgent.name = component.content.name
|
|
26
28
|
newAiAgent.instructions = component.content.instructions
|
|
29
|
+
newAiAgent.model = component.content.model
|
|
30
|
+
newAiAgent.verbosity = component.content.verbosity
|
|
27
31
|
newAiAgent.activeTools = component.content.active_tools
|
|
28
32
|
newAiAgent.inputGuardrailRules =
|
|
29
33
|
component.content.input_guardrail_rules || []
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventAction, type EventRedirectFlow } from '@botonic/core'
|
|
2
2
|
import type { ActionRequest } from '@botonic/react'
|
|
3
|
-
|
|
4
3
|
import type { FlowBuilderApi } from '../api'
|
|
4
|
+
import { AI_AGENTS_FLOW_NAME } from '../constants'
|
|
5
5
|
import {
|
|
6
6
|
getCommonFlowContentEventArgsForContentId,
|
|
7
7
|
trackEvent,
|
|
@@ -29,6 +29,18 @@ export class FlowGoToFlow extends ContentFieldsBase {
|
|
|
29
29
|
return newGoToFlow
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
static async resolveToAiAgentsFlow(
|
|
33
|
+
botContext: ActionRequest,
|
|
34
|
+
component: HtGoToFlow,
|
|
35
|
+
cmsApi: FlowBuilderApi
|
|
36
|
+
): Promise<void> {
|
|
37
|
+
const goToFlowContent = FlowGoToFlow.fromHubtypeCMS(component, cmsApi)
|
|
38
|
+
if (goToFlowContent.flowTargetName === AI_AGENTS_FLOW_NAME) {
|
|
39
|
+
await goToFlowContent.trackFlow(botContext)
|
|
40
|
+
botContext.input.payload = undefined
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
32
44
|
async trackFlow(request: ActionRequest): Promise<void> {
|
|
33
45
|
const { flowThreadId, flowId, flowName, flowNodeId, flowNodeContentId } =
|
|
34
46
|
getCommonFlowContentEventArgsForContentId(request, this.id)
|
|
@@ -24,6 +24,7 @@ import type {
|
|
|
24
24
|
HtWhatsAppTemplate,
|
|
25
25
|
HtWhatsAppTemplateButtonsComponent,
|
|
26
26
|
HtWhatsAppTemplateHeaderComponent,
|
|
27
|
+
HtWhatsappTemplateContentByLocale,
|
|
27
28
|
HtWhatsappTemplateNode,
|
|
28
29
|
} from './hubtype-fields'
|
|
29
30
|
|
|
@@ -41,21 +42,41 @@ export class FlowWhatsappTemplate extends ContentFieldsBase {
|
|
|
41
42
|
public urlVariableValues?: Record<string, string>
|
|
42
43
|
|
|
43
44
|
static fromHubtypeCMS(
|
|
44
|
-
component: HtWhatsappTemplateNode
|
|
45
|
+
component: HtWhatsappTemplateNode,
|
|
46
|
+
currentLocale: string
|
|
45
47
|
): FlowWhatsappTemplate {
|
|
46
48
|
const whatsappTemplate = new FlowWhatsappTemplate(component.id)
|
|
47
49
|
whatsappTemplate.code = component.code
|
|
48
|
-
whatsappTemplate.htWhatsappTemplate = component.content.template
|
|
49
|
-
whatsappTemplate.headerVariables = component.content.header_variables
|
|
50
|
-
whatsappTemplate.variableValues = component.content.variable_values
|
|
51
50
|
whatsappTemplate.buttons = component.content.buttons
|
|
52
|
-
|
|
51
|
+
const contentByLocale = FlowWhatsappTemplate.getContentByLocale(
|
|
52
|
+
component,
|
|
53
|
+
currentLocale
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
whatsappTemplate.htWhatsappTemplate = contentByLocale.template
|
|
57
|
+
whatsappTemplate.headerVariables = contentByLocale.header_variables
|
|
58
|
+
whatsappTemplate.variableValues = contentByLocale.variable_values
|
|
59
|
+
whatsappTemplate.urlVariableValues = contentByLocale.url_variable_values
|
|
53
60
|
|
|
54
61
|
whatsappTemplate.followUp = component.follow_up
|
|
55
62
|
|
|
56
63
|
return whatsappTemplate
|
|
57
64
|
}
|
|
58
65
|
|
|
66
|
+
private static getContentByLocale(
|
|
67
|
+
component: HtWhatsappTemplateNode,
|
|
68
|
+
currentLocale: string
|
|
69
|
+
) {
|
|
70
|
+
const content: HtWhatsappTemplateContentByLocale | undefined =
|
|
71
|
+
component.content.by_locale[currentLocale]
|
|
72
|
+
if (!content) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
`Whatsapp template content not found for locale: ${currentLocale}`
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
return content
|
|
78
|
+
}
|
|
79
|
+
|
|
59
80
|
private getHeaderComponent(
|
|
60
81
|
whatsappTemplate: HtWhatsAppTemplate,
|
|
61
82
|
headerVariables: HeaderVariables,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VerbosityLevel } from '@botonic/core'
|
|
1
2
|
import type { HtBaseNode } from './common'
|
|
2
3
|
import type { HtNodeWithContentType } from './node-types'
|
|
3
4
|
|
|
@@ -12,6 +13,8 @@ export interface HtAiAgentNode extends HtBaseNode {
|
|
|
12
13
|
content: {
|
|
13
14
|
name: string
|
|
14
15
|
instructions: string
|
|
16
|
+
model: string
|
|
17
|
+
verbosity: VerbosityLevel
|
|
15
18
|
active_tools?: { name: string }[]
|
|
16
19
|
input_guardrail_rules?: HtInputGuardrailRule[]
|
|
17
20
|
sources?: { id: string; name: string }[]
|