@botonic/plugin-flow-builder 0.39.0 → 0.40.0-alpha.1
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 +32 -2
- package/lib/cjs/action/ai-agent.js.map +1 -1
- package/lib/cjs/tracking.js +2 -1
- package/lib/cjs/tracking.js.map +1 -1
- package/lib/esm/action/ai-agent.js +32 -2
- package/lib/esm/action/ai-agent.js.map +1 -1
- package/lib/esm/tracking.js +2 -1
- package/lib/esm/tracking.js.map +1 -1
- package/package.json +2 -2
- package/src/action/ai-agent.ts +44 -2
- package/src/tracking.ts +4 -1
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getContentsByAiAgent = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
5
|
+
const core_1 = require("@botonic/core");
|
|
6
|
+
const content_fields_1 = require("../content-fields");
|
|
7
|
+
const helpers_1 = require("../helpers");
|
|
8
|
+
const tracking_1 = require("../tracking");
|
|
6
9
|
function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
7
10
|
var _a, _b, _c;
|
|
8
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -12,7 +15,7 @@ function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
|
12
15
|
return [];
|
|
13
16
|
}
|
|
14
17
|
const contents = yield flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow);
|
|
15
|
-
const aiAgentContent = contents.find(content => content instanceof
|
|
18
|
+
const aiAgentContent = contents.find(content => content instanceof content_fields_1.FlowAiAgent);
|
|
16
19
|
if (!aiAgentContent) {
|
|
17
20
|
return [];
|
|
18
21
|
}
|
|
@@ -29,6 +32,7 @@ function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
|
29
32
|
if (!aiAgentResponse) {
|
|
30
33
|
return [];
|
|
31
34
|
}
|
|
35
|
+
trackAiAgentResponse(aiAgentResponse, request, aiAgentContent);
|
|
32
36
|
if (aiAgentResponse.exit) {
|
|
33
37
|
return [];
|
|
34
38
|
}
|
|
@@ -37,4 +41,30 @@ function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
|
37
41
|
});
|
|
38
42
|
}
|
|
39
43
|
exports.getContentsByAiAgent = getContentsByAiAgent;
|
|
44
|
+
function trackAiAgentResponse(aiAgentResponse, request, aiAgentContent) {
|
|
45
|
+
var _a, _b, _c, _d;
|
|
46
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
48
|
+
const flowId = flowBuilderPlugin.cmsApi.getNodeById(aiAgentContent.id).flow_id;
|
|
49
|
+
const flowName = flowBuilderPlugin.getFlowName(flowId);
|
|
50
|
+
const event = {
|
|
51
|
+
action: core_1.EventAction.AiAgent,
|
|
52
|
+
flowThreadId: request.session.flow_thread_id,
|
|
53
|
+
flowId: flowId,
|
|
54
|
+
flowName: flowName,
|
|
55
|
+
flowNodeId: aiAgentContent.id,
|
|
56
|
+
flowNodeContentId: aiAgentContent.name,
|
|
57
|
+
flowNodeIsMeaningful: true,
|
|
58
|
+
toolsExecuted: (_a = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.toolsExecuted) !== null && _a !== void 0 ? _a : [],
|
|
59
|
+
memoryLength: (_b = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.memoryLength) !== null && _b !== void 0 ? _b : 0,
|
|
60
|
+
inputMessageId: request.input.message_id,
|
|
61
|
+
exit: (_c = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.exit) !== null && _c !== void 0 ? _c : true,
|
|
62
|
+
inputGuardrailsTriggered: (_d = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.inputGuardrailsTriggered) !== null && _d !== void 0 ? _d : [],
|
|
63
|
+
outputGuardrailsTriggered: [],
|
|
64
|
+
error: aiAgentResponse.error,
|
|
65
|
+
};
|
|
66
|
+
const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
|
|
67
|
+
yield (0, tracking_1.trackEvent)(request, action, eventArgs);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
40
70
|
//# sourceMappingURL=ai-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/tracking.js
CHANGED
|
@@ -22,7 +22,8 @@ function trackFlowContent(request, contents) {
|
|
|
22
22
|
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
23
23
|
for (const content of contents) {
|
|
24
24
|
const nodeContent = cmsApi.getNodeById(content.id);
|
|
25
|
-
if (nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.KNOWLEDGE_BASE
|
|
25
|
+
if (nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.KNOWLEDGE_BASE &&
|
|
26
|
+
nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.AI_AGENT) {
|
|
26
27
|
const event = getContentEventArgs(request, nodeContent);
|
|
27
28
|
const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
|
|
28
29
|
yield trackEvent(request, action, eventArgs);
|
package/lib/cjs/tracking.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";;;;AAAA,wCAAsD;AAEtD,+BAAmC;AAGnC,oEAGwC;AACxC,uCAAgD;AAEhD,SAAsB,UAAU,CAC9B,OAAsB,EACtB,WAAwB,EACxB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,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;AAVD,gCAUC;AAED,SAAsB,gBAAgB,CACpC,OAAsB,EACtB,QAAuB;;QAEvB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,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,
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";;;;AAAA,wCAAsD;AAEtD,+BAAmC;AAGnC,oEAGwC;AACxC,uCAAgD;AAEhD,SAAsB,UAAU,CAC9B,OAAsB,EACtB,WAAwB,EACxB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,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;AAVD,gCAUC;AAED,SAAsB,gBAAgB,CACpC,OAAsB,EACtB,QAAuB;;QAEvB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,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,IACE,WAAW,CAAC,IAAI,KAAK,sCAAqB,CAAC,cAAc;gBACzD,WAAW,CAAC,IAAI,KAAK,sCAAqB,CAAC,QAAQ,EACnD;gBACA,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBACvD,MAAM,EAAE,MAAM,KAAmB,KAAK,EAAnB,SAAS,kBAAK,KAAK,EAAhC,UAAwB,CAAQ,CAAA;gBACtC,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;aAC7C;SACF;IACH,CAAC;CAAA;AAjBD,4CAiBC;AAED,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,WAA8B;;IAE9B,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,cAAc,mCAAI,IAAA,SAAM,GAAE,CAAA;IAC/D,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,YAAY,CAAA;IAE7C,OAAO;QACL,MAAM,EAAE,kBAAW,CAAC,QAAQ;QAC5B,YAAY;QACZ,MAAM,EAAE,WAAW,CAAC,OAAO;QAC3B,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,WAAW,CAAC,EAAE;QAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,oBAAoB,EAAE,MAAA,WAAW,CAAC,aAAa,mCAAI,KAAK;KACzD,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import {
|
|
1
|
+
import { __awaiter, __rest } from "tslib";
|
|
2
|
+
import { EventAction, } from '@botonic/core';
|
|
3
|
+
import { FlowAiAgent } from '../content-fields';
|
|
4
|
+
import { getFlowBuilderPlugin } from '../helpers';
|
|
5
|
+
import { trackEvent } from '../tracking';
|
|
3
6
|
export function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
4
7
|
var _a, _b, _c;
|
|
5
8
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -26,6 +29,7 @@ export function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
|
26
29
|
if (!aiAgentResponse) {
|
|
27
30
|
return [];
|
|
28
31
|
}
|
|
32
|
+
trackAiAgentResponse(aiAgentResponse, request, aiAgentContent);
|
|
29
33
|
if (aiAgentResponse.exit) {
|
|
30
34
|
return [];
|
|
31
35
|
}
|
|
@@ -33,4 +37,30 @@ export function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }) {
|
|
|
33
37
|
return contents;
|
|
34
38
|
});
|
|
35
39
|
}
|
|
40
|
+
function trackAiAgentResponse(aiAgentResponse, request, aiAgentContent) {
|
|
41
|
+
var _a, _b, _c, _d;
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
44
|
+
const flowId = flowBuilderPlugin.cmsApi.getNodeById(aiAgentContent.id).flow_id;
|
|
45
|
+
const flowName = flowBuilderPlugin.getFlowName(flowId);
|
|
46
|
+
const event = {
|
|
47
|
+
action: EventAction.AiAgent,
|
|
48
|
+
flowThreadId: request.session.flow_thread_id,
|
|
49
|
+
flowId: flowId,
|
|
50
|
+
flowName: flowName,
|
|
51
|
+
flowNodeId: aiAgentContent.id,
|
|
52
|
+
flowNodeContentId: aiAgentContent.name,
|
|
53
|
+
flowNodeIsMeaningful: true,
|
|
54
|
+
toolsExecuted: (_a = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.toolsExecuted) !== null && _a !== void 0 ? _a : [],
|
|
55
|
+
memoryLength: (_b = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.memoryLength) !== null && _b !== void 0 ? _b : 0,
|
|
56
|
+
inputMessageId: request.input.message_id,
|
|
57
|
+
exit: (_c = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.exit) !== null && _c !== void 0 ? _c : true,
|
|
58
|
+
inputGuardrailsTriggered: (_d = aiAgentResponse === null || aiAgentResponse === void 0 ? void 0 : aiAgentResponse.inputGuardrailsTriggered) !== null && _d !== void 0 ? _d : [],
|
|
59
|
+
outputGuardrailsTriggered: [],
|
|
60
|
+
error: aiAgentResponse.error,
|
|
61
|
+
};
|
|
62
|
+
const { action } = event, eventArgs = __rest(event, ["action"]);
|
|
63
|
+
yield trackEvent(request, action, eventArgs);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
36
66
|
//# sourceMappingURL=ai-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/tracking.js
CHANGED
|
@@ -18,7 +18,8 @@ export function trackFlowContent(request, contents) {
|
|
|
18
18
|
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
19
19
|
for (const content of contents) {
|
|
20
20
|
const nodeContent = cmsApi.getNodeById(content.id);
|
|
21
|
-
if (nodeContent.type !== HtNodeWithContentType.KNOWLEDGE_BASE
|
|
21
|
+
if (nodeContent.type !== HtNodeWithContentType.KNOWLEDGE_BASE &&
|
|
22
|
+
nodeContent.type !== HtNodeWithContentType.AI_AGENT) {
|
|
22
23
|
const event = getContentEventArgs(request, nodeContent);
|
|
23
24
|
const { action } = event, eventArgs = __rest(event, ["action"]);
|
|
24
25
|
yield trackEvent(request, action, eventArgs);
|
package/lib/esm/tracking.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EAEL,qBAAqB,GACtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,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,
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EAEL,qBAAqB,GACtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,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,IACE,WAAW,CAAC,IAAI,KAAK,qBAAqB,CAAC,cAAc;gBACzD,WAAW,CAAC,IAAI,KAAK,qBAAqB,CAAC,QAAQ,EACnD;gBACA,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBACvD,MAAM,EAAE,MAAM,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK,EAAhC,UAAwB,CAAQ,CAAA;gBACtC,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;aAC7C;SACF;IACH,CAAC;CAAA;AAED,SAAS,mBAAmB,CAC1B,OAAsB,EACtB,WAA8B;;IAE9B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,cAAc,mCAAI,MAAM,EAAE,CAAA;IAC/D,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,YAAY,CAAA;IAE7C,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,QAAQ;QAC5B,YAAY;QACZ,MAAM,EAAE,WAAW,CAAC,OAAO;QAC3B,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,WAAW,CAAC,EAAE;QAC1B,iBAAiB,EAAE,WAAW,CAAC,IAAI;QACnC,oBAAoB,EAAE,MAAA,WAAW,CAAC,aAAa,mCAAI,KAAK;KACzD,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.0-alpha.1",
|
|
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.
|
|
17
|
+
"@botonic/react": "^0.40.0-alpha.0",
|
|
18
18
|
"axios": "^1.10.0",
|
|
19
19
|
"uuid": "^10.0.0"
|
|
20
20
|
},
|
package/src/action/ai-agent.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
BotContext,
|
|
3
|
+
EventAction,
|
|
4
|
+
EventAiAgent,
|
|
5
|
+
InferenceResponse,
|
|
6
|
+
} from '@botonic/core'
|
|
7
|
+
|
|
8
|
+
import { FlowAiAgent, FlowContent } from '../content-fields'
|
|
9
|
+
import { HtNodeWithContent } from '../content-fields/hubtype-fields'
|
|
10
|
+
import { getFlowBuilderPlugin } from '../helpers'
|
|
11
|
+
import { trackEvent } from '../tracking'
|
|
3
12
|
import { GuardrailRule } from '../types'
|
|
4
13
|
import { FlowBuilderContext } from './index'
|
|
5
14
|
|
|
@@ -46,6 +55,7 @@ export async function getContentsByAiAgent({
|
|
|
46
55
|
if (!aiAgentResponse) {
|
|
47
56
|
return []
|
|
48
57
|
}
|
|
58
|
+
trackAiAgentResponse(aiAgentResponse, request, aiAgentContent)
|
|
49
59
|
|
|
50
60
|
if (aiAgentResponse.exit) {
|
|
51
61
|
return []
|
|
@@ -55,3 +65,35 @@ export async function getContentsByAiAgent({
|
|
|
55
65
|
|
|
56
66
|
return contents
|
|
57
67
|
}
|
|
68
|
+
|
|
69
|
+
async function trackAiAgentResponse(
|
|
70
|
+
aiAgentResponse: InferenceResponse,
|
|
71
|
+
request: BotContext,
|
|
72
|
+
aiAgentContent: FlowAiAgent
|
|
73
|
+
) {
|
|
74
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)
|
|
75
|
+
const flowId = flowBuilderPlugin.cmsApi.getNodeById<HtNodeWithContent>(
|
|
76
|
+
aiAgentContent.id
|
|
77
|
+
).flow_id
|
|
78
|
+
const flowName = flowBuilderPlugin.getFlowName(flowId)
|
|
79
|
+
|
|
80
|
+
const event: EventAiAgent = {
|
|
81
|
+
action: EventAction.AiAgent,
|
|
82
|
+
flowThreadId: request.session.flow_thread_id!,
|
|
83
|
+
flowId: flowId,
|
|
84
|
+
flowName: flowName,
|
|
85
|
+
flowNodeId: aiAgentContent.id,
|
|
86
|
+
flowNodeContentId: aiAgentContent.name,
|
|
87
|
+
flowNodeIsMeaningful: true,
|
|
88
|
+
toolsExecuted: aiAgentResponse?.toolsExecuted ?? [],
|
|
89
|
+
memoryLength: aiAgentResponse?.memoryLength ?? 0,
|
|
90
|
+
inputMessageId: request.input.message_id!,
|
|
91
|
+
exit: aiAgentResponse?.exit ?? true,
|
|
92
|
+
inputGuardrailsTriggered: aiAgentResponse?.inputGuardrailsTriggered ?? [],
|
|
93
|
+
outputGuardrailsTriggered: [], //aiAgentResponse.outputGuardrailsTriggered,
|
|
94
|
+
error: aiAgentResponse.error,
|
|
95
|
+
}
|
|
96
|
+
const { action, ...eventArgs } = event
|
|
97
|
+
|
|
98
|
+
await trackEvent(request, action, eventArgs)
|
|
99
|
+
}
|
package/src/tracking.ts
CHANGED
|
@@ -29,7 +29,10 @@ export async function trackFlowContent(
|
|
|
29
29
|
const cmsApi = flowBuilderPlugin.cmsApi
|
|
30
30
|
for (const content of contents) {
|
|
31
31
|
const nodeContent = cmsApi.getNodeById<HtNodeWithContent>(content.id)
|
|
32
|
-
if (
|
|
32
|
+
if (
|
|
33
|
+
nodeContent.type !== HtNodeWithContentType.KNOWLEDGE_BASE &&
|
|
34
|
+
nodeContent.type !== HtNodeWithContentType.AI_AGENT
|
|
35
|
+
) {
|
|
33
36
|
const event = getContentEventArgs(request, nodeContent)
|
|
34
37
|
const { action, ...eventArgs } = event
|
|
35
38
|
await trackEvent(request, action, eventArgs)
|