git-subtree-dir: coordenador git-subtree-mainline:facbe2e340git-subtree-split:ce7af94d55
32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
// @requires fallback.js
|
|
return $input.all().map((item) => {
|
|
const data = item.json;
|
|
if (data.resolucao === 'cache' && data.memory) {
|
|
const m = data.memory;
|
|
const isFallback = m.ai_classification === 'AI_FALLBACK';
|
|
return {
|
|
json: {
|
|
...data,
|
|
aiClassification: {
|
|
classification: m.ai_classification,
|
|
actionable_today: m.ai_classification === 'ACTIONABLE_NOW' || m.ai_classification === 'UNASSIGNED_ACTIONABLE',
|
|
confidence: Number(m.ai_confidence || 0),
|
|
blocker_type: m.blocker_type || null,
|
|
waiting_for: m.waiting_for || null,
|
|
next_action: m.next_action || 'Revisar chamado',
|
|
suggested_action_type: 'technical_action',
|
|
business_risk: 'medium',
|
|
reason: m.last_ai_reason || 'Classificacao reaproveitada do cache.',
|
|
evidence: [],
|
|
// Precisa refletir de verdade o que foi cacheado -- um AI_FALLBACK cacheado
|
|
// continua sendo fallback (senao a politica de elegibilidade em cooldown.js
|
|
// nao aplicaria a exclusao/override certos numa segunda execucao com cache).
|
|
is_fallback: isFallback,
|
|
fallback_reason: isFallback ? 'cached_ai_fallback' : null,
|
|
},
|
|
},
|
|
};
|
|
}
|
|
return { json: { ...data, aiClassification: buildFallbackClassification('ai_max_candidates_cap') } };
|
|
});
|