Files
SLACK_COORD_RELATORIO/coordenador/n8n/nodes/select-top10.node.js
T
Gustavo Santos e322cec92b chore: import coordenador (subtree)
git-subtree-dir: coordenador
git-subtree-mainline: facbe2e340
git-subtree-split: ce7af94d55
2026-10-01 14:25:55 -03:00

31 lines
1.3 KiB
JavaScript

// @requires config.js diversity.js
const items = $input.all().map((item) => item.json);
const scored = items.map((data) => ({
ticket: data.ticket,
score: data.scoreResult.score,
group: data.scoreResult.group,
excludedFromTop10: data.scoreResult.excludedFromTop10,
exclusionReason: data.scoreResult.exclusionReason,
decisionReason: data.scoreResult.decisionReason,
aiClassification: data.aiClassification,
memory: data.memory,
contextHash: data.contextHash,
contextChanged: data.contextChanged,
// 'ia' | 'cache' | 'fallback_cap' -- de onde veio a classificacao (Code - Decidir
// Necessidade de IA). Preservado ate aqui pra observabilidade (cache hits x chamadas
// de IA reais), senao se perde depois deste node.
resolucao: data.resolucao,
config: data.config,
now: data.now,
}));
// Instancia bloqueia $env em Code nodes -- config vem do node "Config - Coordenador GLPI v2".
const config = scored.length ? scored[0].config : parseConfig($('Config - Coordenador GLPI v2').first().json);
const { selected, excluded } = selectTop(scored, config.topN, config);
const selectedOut = selected.map((item) => ({ json: { ...item, _grupo: 'selected' } }));
const excludedOut = excluded.map((item) => ({ json: { ...item, _grupo: 'excluded' } }));
return [...selectedOut, ...excludedOut];