n8n/packages/@n8n/instance-ai/evaluations/binaryChecks/checks/memory-properly-connected.ts
Benjamin Schroth c961849226
feat(ai-builder): Add sub-agent evaluation harness with binary checks (no-changelog) (#28289)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 07:50:46 +00:00

28 lines
964 B
TypeScript

import type { BinaryCheck } from '../types';
import { collectSourcesByConnectionType } from '../utils';
function isMemoryNode(type: string): boolean {
const shortName = type.split('.').pop() ?? '';
return shortName.toLowerCase().includes('memory');
}
export const memoryProperlyConnected: BinaryCheck = {
name: 'memory_properly_connected',
description: 'Memory nodes are properly connected to a parent node',
kind: 'deterministic',
run(workflow) {
const nodes = (workflow.nodes ?? []).filter((n) => isMemoryNode(n.type));
if (nodes.length === 0) return { pass: true };
const connectedMemory = collectSourcesByConnectionType(workflow.connections ?? {}, 'ai_memory');
const disconnected = nodes.filter((n) => !connectedMemory.has(n.name)).map((n) => n.name);
return {
pass: disconnected.length === 0,
...(disconnected.length > 0
? { comment: `Memory node(s) not connected to parent: ${disconnected.join(', ')}` }
: {}),
};
},
};