UNPKG

n8n-nodes-explorium

Version:
82 lines 3.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logWrapper = exports.callMethodSync = exports.callMethodAsync = exports.logAiEvent = void 0; const n8n_workflow_1 = require("n8n-workflow"); function logAiEvent(executeFunctions, event, data) { try { executeFunctions.logAiEvent(event, data ? (0, n8n_workflow_1.jsonStringify)(data) : undefined); } catch (error) { executeFunctions.logger.debug(`Error logging AI event: ${event}`); } } exports.logAiEvent = logAiEvent; async function callMethodAsync(parameters) { try { return await parameters.method.call(this, ...parameters.arguments); } catch (e) { const connectedNode = parameters.executeFunctions.getNode(); const error = new n8n_workflow_1.NodeOperationError(connectedNode, e, { functionality: 'configuration-node', }); const metadata = (0, n8n_workflow_1.parseErrorMetadata)(error); parameters.executeFunctions.addOutputData(parameters.connectionType, parameters.currentNodeRunIndex, error, metadata); if (error.message) { if (!error.description) { error.description = error.message; } throw error; } throw new n8n_workflow_1.NodeOperationError(connectedNode, `Error on node "${connectedNode.name}" which is connected via input "${parameters.connectionType}"`, { functionality: 'configuration-node' }); } } exports.callMethodAsync = callMethodAsync; function callMethodSync(parameters) { try { return parameters.method.call(this, ...parameters.arguments); } catch (e) { const connectedNode = parameters.executeFunctions.getNode(); const error = new n8n_workflow_1.NodeOperationError(connectedNode, e); parameters.executeFunctions.addOutputData(parameters.connectionType, parameters.currentNodeRunIndex, error); throw new n8n_workflow_1.NodeOperationError(connectedNode, `Error on node "${connectedNode.name}" which is connected via input "${parameters.connectionType}"`, { functionality: 'configuration-node' }); } } exports.callMethodSync = callMethodSync; function logWrapper(originalInstance, executeFunctions) { return new Proxy(originalInstance, { get: (target, prop) => { let connectionType; if (prop === '_call' && '_call' in target) { return async (query) => { var _a; connectionType = "ai_tool"; const inputData = { query }; if ((_a = target.metadata) === null || _a === void 0 ? void 0 : _a.isFromToolkit) { inputData.tool = { name: target.name, description: target.description, }; } const { index } = executeFunctions.addInputData(connectionType, [[{ json: inputData }]]); const response = (await callMethodAsync.call(target, { executeFunctions, connectionType, currentNodeRunIndex: index, method: target[prop], arguments: [query], })); logAiEvent(executeFunctions, 'ai-tool-called', { ...inputData, response }); executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]); if (typeof response === 'string') return response; return JSON.stringify(response); }; } return target[prop]; }, }); } exports.logWrapper = logWrapper; //# sourceMappingURL=logWrapper.js.map