n8n
Version:
n8n Workflow Automation Tool
67 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toolIdentifiersFromConfig = toolIdentifiersFromConfig;
exports.skillIdentifiersFromConfig = skillIdentifiersFromConfig;
exports.taskIdentifiersFromConfig = taskIdentifiersFromConfig;
exports.collectBuilderConfigDiffEvents = collectBuilderConfigDiffEvents;
const telemetry_1 = require("@n8n/telemetry");
function toolIdentifiersFromConfig(config) {
return (config?.tools ?? [])
.map((ref) => {
if (ref.type === 'custom')
return ref.id ?? '';
if (ref.type === 'workflow')
return ref.name ?? ref.workflow ?? '';
return ref.name ?? ref.node?.nodeType ?? '';
})
.filter(Boolean)
.sort();
}
function skillIdentifiersFromConfig(config) {
return (config?.skills ?? [])
.map((ref) => ref.id)
.filter(Boolean)
.sort();
}
function taskIdentifiersFromConfig(config) {
return Array.from(new Set((config?.tasks ?? []).map((ref) => ref.id).filter(Boolean))).sort();
}
function collectBuilderConfigDiffEvents(oldConfig, newConfig) {
const events = [];
const previousTools = toolIdentifiersFromConfig(oldConfig);
const currentTools = toolIdentifiersFromConfig(newConfig);
const addedTools = currentTools.filter((tool) => !previousTools.includes(tool));
for (const toolAdded of addedTools) {
events.push({
entry: telemetry_1.TELEMETRY_EVENT.AGENTS.BUILDER_ADDED_TOOLS,
properties: { tool_added: toolAdded, tools: currentTools },
});
}
const previousSkills = skillIdentifiersFromConfig(oldConfig);
const currentSkills = skillIdentifiersFromConfig(newConfig);
const addedSkills = currentSkills.filter((skill) => !previousSkills.includes(skill));
for (const skillAdded of addedSkills) {
events.push({
entry: telemetry_1.TELEMETRY_EVENT.AGENTS.BUILDER_ADDED_SKILLS,
properties: { skill_added: skillAdded, skills: currentSkills },
});
}
const previousTasks = taskIdentifiersFromConfig(oldConfig);
const currentTasks = taskIdentifiersFromConfig(newConfig);
const addedTasks = currentTasks.filter((task) => !previousTasks.includes(task));
for (const taskAdded of addedTasks) {
events.push({
entry: telemetry_1.TELEMETRY_EVENT.AGENTS.BUILDER_ADDED_TASKS,
properties: { task_added: taskAdded, tasks: currentTasks },
});
}
const removedTasks = previousTasks.filter((task) => !currentTasks.includes(task));
for (const taskRemoved of removedTasks) {
events.push({
entry: telemetry_1.TELEMETRY_EVENT.AGENTS.BUILDER_REMOVED_TASKS,
properties: { task_removed: taskRemoved, tasks: currentTasks },
});
}
return events;
}
//# sourceMappingURL=builder-config-telemetry.js.map