guanghulab/scripts/agents/balance-checker.js
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

77 lines
2.4 KiB
JavaScript

// scripts/agents/balance-checker.js
// Balance Checker · 天平校验器
// ZY-P1-TWIN-003 · Phase 1 · Twin Balance Agent
// 版权:国作登字-2026-A-00037559
'use strict';
/**
* 检查双子平衡状态 · 天平是否倾斜
* @param {{ left: { composite: number }, right: { composite: number }, balance: number }} mergeResult
* @returns {{ balanced: boolean, balance: number, drift: number, alert: null|object }}
*/
function check(mergeResult) {
const { left, right, balance } = mergeResult;
const drift = Math.round(Math.abs(left.composite - right.composite) * 10000) / 10000;
// 天平完全平衡
if (balance >= 1.0) {
return { balanced: true, balance, drift: 0, alert: null };
}
// 天平倾斜 — 生成告警
const laggingSide = left.composite < right.composite ? 'left (EXE-Engine)' : 'right (Grid-DB)';
const leadingSide = left.composite >= right.composite ? 'left (EXE-Engine)' : 'right (Grid-DB)';
const deficit = drift;
let level;
if (drift < 0.05) {
level = 'low';
} else if (drift < 0.15) {
level = 'medium';
} else {
level = 'high';
}
const recommendations = {
low: '轻微偏差,建议关注但无需立即处理',
medium: '中等偏差,建议加强落后侧开发或修复测试',
high: '严重偏差,需要立即介入,可能存在架构问题'
};
return {
balanced: false,
balance,
drift,
alert: {
level,
laggingSide,
leadingSide,
deficit,
recommendation: recommendations[level]
}
};
}
// ── CLI 入口 ─────────────────────────────────────────────────────────────
if (require.main === module) {
const { collectBoth } = require('./twin-collector');
const { merge } = require('./twin-merge');
console.log('🔍 Balance Checker · 天平校验\n');
const data = collectBoth();
const merged = merge(data.left, data.right);
const result = check(merged);
if (result.balanced) {
console.log(' ✅ 双子天平完全平衡');
} else {
console.log(` ⚠️ 偏差等级: ${result.alert.level}`);
console.log(` 📉 落后侧: ${result.alert.laggingSide}`);
console.log(` 📊 偏差值: ${result.drift}`);
console.log(` 💡 建议: ${result.alert.recommendation}`);
}
}
module.exports = { check };