services/agent.service.js | getGeminiModel, callGemini, normaliseRequestedVnbName, extractVnbNameFromProblem, autoResolveVnbInputs (+24) |
services/vnb-monitor.service.js | normalizeOperatorName, isBnrFormat, isLikelySameOperator, extractBdewCode, extractCanonicalLookupPayload (+20) |
services/utility-report.service.js | ensureReportsDir, progressPath, loadProgress, saveProgress, validateVnbUniqueness (+16) |
services/in-memory-join.service.js | pad2, toIsoDate, parseDateFlexible, normalizeJoinKey, filterRowsByDate (+10) |
services/nbp-monitor.service.js | normalizeUnitType, getCapacityKWp, getAgeClass, resolveAlertLevel, computeKpi1 (+8) |
src/job-store.js | ensureDir, progressPath, resultPath, createJob, updateJob (+6) |
src/cya-data-retriever.js | normalizeText, normalizeLocationKey, extractPostalCode, pickNumber, pickDateText (+5) |
services/datasource-classifier.service.js | normalizeToken, normalizeKey, tokenize, uniq, inferValueKind (+3) |
services/mqtt-broker.service.js | sha256, stableStringify, calculatePayloadBytes, calculatePayloadHash, isControlTopic (+2) |
services/forecast-engine.service.js | toDateOnly, toNumber, createScheduleId, toLoadKwSeries, detectSeasonCapacityFactor (+1) |