UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

779 lines 34.6 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.HANDOVER_TO_HUMAN_AGENT_TOOL = void 0; /* Custom modules */ const createNodeDescriptor_1 = require("../../../createNodeDescriptor"); const transcripts_1 = require("../../../../interfaces/transcripts/transcripts"); const constants_1 = require("../../../../constants"); exports.HANDOVER_TO_HUMAN_AGENT_TOOL = (0, createNodeDescriptor_1.createNodeDescriptor)({ type: "handoverToHumanAgentTool", defaultLabel: "Handover to Human Agent Tool", parentType: ["aiAgentJob", "llmPromptV2"], constraints: { editable: true, deletable: true, collapsable: true, creatable: true, movable: true, placement: { predecessor: { whitelist: [] } }, childFlowCreatable: false }, behavior: { stopping: true }, preview: { type: "text", key: "toolId" }, fields: [ // Tool-specific fields { key: "toolId", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__TOOL_ID__LABEL", description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__TOOL_ID__DESCRIPTION", type: "cognigyLLMText", defaultValue: "handover_to_human_agent", params: { required: true, rows: 1, multiline: false, maxLength: 64, } }, { key: "description", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__DESCRIPTION__LABEL", description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__DESCRIPTION__DESCRIPTION", type: "cognigyLLMText", defaultValue: "Transfer the conversation to a human agent. Use this if you cannot address the user's request, if the user explicitly asks for a human, or if the situation requires empathy, judgement, or actions you cannot perform.", params: { required: true, rows: 5, multiline: true, } }, { key: "parameters", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__PARAMETERS__LABEL", description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__PARAMETERS__DESCRIPTION", type: "toolParameters", defaultValue: `{ "type": "object", "properties": { "handover_reason": { "type": "string", "description": "The reason for handing over to a human agent, including context from the conversation." } }, "required": ["handover_reason"], "additionalProperties": false }`, params: { required: false, }, }, { key: "debugMessage", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__DEBUG_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__DEBUG_MESSAGE__DESCRIPTION", defaultValue: true, }, { key: "condition", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__CONDITION__LABEL", description: "UI__NODE_EDITOR__SERVICE__AI_AGENT_TOOL__FIELDS__CONDITION__DESCRIPTION", type: "cognigyText", defaultValue: "", }, // Handover V2 fields { key: "handoverProvider", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__LABEL", type: "handoverProvider", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__DESCRIPTION", defaultValue: "legacyEndpoint", params: { required: true, }, }, { key: "handoverProviderConfig", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__LABEL", type: "json", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__DESCRIPTION", defaultValue: { liveAgentPriority: "none" }, params: { required: true, }, }, { key: "text", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__TEXT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__TEXT__DESCRIPTION" }, { key: "repeatHandoverMessage", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__REPEAT_HANDOVER_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__REPEAT_HANDOVER_MESSAGE__DESCRIPTION", defaultValue: false, }, { key: "cancelIntent", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__CANCEL_INTENT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__CANCEL_INTENT__DESCRIPTION" }, { key: "quickReply", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__QUICK_REPLY__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__QUICK_REPLY__DESCRIPTION" }, { key: "resolveBehavior", type: "select", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__RESOLVE_BEHAVIOUR__LABEL", defaultValue: "resetEntrypoint", params: { options: [ { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__RESOLVE_BEHAVIOUR__OPTIONS__RESET_ENTRY_POINT__LABEL", value: "resetEntrypoint" }, { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__RESOLVE_BEHAVIOUR__OPTIONS__CONTINUE_ENTRY_POINT__LABEL", value: "continueEntrypoint", }, ], }, }, { key: "additionalCategoryIds", type: "cognigyTextArray", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ADDITIONAL_CATEGORY_IDS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ADDITIONAL_CATEGORY_IDS__DESCRIPTION", defaultValue: [] }, { key: "sendResolveEvent", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_RESOLVE_EVENT__LABEL", defaultValue: true, }, { key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_INBOX_ID, type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_INBOXID__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_INBOXID__DESCRIPTION" }, { key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_SKILLS, type: "cognigyTextArray", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_SKILLS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_SKILLS__DESCRIPTION", }, { key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_LANGUAGES, type: "cognigyTextArray", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_LANGUAGES__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_LANGUAGES__DESCRIPTION", }, { key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_PRIORITY, type: "select", defaultValue: 'none', label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_PRIORITY__LABEL", params: { options: [ { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_PRIORITY__OPTIONS__NONE__LABEL", value: 'none' }, { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_PRIORITY__OPTIONS__URGENT__LABEL", value: "urgent" }, { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_PRIORITY__OPTIONS__HIGH__LABEL", value: "high" }, { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_PRIORITY__OPTIONS__MEDIUM__LABEL", value: "medium" }, { label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_PRIORITY__OPTIONS__LOW__LABEL", value: "low" }, ], } }, { key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.ALLOW_AGENT_INJECT, type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ALLOW_AGENT_INJECT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ALLOW_AGENT_INJECT__DESCRIPTION", defaultValue: false, }, { key: "chatwootInboxId", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__CHATWOOT_INBOXID__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__CHATWOOT_INBOXID__DESCRIPTION" }, { key: "sendTranscriptAsFirstMessage", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_TRANSCRIPT_AS_FIRST_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_TRANSCRIPT_AS_FIRST_MESSAGE__DESCRIPTION", defaultValue: false, }, { key: "buttonId", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__BUTTON_ID__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__BUTTON_ID__DESCRIPTION", }, { key: "salesforcePrechatEntities", type: "json", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SALES_FORCE_PERCHAT_ENTITIES__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SALES_FORCE_PERCHAT_ENTITIES__DESCRIPTION", defaultValue: "[]", }, { key: "salesforcePrechatDetails", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SALES_FORCE_PERCHAT_DETAILS__LABEL", type: "json", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SALES_FORCE_PERCHAT_DETAILS__DESCRIPTION", defaultValue: "[]", }, { key: "genesysLanguage", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_LANGUAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_LANGUAGE__DESCRIPTION", }, { key: "genesysSkills", type: "cognigyTextArray", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_SKILLS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_SKILLS__DESCRIPTION", defaultValue: [], }, { key: "genesysPriority", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_PRIORITY__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_PRIORITY__DESCRIPTION", }, { key: "genesysCustomAttributes", type: "json", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_CUSTOM_ATTRIBUTES__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GENESYS_CUSTOM_ATTRIBUTES__DESCRIPTION", defaultValue: {}, }, { key: "eightByEightChannelId", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__EIGTH_BY_EIGHT_CHANNELID__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__EIGTH_BY_EIGHT_CHANNELID__DESCRIPTION", }, { key: "eightByEightQueueId", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__EIGTH_BY_EIGHT_QUEUEID__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__EIGTH_BY_EIGHT_QUEUEID__DESCRIPTION", }, { key: "eightByEightJSONProps", type: "json", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__EIGTH_BY_EIGHT_JSONPROPS__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__EIGTH_BY_EIGHT_JSONPROPS__DESCRIPTION", defaultValue: { "name": null, "userId": null, "email": null, "phone": null, "company": null, "caseId": null, "language": null, "additionalProperties": [ { "key": "Key name", "value": "Value from Cognigy" } ] }, }, { key: "sendOnQueueEvent", type: "toggle", defaultValue: false, label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_ON_QUEUE_EVENT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_ON_QUEUE_EVENT__DESCRIPTION", }, { key: "sendOnActiveEvent", type: "toggle", defaultValue: false, label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_ON_ACTIVE_EVENT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__SEND_ON_ACTIVE_EVENT__DESCRIPTION", }, { key: "getQueuePosition", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GET_QUEUE_POSITION__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GET_QUEUE_POSITION__DESCRIPTION", defaultValue: false, }, { key: "updateIntervalQueuePosition", type: "number", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_UPDATE_INTERVAL__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_UPDATE_INTERVAL__DESCRIPTION", params: { min: 30, max: 3600, // 1 hour }, condition: { key: "getQueuePosition", value: true }, }, { key: "getEstimatedWaitTime", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GET_ESTIMATED_WAIT_TIME__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__GET_ESTIMATED_WAIT_TIME__DESCRIPTION", defaultValue: false, }, { key: "updateIntervalEstimatedWaitTime", type: "number", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_UPDATE_INTERVAL__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_UPDATE_INTERVAL__DESCRIPTION", params: { min: 30, max: 3600, // 1 hour }, condition: { key: "getEstimatedWaitTime", value: true }, }, { key: "alternativeUpdate", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ALTERNATIVE_UPDATE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ALTERNATIVE_UPDATE__DESCRIPTION", defaultValue: false, }, { key: "maximumQueuePosition", type: "number", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__MAXIMUM_QUEUE_POSITION__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__MAXIMUM_QUEUE_POSITION__DESCRIPTION", params: { min: 1, }, condition: { key: "alternativeUpdate", value: true, }, }, { key: "maximumEstimatedWaitTime", type: "number", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__MAXIMUM_ESTIMATED_WAIT_TIME__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__MAXIMUM_ESTIMATED_WAIT_TIME__DESCRIPTION", condition: { key: "alternativeUpdate", value: true, }, }, { key: "alternativeText", type: "cognigyText", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ALTERNATIVE_TEXT__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ALTERNATIVE_TEXT__DESCRIPTION", condition: { key: "alternativeUpdate", value: true, }, }, { key: "enableHandoverDisconnectMessageLiveAgent", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_DISCONNECT_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_DISCONNECT_MESSAGE__DESCRIPTION", defaultValue: true, }, { key: "enableHandoverConnectMessageLiveAgent", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_CONNECT_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_CONNECT_MESSAGE__DESCRIPTION", defaultValue: true, }, { key: "enableHandoverDisconnectMessageGenesys", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_DISCONNECT_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_DISCONNECT_MESSAGE__DESCRIPTION", defaultValue: true, }, { key: "enableHandoverConnectMessageGenesys", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_CONNECT_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_CONNECT_MESSAGE__DESCRIPTION", defaultValue: true, }, { key: "enableHandoverDisconnectMessageRingCentralEngage", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_DISCONNECT_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_DISCONNECT_MESSAGE__DESCRIPTION", defaultValue: true, }, { key: "enableHandoverConnectMessageRingCentralEngage", type: "toggle", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_CONNECT_MESSAGE__LABEL", description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__ENABLE_HANDOVER_CONNECT_MESSAGE__DESCRIPTION", defaultValue: true, }, ], sections: [ // Tool-specific sections { key: "debugging", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__DEBUG_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "debugMessage", ], }, { key: "advanced", label: "UI__NODE_EDITOR__SERVICE__AI_AGENT_JOB__SECTIONS__ADVANCED__LABEL", defaultCollapsed: true, fields: [ "condition", ], }, // Handover V2 sections { key: "cancelSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__CANCEL_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "cancelIntent", "quickReply", ] }, { key: "resolveOptions", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__RESOLVE_OPTIONS__LABEL", defaultCollapsed: true, fields: [ "resolveBehavior", "sendResolveEvent", ] }, { key: "liveAgentSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__LIVE_AGENT_SETTINGS__LABEL", defaultCollapsed: true, fields: [ constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_INBOX_ID, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_SKILLS, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_LANGUAGES, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_PRIORITY, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.AGENT_ASSIST_INIT_MESSAGE, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.ALLOW_AGENT_INJECT, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.GET_QUEUE_POSITION, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.UPDATE_INTERVAL_QUEUE_POSITION, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.GET_ESTIMATED_WAIT_TIME, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.UPDATE_INTERVAL_ESTIMATED_WAIT_TIME, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.ALTERNATIVE_UPDATE, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.MAXIMUM_QUEUE_POSITION, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.MAXIMUM_ESTIMATED_WAIT_TIME, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.ALTERNATIVE_TEXT, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.ENABLE_HANDOVER_CONNECT_MESSAGE, constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.ENABLE_HANDOVER_DISCONNECT_MESSAGE, ], condition: { or: [ { key: "handoverProvider", value: "legacyEndpoint" }, { key: "handoverProvider", // @ts-ignore value: null } ] } }, { key: "eightByEightSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__EIGHT_BY_EIGHT_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "eightByEightChannelId", "eightByEightQueueId", "eightByEightJSONProps" ], condition: { or: [ { key: "handoverProvider", value: "legacyEndpoint" }, { key: "handoverProvider", // @ts-ignore value: null } ] } }, { key: "chatwootSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__CHATWOOT_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "chatwootInboxId", ], condition: { or: [ { key: "handoverProvider", value: "legacyEndpoint" }, { key: "handoverProvider", // @ts-ignore value: null } ] } }, { key: "ringCentralEngageSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__RING_CENTRAL_ENGAGE_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "additionalCategoryIds", "enableHandoverConnectMessageRingCentralEngage", "enableHandoverDisconnectMessageRingCentralEngage", ], condition: { or: [ { key: "handoverProvider", value: "legacyEndpoint" }, { key: "handoverProvider", // @ts-ignore value: null } ] } }, { key: "salesforceSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__SALES_FORCE_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "sendTranscriptAsFirstMessage", "buttonId", "salesforcePrechatEntities", "salesforcePrechatDetails" ], condition: { or: [ { key: "handoverProvider", value: "legacyEndpoint" }, { key: "handoverProvider", // @ts-ignore value: null } ] } }, { key: "genesysSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__GENESYS_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "genesysLanguage", "genesysSkills", "genesysPriority", "genesysCustomAttributes", "enableHandoverConnectMessageGenesys", "enableHandoverDisconnectMessageGenesys", ], condition: { or: [ { key: "handoverProvider", value: "legacyEndpoint" }, { key: "handoverProvider", // @ts-ignore value: null } ] } }, { key: "eventSettings", label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__SECTIONS__EVENT_SETTINGS__LABEL", defaultCollapsed: true, fields: [ "sendOnQueueEvent", "sendOnActiveEvent", ] } ], form: [ // Tool-specific fields first { type: "field", key: "toolId" }, { type: "field", key: "description" }, // Handover provider and message { type: "field", key: "handoverProvider" }, { type: "field", key: "text" }, { type: "field", key: "repeatHandoverMessage" }, // Handover settings sections { type: "section", key: "liveAgentSettings" }, { type: "section", key: "chatwootSettings" }, { type: "section", key: "salesforceSettings" }, { type: "section", key: "genesysSettings" }, { type: "section", key: "eightByEightSettings" }, { type: "section", key: "ringCentralEngageSettings" }, { type: "section", key: "cancelSettings" }, { type: "section", key: "resolveOptions" }, { type: "section", key: "eventSettings" }, // Tool-specific sections { type: "section", key: "debugging" }, { type: "section", key: "advanced" }, ], appearance: { color: "white", textColor: "#252525", variant: "mini", }, function: async ({ cognigy, config, childConfigs, nodeId: thisNodeId }) => { var _a, _b, _c, _d, _e, _f, _g, _h; const { api, input } = cognigy; const { // Tool-specific fields to exclude from handover config toolId, description, parameters, debugMessage, condition } = config, // Rest is handover config handoverConfig = __rest(config, ["toolId", "description", "parameters", "debugMessage", "condition"]); const sessionState = await api.loadSessionState(); const toolCall = (_a = sessionState.lastToolCall) === null || _a === void 0 ? void 0 : _a.toolCall; const aiAgentJobNode = (_b = sessionState.lastToolCall) === null || _b === void 0 ? void 0 : _b.aiAgentJobNode; if (!(toolCall === null || toolCall === void 0 ? void 0 : toolCall.id)) { (_c = api.logDebugError) === null || _c === void 0 ? void 0 : _c.call(api, "UI__DEBUG_MODE__AI_AGENT_ANSWER__ERROR__MESSAGE"); } if (toolCall && aiAgentJobNode) { if (!((_d = api.checkThink) === null || _d === void 0 ? void 0 : _d.call(api, thisNodeId))) { const handoverReason = ((_f = (_e = toolCall === null || toolCall === void 0 ? void 0 : toolCall.function) === null || _e === void 0 ? void 0 : _e.arguments) === null || _f === void 0 ? void 0 : _f.handover_reason) || "Handover to human agent requested"; // Optional Debug Message if (debugMessage) { (_g = api.logDebugMessage) === null || _g === void 0 ? void 0 : _g.call(api, JSON.stringify({ handover_reason: handoverReason }, null, 2)); } // Execute handover using api.handoverV2() with only handover-specific config const handoverResult = await ((_h = api.handoverV2) === null || _h === void 0 ? void 0 : _h.call(api, { cognigy, config: handoverConfig, nodeId: thisNodeId, childConfigs, nodeType: "handoverToAgent", })); input.handover = handoverResult; // Add Tool Call Message to Transcript const toolCallTranscriptStep = { role: transcripts_1.TranscriptRole.ASSISTANT, type: transcripts_1.TranscriptEntryType.TOOL_CALL, source: "system", payload: Object.assign({ name: toolCall.function.name, id: toolCall.id, input: toolCall.function.arguments }, (toolCall.thoughtSignature && { thoughtSignature: toolCall.thoughtSignature })) }; await api.addTranscriptStep(toolCallTranscriptStep); // Determine tool answer content based on handover result let toolAnswerContent; if ((handoverResult === null || handoverResult === void 0 ? void 0 : handoverResult.status) === "error") { toolAnswerContent = `Handover to human agent failed. Error: ${(handoverResult === null || handoverResult === void 0 ? void 0 : handoverResult.error) || "Unknown error"}. Reason for handover: ${handoverReason}`; } else { toolAnswerContent = `Handover to human agent initiated successfully. Reason: ${handoverReason}`; } // Add Tool Answer Message to Transcript (includes error if any) const toolAnswer = { role: transcripts_1.TranscriptRole.TOOL, type: transcripts_1.TranscriptEntryType.TOOL_ANSWER, source: "system", payload: { toolCallId: toolCall.id, name: toolCall.function.name, content: toolAnswerContent, } }; await api.addTranscriptStep(toolAnswer); // Clear the last tool call from session state api.updateSessionStateValues({ lastToolCall: undefined }); // If there was an error, don't stop execution - let the AI Agent handle it if ((handoverResult === null || handoverResult === void 0 ? void 0 : handoverResult.status) === "error") { const { flow, node } = aiAgentJobNode; if (flow && node) { api.resetNextNodes(); await api.executeFlow({ flowNode: { flow, node, }, absorbContext: true, }); } return; } // Stop execution if sendOnQueueEvent is not enabled (same behavior as handoverV2) if (!handoverConfig.sendOnQueueEvent) { api.stopExecution(); } } else { throw new Error("Infinite Loop Detected"); } } } }); //# sourceMappingURL=handoverToHumanAgentTool.js.map