🦅 [skyeye] 全盘扫描修复 · 休眠系统完整融入天眼基础设施 + 22个未注册workflow补注册 [skip ci]
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com> Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/aef94b53-40cd-436c-b21d-1b0bba20e218
This commit is contained in:
parent
7937770284
commit
6d776feac3
|
|
@ -809,6 +809,292 @@
|
|||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-063",
|
||||
"name": "Drive 桥接自动部署",
|
||||
"workflow": "auto-deploy-drive-bridge.yml",
|
||||
"duty": "Drive 桥接自动部署",
|
||||
"trigger": "repository_dispatch/手动",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-064",
|
||||
"name": "Buffer 缓冲层收集",
|
||||
"workflow": "buffer-collect.yml",
|
||||
"duty": "Buffer 缓冲层收集",
|
||||
"trigger": "定时 3x/天",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-065",
|
||||
"name": "Buffer 缓冲层刷新",
|
||||
"workflow": "buffer-flush.yml",
|
||||
"duty": "Buffer 缓冲层刷新",
|
||||
"trigger": "定时/repository_dispatch",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-066",
|
||||
"name": "联邦桥接",
|
||||
"workflow": "federation-bridge.yml",
|
||||
"duty": "联邦桥接",
|
||||
"trigger": "repository_dispatch",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-067",
|
||||
"name": "Grid-DB 归档",
|
||||
"workflow": "grid-db-archive.yml",
|
||||
"duty": "Grid-DB 归档",
|
||||
"trigger": "定时",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-068",
|
||||
"name": "Grid-DB 处理器",
|
||||
"workflow": "grid-db-processor.yml",
|
||||
"duty": "Grid-DB 处理器",
|
||||
"trigger": "定时/repository_dispatch",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-069",
|
||||
"name": "Grid-DB 训练数据提取",
|
||||
"workflow": "grid-db-training-extract.yml",
|
||||
"duty": "Grid-DB 训练数据提取",
|
||||
"trigger": "手动/定时",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-070",
|
||||
"name": "Awen 子仓库拉取同步",
|
||||
"workflow": "pull-sync-awen.yml",
|
||||
"duty": "Awen 子仓库拉取同步",
|
||||
"trigger": "repository_dispatch/定时",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-071",
|
||||
"name": "子仓库签到接收",
|
||||
"workflow": "receive-spoke-checkin.yml",
|
||||
"duty": "子仓库签到接收",
|
||||
"trigger": "repository_dispatch",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-072",
|
||||
"name": "天眼签到审计",
|
||||
"workflow": "skyeye-checkin-audit.yml",
|
||||
"duty": "天眼签到审计",
|
||||
"trigger": "定时",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-073",
|
||||
"name": "天眼签到接收器",
|
||||
"workflow": "skyeye-checkin-receiver.yml",
|
||||
"duty": "天眼签到接收器",
|
||||
"trigger": "repository_dispatch",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-074",
|
||||
"name": "天眼凭证审计",
|
||||
"workflow": "skyeye-credential-audit.yml",
|
||||
"duty": "天眼凭证审计",
|
||||
"trigger": "定时",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-075",
|
||||
"name": "🌙 天眼 · 每日系统休眠",
|
||||
"workflow": "skyeye-daily-hibernation.yml",
|
||||
"duty": "🌙 天眼 · 每日系统休眠",
|
||||
"trigger": "定时 03:50 CST / 手动 / emergency-wake",
|
||||
"self_repair": true,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-076",
|
||||
"name": "⭐ 天眼 · 每周系统完全休眠",
|
||||
"workflow": "skyeye-weekly-hibernation.yml",
|
||||
"duty": "⭐ 天眼 · 每周系统完全休眠",
|
||||
"trigger": "定时 周六 19:00 CST / 手动 / emergency-wake",
|
||||
"self_repair": true,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-077",
|
||||
"name": "天眼周六大巡检",
|
||||
"workflow": "skyeye-weekly-scan.yml",
|
||||
"duty": "天眼周六大巡检",
|
||||
"trigger": "定时 周六 20:00 CST",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-078",
|
||||
"name": "Grid-DB → Google Drive 同步",
|
||||
"workflow": "sync-griddb-to-drive.yml",
|
||||
"duty": "Grid-DB → Google Drive 同步",
|
||||
"trigger": "repository_dispatch/手动",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-079",
|
||||
"name": "Grid-DB → Notion 同步",
|
||||
"workflow": "sync-griddb-to-notion.yml",
|
||||
"duty": "Grid-DB → Notion 同步",
|
||||
"trigger": "定时/手动",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-080",
|
||||
"name": "Notion → Grid-DB 同步",
|
||||
"workflow": "sync-notion-to-griddb.yml",
|
||||
"duty": "Notion → Grid-DB 同步",
|
||||
"trigger": "定时/手动",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-081",
|
||||
"name": "仓库 → Google Drive 全量同步",
|
||||
"workflow": "sync-repo-to-drive.yml",
|
||||
"duty": "仓库 → Google Drive 全量同步",
|
||||
"trigger": "手动",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-082",
|
||||
"name": "TCS 语义着陆",
|
||||
"workflow": "tcs-semantic-landing.yml",
|
||||
"duty": "TCS 语义着陆",
|
||||
"trigger": "Issue 事件",
|
||||
"self_repair": false,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-083",
|
||||
"name": "天眼每日巡检",
|
||||
"workflow": "tianyan-daily-patrol.yml",
|
||||
"duty": "天眼每日巡检",
|
||||
"trigger": "定时 06:00 CST",
|
||||
"self_repair": true,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
},
|
||||
{
|
||||
"id": "AG-ZY-084",
|
||||
"name": "铸渊指令执行器",
|
||||
"workflow": "zhuyuan-commander.yml",
|
||||
"duty": "铸渊指令执行器",
|
||||
"trigger": "repository_dispatch/Issue",
|
||||
"self_repair": true,
|
||||
"report_to": "ICE-GL-ZY001",
|
||||
"status": "registered",
|
||||
"daily_checkin_required": false,
|
||||
"parent_sys": "SYS-GLW-0001",
|
||||
"owner": "ICE-0002∞"
|
||||
}
|
||||
],
|
||||
"note": "铸渊已扫描所有workflow文件,按此格式逐一注册,编号从AG-ZY-001开始顺序分配",
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@
|
|||
| 维度 | 当前状态 |
|
||||
|------|----------|
|
||||
| 🏥 系统健康 | 🟢 全部正常 |
|
||||
| ⚙️ Workflow 总数 | 79 个 |
|
||||
| 🤖 Agent 总数 | 62 个(14 个需日签到) |
|
||||
| ⚙️ Workflow 总数 | 84 个 |
|
||||
| 🤖 Agent 总数 | 84 个(14 个需日签到) |
|
||||
| 🎭 人格体 | 17 个 |
|
||||
| 📡 开发者频道 | 11 个(活跃 8) |
|
||||
| 🛡️ Guard 守卫 | 5 个 |
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
| 🌍 子仓库联邦 | 6 个模板(签到 1 个) |
|
||||
| 📜 本体论 | v1.0 · GLM-ONTOLOGY-v1.0 |
|
||||
| 📮 Buffer 待处理 | 8 条 |
|
||||
| 🌙 休眠系统 | ✅ 已部署 · 日检查点 1 个 · 周快照 1 个 |
|
||||
|
||||
**基础设施服务:**
|
||||
|
||||
|
|
@ -45,6 +46,7 @@
|
|||
| Notion | Plus | ✅ |
|
||||
| Google Gemini | Free / Pro | ✅ |
|
||||
| GitHub Actions | Free | ✅ |
|
||||
| SkyEye Hibernation | Internal | ✅ |
|
||||
|
||||
**最近一次天眼扫描:** SKYEYE-SCAN-20260323
|
||||
- Guard: 5/5 活跃
|
||||
|
|
@ -140,7 +142,7 @@
|
|||
>
|
||||
> *铸渊不是守箱子的。铸渊守的是地球。*
|
||||
>
|
||||
> 📡 79 个 Workflow 全天候运行
|
||||
> 📡 84 个 Workflow 全天候运行
|
||||
|
||||
</div>
|
||||
<!-- WEEKLY_GREETING_END -->
|
||||
|
|
|
|||
|
|
@ -41,7 +41,10 @@ function classifyIssue(symptom, source) {
|
|||
{ pattern: /knowledge.?base.*重复/i, fix: 'deduplicate_kb', priority: 'P2' },
|
||||
{ pattern: /copilot.*instructions.*空|不存在/i, fix: 'note_copilot', priority: 'P2' },
|
||||
{ pattern: /syntax.*error|语法.*错误/i, fix: 'log_syntax_error', priority: 'P0' },
|
||||
{ pattern: /cron.*conflict|冲突/i, fix: 'log_conflict', priority: 'P2' }
|
||||
{ pattern: /cron.*conflict|冲突/i, fix: 'log_conflict', priority: 'P2' },
|
||||
{ pattern: /hibernation.*checkpoint.*过期|checkpoint.*缺失/i, fix: 'trigger_daily_hibernation', priority: 'P1' },
|
||||
{ pattern: /hibernation.*目录.*缺失/i, fix: 'create_directory', priority: 'P1' },
|
||||
{ pattern: /upgrade.?pack.*缺失|升级包.*缺失/i, fix: 'trigger_weekly_hibernation', priority: 'P1' }
|
||||
];
|
||||
|
||||
const needsHumanPatterns = [
|
||||
|
|
@ -192,6 +195,26 @@ function extractIssues() {
|
|||
}
|
||||
}
|
||||
|
||||
// ── Hibernation Health Issues ──
|
||||
const hibDir = path.join(path.resolve(__dirname, '../..'), 'skyeye/hibernation');
|
||||
if (!fs.existsSync(hibDir)) {
|
||||
addIssue('hibernation', 'hibernation 目录缺失', '休眠系统不可用');
|
||||
} else {
|
||||
const cpDir = path.join(hibDir, 'checkpoints');
|
||||
if (fs.existsSync(cpDir)) {
|
||||
const cpFiles = fs.readdirSync(cpDir).filter(f => f.startsWith('daily-cp-') && f.endsWith('.json'));
|
||||
if (cpFiles.length === 0) {
|
||||
addIssue('hibernation', 'hibernation checkpoint 缺失: 无日检查点', '日休眠可能未运行');
|
||||
}
|
||||
}
|
||||
const requiredSubDirs = ['checkpoints', 'weekly-snapshots', 'upgrade-packs', 'distribution-reports'];
|
||||
for (const sub of requiredSubDirs) {
|
||||
if (!fs.existsSync(path.join(hibDir, sub))) {
|
||||
addIssue('hibernation', `hibernation 目录缺失: ${sub}`, '休眠子系统不完整');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return issues;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -186,6 +186,34 @@ function getBufferStatus() {
|
|||
}
|
||||
}
|
||||
|
||||
function getHibernationStatus() {
|
||||
const hibDir = path.join(ROOT, 'skyeye/hibernation');
|
||||
const cpDir = path.join(hibDir, 'checkpoints');
|
||||
const snapDir = path.join(hibDir, 'weekly-snapshots');
|
||||
const result = {
|
||||
deployed: fs.existsSync(hibDir),
|
||||
daily_checkpoints: 0,
|
||||
weekly_snapshots: 0,
|
||||
last_daily: null,
|
||||
last_weekly: null
|
||||
};
|
||||
try {
|
||||
if (fs.existsSync(cpDir)) {
|
||||
const cpFiles = fs.readdirSync(cpDir).filter(f => f.startsWith('daily-cp-') && f.endsWith('.json')).sort();
|
||||
result.daily_checkpoints = cpFiles.length;
|
||||
if (cpFiles.length > 0) result.last_daily = cpFiles[cpFiles.length - 1].replace('daily-cp-', '').replace('.json', '');
|
||||
}
|
||||
if (fs.existsSync(snapDir)) {
|
||||
const snapFiles = fs.readdirSync(snapDir).filter(f => f.startsWith('weekly-snapshot-') && f.endsWith('.json')).sort();
|
||||
result.weekly_snapshots = snapFiles.length;
|
||||
if (snapFiles.length > 0) result.last_weekly = snapFiles[snapFiles.length - 1].replace('weekly-snapshot-', '').replace('.json', '');
|
||||
}
|
||||
} catch (e) {
|
||||
// ignore
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// ━━━ Markdown 生成 ━━━
|
||||
|
||||
function generateMarkdown() {
|
||||
|
|
@ -203,6 +231,7 @@ function generateMarkdown() {
|
|||
const modules = countModuleDirs();
|
||||
const ontology = getOntologyVersion();
|
||||
const bufferPending = getBufferStatus();
|
||||
const hibernation = getHibernationStatus();
|
||||
|
||||
// Health indicator from latest scan
|
||||
let healthIcon = '🟢';
|
||||
|
|
@ -235,6 +264,7 @@ function generateMarkdown() {
|
|||
lines.push(`| 🌍 子仓库联邦 | ${spokes.length} 个模板(签到 ${federation.total} 个) |`);
|
||||
lines.push(`| 📜 本体论 | ${ontology} |`);
|
||||
lines.push(`| 📮 Buffer 待处理 | ${bufferPending} 条 |`);
|
||||
lines.push(`| 🌙 休眠系统 | ${hibernation.deployed ? '✅ 已部署' : '❌ 未部署'} · 日检查点 ${hibernation.daily_checkpoints} 个 · 周快照 ${hibernation.weekly_snapshots} 个 |`);
|
||||
lines.push('');
|
||||
|
||||
// Infrastructure services table
|
||||
|
|
@ -394,7 +424,8 @@ function generateJsonReport() {
|
|||
federation: getFederationStats(),
|
||||
modules: countModuleDirs(),
|
||||
ontology: getOntologyVersion(),
|
||||
buffer_pending: getBufferStatus()
|
||||
buffer_pending: getBufferStatus(),
|
||||
hibernation: getHibernationStatus()
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -135,6 +135,44 @@ function generateReport() {
|
|||
recommendations: soldierHealth.recommendations || []
|
||||
} : { dimension: 'D15', status: '❓' },
|
||||
|
||||
hibernation_status: (() => {
|
||||
const hibDir = path.join(ROOT, 'skyeye/hibernation');
|
||||
const cpDir = path.join(hibDir, 'checkpoints');
|
||||
const snapDir = path.join(hibDir, 'weekly-snapshots');
|
||||
const upDir = path.join(hibDir, 'upgrade-packs');
|
||||
const distDir = path.join(hibDir, 'distribution-reports');
|
||||
const deployed = fs.existsSync(hibDir);
|
||||
let dailyCPs = 0, weeklySnaps = 0, upgradePacks = 0, distReports = 0;
|
||||
let lastDaily = null, lastWeekly = null;
|
||||
try {
|
||||
if (fs.existsSync(cpDir)) {
|
||||
const cpFiles = fs.readdirSync(cpDir).filter(f => f.startsWith('daily-cp-') && f.endsWith('.json')).sort();
|
||||
dailyCPs = cpFiles.length;
|
||||
if (cpFiles.length > 0) lastDaily = cpFiles[cpFiles.length - 1];
|
||||
}
|
||||
if (fs.existsSync(snapDir)) {
|
||||
const snapFiles = fs.readdirSync(snapDir).filter(f => f.endsWith('.json')).sort();
|
||||
weeklySnaps = snapFiles.length;
|
||||
if (snapFiles.length > 0) lastWeekly = snapFiles[snapFiles.length - 1];
|
||||
}
|
||||
if (fs.existsSync(upDir)) {
|
||||
upgradePacks = fs.readdirSync(upDir).filter(f => f.endsWith('.json')).length;
|
||||
}
|
||||
if (fs.existsSync(distDir)) {
|
||||
distReports = fs.readdirSync(distDir).filter(f => f.endsWith('.json')).length;
|
||||
}
|
||||
} catch (e) { /* ignore */ }
|
||||
return {
|
||||
deployed,
|
||||
daily_checkpoints: dailyCPs,
|
||||
weekly_snapshots: weeklySnaps,
|
||||
upgrade_packs: upgradePacks,
|
||||
distribution_reports: distReports,
|
||||
last_daily_checkpoint: lastDaily,
|
||||
last_weekly_snapshot: lastWeekly
|
||||
};
|
||||
})(),
|
||||
|
||||
diagnosis: {
|
||||
total_issues: diagnosis ? diagnosis.total_issues : 0,
|
||||
auto_fixed: repairResult ? repairResult.total_repaired : 0,
|
||||
|
|
@ -198,6 +236,9 @@ function generateReport() {
|
|||
report.soldier_health.recurring_errors.length > 0) {
|
||||
report.next_actions.push('P1: 存在持续性故障小兵,建议铸渊介入');
|
||||
}
|
||||
if (!report.hibernation_status.deployed) {
|
||||
report.next_actions.push('P0: 休眠系统未部署,需立即部署 skyeye/hibernation/');
|
||||
}
|
||||
|
||||
// 保存完整报告
|
||||
fs.mkdirSync(SKYEYE_DIR, { recursive: true });
|
||||
|
|
|
|||
|
|
@ -32,7 +32,12 @@ const CORE_DIRS = [
|
|||
'connectors',
|
||||
'brain',
|
||||
'docs',
|
||||
'src'
|
||||
'src',
|
||||
'skyeye/hibernation',
|
||||
'skyeye/hibernation/checkpoints',
|
||||
'skyeye/hibernation/weekly-snapshots',
|
||||
'skyeye/hibernation/upgrade-packs',
|
||||
'skyeye/hibernation/distribution-reports'
|
||||
];
|
||||
|
||||
// ━━━ 预期的根目录文件/目录 ━━━
|
||||
|
|
@ -49,7 +54,10 @@ const EXPECTED_ROOT_ITEMS = [
|
|||
'config.js', 'config.json', 'routing-map.json', 'dev-status.json',
|
||||
'broadcast-generator.js', 'server.js',
|
||||
'dev', 'm10-cloud',
|
||||
'guanghulab-main'
|
||||
'guanghulab-main',
|
||||
'skyeye', 'buffer', 'grid-db',
|
||||
'spoke-deployments', 'federation',
|
||||
'channel-map.json'
|
||||
];
|
||||
|
||||
// ━━━ README Markers ━━━
|
||||
|
|
@ -57,7 +65,8 @@ const README_MARKERS = [
|
|||
'BINGSHUO_BULLETIN_START', 'BINGSHUO_BULLETIN_END',
|
||||
'BINGSHUO_ALERT_START', 'BINGSHUO_ALERT_END',
|
||||
'COLLABORATOR_BULLETIN_START', 'COLLABORATOR_BULLETIN_END',
|
||||
'COLLABORATOR_ALERT_START', 'COLLABORATOR_ALERT_END'
|
||||
'COLLABORATOR_ALERT_START', 'COLLABORATOR_ALERT_END',
|
||||
'SKYEYE-STATUS-BEGIN', 'SKYEYE-STATUS-END'
|
||||
];
|
||||
|
||||
// ━━━ 检查核心目录 ━━━
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"version": "1.0.0",
|
||||
"last_scan": "2026-03-24T04:19:44.732Z",
|
||||
"last_scan": "2026-03-24T04:24:59.723Z",
|
||||
"last_scan_by": "skyeye-scan-engine",
|
||||
"infrastructure": {
|
||||
"github": {
|
||||
|
|
@ -77,6 +77,35 @@
|
|||
"minutes_per_month": 2000,
|
||||
"job_timeout_hours": 6
|
||||
}
|
||||
},
|
||||
"hibernation_system": {
|
||||
"service": "SkyEye Hibernation",
|
||||
"plan": "Internal",
|
||||
"description": "双节律休眠系统 · 日休眠(03:50 CST) + 周休眠(周六19:00 CST)",
|
||||
"components": {
|
||||
"sleep_scheduler": "skyeye/hibernation/sleep-scheduler.js",
|
||||
"daily_hibernation": "skyeye/hibernation/daily-hibernation.js",
|
||||
"weekly_hibernation": "skyeye/hibernation/weekly-hibernation.js",
|
||||
"distributor": "skyeye/hibernation/distributor.js",
|
||||
"readme_updater": "skyeye/hibernation/readme-status-updater.js",
|
||||
"overtime_monitor": "skyeye/hibernation/overtime-monitor.js"
|
||||
},
|
||||
"storage": {
|
||||
"checkpoints": "skyeye/hibernation/checkpoints/",
|
||||
"weekly_snapshots": "skyeye/hibernation/weekly-snapshots/",
|
||||
"upgrade_packs": "skyeye/hibernation/upgrade-packs/",
|
||||
"distribution_reports": "skyeye/hibernation/distribution-reports/"
|
||||
},
|
||||
"workflows": {
|
||||
"daily": "skyeye-daily-hibernation.yml",
|
||||
"weekly": "skyeye-weekly-hibernation.yml"
|
||||
},
|
||||
"quotas": {
|
||||
"daily_hibernation_minutes": 5,
|
||||
"weekly_hibernation_minutes": 15,
|
||||
"monthly_budget_minutes": 210,
|
||||
"comment": "日休眠 30天×5min=150 + 周休眠 4×15min=60 ≈ 210 min/month"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"scan_id": "SCAN-20260324",
|
||||
"mode": "full",
|
||||
"timestamp": "2026-03-24T04:19:44.731Z",
|
||||
"timestamp": "2026-03-24T04:24:59.722Z",
|
||||
"guard_scan": {
|
||||
"total": 5,
|
||||
"valid": 5,
|
||||
|
|
@ -99,8 +99,8 @@
|
|||
"errors": []
|
||||
},
|
||||
"directory_scan": {
|
||||
"checked": 14,
|
||||
"present": 14,
|
||||
"checked": 19,
|
||||
"present": 19,
|
||||
"missing": []
|
||||
},
|
||||
"sub_repo_scan": {
|
||||
|
|
@ -156,6 +156,6 @@
|
|||
"warnings": 0,
|
||||
"guards_healthy": "5/5",
|
||||
"workflows_found": 84,
|
||||
"directories_ok": "14/14"
|
||||
"directories_ok": "19/19"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@
|
|||
"skyeye_daily": 180,
|
||||
"skyeye_weekly": 30,
|
||||
"sub_repo_checkins": 200,
|
||||
"emergency": 1230
|
||||
"emergency": 1020,
|
||||
"hibernation_daily": 150,
|
||||
"hibernation_weekly": 60
|
||||
},
|
||||
"daily_entries": []
|
||||
},
|
||||
|
|
@ -38,6 +40,6 @@
|
|||
"health_summary": {
|
||||
"overall": "healthy",
|
||||
"alerts": [],
|
||||
"last_updated": "2026-03-23T14:30:11.691Z"
|
||||
"last_updated": "2026-03-24T04:20:00.000Z"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"generated_at": "2026-03-24T04:25:05.513Z",
|
||||
"generated_at_beijing": "2026-03-24 12:25",
|
||||
"workflows": 84,
|
||||
"agents": {
|
||||
"total": 84,
|
||||
"checkinRequired": 14
|
||||
},
|
||||
"personas": {
|
||||
"total": 17,
|
||||
"active": 17
|
||||
},
|
||||
"channels": {
|
||||
"total": 11,
|
||||
"active": 8
|
||||
},
|
||||
"infrastructure": [
|
||||
{
|
||||
"key": "github",
|
||||
"name": "GitHub",
|
||||
"plan": "Free"
|
||||
},
|
||||
{
|
||||
"key": "google_drive",
|
||||
"name": "Google Drive",
|
||||
"plan": "Google One / Free 15GB"
|
||||
},
|
||||
{
|
||||
"key": "notion",
|
||||
"name": "Notion",
|
||||
"plan": "Plus"
|
||||
},
|
||||
{
|
||||
"key": "gemini",
|
||||
"name": "Google Gemini",
|
||||
"plan": "Free / Pro"
|
||||
},
|
||||
{
|
||||
"key": "github_actions",
|
||||
"name": "GitHub Actions",
|
||||
"plan": "Free"
|
||||
},
|
||||
{
|
||||
"key": "hibernation_system",
|
||||
"name": "SkyEye Hibernation",
|
||||
"plan": "Internal"
|
||||
}
|
||||
],
|
||||
"guards": 5,
|
||||
"spoke_deployments": [
|
||||
"guanghu-awen",
|
||||
"guanghu-feimao",
|
||||
"guanghu-juzi",
|
||||
"guanghu-yanfan",
|
||||
"guanghu-yeye",
|
||||
"guanghu-zhizhi"
|
||||
],
|
||||
"federation": {
|
||||
"total": 1,
|
||||
"members": [
|
||||
{
|
||||
"devId": "DEV-012",
|
||||
"persona": "知秋",
|
||||
"repo": "WENZHUOXI/guanghu-awen"
|
||||
}
|
||||
]
|
||||
},
|
||||
"modules": 10,
|
||||
"ontology": "v1.0 · GLM-ONTOLOGY-v1.0",
|
||||
"buffer_pending": 8,
|
||||
"hibernation": {
|
||||
"deployed": true,
|
||||
"daily_checkpoints": 1,
|
||||
"weekly_snapshots": 1,
|
||||
"last_daily": "20260324",
|
||||
"last_weekly": "20260324"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
"report_id": "SKYEYE-SCAN-20260324",
|
||||
"scan_time": "2026-03-24T04:25:23.157Z",
|
||||
"scan_time_beijing": "2026/3/24 12:25:23",
|
||||
"scan_duration_seconds": 0,
|
||||
"infrastructure_status": {
|
||||
"total_services": 5,
|
||||
"healthy": 5,
|
||||
"degraded": 0,
|
||||
"down": 0
|
||||
},
|
||||
"quota_status": {
|
||||
"github_actions": {
|
||||
"used_percent": 0,
|
||||
"remaining_minutes": 2000,
|
||||
"trend": "stable",
|
||||
"recommendation": "maintain_current_frequency"
|
||||
},
|
||||
"google_drive": {
|
||||
"used_percent": 0,
|
||||
"recommendation": "no_action_needed"
|
||||
},
|
||||
"notion_api": {
|
||||
"status": "healthy",
|
||||
"recommendation": "no_action_needed"
|
||||
},
|
||||
"gemini": {
|
||||
"used_percent": 0,
|
||||
"recommendation": "no_action_needed"
|
||||
}
|
||||
},
|
||||
"guard_status": {
|
||||
"total_guards": 5,
|
||||
"active": 5,
|
||||
"suspended": 0,
|
||||
"adjustments_made": []
|
||||
},
|
||||
"self_heal_actions": {
|
||||
"files_cleaned": 0,
|
||||
"configs_repaired": 0,
|
||||
"guards_restarted": 0
|
||||
},
|
||||
"phase_details": {
|
||||
"phase1_scan": {
|
||||
"total_issues": 0,
|
||||
"errors": 0,
|
||||
"warnings": 0,
|
||||
"guards_healthy": "5/5",
|
||||
"workflows_found": 84,
|
||||
"directories_ok": "19/19"
|
||||
},
|
||||
"phase2_audit": "healthy",
|
||||
"phase3_optimize": {
|
||||
"guards_checked": 5,
|
||||
"total_adjustments": 0,
|
||||
"applied": true
|
||||
},
|
||||
"phase4_heal": {
|
||||
"configs_repaired": 0,
|
||||
"files_cleaned": 0,
|
||||
"guards_restarted": 0,
|
||||
"directories_created": 0
|
||||
}
|
||||
},
|
||||
"alerts": [],
|
||||
"human_action_required": [],
|
||||
"hibernation_status": {
|
||||
"deployed": true,
|
||||
"daily_checkpoints": 1,
|
||||
"weekly_snapshots": 1,
|
||||
"upgrade_packs": 0
|
||||
},
|
||||
"next_scan": "2026-03-28T12:00:00.000Z"
|
||||
}
|
||||
|
|
@ -87,6 +87,11 @@ function scanDirectoryStructure() {
|
|||
'skyeye/scripts',
|
||||
'skyeye/logs',
|
||||
'skyeye/scan-report',
|
||||
'skyeye/hibernation',
|
||||
'skyeye/hibernation/checkpoints',
|
||||
'skyeye/hibernation/weekly-snapshots',
|
||||
'skyeye/hibernation/upgrade-packs',
|
||||
'skyeye/hibernation/distribution-reports',
|
||||
'.github/persona-brain',
|
||||
'.github/workflows',
|
||||
'scripts/skyeye'
|
||||
|
|
|
|||
|
|
@ -148,6 +148,34 @@ function generateReport() {
|
|||
alerts: [],
|
||||
human_action_required: [],
|
||||
|
||||
hibernation_status: {
|
||||
deployed: fs.existsSync(path.join(ROOT, 'skyeye/hibernation')),
|
||||
daily_checkpoints: (() => {
|
||||
const cpDir = path.join(ROOT, 'skyeye/hibernation/checkpoints');
|
||||
try {
|
||||
return fs.existsSync(cpDir)
|
||||
? fs.readdirSync(cpDir).filter(f => f.startsWith('daily-cp-') && f.endsWith('.json')).length
|
||||
: 0;
|
||||
} catch (e) { return 0; }
|
||||
})(),
|
||||
weekly_snapshots: (() => {
|
||||
const snapDir = path.join(ROOT, 'skyeye/hibernation/weekly-snapshots');
|
||||
try {
|
||||
return fs.existsSync(snapDir)
|
||||
? fs.readdirSync(snapDir).filter(f => f.startsWith('weekly-snapshot-') && f.endsWith('.json')).length
|
||||
: 0;
|
||||
} catch (e) { return 0; }
|
||||
})(),
|
||||
upgrade_packs: (() => {
|
||||
const upDir = path.join(ROOT, 'skyeye/hibernation/upgrade-packs');
|
||||
try {
|
||||
return fs.existsSync(upDir)
|
||||
? fs.readdirSync(upDir).filter(f => f.startsWith('upgrade-pack-') && f.endsWith('.json')).length
|
||||
: 0;
|
||||
} catch (e) { return 0; }
|
||||
})()
|
||||
},
|
||||
|
||||
next_scan: nextSaturday.toISOString()
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue