@botonic/plugin-flow-builder 0.39.0 → 0.40.0-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.
@@ -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 flow_ai_agent_1 = require("../content-fields/flow-ai-agent");
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 flow_ai_agent_1.FlowAiAgent);
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.code,
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":";;;;AACA,mEAA6D;AAI7D,SAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,iBAAiB,EACjB,OAAO,GACY;;;QACnB,MAAM,oBAAoB,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAA;QAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAClD,IAAI,CAAC,oBAAoB,IAAI,CAAC,gBAAgB,EAAE;YAC9C,OAAO,EAAE,CAAA;SACV;QAED,MAAM,QAAQ,GACZ,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;QAEjE,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAClC,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,2BAAW,CAC3B,CAAA;QAEhB,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,EAAE,CAAA;SACV;QAED,MAAM,yBAAyB,GAC7B,CAAA,MAAA,MAAA,cAAc,CAAC,mBAAmB,0CAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,0CAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC,KAAI,EAAE,CAAA;QAEb,MAAM,eAAe,GAAG,MAAM,CAAA,MAAA,iBAAiB,CAAC,kBAAkB,kEAChE,OAAO,EACP;YACE,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,mBAAmB,EAAE,yBAAyB;SAC/C,CACF,CAAA,CAAA;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,EAAE,CAAA;SACV;QAED,IAAI,eAAe,CAAC,IAAI,EAAE;YACxB,OAAO,EAAE,CAAA;SACV;QAED,cAAc,CAAC,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAA;QAEnD,OAAO,QAAQ,CAAA;;CAChB;AAnDD,oDAmDC"}
1
+ {"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":"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"}
@@ -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);
@@ -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,IAAI,WAAW,CAAC,IAAI,KAAK,sCAAqB,CAAC,cAAc,EAAE;gBAC7D,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;AAdD,4CAcC;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
+ {"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 { FlowAiAgent } from '../content-fields/flow-ai-agent';
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.code,
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":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAI7D,MAAM,UAAgB,oBAAoB,CAAC,EACzC,MAAM,EACN,iBAAiB,EACjB,OAAO,GACY;;;QACnB,MAAM,oBAAoB,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAA;QAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAClD,IAAI,CAAC,oBAAoB,IAAI,CAAC,gBAAgB,EAAE;YAC9C,OAAO,EAAE,CAAA;SACV;QAED,MAAM,QAAQ,GACZ,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;QAEjE,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAClC,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,WAAW,CAC3B,CAAA;QAEhB,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,EAAE,CAAA;SACV;QAED,MAAM,yBAAyB,GAC7B,CAAA,MAAA,MAAA,cAAc,CAAC,mBAAmB,0CAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,0CAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC,KAAI,EAAE,CAAA;QAEb,MAAM,eAAe,GAAG,MAAM,CAAA,MAAA,iBAAiB,CAAC,kBAAkB,kEAChE,OAAO,EACP;YACE,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,mBAAmB,EAAE,yBAAyB;SAC/C,CACF,CAAA,CAAA;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,EAAE,CAAA;SACV;QAED,IAAI,eAAe,CAAC,IAAI,EAAE;YACxB,OAAO,EAAE,CAAA;SACV;QAED,cAAc,CAAC,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAA;QAEnD,OAAO,QAAQ,CAAA;;CAChB"}
1
+ {"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../../../src/action/ai-agent.ts"],"names":[],"mappings":"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"}
@@ -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);
@@ -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,IAAI,WAAW,CAAC,IAAI,KAAK,qBAAqB,CAAC,cAAc,EAAE;gBAC7D,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"}
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.39.0",
3
+ "version": "0.40.0-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.39.0",
17
+ "@botonic/react": "^0.40.0-alpha.0",
18
18
  "axios": "^1.10.0",
19
19
  "uuid": "^10.0.0"
20
20
  },
@@ -1,5 +1,14 @@
1
- import { FlowContent } from '../content-fields'
2
- import { FlowAiAgent } from '../content-fields/flow-ai-agent'
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.code,
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 (nodeContent.type !== HtNodeWithContentType.KNOWLEDGE_BASE) {
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)