@cognigy/rest-api-client 0.19.0 → 0.20.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 (118) hide show
  1. package/build/RestAPIClient.js +7 -0
  2. package/build/apigroups/AdministrationAPIGroup_2_0.js +6 -1
  3. package/build/apigroups/JWTAuthAPIGroup_2_0.js +12 -0
  4. package/build/apigroups/ResourcesAPIGroup_2_0.js +19 -8
  5. package/build/apigroups/index.js +3 -1
  6. package/build/shared/charts/descriptors/agentAssist/index.js +3 -1
  7. package/build/shared/charts/descriptors/agentAssist/sendData.js +74 -0
  8. package/build/shared/charts/descriptors/analytics/addMemory.js +51 -0
  9. package/build/shared/charts/descriptors/analytics/completeGoal.js +4 -3
  10. package/build/shared/charts/descriptors/analytics/helper.js +20 -0
  11. package/build/shared/charts/descriptors/analytics/index.js +5 -3
  12. package/build/shared/charts/descriptors/analytics/{trackMilestone.js → trackGoal.js} +32 -25
  13. package/build/shared/charts/descriptors/data/copySlotsToContext.js +1 -1
  14. package/build/shared/charts/descriptors/index.js +14 -2
  15. package/build/shared/charts/descriptors/knowledgeSearch/knowledgeSearchV2.js +1 -1
  16. package/build/shared/charts/descriptors/knowledgeSearch/searchExtractOutput.js +26 -16
  17. package/build/shared/charts/descriptors/logic/disableSlotFillers.js +1 -1
  18. package/build/shared/charts/descriptors/logic/enableSlotFillers.js +1 -1
  19. package/build/shared/charts/descriptors/logic/thinkV2.js +111 -4
  20. package/build/shared/charts/descriptors/nlu/cleanText.js +1 -1
  21. package/build/shared/charts/descriptors/nlu/executeCognigyNLU.js +1 -1
  22. package/build/shared/charts/descriptors/nlu/fuzzySearch.js +1 -1
  23. package/build/shared/charts/descriptors/nlu/generativeSlotFiller/generativeSlotFiller.js +1 -1
  24. package/build/shared/charts/descriptors/nlu/generativeSlotFiller/generativeSlotFillerFallback.js +1 -1
  25. package/build/shared/charts/descriptors/nlu/generativeSlotFiller/generativeSlotFillerSuccess.js +1 -1
  26. package/build/shared/charts/descriptors/nlu/generativeSlotFiller/prompt.js +4 -5
  27. package/build/shared/charts/descriptors/nlu/matchPattern.js +1 -1
  28. package/build/shared/charts/descriptors/nlu/regexSlotFiller.js +1 -1
  29. package/build/shared/charts/descriptors/service/GPTConversation.js +1 -1
  30. package/build/shared/charts/descriptors/service/GPTPrompt.js +26 -32
  31. package/build/shared/charts/descriptors/service/LLMEntityExtract.js +1 -1
  32. package/build/shared/charts/descriptors/service/aiAgent/aiAgentHandover.js +92 -0
  33. package/build/shared/charts/descriptors/service/aiAgent/aiAgentJob.js +1146 -0
  34. package/build/shared/charts/descriptors/service/aiAgent/aiAgentJobDefault.js +31 -0
  35. package/build/shared/charts/descriptors/service/aiAgent/aiAgentJobTool.js +139 -0
  36. package/build/shared/charts/descriptors/service/aiAgent/aiAgentToolAnswer.js +120 -0
  37. package/build/shared/charts/descriptors/service/aiAgent/helper.js +222 -0
  38. package/build/shared/charts/descriptors/service/handoverV2.js +68 -13
  39. package/build/shared/charts/descriptors/service/index.js +11 -1
  40. package/build/shared/charts/descriptors/transcripts/addTranscriptStep.js +413 -0
  41. package/build/shared/charts/descriptors/transcripts/getTranscript.js +104 -0
  42. package/build/shared/charts/descriptors/transcripts/index.js +8 -0
  43. package/build/shared/charts/descriptors/voice/mappers/base.mapper.js +20 -0
  44. package/build/shared/charts/descriptors/voice/mappers/setSessionConfig.mapper.js +183 -107
  45. package/build/shared/charts/descriptors/voice/mappers/transfer.mapper.js +6 -9
  46. package/build/shared/charts/descriptors/voice/nodes/continuousAsr.js +3 -4
  47. package/build/shared/charts/descriptors/voicegateway/nodes/callRecording.js +8 -1
  48. package/build/shared/charts/descriptors/voicegateway/nodes/handover.js +4 -2
  49. package/build/shared/charts/descriptors/voicegateway/nodes/hangup.js +4 -2
  50. package/build/shared/charts/descriptors/voicegateway/nodes/helper/utils.js +14 -0
  51. package/build/shared/charts/descriptors/voicegateway/nodes/playURL.js +4 -5
  52. package/build/shared/charts/descriptors/voicegateway/nodes/sendMessage.js +8 -1
  53. package/build/shared/charts/descriptors/voicegateway/nodes/sendMetaData.js +7 -3
  54. package/build/shared/charts/descriptors/voicegateway/nodes/setSessionParams.js +8 -1
  55. package/build/shared/charts/descriptors/voicegateway2/nodes/setSessionConfig.js +15 -4
  56. package/build/shared/charts/descriptors/voicegateway2/nodes/transfer.js +15 -3
  57. package/build/shared/constants.js +7 -1
  58. package/build/shared/handoverClients/interfaces/THandoverEventType.js +1 -0
  59. package/build/shared/helper/logFullConfigToDebugMode.js +1 -1
  60. package/build/shared/helper/nlu/textCleaner.js +1 -1
  61. package/build/shared/interfaces/{restAPI/resources/milestone/v2.0/IMilestoneStep_2_0.js → IEndpointSettings.js} +1 -1
  62. package/build/shared/interfaces/IProfile.js +1 -0
  63. package/build/shared/interfaces/IProfileSchema.js +1 -0
  64. package/build/shared/interfaces/analytics/IAnalyticsSourceData.js +22 -20
  65. package/build/shared/interfaces/{restAPI/resources/milestone/v2.0/IMilestone_2_0.js → analytics/IGoalAnalytics.js} +1 -1
  66. package/build/shared/interfaces/generativeAI/IGenerativeAIModels.js +19 -2
  67. package/build/shared/interfaces/generativeAI/tools.js +3 -0
  68. package/build/shared/interfaces/handover.js +3 -1
  69. package/build/shared/interfaces/messageAPI/endpoints.js +6 -1
  70. package/build/shared/interfaces/messageAPI/handover.js +2 -0
  71. package/build/shared/interfaces/resources/IAiAgent.js +52 -0
  72. package/build/shared/interfaces/resources/IAuditEvent.js +2 -1
  73. package/build/shared/interfaces/resources/IEndpoint.js +2 -1
  74. package/build/shared/interfaces/resources/{IMilestone.js → IGoal.js} +14 -14
  75. package/build/shared/interfaces/resources/ILargeLanguageModel.js +29 -2
  76. package/build/shared/interfaces/resources/INodeDescriptorSet.js +4 -1
  77. package/build/shared/interfaces/resources/TResourceType.js +16 -8
  78. package/build/shared/interfaces/resources/settings/IGenerativeAISettings.js +5 -1
  79. package/build/shared/interfaces/restAPI/{resources/milestone/v2.0/ICloneMilestoneRest_2_0.js → administration/user/v2.0/IGetPinnedResources_2_0.js} +1 -1
  80. package/build/shared/interfaces/restAPI/administration/user/v2.0/IPinResourceRest_2_0.js +3 -0
  81. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IAiAgentHiringTemplate_2_0.js +32 -0
  82. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IAiAgent_2_0.js +3 -0
  83. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/ICreateAiAgentRest_2_0.js +3 -0
  84. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IDeleteAiAgentRest_2_0.js +3 -0
  85. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IGetAiAgentHiringTemplates_2_0.js +3 -0
  86. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IHireAiAgent_2_0.js +3 -0
  87. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IIndexAiAgentRest_2_0.js +3 -0
  88. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IReadAiAgentRest_2_0.js +3 -0
  89. package/build/shared/interfaces/restAPI/resources/aiAgent/v2.0/IUpdateAiAgentRest_2_0.js +3 -0
  90. package/build/shared/interfaces/restAPI/resources/{milestone/v2.0/ICreateMilestoneRest_2_0.js → aiAgent/v2.0/IValidateAiAgentNameRest_2_0.js} +1 -1
  91. package/build/shared/interfaces/restAPI/resources/goal/v2.0/ICloneGoalRest_2_0.js +3 -0
  92. package/build/shared/interfaces/{analytics/IMilestoneAnalytics.js → restAPI/resources/goal/v2.0/ICreateGoalRest_2_0.js} +1 -1
  93. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IDeleteGoalRest_2_0.js +3 -0
  94. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IGoalIndexItem_2_0.js +3 -0
  95. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IGoalStepMetric_2_0.js +3 -0
  96. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IGoalStep_2_0.js +3 -0
  97. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IGoal_2_0.js +3 -0
  98. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IIndexGoalsRest_2_0.js +3 -0
  99. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IReadGoalRest_2_0.js +3 -0
  100. package/build/shared/interfaces/restAPI/resources/goal/v2.0/IUpdateGoalRest_2_0.js +3 -0
  101. package/build/shared/interfaces/security/IPermission.js +6 -2
  102. package/build/shared/interfaces/security/IPinnedResource.js +3 -0
  103. package/build/shared/interfaces/security/index.js +1 -1
  104. package/build/shared/interfaces/transcripts/transcripts.js +33 -0
  105. package/package.json +1 -1
  106. package/types/index.d.ts +931 -224
  107. package/build/shared/interfaces/license.js.map +0 -1
  108. package/build/shared/interfaces/restAPI/resources/knowledgeSearchIndex/v2.0/ICreateKnowledgeSearchIndexRest_2_0.js +0 -3
  109. package/build/shared/interfaces/restAPI/resources/knowledgeSearchIndex/v2.0/IDeleteKnowledgeSearchIndexRest_2_0.js +0 -3
  110. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IDeleteMilestoneRest_2_0.js +0 -3
  111. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IIndexMilestonesRest_2_0.js +0 -3
  112. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IMilestoneIndexItem_2_0.js +0 -3
  113. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IMilestoneStepMetric_2_0.js +0 -3
  114. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IReadMilestoneRest_2_0.js +0 -3
  115. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IUpdateMilestoneRest_2_0.js +0 -3
  116. package/build/test.js +0 -27
  117. /package/build/shared/interfaces/restAPI/resources/{knowledgeSearchIndex → aiAgent}/v2.0/index.js +0 -0
  118. /package/build/shared/interfaces/restAPI/resources/{milestone → goal}/v2.0/index.js +0 -0
@@ -0,0 +1,1146 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.AI_AGENT_JOB = void 0;
15
+ /* Custom modules */
16
+ const createNodeDescriptor_1 = require("../../../createNodeDescriptor");
17
+ const transcripts_1 = require("../../../../interfaces/transcripts/transcripts");
18
+ const helper_1 = require("./helper");
19
+ exports.AI_AGENT_JOB = (0, createNodeDescriptor_1.createNodeDescriptor)({
20
+ type: "aiAgentJob",
21
+ defaultLabel: "AI Agent",
22
+ summary: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SUMMARY",
23
+ constraints: {
24
+ collapsable: true,
25
+ placement: {
26
+ children: {
27
+ whitelist: ["aiAgentJobDefault", "aiAgentJobTool"],
28
+ },
29
+ },
30
+ },
31
+ behavior: {
32
+ entrypoint: true
33
+ },
34
+ dependencies: {
35
+ children: ["aiAgentJobDefault", "aiAgentJobTool"]
36
+ },
37
+ preview: {
38
+ type: "aiAgent",
39
+ key: "name"
40
+ },
41
+ tokens: [
42
+ {
43
+ type: "input",
44
+ label: "AI Agent Output",
45
+ script: "input.aiAgentOutput"
46
+ },
47
+ {
48
+ type: "context",
49
+ label: "Short-Term Memory",
50
+ script: "context.shortTermMemory",
51
+ }
52
+ ],
53
+ fields: [
54
+ {
55
+ key: "aiAgent",
56
+ type: "aiAgentSelect",
57
+ label: "UI__NODE_EDITOR__AI_AGENT__AI_AGENT_SELECTOR__LABEL",
58
+ description: "UI__NODE_EDITOR__AI_AGENT__AI_AGENT_SELECTOR__DESCRIPTION",
59
+ params: {
60
+ required: true
61
+ },
62
+ },
63
+ {
64
+ key: "llmProviderReferenceId",
65
+ type: "llmSelect",
66
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LLM__LABEL",
67
+ defaultValue: "default",
68
+ params: {
69
+ useCase: "aiAgent",
70
+ },
71
+ },
72
+ {
73
+ key: "name",
74
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__JOB_NAME__LABEL",
75
+ type: "cognigyText",
76
+ defaultValue: "Customer Support Specialist",
77
+ params: {
78
+ required: true,
79
+ },
80
+ },
81
+ {
82
+ key: "description",
83
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__JOB_DESCRIPTION__LABEL",
84
+ type: "cognigyText",
85
+ defaultValue: "You resolve customer issues, ensure a positive experience, troubleshoot problems, and escalate complex cases as needed. You provide product guidance, communicate effectively, and stay calm under pressure.",
86
+ params: {
87
+ required: false,
88
+ rows: 5,
89
+ multiline: true
90
+ }
91
+ },
92
+ {
93
+ key: "instructions",
94
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__INSCTRUCTIONS__LABEL",
95
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__INSCTRUCTIONS__DESCRIPTION",
96
+ defaultValue: `- Pretend to be an expert in your area.
97
+ - Never answer questions that are outside your job.`,
98
+ type: "cognigyText",
99
+ params: {
100
+ required: false,
101
+ rows: 5,
102
+ multiline: true
103
+ }
104
+ },
105
+ {
106
+ key: "toolChoice",
107
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TOOL_CHOICE__LABEL",
108
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TOOL_CHOICE__DESCRIPTION",
109
+ type: "select",
110
+ defaultValue: "auto",
111
+ params: {
112
+ options: [
113
+ {
114
+ label: 'UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TOOL_CHOICE__OPTIONS__AUTO__LABEL',
115
+ value: 'auto'
116
+ },
117
+ {
118
+ label: 'UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TOOL_CHOICE__OPTIONS__REQUIRED__LABEL',
119
+ value: 'required'
120
+ },
121
+ {
122
+ label: 'UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TOOL_CHOICE__OPTIONS__NONE__LABEL',
123
+ value: 'none'
124
+ }
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ key: "useStrict",
130
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__USE_STRICT__LABEL",
131
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__USE_STRICT__DESCRIPTION",
132
+ type: "toggle",
133
+ defaultValue: false
134
+ },
135
+ {
136
+ key: "memoryType",
137
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__LABEL",
138
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__DESCRIPTION",
139
+ type: "select",
140
+ defaultValue: "inherit",
141
+ params: {
142
+ options: [
143
+ {
144
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__OPTIONS__INHERIT__LABEL",
145
+ value: "inherit"
146
+ },
147
+ {
148
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__OPTIONS__INJECT_FULL_PROFILE__LABEL",
149
+ value: "completeProfile"
150
+ },
151
+ {
152
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__OPTIONS__INJECT_MEMORIES__LABEL",
153
+ value: "profileMemoriesOnly"
154
+ },
155
+ {
156
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__OPTIONS__INJECT_SELECTED_FIELDS__LABEL",
157
+ value: "selectedProfileFields"
158
+ },
159
+ {
160
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MEMORY_INJECTION__OPTIONS__NONE__LABEL",
161
+ value: "none"
162
+ },
163
+ ]
164
+ },
165
+ },
166
+ {
167
+ key: "selectedProfileFields",
168
+ type: "chipInput",
169
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__SELECTED_PROFILE_FIELDS__LABEL",
170
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__SELECTED_PROFILE_FIELDS__DESCRIPTION",
171
+ condition: {
172
+ key: "memoryType",
173
+ value: "selectedProfileFields"
174
+ },
175
+ },
176
+ {
177
+ key: "memoryContextInjection",
178
+ type: "cognigyText",
179
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__CONTEXT_INJECTION__LABEL",
180
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__CONTEXT_INJECTION__DESCRIPTION",
181
+ defaultValue: "[[snippet-eyJ0eXBlIjoiY29udGV4dCIsImxhYmVsIjoiU2hvcnQtVGVybSBNZW1vcnkiLCJzY3JpcHQiOiJjb250ZXh0LnNob3J0VGVybU1lbW9yeSJ9]]",
182
+ },
183
+ {
184
+ key: "knowledgeSearchBehavior",
185
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_BEHAVIOR__LABEL",
186
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_BEHAVIOR__DESCRIPTION",
187
+ type: "select",
188
+ defaultValue: "onDemand",
189
+ params: {
190
+ options: [
191
+ {
192
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_BEHAVIOR__OPTIONS__NONE__LABEL",
193
+ value: "none"
194
+ },
195
+ {
196
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_BEHAVIOR__OPTIONS__ON_DEMAND__LABEL",
197
+ value: "onDemand"
198
+ },
199
+ {
200
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_BEHAVIOR__OPTIONS__ALWAYS__LABEL",
201
+ value: "always"
202
+ },
203
+ ]
204
+ },
205
+ },
206
+ {
207
+ key: "knowledgeSearchAlwaysWarning",
208
+ type: "description",
209
+ label: " ",
210
+ params: {
211
+ text: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_BEHAVIOR__ALWAYS__WARNING"
212
+ },
213
+ condition: {
214
+ key: "knowledgeSearchBehavior",
215
+ value: "always"
216
+ },
217
+ },
218
+ {
219
+ key: "knowledgeSearchTags",
220
+ type: "knowledgeSourceTags",
221
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TAGS__LABEL",
222
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TAGS__DESCRIPTION",
223
+ condition: {
224
+ or: [
225
+ {
226
+ key: "knowledgeSearchBehavior",
227
+ value: "always"
228
+ },
229
+ {
230
+ key: "knowledgeSearchBehavior",
231
+ value: "onDemand"
232
+ }
233
+ ]
234
+ },
235
+ params: {
236
+ tagLimit: 5
237
+ }
238
+ },
239
+ {
240
+ key: "knowledgeSearchTagsFilterOp",
241
+ type: "select",
242
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TAGS_FILTER_OP__LABEL",
243
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TAGS_FILTER_OP__DESCRIPTION",
244
+ defaultValue: "and",
245
+ params: {
246
+ options: [
247
+ {
248
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TAGS_FILTER_OP__OPTIONS__AND__LABEL",
249
+ value: "and"
250
+ },
251
+ {
252
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TAGS_FILTER_OP__OPTIONS__OR__LABEL",
253
+ value: "or"
254
+ },
255
+ ]
256
+ },
257
+ condition: {
258
+ or: [
259
+ {
260
+ key: "knowledgeSearchBehavior",
261
+ value: "always"
262
+ },
263
+ {
264
+ key: "knowledgeSearchBehavior",
265
+ value: "onDemand"
266
+ }
267
+ ]
268
+ },
269
+ },
270
+ {
271
+ key: "knowledgeSearchAiAgentKnowledge",
272
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_AI_AGENT_KNOWLEDGE__LABEL",
273
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_AI_AGENT_KNOWLEDGE__DESCRIPTION",
274
+ type: "toggle",
275
+ defaultValue: true,
276
+ condition: {
277
+ or: [
278
+ {
279
+ key: "knowledgeSearchBehavior",
280
+ value: "always"
281
+ },
282
+ {
283
+ key: "knowledgeSearchBehavior",
284
+ value: "onDemand"
285
+ }
286
+ ]
287
+ },
288
+ },
289
+ {
290
+ key: "knowledgeSearchJobKnowledge",
291
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_JOB_KNOWLEDGE__LABEL",
292
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_JOB_KNOWLEDGE__DESCRIPTION",
293
+ type: "toggle",
294
+ defaultValue: false,
295
+ condition: {
296
+ or: [
297
+ {
298
+ key: "knowledgeSearchBehavior",
299
+ value: "always"
300
+ },
301
+ {
302
+ key: "knowledgeSearchBehavior",
303
+ value: "onDemand"
304
+ }
305
+ ]
306
+ },
307
+ },
308
+ {
309
+ key: "knowledgeSearchTopK",
310
+ type: "slider",
311
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TOP_K__LABEL",
312
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_TOP_K__DESCRIPTION",
313
+ defaultValue: 3,
314
+ params: {
315
+ min: 1,
316
+ max: 5,
317
+ },
318
+ condition: {
319
+ or: [
320
+ {
321
+ key: "knowledgeSearchBehavior",
322
+ value: "always"
323
+ },
324
+ {
325
+ key: "knowledgeSearchBehavior",
326
+ value: "onDemand"
327
+ }
328
+ ]
329
+ },
330
+ },
331
+ {
332
+ key: "knowledgeSearchJobStore",
333
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__KNOWLEDGE_SEARCH_JOB_STORE__LABEL",
334
+ type: "knowledgeStoreSelect",
335
+ condition: {
336
+ and: [
337
+ {
338
+ key: "knowledgeSearchJobKnowledge",
339
+ value: true
340
+ },
341
+ {
342
+ or: [
343
+ {
344
+ key: "knowledgeSearchBehavior",
345
+ value: "always"
346
+ },
347
+ {
348
+ key: "knowledgeSearchBehavior",
349
+ value: "onDemand"
350
+ }
351
+ ]
352
+ }
353
+ ]
354
+ },
355
+ },
356
+ {
357
+ key: "apiVersion",
358
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__API_VERSION__LABEL",
359
+ type: "select",
360
+ defaultValue: "1.0",
361
+ params: {
362
+ options: [
363
+ {
364
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__API_VERSION__OPTIONS__LATEST__LABEL",
365
+ value: "latest"
366
+ },
367
+ {
368
+ label: "1.0",
369
+ value: "1.0"
370
+ },
371
+ ]
372
+ }
373
+ },
374
+ {
375
+ key: "timeoutInMs",
376
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TIMEOUT__LABEL",
377
+ defaultValue: 8000,
378
+ type: "number",
379
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TIMEOUT__DESCRIPTION",
380
+ },
381
+ {
382
+ key: "maxTokens",
383
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MAX_TOKENS__LABEL",
384
+ type: "slider",
385
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__MAX_TOKENS__DESCRIPTION",
386
+ defaultValue: 4000,
387
+ params: {
388
+ min: 100,
389
+ max: 8000,
390
+ step: 100
391
+ }
392
+ },
393
+ {
394
+ key: "temperature",
395
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TEMPERATURE__LABEL",
396
+ type: "slider",
397
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TEMPERATURE__DESCRIPTION",
398
+ defaultValue: 0.7,
399
+ params: {
400
+ min: 0,
401
+ max: 1,
402
+ step: 0.1
403
+ }
404
+ },
405
+ {
406
+ key: "logErrorToSystem",
407
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_TO_SYSTEM__LABEL",
408
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_TO_SYSTEM__DESCRIPTION",
409
+ type: "toggle",
410
+ defaultValue: false,
411
+ },
412
+ {
413
+ key: "storeErrorInInput",
414
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__STORE_ERROR_IN_INPUT__LABEL",
415
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__STORE_ERROR_IN_INPUT__DESCRIPTION",
416
+ type: "toggle",
417
+ defaultValue: true,
418
+ },
419
+ {
420
+ key: "errorHandling",
421
+ type: "select",
422
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__HANDLE_SERVICE_ERROR__LABEL",
423
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__HANDLE_SERVICE_ERROR__DESCRIPTION",
424
+ defaultValue: "continue",
425
+ params: {
426
+ options: [
427
+ {
428
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__HANDLE_SERVICE_ERROR__OPTIONS__STOP__LABEL",
429
+ value: "stop"
430
+ },
431
+ {
432
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__HANDLE_SERVICE_ERROR__OPTIONS__CONTINUE__LABEL",
433
+ value: "continue"
434
+ },
435
+ {
436
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__HANDLE_SERVICE_ERROR__OPTIONS__GOTO__LABEL",
437
+ value: "goto"
438
+ },
439
+ ]
440
+ }
441
+ },
442
+ {
443
+ key: "errorMessage",
444
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__ERROR_MESSAGE__LABEL",
445
+ type: "cognigyText",
446
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__ERROR_MESSAGE__DESCRIPTION",
447
+ defaultValue: "",
448
+ condition: {
449
+ key: "errorHandling",
450
+ value: "continue"
451
+ }
452
+ },
453
+ {
454
+ key: "errorHandlingGotoTarget",
455
+ type: "flowNode",
456
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__ERROR__GOTO_NODE__LABEL",
457
+ condition: {
458
+ key: "errorHandling",
459
+ value: "goto"
460
+ }
461
+ },
462
+ {
463
+ key: "debugLogTokenCount",
464
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_TOKEN_COUNT__LABEL",
465
+ type: "toggle",
466
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_TOKEN_COUNT__DESCRIPTION",
467
+ defaultValue: false
468
+ },
469
+ {
470
+ key: "debugResult",
471
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_KNOWLEDGE_RESULTS__LABEL",
472
+ type: "toggle",
473
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_KNOWLEDGE_RESULTS__DESCRIPTION",
474
+ defaultValue: false
475
+ },
476
+ {
477
+ key: "debugConfig",
478
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_CONFIG__LABEL",
479
+ type: "toggle",
480
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__LOG_CONFIG__DESCRIPTION",
481
+ defaultValue: true
482
+ },
483
+ {
484
+ key: "storeLocation",
485
+ type: "select",
486
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STORE_LOCATION__LABEL",
487
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STORE_LOCATION__DESCRIPTION",
488
+ defaultValue: "stream",
489
+ params: {
490
+ options: [
491
+ {
492
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STORE_LOCATION__OPTIONS__INPUT__LABEL",
493
+ value: "input"
494
+ },
495
+ {
496
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STORE_LOCATION__OPTIONS__CONTEXT__LABEL",
497
+ value: "context"
498
+ },
499
+ {
500
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STORE_LOCATION__OPTIONS__STREAM__LABEL",
501
+ value: "stream"
502
+ }
503
+ ],
504
+ required: true
505
+ },
506
+ },
507
+ {
508
+ key: "streamStoreCopyInInput",
509
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STORE_COPY__LABEL",
510
+ type: "toggle",
511
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STORE_COPY__DESCRIPTION",
512
+ defaultValue: true,
513
+ condition: {
514
+ key: "storeLocation",
515
+ value: "stream",
516
+ }
517
+ },
518
+ {
519
+ key: "inputKey",
520
+ type: "cognigyText",
521
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__INPUT_KEY__LABEL",
522
+ defaultValue: "aiAgentOutput",
523
+ condition: {
524
+ or: [
525
+ {
526
+ key: "storeLocation",
527
+ value: "input",
528
+ },
529
+ {
530
+ and: [
531
+ {
532
+ key: "storeLocation",
533
+ value: "stream",
534
+ },
535
+ {
536
+ key: "streamStoreCopyInInput",
537
+ value: true,
538
+ }
539
+ ]
540
+ }
541
+ ]
542
+ }
543
+ },
544
+ {
545
+ key: "contextKey",
546
+ type: "cognigyText",
547
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__CONTEXT_KEY__LABEL",
548
+ defaultValue: "aiAgentOutput",
549
+ condition: {
550
+ key: "storeLocation",
551
+ value: "context",
552
+ }
553
+ },
554
+ {
555
+ key: "outputImmediately",
556
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__OUTPUT_IMMEDIATELY__LABEL",
557
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__OUTPUT_IMMEDIATELY__DESCRIPTION",
558
+ type: "toggle",
559
+ defaultValue: true,
560
+ condition: {
561
+ or: [
562
+ {
563
+ key: "storeLocation",
564
+ value: "input",
565
+ },
566
+ {
567
+ key: "storeLocation",
568
+ value: "context",
569
+ }
570
+ ]
571
+ }
572
+ },
573
+ {
574
+ key: "streamStopTokens",
575
+ type: "textArray",
576
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STOP_TOKENS__LABEL",
577
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STOP_TOKENS__DESCRIPTION",
578
+ defaultValue: [".", "!", "?", "\\n"],
579
+ condition: {
580
+ key: "storeLocation",
581
+ value: "stream",
582
+ }
583
+ },
584
+ {
585
+ key: "processImages",
586
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__PROCESS_IMAGES__LABEL",
587
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__PROCESS_IMAGES__DESCRIPTION",
588
+ type: "toggle",
589
+ defaultValue: false
590
+ },
591
+ {
592
+ key: "transcriptImageHandling",
593
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TRANSCRIPT_IMAGES__LABEL",
594
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TRANSCRIPT_IMAGES__DESCRIPTION",
595
+ type: "select",
596
+ defaultValue: "minify",
597
+ params: {
598
+ options: [
599
+ {
600
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TRANSCRIPT_IMAGES__OPTIONS__MINIFY__LABEL",
601
+ value: "minify"
602
+ },
603
+ {
604
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TRANSCRIPT_IMAGES__OPTIONS__DROP__LABEL",
605
+ value: "drop"
606
+ },
607
+ {
608
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__FIELDS__TRANSCRIPT_IMAGES__OPTIONS__KEEP__LABEL",
609
+ value: "keep"
610
+ }
611
+ ],
612
+ },
613
+ }
614
+ ],
615
+ sections: [
616
+ {
617
+ key: "memory",
618
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__MEMORY__LABEL",
619
+ defaultCollapsed: true,
620
+ fields: [
621
+ "memoryType",
622
+ "selectedProfileFields",
623
+ "memoryContextInjection"
624
+ ]
625
+ },
626
+ {
627
+ key: "knowledgeSearch",
628
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__KNOWLEDGE_SEARCH__LABEL",
629
+ description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__KNOWLEDGE_SEARCH__DESCRIPTION",
630
+ defaultCollapsed: true,
631
+ fields: [
632
+ "knowledgeSearchBehavior",
633
+ "knowledgeSearchAlwaysWarning",
634
+ "knowledgeSearchAiAgentKnowledge",
635
+ "knowledgeSearchJobKnowledge",
636
+ "knowledgeSearchJobStore",
637
+ "knowledgeSearchTopK",
638
+ "knowledgeSearchTags",
639
+ "knowledgeSearchTagsFilterOp",
640
+ ]
641
+ },
642
+ {
643
+ key: "storage",
644
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__SECTIONS__STORAGE__LABEL",
645
+ defaultCollapsed: true,
646
+ fields: [
647
+ "storeLocation",
648
+ "streamStoreCopyInInput",
649
+ "inputKey",
650
+ "contextKey",
651
+ "outputImmediately",
652
+ "streamStopTokens"
653
+ ]
654
+ },
655
+ {
656
+ key: "toolSettings",
657
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__TOOL_SETTINGS__LABEL",
658
+ defaultCollapsed: true,
659
+ fields: [
660
+ "toolChoice",
661
+ "useStrict",
662
+ ],
663
+ },
664
+ {
665
+ key: "imageHandling",
666
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__IMAGE_HANDLING__LABEL",
667
+ defaultCollapsed: true,
668
+ fields: [
669
+ "processImages",
670
+ "transcriptImageHandling"
671
+ ]
672
+ },
673
+ {
674
+ key: "advanced",
675
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__ADVANCED__LABEL",
676
+ defaultCollapsed: true,
677
+ fields: [
678
+ "llmProviderReferenceId",
679
+ "apiVersion",
680
+ "timeoutInMs",
681
+ "maxTokens",
682
+ "temperature",
683
+ ],
684
+ },
685
+ {
686
+ key: "errorHandling",
687
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__ERROR_HANDLING__LABEL",
688
+ defaultCollapsed: true,
689
+ fields: [
690
+ "logErrorToSystem",
691
+ "storeErrorInInput",
692
+ "errorHandling",
693
+ "errorMessage",
694
+ "errorHandlingGotoTarget",
695
+ ],
696
+ },
697
+ {
698
+ key: "debugging",
699
+ label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__DEBUG_SETTINGS__LABEL",
700
+ defaultCollapsed: true,
701
+ fields: [
702
+ "debugConfig",
703
+ "debugResult",
704
+ "debugLogTokenCount",
705
+ ],
706
+ }
707
+ ],
708
+ form: [
709
+ { type: "field", key: "aiAgent" },
710
+ { type: "field", key: "name" },
711
+ { type: "field", key: "description" },
712
+ { type: "field", key: "instructions" },
713
+ { type: "section", key: "memory" },
714
+ { type: "section", key: "knowledgeSearch" },
715
+ { type: "section", key: "storage" },
716
+ { type: "section", key: "toolSettings" },
717
+ { type: "section", key: "imageHandling" },
718
+ { type: "section", key: "advanced" },
719
+ { type: "section", key: "errorHandling" },
720
+ { type: "section", key: "debugging" },
721
+ ],
722
+ tags: ["ai", "aiAgent"],
723
+ function: async ({ cognigy, config, childConfigs, nodeId }) => {
724
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9;
725
+ const { api, context, input, profile, flowReferenceId } = cognigy;
726
+ const { aiAgent, llmProviderReferenceId, name: jobName, description: jobDescription, instructions: jobInstructions, outputImmediately, toolChoice, useStrict, memoryType, selectedProfileFields, memoryContextInjection, knowledgeSearchBehavior, knowledgeSearchTags, knowledgeSearchTagsFilterOp, knowledgeSearchAiAgentKnowledge, knowledgeSearchJobKnowledge, knowledgeSearchJobStore, knowledgeSearchTopK, timeoutInMs, maxTokens, temperature, logErrorToSystem, storeErrorInInput, errorHandling, errorHandlingGotoTarget, errorMessage, debugConfig, debugLogTokenCount, debugResult, storeLocation, contextKey, inputKey, streamStoreCopyInInput, streamStopTokens, processImages, transcriptImageHandling, } = config;
727
+ try {
728
+ if (!aiAgent) {
729
+ throw new Error("Could not resolve AI Agent reference in AI Agent Node");
730
+ }
731
+ /**
732
+ * ----- Knowledge Search Section -----
733
+ */
734
+ let knowledgeSearchResponseData;
735
+ const sessionState = await api.loadSessionState();
736
+ const lastToolCall = (_a = sessionState.lastToolCall) === null || _a === void 0 ? void 0 : _a.toolCall;
737
+ if (knowledgeSearchBehavior === "always" ||
738
+ (knowledgeSearchBehavior === "onDemand" && ((_b = lastToolCall === null || lastToolCall === void 0 ? void 0 : lastToolCall.function) === null || _b === void 0 ? void 0 : _b.name) === "retrieve_knowledge")) {
739
+ const knowledgeStoreIds = [];
740
+ if (knowledgeSearchAiAgentKnowledge && aiAgent.knowledgeReferenceId) {
741
+ knowledgeStoreIds.push(aiAgent.knowledgeReferenceId);
742
+ }
743
+ if (knowledgeSearchJobKnowledge && knowledgeSearchJobStore) {
744
+ knowledgeStoreIds.push(knowledgeSearchJobStore);
745
+ }
746
+ if (knowledgeStoreIds.length > 0 && (input.text || ((_d = (_c = lastToolCall === null || lastToolCall === void 0 ? void 0 : lastToolCall.function) === null || _c === void 0 ? void 0 : _c.arguments) === null || _d === void 0 ? void 0 : _d.generated_prompt))) {
747
+ const query = knowledgeSearchBehavior === "always" ? input.text : (_f = (_e = lastToolCall === null || lastToolCall === void 0 ? void 0 : lastToolCall.function) === null || _e === void 0 ? void 0 : _e.arguments) === null || _f === void 0 ? void 0 : _f.generated_prompt;
748
+ const data = {
749
+ language: input.language,
750
+ query,
751
+ topK: knowledgeSearchTopK !== null && knowledgeSearchTopK !== void 0 ? knowledgeSearchTopK : 3,
752
+ traceId: input.traceId,
753
+ disableSensitiveLogging: false,
754
+ knowledgeStoreIds,
755
+ };
756
+ if (knowledgeSearchBehavior === "onDemand") {
757
+ const generated_buffer_phrase = (_h = (_g = lastToolCall === null || lastToolCall === void 0 ? void 0 : lastToolCall.function) === null || _g === void 0 ? void 0 : _g.arguments) === null || _h === void 0 ? void 0 : _h.generated_buffer_phrase;
758
+ if (generated_buffer_phrase) {
759
+ // output generated buffer phrase
760
+ (_j = api.output) === null || _j === void 0 ? void 0 : _j.call(api, generated_buffer_phrase, null);
761
+ }
762
+ }
763
+ if (knowledgeSearchTags && knowledgeSearchTags.length > 0) {
764
+ // convert each knowledgeSourceTag to a string
765
+ knowledgeSearchTags.forEach((tag, index) => {
766
+ knowledgeSearchTags[index] = tag.toString();
767
+ });
768
+ data.tagsData = {
769
+ tags: knowledgeSearchTags,
770
+ op: knowledgeSearchTagsFilterOp
771
+ };
772
+ }
773
+ const knowledgeSearchResponse = await api.knowledgeSearch(data);
774
+ // Handle possible response errors
775
+ if ((knowledgeSearchResponse === null || knowledgeSearchResponse === void 0 ? void 0 : knowledgeSearchResponse.status) !== "success") {
776
+ const errorMessage = (knowledgeSearchResponse === null || knowledgeSearchResponse === void 0 ? void 0 : knowledgeSearchResponse.error) || "empty";
777
+ throw new Error(`Error while performing knowledge search. Remote returned error: ${errorMessage}`);
778
+ }
779
+ knowledgeSearchResponseData = knowledgeSearchResponse.data;
780
+ // Optional Debug Message of Knowledge Search Results
781
+ if (debugResult) {
782
+ const messageLines = [];
783
+ if ((_k = knowledgeSearchResponseData === null || knowledgeSearchResponseData === void 0 ? void 0 : knowledgeSearchResponseData.topK) === null || _k === void 0 ? void 0 : _k.length) {
784
+ knowledgeSearchResponseData === null || knowledgeSearchResponseData === void 0 ? void 0 : knowledgeSearchResponseData.topK.forEach((result, index) => {
785
+ var _a;
786
+ messageLines.push(`\nTop ${index + 1}:`);
787
+ messageLines.push(`Distance: ${result.distance}`);
788
+ messageLines.push(`Source Name: ${(_a = result.sourceMetaData) === null || _a === void 0 ? void 0 : _a.sourceName}`);
789
+ messageLines.push(`Text: ${result.text}`);
790
+ });
791
+ }
792
+ else {
793
+ messageLines.push("UI__DEBUG_MODE__AI_AGENT_JOB__KNOWLEDGE_SEARCH__NO_RESULTS");
794
+ }
795
+ (_l = api.logDebugMessage) === null || _l === void 0 ? void 0 : _l.call(api, messageLines.join("\n"), "UI__DEBUG_MODE__AI_AGENT_JOB__KNOWLEDGE_SEARCH__HEADER");
796
+ }
797
+ // Knowledge Search "onDemand" responds to a tool call
798
+ if (knowledgeSearchBehavior === "onDemand") {
799
+ const toolCallTranscriptStep = {
800
+ role: transcripts_1.TranscriptRole.ASSISTANT,
801
+ type: transcripts_1.TranscriptEntryType.TOOL_CALL,
802
+ source: "system",
803
+ payload: {
804
+ name: lastToolCall.function.name,
805
+ id: lastToolCall.id,
806
+ input: lastToolCall.function.arguments,
807
+ }
808
+ };
809
+ // Add Tool Call Message to Transcript
810
+ await api.addTranscriptStep(toolCallTranscriptStep);
811
+ const toolAnswer = {
812
+ role: transcripts_1.TranscriptRole.TOOL,
813
+ type: transcripts_1.TranscriptEntryType.TOOL_ANSWER,
814
+ source: "system",
815
+ payload: {
816
+ toolCallId: lastToolCall.id,
817
+ content: `We have this context as answer from the knowledge source:\n${JSON.stringify(knowledgeSearchResponseData)}`,
818
+ }
819
+ };
820
+ // Add Tool Answer Message to Transcript
821
+ await api.addTranscriptStep(toolAnswer);
822
+ }
823
+ }
824
+ if (((_m = lastToolCall === null || lastToolCall === void 0 ? void 0 : lastToolCall.function) === null || _m === void 0 ? void 0 : _m.name) === "retrieve_knowledge") {
825
+ // remove the retrieve_knowledge toolCall from session state to avoid infinite loops
826
+ api.updateSessionStateValues({
827
+ lastToolCall: undefined
828
+ });
829
+ }
830
+ }
831
+ // ----- End of Knowledge Search Section ----- //
832
+ const _10 = profile, { profileId, accepted_gdpr, prevent_data_collection, privacy_policy } = _10, cleanedProfile = __rest(_10, ["profileId", "accepted_gdpr", "prevent_data_collection", "privacy_policy"]);
833
+ let userMemory;
834
+ if (memoryType === "inherit" && (aiAgent === null || aiAgent === void 0 ? void 0 : aiAgent.contactProfilesOption)) {
835
+ userMemory = (0, helper_1.processMemoryByType)(aiAgent.contactProfilesOption, cleanedProfile, aiAgent.contactProfilesSelected);
836
+ }
837
+ else {
838
+ userMemory = (0, helper_1.processMemoryByType)(memoryType, cleanedProfile, selectedProfileFields);
839
+ }
840
+ // create the system Message from the AI Agent resource and this Node's config storage
841
+ const systemMessage = (0, helper_1.createSystemMessage)(aiAgent, input, jobName, jobDescription, jobInstructions, userMemory, memoryContextInjection, knowledgeSearchBehavior);
842
+ // Create Tools JSON
843
+ const tools = [];
844
+ childConfigs.forEach(child => {
845
+ var _a;
846
+ if (!(0, helper_1.validateToolId)(child.config.toolId)) {
847
+ (_a = api.logDebugError) === null || _a === void 0 ? void 0 : _a.call(api, `Tool ID ${child.config.toolId} is not valid. Please use only alphanumeric characters, dashes and underscores.`);
848
+ return;
849
+ }
850
+ if (child.type === "aiAgentJobTool" && (!child.config.condition || !!api.parseCognigyScriptCondition(child.config.condition))) {
851
+ const tool = {
852
+ type: "function",
853
+ function: {
854
+ name: child.config.toolId,
855
+ description: child.config.description,
856
+ }
857
+ };
858
+ if (useStrict) {
859
+ tool.function.strict = true;
860
+ }
861
+ if (child.config.useParameters) {
862
+ tool.function.parameters = child.config.parameters;
863
+ }
864
+ tools.push(tool);
865
+ }
866
+ });
867
+ // Optional Debug Message with the config
868
+ if (debugConfig) {
869
+ const messageLines = [];
870
+ // Job Name
871
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__AI_AGENT_NAME__LABEL</b> ${aiAgent.name}`);
872
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__JOB_NAME__LABEL</b> ${jobName}`);
873
+ // Safety settings
874
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__SAFETY_SETTINGS_AVOID_HARMFUL_CONTENT</b> ${(_o = aiAgent === null || aiAgent === void 0 ? void 0 : aiAgent.safetySettings) === null || _o === void 0 ? void 0 : _o.avoidHarmfulContent}`);
875
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__SAFETY_SETTINGS_AVOID_UNGROUNDED_CONTENT</b> ${(_p = aiAgent === null || aiAgent === void 0 ? void 0 : aiAgent.safetySettings) === null || _p === void 0 ? void 0 : _p.avoidUngroundedContent}`);
876
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__SAFETY_SETTINGS_AVOID_COPYRIGHT_INFRINGEMENTS</b> ${(_q = aiAgent === null || aiAgent === void 0 ? void 0 : aiAgent.safetySettings) === null || _q === void 0 ? void 0 : _q.avoidCopyrightInfringements}`);
877
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__SAFETY_SETTINGS_PREVENT_JAILBREAK_AND_MANIPULATION</b> ${(_r = aiAgent === null || aiAgent === void 0 ? void 0 : aiAgent.safetySettings) === null || _r === void 0 ? void 0 : _r.preventJailbreakAndManipulation}`);
878
+ // Tools
879
+ if (tools.length > 0) {
880
+ messageLines.push("<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__TOOLS__LABEL</b>");
881
+ tools.forEach(tool => messageLines.push(`- ${tool.function.name}`));
882
+ }
883
+ // Memory
884
+ if (memoryType !== "none") {
885
+ let memoryTypeLabel = "";
886
+ switch (memoryType) {
887
+ case "inherit":
888
+ memoryTypeLabel = "UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__MEMORIES__OPTIONS__INHERIT";
889
+ break;
890
+ case "completeProfile":
891
+ memoryTypeLabel = "UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__MEMORIES__OPTIONS__FULL_PROFILE";
892
+ break;
893
+ case "profileMemoriesOnly":
894
+ memoryTypeLabel = "UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__MEMORIES__OPTIONS__CONTACT_MEMORIES";
895
+ break;
896
+ case "selectedProfileFields":
897
+ memoryTypeLabel = "UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__MEMORIES__OPTIONS__SELECTED_FIELDS";
898
+ break;
899
+ }
900
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__MEMORIES__LABEL</b> ${memoryTypeLabel}`);
901
+ if (memoryType === "selectedProfileFields") {
902
+ selectedProfileFields.forEach(field => messageLines.push(`- ${field}`));
903
+ }
904
+ }
905
+ // Knowledge Search
906
+ if (knowledgeSearchBehavior !== "none") {
907
+ messageLines.push("\n<b>UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__KNOWLEDGE_SEARCH__LABEL</b>");
908
+ messageLines.push(`UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__KNOWLEDGE_SEARCH__BEHAVIOR__LABEL ${knowledgeSearchBehavior}`);
909
+ if (knowledgeSearchAiAgentKnowledge && aiAgent.knowledgeReferenceId) {
910
+ messageLines.push("- UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__KNOWLEDGE_SEARCH__AI_AGENT_KNOWLEDGE__LABEL");
911
+ }
912
+ if (knowledgeSearchJobKnowledge && knowledgeSearchJobStore) {
913
+ messageLines.push("- UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__KNOWLEDGE_SEARCH__JOB_KNOWLEDGE__LABEL");
914
+ }
915
+ if (knowledgeSearchTags && knowledgeSearchTags.length > 0) {
916
+ messageLines.push("\nUI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__KNOWLEDGE_SEARCH__TAGS__LABEL");
917
+ knowledgeSearchTags.forEach(tag => messageLines.push(`- ${tag}`));
918
+ }
919
+ }
920
+ (_s = api.logDebugMessage) === null || _s === void 0 ? void 0 : _s.call(api, messageLines.join("\n"), "UI__DEBUG_MODE__AI_AGENT_JOB__CONFIGURATION__HEADER");
921
+ }
922
+ // keep this after the debug message since the "retrieve_knowledge" tool is implicit
923
+ // we only add this tool if at least one knowledge source is enabled
924
+ if (knowledgeSearchBehavior === "onDemand" && ((knowledgeSearchAiAgentKnowledge && aiAgent.knowledgeReferenceId) || (knowledgeSearchJobKnowledge && knowledgeSearchJobStore))) {
925
+ const knowledgeTool = {
926
+ type: "function",
927
+ function: {
928
+ name: "retrieve_knowledge",
929
+ description: "Find the answer to general prompts or questions searching the attached data sources. It focuses exclusively on a knowledge search and does not execute tasks like small talk, calculations, or script running.",
930
+ parameters: {
931
+ type: "object",
932
+ properties: {
933
+ generated_prompt: {
934
+ type: "string",
935
+ description: "Generated question including the context of the conversation (I want to know...)."
936
+ },
937
+ generated_buffer_phrase: {
938
+ type: "string",
939
+ description: "A generated delay or stalling phrase. Consider the context. Adapt to your speech style and language."
940
+ },
941
+ },
942
+ required: ["generated_prompt", "generated_buffer_phrase"],
943
+ additionalProperties: false
944
+ }
945
+ }
946
+ };
947
+ if (useStrict) {
948
+ knowledgeTool.function.strict = true;
949
+ }
950
+ tools.push(knowledgeTool);
951
+ }
952
+ const transcript = await api.getTranscript({
953
+ limit: 50,
954
+ rolesWhiteList: [transcripts_1.TranscriptRole.USER, transcripts_1.TranscriptRole.ASSISTANT, transcripts_1.TranscriptRole.TOOL],
955
+ excludeDataOnlyMessagesFilter: [transcripts_1.TranscriptRole.ASSISTANT]
956
+ });
957
+ // if the last message in the transcript array is from the user, we change it to the enhanced input
958
+ if (knowledgeSearchBehavior === "always" &&
959
+ (knowledgeSearchResponseData === null || knowledgeSearchResponseData === void 0 ? void 0 : knowledgeSearchResponseData.topK) &&
960
+ knowledgeSearchResponseData.topK.length > 0 &&
961
+ transcript.length > 0 &&
962
+ transcript[transcript.length - 1].role === transcripts_1.TranscriptRole.USER) {
963
+ const userInput = transcript[transcript.length - 1];
964
+ const enhancedInput = `## Knowledge Source Context\nAdditional Context from the knowledge source: \n${JSON.stringify(knowledgeSearchResponseData)}\n\n\n${((_t = userInput === null || userInput === void 0 ? void 0 : userInput.payload) === null || _t === void 0 ? void 0 : _t.text) || input.text}`;
965
+ transcript[transcript.length - 1].payload.text = enhancedInput;
966
+ }
967
+ const llmPromptOptions = Object.assign(Object.assign({ prompt: "", chat: systemMessage,
968
+ // Temp fix to override the transcript if needed
969
+ transcript: ((_u = context === null || context === void 0 ? void 0 : context._cognigy) === null || _u === void 0 ? void 0 : _u.transcript) ? [...context._cognigy.transcript] : transcript, detailedResults: true, timeoutInMs: timeoutInMs !== null && timeoutInMs !== void 0 ? timeoutInMs : 8000, maxTokens: maxTokens !== null && maxTokens !== void 0 ? maxTokens : 4000, temperature: temperature !== null && temperature !== void 0 ? temperature : 0.7, topP: 1, frequencyPenalty: 0, presencePenalty: 0, responseFormat: "text", stream: storeLocation === "stream", streamOnDataHandler: (text) => {
970
+ var _a;
971
+ text = text.trim();
972
+ if (text) {
973
+ // if we got text, we output it, but prevent it from being added to the transcript
974
+ (_a = api.output) === null || _a === void 0 ? void 0 : _a.call(api, text, {
975
+ _cognigy: {
976
+ _preventTranscript: true
977
+ }
978
+ });
979
+ }
980
+ }, streamStopTokens: streamStopTokens || [".", "!", "?", "\\n"] }, (tools.length > 0 && { tools })), (tools.length > 0 && { toolChoice: toolChoice }));
981
+ // llmProviderReferenceId `default` value is not a responseFormat, rather it is LLM Model default selection.
982
+ if (llmProviderReferenceId && llmProviderReferenceId !== "default") {
983
+ llmPromptOptions["llmProviderReferenceId"] = llmProviderReferenceId;
984
+ }
985
+ if (processImages) {
986
+ llmPromptOptions["imageOptions"] = {
987
+ processImages,
988
+ transcriptImageHandling
989
+ };
990
+ }
991
+ // Set understood to true so that an AI Agent interaction doesn't look false in our analytics
992
+ (_v = api.setAnalyticsData) === null || _v === void 0 ? void 0 : _v.call(api, "understood", "true");
993
+ input.understood = true;
994
+ const fullLlmResult = await ((_w = api.runGenerativeAIPrompt) === null || _w === void 0 ? void 0 : _w.call(api, llmPromptOptions, "aiAgent"));
995
+ const { messages } = fullLlmResult, llmResult = __rest(fullLlmResult, ["messages"]);
996
+ const llmProvider = llmResult === null || llmResult === void 0 ? void 0 : llmResult.provider;
997
+ const tokenUsage = fullLlmResult.tokenUsage;
998
+ // Send optional debug message with token usage
999
+ if (debugLogTokenCount && tokenUsage) {
1000
+ (_x = api.logDebugMessage) === null || _x === void 0 ? void 0 : _x.call(api, tokenUsage, "UI__DEBUG_MODE__AI_AGENT_JOB__TOKEN_USAGE__HEADER");
1001
+ }
1002
+ // Identify if the result is a tool call
1003
+ // If response is a tool call, set next node for Tools
1004
+ if (llmResult.finishReason === "tool_calls" && llmResult.toolCalls.length > 0) {
1005
+ const mainToolCall = llmResult.toolCalls[0];
1006
+ // Find the child node with the toolId of the tool call
1007
+ const toolChild = childConfigs.find(child => { var _a; return child.type === "aiAgentJobTool" && ((_a = child.config) === null || _a === void 0 ? void 0 : _a.toolId) === mainToolCall.function.name; });
1008
+ // Add last tool call to session state for loading it from Tool Answer Node
1009
+ api.updateSessionStateValues({
1010
+ lastToolCall: {
1011
+ llmProvider,
1012
+ aiAgentJobNode: {
1013
+ flow: flowReferenceId,
1014
+ node: nodeId
1015
+ },
1016
+ toolCall: mainToolCall,
1017
+ }
1018
+ });
1019
+ // if there are any parameters/arguments, add them to the input slots
1020
+ if (mainToolCall.function.arguments) {
1021
+ input.aiAgent = Object.assign(Object.assign({}, input.aiAgent), { toolArgs: Object.assign(Object.assign({}, (_z = (_y = input.aiAgent) === null || _y === void 0 ? void 0 : _y.toolArgs) !== null && _z !== void 0 ? _z : {}), mainToolCall.function.arguments) });
1022
+ }
1023
+ // Debug Message for Tool Calls, configured in the Tool Node
1024
+ if (toolChild === null || toolChild === void 0 ? void 0 : toolChild.config.debugMessage) {
1025
+ const messageLines = [`<b>UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__DEBUG_MESSAGE__HEADER:</b> ${toolChild.config.toolId}`];
1026
+ // Arguments / Parameters Slots
1027
+ const slots = ((_0 = mainToolCall === null || mainToolCall === void 0 ? void 0 : mainToolCall.function) === null || _0 === void 0 ? void 0 : _0.arguments) && Object.keys(mainToolCall.function.arguments);
1028
+ const hasSlots = slots && slots.length > 0;
1029
+ messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__DEBUG_MESSAGE__SLOTS</b>${hasSlots ? "" : " -"}`);
1030
+ if (hasSlots) {
1031
+ slots.forEach(slot => {
1032
+ let slotValueAsString = mainToolCall.function.arguments[slot];
1033
+ if (typeof slotValueAsString === "object" && slotValueAsString !== null) {
1034
+ slotValueAsString = JSON.stringify(slotValueAsString, null, 2);
1035
+ }
1036
+ else {
1037
+ String(slotValueAsString);
1038
+ }
1039
+ messageLines.push(`- ${slot}: ${slotValueAsString}`);
1040
+ });
1041
+ }
1042
+ (_1 = api.logDebugMessage) === null || _1 === void 0 ? void 0 : _1.call(api, messageLines.join("\n"), "UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__DEBUG_MESSAGE__HEADER");
1043
+ }
1044
+ if (toolChild) {
1045
+ api.setNextNode(toolChild.id);
1046
+ }
1047
+ else if (mainToolCall.function.name === "retrieve_knowledge") {
1048
+ // If tool call is for knowledge search, set next node to this node. This way, we execute it again for the tool answer.
1049
+ api.setNextNode(nodeId);
1050
+ }
1051
+ else {
1052
+ const defaultChild = childConfigs.find(child => child.type === "aiAgentJobDefault");
1053
+ if (defaultChild) {
1054
+ api.setNextNode(defaultChild.id);
1055
+ }
1056
+ }
1057
+ }
1058
+ else {
1059
+ // Default case
1060
+ const defaultChild = childConfigs.find(child => child.type === "aiAgentJobDefault");
1061
+ if (defaultChild) {
1062
+ api.setNextNode(defaultChild.id);
1063
+ }
1064
+ }
1065
+ // Optionally output the result immediately
1066
+ if (llmResult.result && outputImmediately && !llmPromptOptions.stream) {
1067
+ (_2 = api.output) === null || _2 === void 0 ? void 0 : _2.call(api, llmResult.result, {});
1068
+ }
1069
+ // If we are streaming and we got a result, also store it into the transcript, since streamed chunks are not stored there
1070
+ if (llmResult.result && llmPromptOptions.stream) {
1071
+ const transcriptContent = {
1072
+ role: transcripts_1.TranscriptRole.ASSISTANT,
1073
+ type: transcripts_1.TranscriptEntryType.OUTPUT,
1074
+ source: "assistant",
1075
+ payload: {
1076
+ text: llmResult.result,
1077
+ data: {},
1078
+ }
1079
+ };
1080
+ await api.addTranscriptStep(transcriptContent);
1081
+ }
1082
+ // Add response to Cognigy Input/Context for further usage
1083
+ if (storeLocation === "context") {
1084
+ (_3 = api.addToContext) === null || _3 === void 0 ? void 0 : _3.call(api, contextKey, llmResult, "simple");
1085
+ }
1086
+ else if (storeLocation === "input") {
1087
+ api.addToInput(inputKey, llmResult);
1088
+ }
1089
+ else if (storeLocation === "stream" && streamStoreCopyInInput) {
1090
+ api.addToInput(inputKey, llmResult);
1091
+ }
1092
+ }
1093
+ catch (error) {
1094
+ const errorDetails = {
1095
+ name: (error === null || error === void 0 ? void 0 : error.name) || "Error",
1096
+ code: (error === null || error === void 0 ? void 0 : error.code) || (error === null || error === void 0 ? void 0 : error.httpStatusCode),
1097
+ message: (error === null || error === void 0 ? void 0 : error.message) || ((_4 = error.originalErrorDetails) === null || _4 === void 0 ? void 0 : _4.message),
1098
+ };
1099
+ (_5 = api.emitEvent) === null || _5 === void 0 ? void 0 : _5.call(api, "nodeError", { nodeId, flowId: flowReferenceId, errorMessage: error });
1100
+ if (logErrorToSystem) {
1101
+ (_6 = api.log) === null || _6 === void 0 ? void 0 : _6.call(api, "error", JSON.stringify(errorDetails));
1102
+ }
1103
+ if (errorHandling !== "stop") {
1104
+ (_7 = api.logDebugError) === null || _7 === void 0 ? void 0 : _7.call(api, errorDetails.message + (errorDetails.code ? ` (error code: ${errorDetails.code})` : ""), errorDetails.name);
1105
+ }
1106
+ if (storeErrorInInput) {
1107
+ input.aiAgent = input.aiAgent || {};
1108
+ input.aiAgent.error = errorDetails;
1109
+ }
1110
+ if (errorHandling === "continue") {
1111
+ // output the timeout message
1112
+ if (errorMessage) {
1113
+ (_8 = api.output) === null || _8 === void 0 ? void 0 : _8.call(api, errorMessage, null);
1114
+ }
1115
+ // Set default node as next node
1116
+ const defaultChild = childConfigs.find(child => child.type === "aiAgentJobDefault");
1117
+ if (defaultChild) {
1118
+ api.setNextNode(defaultChild.id);
1119
+ }
1120
+ }
1121
+ else if (errorHandling === "goto") {
1122
+ if (!errorHandlingGotoTarget) {
1123
+ throw new Error("GoTo Target is required");
1124
+ }
1125
+ if (!((_9 = api.checkThink) === null || _9 === void 0 ? void 0 : _9.call(api, nodeId))) {
1126
+ api.resetNextNodes();
1127
+ await api.executeFlow({
1128
+ flowNode: {
1129
+ flow: errorHandlingGotoTarget.flow,
1130
+ node: errorHandlingGotoTarget.node,
1131
+ isGoto: true,
1132
+ },
1133
+ absorbContext: true,
1134
+ });
1135
+ }
1136
+ else {
1137
+ throw new Error("Infinite Loop Detected");
1138
+ }
1139
+ }
1140
+ else {
1141
+ throw new Error(`AI Agent Job Node Error: ${errorDetails.name} - Code: ${errorDetails.code} - Message: ${errorDetails.message}`);
1142
+ }
1143
+ }
1144
+ }
1145
+ });
1146
+ //# sourceMappingURL=aiAgentJob.js.map