@cognigy/rest-api-client 2025.25.0 → 2026.1.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.
- package/CHANGELOG.md +5 -0
- package/build/apigroups/ResourcesAPIGroup_2_0.js +14 -0
- package/build/apigroups/SimulationAPIGroup_2_0.js +15 -1
- package/build/authentication/AuthenticationAPI.js +1 -0
- package/build/shared/charts/createNodeDescriptor.js +1 -0
- package/build/shared/charts/descriptors/analytics/overwriteAnalytics.js +14 -0
- package/build/shared/charts/descriptors/analytics/updateProfile.js +5 -0
- package/build/shared/charts/descriptors/connectionNodes/smtp/emailNotification.js +7 -0
- package/build/shared/charts/descriptors/connectionNodes/smtp/sendEmail.js +9 -0
- package/build/shared/charts/descriptors/index.js +2 -0
- package/build/shared/charts/descriptors/message/question/question.js +5 -0
- package/build/shared/charts/descriptors/message/say.js +3 -0
- package/build/shared/charts/descriptors/service/agentTools/executeWorkflowTool.js +239 -0
- package/build/shared/charts/descriptors/service/agentTools/handoverToHumanAgentTool.js +783 -0
- package/build/shared/charts/descriptors/service/agentTools/sendEmailTool.js +33 -4
- package/build/shared/charts/descriptors/service/aiAgent/aiAgentJob.js +23 -20
- package/build/shared/charts/descriptors/service/aiAgent/aiAgentJobCallMCPTool.js +4 -2
- package/build/shared/charts/descriptors/service/aiAgent/helpers/createToolDefinitions.js +3 -1
- package/build/shared/charts/descriptors/service/aiAgent/helpers/parseMcpHeaders.js +26 -0
- package/build/shared/charts/descriptors/service/handoverV2.js +1 -1
- package/build/shared/charts/descriptors/service/httpRequest.js +3 -0
- package/build/shared/charts/descriptors/service/index.js +5 -1
- package/build/shared/charts/descriptors/service/llmPrompt/LLMPromptV2.js +11 -4
- package/build/shared/charts/descriptors/voice/mappers/setSessionConfig.mapper.js +17 -11
- package/build/shared/charts/descriptors/voice/mappers/transfer.mapper.js +5 -5
- package/build/shared/charts/descriptors/voice/nodes/sessionSpeechParameters.js +2 -2
- package/build/shared/charts/descriptors/voicegateway2/nodes/setSessionConfig.js +13 -4
- package/build/shared/charts/descriptors/voicegateway2/nodes/transfer.js +4 -4
- package/build/shared/interfaces/amqpInterface.js +1 -0
- package/build/shared/interfaces/messageAPI/endpoints.js +1 -1
- package/build/shared/interfaces/resources/IChart.js +10 -1
- package/build/shared/interfaces/resources/IChartNode.js +32 -4
- package/build/shared/interfaces/resources/IEndpoint.js +1 -0
- package/build/shared/interfaces/resources/INodeDescriptorSet.js +8 -0
- package/build/shared/interfaces/resources/TResourceType.js +1 -0
- package/build/shared/interfaces/resources/chart/IChartExecutableNode.js +10 -1
- package/build/shared/interfaces/resources/knowledgeStore/IKnowledgeConnector.js +49 -0
- package/build/shared/interfaces/resources/knowledgeStore/IKnowledgeSource.js +1 -1
- package/build/shared/interfaces/restAPI/administration/user/v2.0/IExchangeCXoneTokenRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/ICreateKnowledgeConnectorRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IDeleteKnowledgeConnectorRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IIndexKnowledgeConnectorsRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IKnowledgeConnector_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IReadKnowledgeConnectorRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IUpdateKnowledgeConnectorRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/simulation/scheduler/ICreateSchedulerRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/simulation/scheduler/IGetSchedulerRest_2_0.js +3 -0
- package/build/shared/interfaces/restAPI/simulation/scheduler/ISchedulerRest_2_0.js +12 -0
- package/build/shared/interfaces/restAPI/simulation/scheduler/IUpdateSchedulerRest_2_0.js +3 -0
- package/dist/esm/apigroups/ResourcesAPIGroup_2_0.js +14 -0
- package/dist/esm/apigroups/SimulationAPIGroup_2_0.js +15 -1
- package/dist/esm/authentication/AuthenticationAPI.js +1 -0
- package/dist/esm/shared/charts/createNodeDescriptor.js +1 -0
- package/dist/esm/shared/charts/descriptors/analytics/overwriteAnalytics.js +14 -0
- package/dist/esm/shared/charts/descriptors/analytics/updateProfile.js +5 -0
- package/dist/esm/shared/charts/descriptors/connectionNodes/smtp/emailNotification.js +7 -0
- package/dist/esm/shared/charts/descriptors/connectionNodes/smtp/sendEmail.js +9 -0
- package/dist/esm/shared/charts/descriptors/index.js +3 -1
- package/dist/esm/shared/charts/descriptors/message/question/question.js +5 -0
- package/dist/esm/shared/charts/descriptors/message/say.js +3 -0
- package/dist/esm/shared/charts/descriptors/service/agentTools/executeWorkflowTool.js +237 -0
- package/dist/esm/shared/charts/descriptors/service/agentTools/handoverToHumanAgentTool.js +770 -0
- package/dist/esm/shared/charts/descriptors/service/agentTools/sendEmailTool.js +33 -4
- package/dist/esm/shared/charts/descriptors/service/aiAgent/aiAgentJob.js +23 -20
- package/dist/esm/shared/charts/descriptors/service/aiAgent/aiAgentJobCallMCPTool.js +4 -2
- package/dist/esm/shared/charts/descriptors/service/aiAgent/helpers/createToolDefinitions.js +3 -1
- package/dist/esm/shared/charts/descriptors/service/aiAgent/helpers/parseMcpHeaders.js +25 -0
- package/dist/esm/shared/charts/descriptors/service/handoverV2.js +1 -1
- package/dist/esm/shared/charts/descriptors/service/httpRequest.js +3 -0
- package/dist/esm/shared/charts/descriptors/service/index.js +2 -0
- package/dist/esm/shared/charts/descriptors/service/llmPrompt/LLMPromptV2.js +11 -4
- package/dist/esm/shared/charts/descriptors/voice/mappers/setSessionConfig.mapper.js +17 -11
- package/dist/esm/shared/charts/descriptors/voice/mappers/transfer.mapper.js +5 -5
- package/dist/esm/shared/charts/descriptors/voice/nodes/sessionSpeechParameters.js +2 -2
- package/dist/esm/shared/charts/descriptors/voicegateway2/nodes/setSessionConfig.js +13 -4
- package/dist/esm/shared/charts/descriptors/voicegateway2/nodes/transfer.js +4 -4
- package/dist/esm/shared/interfaces/amqpInterface.js +1 -0
- package/dist/esm/shared/interfaces/messageAPI/endpoints.js +1 -1
- package/dist/esm/shared/interfaces/resources/IChart.js +10 -1
- package/dist/esm/shared/interfaces/resources/IChartNode.js +32 -4
- package/dist/esm/shared/interfaces/resources/IEndpoint.js +1 -0
- package/dist/esm/shared/interfaces/resources/INodeDescriptorSet.js +8 -0
- package/dist/esm/shared/interfaces/resources/TResourceType.js +1 -0
- package/dist/esm/shared/interfaces/resources/chart/IChartExecutableNode.js +10 -1
- package/dist/esm/shared/interfaces/resources/knowledgeStore/IKnowledgeConnector.js +46 -0
- package/dist/esm/shared/interfaces/resources/knowledgeStore/IKnowledgeSource.js +1 -1
- package/dist/esm/shared/interfaces/restAPI/administration/user/v2.0/IExchangeCXoneTokenRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/ICreateKnowledgeConnectorRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IDeleteKnowledgeConnectorRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IIndexKnowledgeConnectorsRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IKnowledgeConnector_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IReadKnowledgeConnectorRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/resources/knowledgeStore/v2.0/connector/IUpdateKnowledgeConnectorRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/simulation/scheduler/ICreateSchedulerRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/simulation/scheduler/IGetSchedulerRest_2_0.js +2 -0
- package/dist/esm/shared/interfaces/restAPI/simulation/scheduler/ISchedulerRest_2_0.js +9 -0
- package/dist/esm/shared/interfaces/restAPI/simulation/scheduler/IUpdateSchedulerRest_2_0.js +2 -0
- package/package.json +1 -1
- package/types/index.d.ts +528 -11
|
@@ -64,6 +64,31 @@ export const SEND_EMAIL_TOOL = createNodeDescriptor({
|
|
|
64
64
|
maxLength: 255,
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
|
+
{
|
|
68
|
+
key: "cc",
|
|
69
|
+
type: "cognigyText",
|
|
70
|
+
label: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__CC__LABEL",
|
|
71
|
+
description: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__CC__DESCRIPTION",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
key: "bcc",
|
|
75
|
+
type: "cognigyText",
|
|
76
|
+
label: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__BCC__LABEL",
|
|
77
|
+
description: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__BCC__DESCRIPTION",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
key: "priority",
|
|
81
|
+
type: "select",
|
|
82
|
+
label: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__PRIORITY__LABEL",
|
|
83
|
+
defaultValue: "normal",
|
|
84
|
+
params: {
|
|
85
|
+
options: [
|
|
86
|
+
{ label: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__PRIORITY__HIGH__LABEL", value: "high" },
|
|
87
|
+
{ label: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__PRIORITY__NORMAL__LABEL", value: "normal" },
|
|
88
|
+
{ label: "UI__NODE_EDITOR__SMTP__EMAIL_NOTIFICATION__PRIORITY__LOW__LABEL", value: "low" }
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
},
|
|
67
92
|
{
|
|
68
93
|
key: "parameters",
|
|
69
94
|
label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__PARAMETERS__LABEL",
|
|
@@ -113,6 +138,9 @@ export const SEND_EMAIL_TOOL = createNodeDescriptor({
|
|
|
113
138
|
label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__ADVANCED__LABEL",
|
|
114
139
|
defaultCollapsed: true,
|
|
115
140
|
fields: [
|
|
141
|
+
"cc",
|
|
142
|
+
"bcc",
|
|
143
|
+
"priority",
|
|
116
144
|
"condition"
|
|
117
145
|
]
|
|
118
146
|
},
|
|
@@ -132,7 +160,7 @@ export const SEND_EMAIL_TOOL = createNodeDescriptor({
|
|
|
132
160
|
function: ({ cognigy, config, nodeId, nodeType, organisationId, projectId, childConfigs }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
133
161
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
134
162
|
const { api, context, input } = cognigy;
|
|
135
|
-
const { debugMessage, recipient, } = config;
|
|
163
|
+
const { debugMessage, recipient, cc, bcc, priority, } = config;
|
|
136
164
|
const sessionState = yield api.loadSessionState();
|
|
137
165
|
const toolCall = (_a = sessionState.lastToolCall) === null || _a === void 0 ? void 0 : _a.toolCall;
|
|
138
166
|
const aiAgentJobNode = (_b = sessionState.lastToolCall) === null || _b === void 0 ? void 0 : _b.aiAgentJobNode;
|
|
@@ -150,14 +178,15 @@ export const SEND_EMAIL_TOOL = createNodeDescriptor({
|
|
|
150
178
|
recipient,
|
|
151
179
|
subject,
|
|
152
180
|
message,
|
|
153
|
-
cc: "",
|
|
154
|
-
bcc: "",
|
|
155
|
-
priority: "normal",
|
|
181
|
+
cc: cc || "",
|
|
182
|
+
bcc: bcc || "",
|
|
183
|
+
priority: priority || "normal",
|
|
156
184
|
async: false,
|
|
157
185
|
storeLocation: "none",
|
|
158
186
|
inputKey: "",
|
|
159
187
|
contextKey: "",
|
|
160
188
|
stopOnError: false,
|
|
189
|
+
senderName: "",
|
|
161
190
|
},
|
|
162
191
|
nodeId,
|
|
163
192
|
nodeType,
|
|
@@ -10,8 +10,9 @@ import { createSystemMessage, getCognigyBrandMessage } from "./helpers/createSys
|
|
|
10
10
|
import { generateSearchPrompt } from "./helpers/generateSearchPrompt";
|
|
11
11
|
import { getUserMemory } from "./helpers/getUserMemory";
|
|
12
12
|
import { createToolDefinitions } from "./helpers/createToolDefinitions";
|
|
13
|
+
import { parseMcpHeaders } from "./helpers/parseMcpHeaders";
|
|
13
14
|
import { TranscriptEntryType, TranscriptRole } from "../../../../interfaces/transcripts/transcripts";
|
|
14
|
-
export const AI_AGENT_TOOLS_WHITELIST = ["aiAgentJobDefault", "aiAgentJobTool", "aiAgentJobMCPTool", "knowledgeTool", "handoverToAiAgentTool", "sendEmailTool"];
|
|
15
|
+
export const AI_AGENT_TOOLS_WHITELIST = ["aiAgentJobDefault", "aiAgentJobTool", "aiAgentJobMCPTool", "knowledgeTool", "handoverToAiAgentTool", "handoverToHumanAgentTool", "sendEmailTool", "executeWorkflowTool"];
|
|
15
16
|
export const AI_AGENT_JOB = createNodeDescriptor({
|
|
16
17
|
type: "aiAgentJob",
|
|
17
18
|
defaultLabel: "AI Agent",
|
|
@@ -913,7 +914,7 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
913
914
|
],
|
|
914
915
|
tags: ["ai", "aiAgent"],
|
|
915
916
|
function: ({ cognigy, config, childConfigs, nodeId }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
916
|
-
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, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24;
|
|
917
|
+
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, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25;
|
|
917
918
|
const { api, context, input, profile, flowReferenceId } = cognigy;
|
|
918
919
|
const { aiAgent, llmProviderReferenceId, name: jobName, description: jobDescription, instructions: jobInstructions, outputImmediately, toolChoice, useStrict, memoryType, selectedProfileFields, memoryContextInjection, knowledgeSearchBehavior, knowledgeSearchTags, knowledgeSearchTagsFilterOp, knowledgeSearchAiAgentKnowledge, knowledgeSearchJobKnowledge, knowledgeSearchJobStore, knowledgeSearchGenerateSearchPrompt, knowledgeSearchTopK, timeoutInMs, maxTokens, temperature, useTextAlternativeForLLM, advancedLogging, loggingWebhookUrl, loggingCustomData, conditionForLogging, logErrorToSystem, storeErrorInInput, errorHandling, errorHandlingGotoTarget, errorMessage, debugConfig, debugLogTokenCount, debugLogSystemPrompt, debugLogToolDefinitions, debugResult, debugLogLLMLatency, storeLocation, contextKey, inputKey, streamStoreCopyInInput, streamStopTokens, processImages, transcriptImageHandling, loggingHeaders, sessionParams } = config;
|
|
919
920
|
try {
|
|
@@ -963,7 +964,7 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
963
964
|
throw new Error(`[VG2] Error on AI Agent Job node. Error message: ${error.message}`);
|
|
964
965
|
}
|
|
965
966
|
}
|
|
966
|
-
const
|
|
967
|
+
const _26 = profile, { profileId, accepted_gdpr, prevent_data_collection, privacy_policy } = _26, cleanedProfile = __rest(_26, ["profileId", "accepted_gdpr", "prevent_data_collection", "privacy_policy"]);
|
|
967
968
|
const userMemory = getUserMemory(memoryType, selectedProfileFields, aiAgent, cleanedProfile);
|
|
968
969
|
/**
|
|
969
970
|
* ----- Knowledge Search Section -----
|
|
@@ -1290,13 +1291,15 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1290
1291
|
break;
|
|
1291
1292
|
}
|
|
1292
1293
|
}
|
|
1294
|
+
let mcpHeaders = (_7 = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _7 === void 0 ? void 0 : _7.mcpHeaders;
|
|
1293
1295
|
if (!toolChild && toolMap.has(mainToolCall.function.name)) {
|
|
1294
1296
|
// If the tool call is from an MCP tool, set the next node to the corresponding child node
|
|
1295
1297
|
toolChild = childConfigs.find(child => child.id === toolMap.get(mainToolCall.function.name));
|
|
1296
1298
|
isMcpToolCall = true;
|
|
1299
|
+
mcpHeaders = yield parseMcpHeaders((_8 = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _8 === void 0 ? void 0 : _8.mcpHeaders, api);
|
|
1297
1300
|
}
|
|
1298
1301
|
if (mainToolCall.function.name !== "retrieve_knowledge" && toolChild === undefined) {
|
|
1299
|
-
(
|
|
1302
|
+
(_9 = api.logDebugError) === null || _9 === void 0 ? void 0 : _9.call(api, `UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__ERROR__BODY <b>${mainToolCall.function.name}</b>`, "UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__ERROR__HEADER");
|
|
1300
1303
|
}
|
|
1301
1304
|
// Add last tool call to session state for loading it from Tool Answer Node
|
|
1302
1305
|
api.updateSessionStateValues({
|
|
@@ -1304,22 +1307,22 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1304
1307
|
flow: flowReferenceId,
|
|
1305
1308
|
node: nodeId,
|
|
1306
1309
|
} }, (isMcpToolCall && {
|
|
1307
|
-
mcpServerUrl: (
|
|
1308
|
-
mcpHeaders
|
|
1309
|
-
timeout: (
|
|
1310
|
+
mcpServerUrl: (_10 = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _10 === void 0 ? void 0 : _10.mcpServerUrl,
|
|
1311
|
+
mcpHeaders,
|
|
1312
|
+
timeout: (_11 = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _11 === void 0 ? void 0 : _11.timeout,
|
|
1310
1313
|
mcpToolNode: toolChild === null || toolChild === void 0 ? void 0 : toolChild.id,
|
|
1311
1314
|
})), { toolCall: mainToolCall }),
|
|
1312
1315
|
});
|
|
1313
1316
|
// if there are any parameters/arguments, add them to the input slots
|
|
1314
1317
|
if (mainToolCall.function.arguments) {
|
|
1315
|
-
input.aiAgent = Object.assign(Object.assign({}, input.aiAgent), { toolArgs: Object.assign(Object.assign({}, (
|
|
1318
|
+
input.aiAgent = Object.assign(Object.assign({}, input.aiAgent), { toolArgs: Object.assign(Object.assign({}, (_13 = (_12 = input.aiAgent) === null || _12 === void 0 ? void 0 : _12.toolArgs) !== null && _13 !== void 0 ? _13 : {}), mainToolCall.function.arguments) });
|
|
1316
1319
|
}
|
|
1317
1320
|
// Debug Message for Tool Calls, configured in the Tool Node
|
|
1318
|
-
if ((
|
|
1321
|
+
if ((_14 = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _14 === void 0 ? void 0 : _14.debugMessage) {
|
|
1319
1322
|
const toolId = isMcpToolCall ? mainToolCall.function.name : yield api.parseCognigyScriptText(toolChild.config.toolId);
|
|
1320
1323
|
const messageLines = [`<b>UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__DEBUG_MESSAGE__HEADER:</b> ${toolId}`];
|
|
1321
1324
|
// Arguments / Parameters Slots
|
|
1322
|
-
const slots = ((
|
|
1325
|
+
const slots = ((_15 = mainToolCall === null || mainToolCall === void 0 ? void 0 : mainToolCall.function) === null || _15 === void 0 ? void 0 : _15.arguments) && Object.keys(mainToolCall.function.arguments);
|
|
1323
1326
|
const hasSlots = slots && slots.length > 0;
|
|
1324
1327
|
messageLines.push(`<b>UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__DEBUG_MESSAGE__SLOTS</b>${hasSlots ? "" : " -"}`);
|
|
1325
1328
|
if (hasSlots) {
|
|
@@ -1334,7 +1337,7 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1334
1337
|
messageLines.push(`- ${slot}: ${slotValueAsString}`);
|
|
1335
1338
|
});
|
|
1336
1339
|
}
|
|
1337
|
-
(
|
|
1340
|
+
(_16 = api.logDebugMessage) === null || _16 === void 0 ? void 0 : _16.call(api, messageLines.join("\n"), "UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__DEBUG_MESSAGE__HEADER");
|
|
1338
1341
|
}
|
|
1339
1342
|
if (toolChild) {
|
|
1340
1343
|
api.setNextNode(toolChild.id);
|
|
@@ -1359,11 +1362,11 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1359
1362
|
}
|
|
1360
1363
|
// Optionally output the result immediately
|
|
1361
1364
|
if (llmResult.result && outputImmediately && !llmPromptOptions.stream) {
|
|
1362
|
-
yield ((
|
|
1365
|
+
yield ((_17 = api.output) === null || _17 === void 0 ? void 0 : _17.call(api, llmResult.result, {}));
|
|
1363
1366
|
}
|
|
1364
1367
|
else if (llmResult.finishReason && llmPromptOptions.stream) {
|
|
1365
1368
|
// send the finishReason as last output for a stream
|
|
1366
|
-
(
|
|
1369
|
+
(_18 = api.output) === null || _18 === void 0 ? void 0 : _18.call(api, "", {
|
|
1367
1370
|
_cognigy: {
|
|
1368
1371
|
_preventTranscript: true,
|
|
1369
1372
|
_messageId,
|
|
@@ -1386,7 +1389,7 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1386
1389
|
}
|
|
1387
1390
|
// Add response to Cognigy Input/Context for further usage
|
|
1388
1391
|
if (storeLocation === "context") {
|
|
1389
|
-
(
|
|
1392
|
+
(_19 = api.addToContext) === null || _19 === void 0 ? void 0 : _19.call(api, contextKey, llmResult, "simple");
|
|
1390
1393
|
}
|
|
1391
1394
|
else if (storeLocation === "input") {
|
|
1392
1395
|
api.addToInput(inputKey, llmResult);
|
|
@@ -1399,14 +1402,14 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1399
1402
|
const errorDetails = {
|
|
1400
1403
|
name: (error === null || error === void 0 ? void 0 : error.name) || "Error",
|
|
1401
1404
|
code: (error === null || error === void 0 ? void 0 : error.code) || (error === null || error === void 0 ? void 0 : error.httpStatusCode),
|
|
1402
|
-
message: (error === null || error === void 0 ? void 0 : error.message) || ((
|
|
1405
|
+
message: (error === null || error === void 0 ? void 0 : error.message) || ((_20 = error.originalErrorDetails) === null || _20 === void 0 ? void 0 : _20.message),
|
|
1403
1406
|
};
|
|
1404
|
-
(
|
|
1407
|
+
(_21 = api.emitEvent) === null || _21 === void 0 ? void 0 : _21.call(api, "nodeError", { nodeId, flowId: flowReferenceId, errorMessage: error });
|
|
1405
1408
|
if (logErrorToSystem) {
|
|
1406
|
-
(
|
|
1409
|
+
(_22 = api.log) === null || _22 === void 0 ? void 0 : _22.call(api, "error", JSON.stringify(errorDetails));
|
|
1407
1410
|
}
|
|
1408
1411
|
if (errorHandling !== "stop") {
|
|
1409
|
-
(
|
|
1412
|
+
(_23 = api.logDebugError) === null || _23 === void 0 ? void 0 : _23.call(api, errorDetails.message + (errorDetails.code ? ` (error code: ${errorDetails.code})` : ""), errorDetails.name);
|
|
1410
1413
|
}
|
|
1411
1414
|
if (storeErrorInInput) {
|
|
1412
1415
|
input.aiAgent = input.aiAgent || {};
|
|
@@ -1415,7 +1418,7 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1415
1418
|
if (errorHandling === "continue") {
|
|
1416
1419
|
// output the timeout message
|
|
1417
1420
|
if (errorMessage) {
|
|
1418
|
-
yield ((
|
|
1421
|
+
yield ((_24 = api.output) === null || _24 === void 0 ? void 0 : _24.call(api, errorMessage, null));
|
|
1419
1422
|
}
|
|
1420
1423
|
// Set default node as next node
|
|
1421
1424
|
const defaultChild = childConfigs.find(child => child.type === "aiAgentJobDefault");
|
|
@@ -1427,7 +1430,7 @@ export const AI_AGENT_JOB = createNodeDescriptor({
|
|
|
1427
1430
|
if (!errorHandlingGotoTarget) {
|
|
1428
1431
|
throw new Error("GoTo Target is required");
|
|
1429
1432
|
}
|
|
1430
|
-
if (!((
|
|
1433
|
+
if (!((_25 = api.checkThink) === null || _25 === void 0 ? void 0 : _25.call(api, nodeId))) {
|
|
1431
1434
|
api.resetNextNodes();
|
|
1432
1435
|
yield api.executeFlow({
|
|
1433
1436
|
flowNode: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
/* Custom modules */
|
|
3
3
|
import { createNodeDescriptor } from "../../../createNodeDescriptor";
|
|
4
|
+
import { parseMcpHeaders } from "./helpers/parseMcpHeaders";
|
|
4
5
|
import { TranscriptEntryType, TranscriptRole, } from "../../../../interfaces/transcripts/transcripts";
|
|
5
6
|
export const AI_AGENT_JOB_CALL_MCP_TOOL = createNodeDescriptor({
|
|
6
7
|
type: "aiAgentJobCallMCPTool",
|
|
@@ -58,7 +59,7 @@ export const AI_AGENT_JOB_CALL_MCP_TOOL = createNodeDescriptor({
|
|
|
58
59
|
label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_CALL_MCP_TOOL__FIELDS__RESOLVE_IMMEDIATELY__LABEL",
|
|
59
60
|
type: "toggle",
|
|
60
61
|
description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_CALL_MCP_TOOL__FIELDS__RESOLVE_IMMEDIATELY__DESCRIPTION",
|
|
61
|
-
defaultValue:
|
|
62
|
+
defaultValue: true,
|
|
62
63
|
},
|
|
63
64
|
{
|
|
64
65
|
key: "debugToolResult",
|
|
@@ -100,7 +101,8 @@ export const AI_AGENT_JOB_CALL_MCP_TOOL = createNodeDescriptor({
|
|
|
100
101
|
const aiAgentJobNode = (_b = sessionState.lastToolCall) === null || _b === void 0 ? void 0 : _b.aiAgentJobNode;
|
|
101
102
|
const mcpServerUrl = (_c = sessionState.lastToolCall) === null || _c === void 0 ? void 0 : _c.mcpServerUrl;
|
|
102
103
|
const timeout = (_d = sessionState.lastToolCall) === null || _d === void 0 ? void 0 : _d.timeout;
|
|
103
|
-
|
|
104
|
+
// Use the helper function to parse MCP headers
|
|
105
|
+
const mcpHeaders = yield parseMcpHeaders((_e = sessionState.lastToolCall) === null || _e === void 0 ? void 0 : _e.mcpHeaders, api);
|
|
104
106
|
if (!(toolCall === null || toolCall === void 0 ? void 0 : toolCall.id)) {
|
|
105
107
|
(_f = api.logDebugError) === null || _f === void 0 ? void 0 : _f.call(api, "UI__DEBUG_MODE__AI_AGENT_ANSWER__ERROR__MESSAGE");
|
|
106
108
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { validateToolId } from "./createSystemMessage";
|
|
3
|
+
import { parseMcpHeaders } from "./parseMcpHeaders";
|
|
3
4
|
/**
|
|
4
5
|
* Creates the tool definitions for the AI Agent Job and LLM Prompt v2 Nodes
|
|
5
6
|
* @param childConfigs Child node configurations
|
|
@@ -43,7 +44,8 @@ export const createToolDefinitions = (childConfigs, api, useStrict) => __awaiter
|
|
|
43
44
|
const cacheTools = child.config.cacheTools;
|
|
44
45
|
const sendDebug = child.config.debugMessageFetchedTools;
|
|
45
46
|
const toolFilter = child.config.toolFilter;
|
|
46
|
-
|
|
47
|
+
// Parse mcpHeaders values if present and resolve any Cognigy script expressions
|
|
48
|
+
const mcpHeaders = yield parseMcpHeaders(child.config.mcpHeaders, api);
|
|
47
49
|
let mcpTools = null;
|
|
48
50
|
let fetchedFromCache = null;
|
|
49
51
|
try {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
/**
|
|
3
|
+
* Parses MCP headers by resolving any Cognigy script expressions in string values
|
|
4
|
+
* @param mcpHeaders - The headers object to parse
|
|
5
|
+
* @param api - The Cognigy API instance for parsing script text
|
|
6
|
+
* @returns The parsed headers object
|
|
7
|
+
*/
|
|
8
|
+
export function parseMcpHeaders(mcpHeaders, api) {
|
|
9
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10
|
+
if (!mcpHeaders || typeof mcpHeaders !== "object") {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
const parsedMcpHeaders = {};
|
|
14
|
+
for (const [key, value] of Object.entries(mcpHeaders)) {
|
|
15
|
+
if (typeof value === "string") {
|
|
16
|
+
parsedMcpHeaders[key] = yield api.parseCognigyScriptText(value);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
parsedMcpHeaders[key] = value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return parsedMcpHeaders;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=parseMcpHeaders.js.map
|
|
@@ -4,7 +4,7 @@ import { createNodeDescriptor } from "../../createNodeDescriptor";
|
|
|
4
4
|
import { COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS } from "../../../constants";
|
|
5
5
|
export const HANDOVER_V2 = createNodeDescriptor({
|
|
6
6
|
type: "handoverToAgent",
|
|
7
|
-
defaultLabel: "Handover to Agent",
|
|
7
|
+
defaultLabel: "Handover to Human Agent",
|
|
8
8
|
summary: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SUMMARY",
|
|
9
9
|
appearance: {
|
|
10
10
|
showIcon: false
|
|
@@ -522,6 +522,9 @@ export const HTTP_REQUEST = createNodeDescriptor({
|
|
|
522
522
|
type: "text",
|
|
523
523
|
},
|
|
524
524
|
tags: ["service", "get", "post", "put", "patch"],
|
|
525
|
+
mocking: {
|
|
526
|
+
defaultMockCode: `input.httprequest = {response: "Mock response"};`
|
|
527
|
+
},
|
|
525
528
|
function: (httpRequestParams) => __awaiter(void 0, void 0, void 0, function* () {
|
|
526
529
|
const { cognigy, config } = httpRequestParams;
|
|
527
530
|
const { api } = cognigy;
|
|
@@ -30,7 +30,9 @@ export { AI_AGENT_HANDOVER } from "./aiAgent/aiAgentHandover";
|
|
|
30
30
|
export { AI_AGENT_JOB_CALL_MCP_TOOL } from "./aiAgent/aiAgentJobCallMCPTool";
|
|
31
31
|
export { KNOWLEDGE_TOOL } from "./agentTools/knowledgeTool";
|
|
32
32
|
export { HANDOVER_TO_AI_AGENT_TOOL } from "./agentTools/handoverToAiAgentTool";
|
|
33
|
+
export { HANDOVER_TO_HUMAN_AGENT_TOOL } from "./agentTools/handoverToHumanAgentTool";
|
|
33
34
|
export { SEND_EMAIL_TOOL } from "./agentTools/sendEmailTool";
|
|
35
|
+
export { EXECUTE_WORKFLOW_TOOL } from "./agentTools/executeWorkflowTool";
|
|
34
36
|
export { LOAD_AI_AGENT } from "./aiAgent/loadAiAgent";
|
|
35
37
|
export { LIVE_AGENT_CONNECTION, RINGCENTRAL_ENGAGE_CONNECTION, CHATWOOT_CONNECTION, EIGHT_BY_EIGHT_CONNECTION, GENESYS_CLOUD_CONNECTION, GENESYS_CLOUD_CONNECTION_OM, STORM_CONNECTION } from "./handoverConnections";
|
|
36
38
|
export { NICECXONEAAH_AUTHENTICATION_CONNECTION } from "./niceCXOneAAHAuthenticationConnection";
|
|
@@ -5,6 +5,7 @@ import * as crypto from "crypto";
|
|
|
5
5
|
import { createNodeDescriptor } from "../../../createNodeDescriptor";
|
|
6
6
|
import { GO_TO } from "../../logic";
|
|
7
7
|
import { createToolDefinitions } from "../aiAgent/helpers/createToolDefinitions";
|
|
8
|
+
import { parseMcpHeaders } from "../aiAgent/helpers/parseMcpHeaders";
|
|
8
9
|
import { createLastConverationString, createLastUserInputString, writeLLMDebugLogs } from "../../nlu/generativeSlotFiller/prompt";
|
|
9
10
|
import { InternalServerError } from "../../../../errors";
|
|
10
11
|
import { TranscriptEntryType, TranscriptRole } from "../../../../interfaces/transcripts/transcripts";
|
|
@@ -16,7 +17,7 @@ export const LLM_PROMPT_V2 = createNodeDescriptor({
|
|
|
16
17
|
collapsable: true,
|
|
17
18
|
placement: {
|
|
18
19
|
children: {
|
|
19
|
-
whitelist: ["llmPromptDefault", "llmPromptTool", "llmPromptMCPTool", "knowledgeTool", "handoverToAiAgentTool", "sendEmailTool"],
|
|
20
|
+
whitelist: ["llmPromptDefault", "llmPromptTool", "llmPromptMCPTool", "knowledgeTool", "handoverToAiAgentTool", "handoverToHumanAgentTool", "sendEmailTool", "executeWorkflowTool"],
|
|
20
21
|
},
|
|
21
22
|
},
|
|
22
23
|
},
|
|
@@ -689,6 +690,9 @@ export const LLM_PROMPT_V2 = createNodeDescriptor({
|
|
|
689
690
|
color: "#252525",
|
|
690
691
|
},
|
|
691
692
|
tags: ["ai", "llm", "gpt", "generative ai", "openai", "azure", "prompt"],
|
|
693
|
+
mocking: {
|
|
694
|
+
defaultMockCode: `input.llmResponse = {response: "Mock response"};`
|
|
695
|
+
},
|
|
692
696
|
function: ({ cognigy, config, childConfigs, nodeId }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
693
697
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
694
698
|
const { api, input, flowReferenceId } = cognigy;
|
|
@@ -894,13 +898,16 @@ export const LLM_PROMPT_V2 = createNodeDescriptor({
|
|
|
894
898
|
break;
|
|
895
899
|
}
|
|
896
900
|
}
|
|
901
|
+
let mcpHeaders = (_g = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _g === void 0 ? void 0 : _g.mcpHeaders;
|
|
897
902
|
if (!toolChild && toolMap.has(mainToolCall.function.name)) {
|
|
898
903
|
// If the tool call is from an MCP tool, set the next node to the corresponding child node
|
|
899
904
|
toolChild = childConfigs.find(child => child.id === toolMap.get(mainToolCall.function.name));
|
|
900
905
|
isMcpToolCall = true;
|
|
906
|
+
// Parse mcpHeaders values if present and resolve any Cognigy script expressions
|
|
907
|
+
mcpHeaders = yield parseMcpHeaders(toolChild === null || toolChild === void 0 ? void 0 : toolChild.config.mcpHeaders, api);
|
|
901
908
|
}
|
|
902
909
|
if (mainToolCall.function.name !== "retrieve_knowledge" && toolChild === undefined) {
|
|
903
|
-
(
|
|
910
|
+
(_h = api.logDebugError) === null || _h === void 0 ? void 0 : _h.call(api, `UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__ERROR__BODY <b>${mainToolCall.function.name}</b>`, "UI__DEBUG_MODE__AI_AGENT_JOB__TOOL_CALL__ERROR__HEADER");
|
|
904
911
|
}
|
|
905
912
|
// Add last tool call to session state for loading it from Tool Answer Node
|
|
906
913
|
api.updateSessionStateValues({
|
|
@@ -908,8 +915,8 @@ export const LLM_PROMPT_V2 = createNodeDescriptor({
|
|
|
908
915
|
flow: flowReferenceId,
|
|
909
916
|
node: nodeId,
|
|
910
917
|
} }, (isMcpToolCall && {
|
|
911
|
-
mcpServerUrl: (
|
|
912
|
-
mcpHeaders
|
|
918
|
+
mcpServerUrl: (_j = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _j === void 0 ? void 0 : _j.mcpServerUrl,
|
|
919
|
+
mcpHeaders,
|
|
913
920
|
timeout: (_k = toolChild === null || toolChild === void 0 ? void 0 : toolChild.config) === null || _k === void 0 ? void 0 : _k.timeout,
|
|
914
921
|
mcpToolNode: toolChild === null || toolChild === void 0 ? void 0 : toolChild.id,
|
|
915
922
|
})), { toolCall: mainToolCall }),
|
|
@@ -175,10 +175,10 @@ class SessionConfigMapper extends BaseMapper {
|
|
|
175
175
|
return synthesizer;
|
|
176
176
|
}
|
|
177
177
|
buildRecognizer(sessionParams, stt, vad, azureConfig) {
|
|
178
|
-
var _a, _b, _c;
|
|
178
|
+
var _a, _b, _c, _d;
|
|
179
179
|
const { recognizer: sessionParamsRecognizer } = sessionParams || {};
|
|
180
180
|
const { vendor: spVendor, language: spLanguage, hints: spHints, label: spLabel, model: spModel, azureSttEndpointId: spAzureSttEndpointId, audioLogging: spAudioLogging, hintsBoost: spHintsBoost, punctuation: spPunctuation, altLanguages: spAltLanguages = [], deepgramOptions: spDeepgramOptions, vad: spVad, profanityOption: spProfanityOption } = sessionParamsRecognizer || {};
|
|
181
|
-
const { sttVendor, sttLanguage, sttHints, sttLabel, sttHintsBoost, sttDisablePunctuation, googleModel, deepgramEndpointing, deepgramEndpointingValue,
|
|
181
|
+
const { sttVendor, sttLanguage, sttHints, sttLabel, sttHintsBoost, sttDisablePunctuation, googleModel, deepgramEndpointing, deepgramEndpointingValue, sttModel, deepgramSmartFormatting, deepgramShortUtterance, altLanguages = [] } = stt || {};
|
|
182
182
|
const recognizer = {};
|
|
183
183
|
recognizer.language = spLanguage || sttLanguage || undefined;
|
|
184
184
|
recognizer.hints = spHints || sttHints || undefined;
|
|
@@ -213,7 +213,7 @@ class SessionConfigMapper extends BaseMapper {
|
|
|
213
213
|
* ssc node: 'deepgramEndpointing' => boolean, 'deepgramEndpointingValue' => number
|
|
214
214
|
*/
|
|
215
215
|
const isDeepgramEndpointingEnabled = (_a = (typeof spEndpointing === "number" || deepgramEndpointing)) !== null && _a !== void 0 ? _a : false;
|
|
216
|
-
recognizer.model = spModel ||
|
|
216
|
+
recognizer.model = spModel || sttModel;
|
|
217
217
|
const deepgramOptions = {
|
|
218
218
|
endpointing: false,
|
|
219
219
|
punctuate: recognizer.punctuation,
|
|
@@ -226,6 +226,12 @@ class SessionConfigMapper extends BaseMapper {
|
|
|
226
226
|
}
|
|
227
227
|
recognizer.deepgramOptions = deepgramOptions;
|
|
228
228
|
}
|
|
229
|
+
if (recognizer.vendor === 'openai') {
|
|
230
|
+
const openaiModel = spModel || sttModel;
|
|
231
|
+
if (openaiModel) {
|
|
232
|
+
recognizer.openaiOptions = Object.assign(Object.assign({}, ((_d = recognizer.openaiOptions) !== null && _d !== void 0 ? _d : {})), { model: openaiModel });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
229
235
|
}
|
|
230
236
|
if (this.has(spVad) || this.has(vad)) {
|
|
231
237
|
const { enable: spEnable, mode: spMode, voiceMs: spVoiceMs } = spVad || {};
|
|
@@ -292,7 +298,7 @@ class SessionConfigMapper extends BaseMapper {
|
|
|
292
298
|
}
|
|
293
299
|
const mapper = new SessionConfigMapper("voiceGateway2");
|
|
294
300
|
export function voiceConfigParamsToVoiceSettings(config, api) {
|
|
295
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m
|
|
301
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
296
302
|
let voiceSettings = {};
|
|
297
303
|
if (config.sttVendor === 'none') {
|
|
298
304
|
delete config.sttVendor;
|
|
@@ -344,10 +350,10 @@ export function voiceConfigParamsToVoiceSettings(config, api) {
|
|
|
344
350
|
/* by default we enable endpointing - it is only undefined via SAP */
|
|
345
351
|
deepgramEndpointing,
|
|
346
352
|
deepgramEndpointingValue: (_g = config.deepgramEndpointingValue) !== null && _g !== void 0 ? _g : 250,
|
|
347
|
-
|
|
348
|
-
deepgramSmartFormatting: (
|
|
353
|
+
sttModel: config.sttModel || "",
|
|
354
|
+
deepgramSmartFormatting: (_h = config.deepgramSmartFormatting) !== null && _h !== void 0 ? _h : undefined,
|
|
349
355
|
deepgramShortUtterance,
|
|
350
|
-
listenDuringPrompt: (
|
|
356
|
+
listenDuringPrompt: (_j = config.sttListenDuringPrompt) !== null && _j !== void 0 ? _j : undefined,
|
|
351
357
|
};
|
|
352
358
|
// tts (synthesizer)
|
|
353
359
|
voiceSettings.tts = {
|
|
@@ -392,7 +398,7 @@ export function voiceConfigParamsToVoiceSettings(config, api) {
|
|
|
392
398
|
voiceSettings.stt.altLanguages = [];
|
|
393
399
|
}
|
|
394
400
|
}
|
|
395
|
-
if (config.ttsVendor === "elevenlabs") {
|
|
401
|
+
if (config.ttsVendor === "elevenlabs" || config.ttsVendor === "openai") {
|
|
396
402
|
voiceSettings.tts.ttsModel = config.ttsModel;
|
|
397
403
|
}
|
|
398
404
|
// userNoInput
|
|
@@ -414,7 +420,7 @@ export function voiceConfigParamsToVoiceSettings(config, api) {
|
|
|
414
420
|
flowNoInputFail: config.flowNoInputFail
|
|
415
421
|
};
|
|
416
422
|
// Check if userNoInputTimeout has a value and userNoInputTimeoutEnable is null or undefined to cover generic nodes
|
|
417
|
-
if (((
|
|
423
|
+
if (((_k = voiceSettings === null || voiceSettings === void 0 ? void 0 : voiceSettings.userNoInput) === null || _k === void 0 ? void 0 : _k.userNoInputTimeout) && (voiceSettings.userNoInput.userNoInputTimeoutEnable === null || voiceSettings.userNoInput.userNoInputTimeoutEnable === undefined)) {
|
|
418
424
|
voiceSettings.userNoInput.userNoInputTimeoutEnable = true;
|
|
419
425
|
}
|
|
420
426
|
voiceSettings.dtmf = {
|
|
@@ -422,7 +428,7 @@ export function voiceConfigParamsToVoiceSettings(config, api) {
|
|
|
422
428
|
dtmfInterDigitTimeout: config.dtmfInterDigitTimeout,
|
|
423
429
|
dtmfMaxDigits: config.dtmfMaxDigits,
|
|
424
430
|
dtmfMinDigits: config.dtmfMinDigits,
|
|
425
|
-
dtmfSubmitDigit: (
|
|
431
|
+
dtmfSubmitDigit: (_l = config.dtmfSubmitDigit) === null || _l === void 0 ? void 0 : _l.trim(),
|
|
426
432
|
};
|
|
427
433
|
if (config === null || config === void 0 ? void 0 : config.dtmfEnable) {
|
|
428
434
|
if (voiceSettings.dtmf.dtmfSubmitDigit &&
|
|
@@ -459,7 +465,7 @@ export function voiceConfigParamsToVoiceSettings(config, api) {
|
|
|
459
465
|
}
|
|
460
466
|
// atmosphere sounds
|
|
461
467
|
if (config.atmosphereAction) {
|
|
462
|
-
if ((
|
|
468
|
+
if ((_m = config.atmosphereUrl) === null || _m === void 0 ? void 0 : _m.length) {
|
|
463
469
|
if (!isValidUrl(config.atmosphereUrl)) {
|
|
464
470
|
throw new Error(`Audio file URL is invalid ${config.atmosphereUrl}`);
|
|
465
471
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { cleanTarget } from "../../../descriptors/voicegateway2/utils/helper";
|
|
3
3
|
import { isValidUrl, isValidPhoneNumber } from "../utils/helper";
|
|
4
4
|
export const transfer = {
|
|
5
|
-
handleInput(endpointType, params, isGenericNode = false, recognitionChannel, sttVendor, sttLanguage, googleModel,
|
|
5
|
+
handleInput(endpointType, params, isGenericNode = false, recognitionChannel, sttVendor, sttLanguage, googleModel, sttModel, sttDisablePunctuation, deepgramEndpointing, deepgramEndpointingValue, deepgramSmartFormatting, mediaPath, anchorMedia) {
|
|
6
6
|
try {
|
|
7
7
|
switch (endpointType) {
|
|
8
8
|
case "bandwidth":
|
|
@@ -21,14 +21,14 @@ export const transfer = {
|
|
|
21
21
|
return this.handleAudioCodesInput(prepareTransferParams(params), endpointType);
|
|
22
22
|
case "voiceGateway2":
|
|
23
23
|
default:
|
|
24
|
-
return this.handleVGInput(prepareTransferParams(params), recognitionChannel, sttVendor, sttLanguage, googleModel,
|
|
24
|
+
return this.handleVGInput(prepareTransferParams(params), recognitionChannel, sttVendor, sttLanguage, googleModel, sttModel, sttDisablePunctuation, deepgramEndpointing, deepgramEndpointingValue, deepgramSmartFormatting, mediaPath, anchorMedia);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
catch (error) {
|
|
28
28
|
throw Error(error.message);
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
handleVGInput(transferParam, recognitionChannel, sttVendor, sttLanguage, googleModel,
|
|
31
|
+
handleVGInput(transferParam, recognitionChannel, sttVendor, sttLanguage, googleModel, sttModel, sttDisablePunctuation, deepgramEndpointing, deepgramEndpointingValue, deepgramSmartFormatting, mediaPath, anchorMedia) {
|
|
32
32
|
const { transferType, transferTarget, transferReason, referredBy, useTransferSipHeaders, transferSipHeaders, dialMusic, dialTranscriptionWebhook, dialCallerId, amdEnabled, amdRedirectOnMachineDetected, amdRedirectText, dialTimeout, timeLimit, sttLabel } = transferParam;
|
|
33
33
|
const payload = {
|
|
34
34
|
_voiceGateway2: {
|
|
@@ -119,9 +119,9 @@ export const transfer = {
|
|
|
119
119
|
recognizer.model = googleModel;
|
|
120
120
|
}
|
|
121
121
|
if (recognizer.vendor === 'deepgram') {
|
|
122
|
-
recognizer.model =
|
|
122
|
+
recognizer.model = sttModel;
|
|
123
123
|
recognizer.deepgramOptions = {
|
|
124
|
-
model:
|
|
124
|
+
model: sttModel,
|
|
125
125
|
punctuate: !sttDisablePunctuation,
|
|
126
126
|
endpointing: deepgramEndpointing ? deepgramEndpointingValue : false,
|
|
127
127
|
smartFormatting: deepgramSmartFormatting !== null && deepgramSmartFormatting !== void 0 ? deepgramSmartFormatting : false
|
|
@@ -262,7 +262,7 @@ export const voiceConfigFields = [
|
|
|
262
262
|
defaultValue: "",
|
|
263
263
|
params: {
|
|
264
264
|
languageKey: "config.sttLanguage",
|
|
265
|
-
modelKey: "config.
|
|
265
|
+
modelKey: "config.sttModel",
|
|
266
266
|
}
|
|
267
267
|
},
|
|
268
268
|
{
|
|
@@ -273,7 +273,7 @@ export const voiceConfigFields = [
|
|
|
273
273
|
defaultValue: "",
|
|
274
274
|
},
|
|
275
275
|
{
|
|
276
|
-
key: "
|
|
276
|
+
key: "sttModel",
|
|
277
277
|
type: "sttSelect",
|
|
278
278
|
label: "_unused_",
|
|
279
279
|
description: "_unused_",
|
|
@@ -246,7 +246,7 @@ export const voiceConfigFields = [
|
|
|
246
246
|
defaultValue: "",
|
|
247
247
|
params: {
|
|
248
248
|
languageKey: "config.sttLanguage",
|
|
249
|
-
modelKey: "config.
|
|
249
|
+
modelKey: "config.sttModel",
|
|
250
250
|
}
|
|
251
251
|
},
|
|
252
252
|
{
|
|
@@ -257,14 +257,22 @@ export const voiceConfigFields = [
|
|
|
257
257
|
defaultValue: "",
|
|
258
258
|
},
|
|
259
259
|
{
|
|
260
|
-
key: "
|
|
260
|
+
key: "sttModel",
|
|
261
261
|
type: "sttSelect",
|
|
262
262
|
label: "_unused_",
|
|
263
263
|
description: "_unused_",
|
|
264
264
|
defaultValue: "",
|
|
265
265
|
condition: {
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
and: [
|
|
267
|
+
{
|
|
268
|
+
key: "sttVendor",
|
|
269
|
+
value: "deepgram"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
key: "sttVendor",
|
|
273
|
+
value: "openai"
|
|
274
|
+
}
|
|
275
|
+
]
|
|
268
276
|
}
|
|
269
277
|
},
|
|
270
278
|
{
|
|
@@ -1094,6 +1102,7 @@ export const setSessionConfigNode = createNodeDescriptor({
|
|
|
1094
1102
|
try {
|
|
1095
1103
|
const voiceSettings = voiceConfigParamsToVoiceSettings(config, api);
|
|
1096
1104
|
const payload = setSessionConfig.handleVGInput(voiceSettings, sessionParams, api);
|
|
1105
|
+
api.log("error", JSON.stringify(payload));
|
|
1097
1106
|
yield api.say(null, {
|
|
1098
1107
|
_cognigy: payload,
|
|
1099
1108
|
});
|
|
@@ -313,7 +313,7 @@ export const transferNode = createNodeDescriptor({
|
|
|
313
313
|
defaultValue: "",
|
|
314
314
|
params: {
|
|
315
315
|
languageKey: "config.sttLanguage",
|
|
316
|
-
modelKey: "config.
|
|
316
|
+
modelKey: "config.sttModel"
|
|
317
317
|
},
|
|
318
318
|
condition: {
|
|
319
319
|
key: "transferType",
|
|
@@ -321,7 +321,7 @@ export const transferNode = createNodeDescriptor({
|
|
|
321
321
|
}
|
|
322
322
|
},
|
|
323
323
|
{
|
|
324
|
-
key: "
|
|
324
|
+
key: "sttModel",
|
|
325
325
|
type: "sttSelect",
|
|
326
326
|
label: "_unused_",
|
|
327
327
|
description: "_unused_",
|
|
@@ -551,7 +551,7 @@ export const transferNode = createNodeDescriptor({
|
|
|
551
551
|
summary: "UI__NODE_EDITOR__VOICEGATEWAY2__TRANSFER__SUMMARY",
|
|
552
552
|
function: ({ cognigy, config, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
553
553
|
const { api, input } = cognigy;
|
|
554
|
-
const { transferType, transferTarget, referredBy, mediaPath, useTransferSipHeaders, transferSipHeaders = {}, transferReason, dialMusic, dialTranscriptionWebhook, dialCallerId, recognitionChannel, sttVendor, sttLanguage, sttDisablePunctuation, dialTimeout, enableTimeLimit, timeLimit, amdEnabled, amdRedirectOnMachineDetected, amdRedirectText, sttLabel, googleModel,
|
|
554
|
+
const { transferType, transferTarget, referredBy, mediaPath, useTransferSipHeaders, transferSipHeaders = {}, transferReason, dialMusic, dialTranscriptionWebhook, dialCallerId, recognitionChannel, sttVendor, sttLanguage, sttDisablePunctuation, dialTimeout, enableTimeLimit, timeLimit, amdEnabled, amdRedirectOnMachineDetected, amdRedirectText, sttLabel, googleModel, sttModel, deepgramEndpointing, deepgramEndpointingValue, deepgramSmartFormatting, agentAssistEnabled, agentAssistHeadersKey = customHeaderDefaultValue, anchorMedia } = config;
|
|
555
555
|
const transferParams = {
|
|
556
556
|
transferType,
|
|
557
557
|
transferReason,
|
|
@@ -625,7 +625,7 @@ export const transferNode = createNodeDescriptor({
|
|
|
625
625
|
transferParams.useTransferSipHeaders = false;
|
|
626
626
|
api.log("error", "Invalid JSON in Transfer SIP Headers");
|
|
627
627
|
}
|
|
628
|
-
const payload = transfer.handleInput("voiceGateway2", transferParams, false, recognitionChannel, sttVendor, sttLanguage, googleModel,
|
|
628
|
+
const payload = transfer.handleInput("voiceGateway2", transferParams, false, recognitionChannel, sttVendor, sttLanguage, googleModel, sttModel, sttDisablePunctuation, deepgramEndpointing, deepgramEndpointingValue, deepgramSmartFormatting, media, anchorMedia);
|
|
629
629
|
yield api.say(null, {
|
|
630
630
|
_cognigy: payload,
|
|
631
631
|
});
|