n8n-nodes-explorium
Version:
Explorium MCP node for n8n
82 lines • 3.82 kB
JavaScript
;
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