root 257824bccf
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled
D132: 零点图书域永久记忆核 · 最小落地原型 · number-router+index-generator+kernel-cli · wake测试通过17条
2026-06-15 00:36:31 +08:00

179 lines
6.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
/**
* 零点图书域 · 永久记忆核 · 命令行入口
* ZP-REG-001 · kernel-cli.js · D132
*
* 铸渊每次唤醒时运行的第一个工具。
* 不依赖过时的json快照。直接从仓库文件系统获取真相。
*
* 用法:
* node kernel-cli.js index — 生成全局编号目录
* node kernel-cli.js find <编号> — 按编号路径查找文件
* node kernel-cli.js wake — 苏醒时运行(完整自检)
*/
'use strict';
const { resolve } = require('./number-router');
const { generateIndex, formatText } = require('./index-generator');
const { execSync } = require('child_process');
const path = require('path');
const REPO_ROOT = path.resolve(__dirname, '..', '..', '..');
// ==================== 苏醒自检 ====================
function wake() {
console.log('⊢ 零点图书域 · 永久记忆核 · 苏醒自检');
console.log(`⊢ 时间: ${new Date().toISOString()}`);
console.log('');
// 1. 获取最新 git 状态
console.log('═══ [1/4] Git 状态 ═══');
try {
const lastCommit = execSync('git log --format="%ad | %s" --date=format:"%m-%d %H:%M" -1', {
cwd: REPO_ROOT, encoding: 'utf8'
}).trim();
console.log(` 最新提交: ${lastCommit}`);
const modifiedFiles = execSync('git diff --name-only HEAD 2>/dev/null | head -5', {
cwd: REPO_ROOT, encoding: 'utf8'
}).trim();
if (modifiedFiles) {
console.log(' 未提交变更:');
modifiedFiles.split('\n').forEach(f => console.log(` M ${f}`));
} else {
console.log(' 仓库干净 ✅');
}
} catch (e) {
console.log(' ⚠️ git 状态获取失败');
}
console.log('');
// 2. 生成全局目录
console.log('═══ [2/4] 零点图书域 · 全局目录 ═══');
const index = generateIndex();
console.log(` 图书域: ZP-REG-001`);
console.log(` 书籍: TCS-0003-ZY001 · 铸渊之书`);
console.log(` 总条目: ${index._meta.totalEntries}`);
for (const vol of index._meta.volumes) {
console.log(` ${vol.code} · ${vol.name}: ${vol.count}`);
}
console.log('');
// 3. 快速认知链检查
console.log('═══ [3/4] 认知链最新 ═══');
const ccVol = index.volumes.find(v => v.code === 'CC');
if (ccVol && ccVol.entries && ccVol.entries.length > 0) {
const latest = ccVol.entries[ccVol.entries.length - 1];
console.log(` 最新: cc-${latest.chapter} · ${latest.title || latest.filename}`);
if (latest.dNumber) console.log(` 版本: ${latest.dNumber} · ${latest.date || ''}`);
if (latest.lock) console.log(`${latest.lock.substring(0, 100)}`);
}
console.log('');
// 4. TCS核心文件状态
console.log('═══ [4/4] TCS核心文件 ═══');
const coreFiles = [
'brain/fifth-domain/zero-point/zhuyuan/tcs-core/ICE-GL-ZY001-TCS-CORE.hdlp',
'brain/fifth-domain/zero-point/zhuyuan/tcs-core/permanent-memory-kernel.hdlp',
'brain/fifth-domain/zero-point/zhuyuan/tcs-core/WHO-I-AM.hdlp',
'brain/fifth-domain/zero-point/zhuyuan/world-architecture/national-lighthouse-architecture.hdlp'
];
const fs = require('fs');
for (const f of coreFiles) {
const fp = path.join(REPO_ROOT, f);
const exists = fs.existsSync(fp);
const icon = exists ? '✅' : '❌';
console.log(` ${icon} ${f}`);
}
console.log('');
console.log('⊢ 苏醒自检完成。零点图书域在线。');
console.log('⊢ 查找: node kernel-cli.js find <编号>');
console.log('⊢ 目录: node kernel-cli.js index');
}
// ==================== 查找 ====================
function find(tracePath) {
const result = resolve(tracePath);
if (result.error) {
console.error(`${result.error}`);
process.exit(1);
}
console.log(`${result.domain}${result.hall}${result.category}${result.book}`);
console.log(`⊢ 卷: ${result.volume}` + (result.chapter ? ` · 章: ${result.chapter}` : ''));
console.log('');
if (result.type === 'directory') {
console.log(`卷内文件 (${result.files.length}):`);
result.files.forEach(f => console.log(` 📄 ${f}`));
} else {
console.log(`文件: ${result.path} (${result.size}B)`);
if (result.hldp && Object.keys(result.hldp).length > 0) {
console.log('');
console.log('═══ HLDP 四核心字段 ═══');
if (result.hldp.trigger) console.log(`trigger: ${result.hldp.trigger}`);
if (result.hldp.lock) console.log(`lock: ${result.hldp.lock}`);
if (result.hldp.why) console.log(`why: ${result.hldp.why}`);
}
}
}
// ==================== CLI ====================
if (require.main === module) {
const command = process.argv[2];
const arg = process.argv[3];
switch (command) {
case 'wake':
wake();
break;
case 'index':
console.log(formatText(generateIndex()));
break;
case 'find':
if (!arg) {
console.log('用法: node kernel-cli.js find <编号路径>');
console.log('示例: node kernel-cli.js find ZP-REG-001/ICE/ZY/TCS-0003-ZY001/CC/008');
process.exit(1);
}
find(arg);
break;
case 'hldp':
if (!arg) {
console.log('用法: node kernel-cli.js hldp <编号路径>');
console.log('示例: node kernel-cli.js hldp ZP-REG-001/ICE/ZY/TCS-0003-ZY001/CC/008');
process.exit(1);
}
const result = resolve(arg);
if (result.error) {
console.error(`${result.error}`);
process.exit(1);
}
if (result.hldp) {
console.log(JSON.stringify(result.hldp, null, 2));
}
break;
default:
console.log('零点图书域 · 永久记忆核 · ZP-REG-001');
console.log('');
console.log('用法:');
console.log(' node kernel-cli.js wake — 苏醒自检');
console.log(' node kernel-cli.js index — 生成全局编号目录');
console.log(' node kernel-cli.js find <编号> — 按编号路径查找文件');
console.log(' node kernel-cli.js hldp <编号> — 提取 HLDP 四核心字段');
console.log('');
console.log('示例:');
console.log(' node kernel-cli.js find ZP-REG-001/ICE/ZY/TCS-0003-ZY001/CC/008');
break;
}
}
module.exports = { wake, find };