62 lines
1.9 KiB
JavaScript
62 lines
1.9 KiB
JavaScript
|
|
// 用途:检查 HLI 注册表里的 17 个接口,代码里实现了几个
|
||
|
|
const fs = require('fs');
|
||
|
|
const path = require('path');
|
||
|
|
|
||
|
|
const HLI_ROUTES = {
|
||
|
|
'HLI-AUTH-001': '/hli/auth/login',
|
||
|
|
'HLI-AUTH-002': '/hli/auth/register',
|
||
|
|
'HLI-AUTH-003': '/hli/auth/verify',
|
||
|
|
'HLI-PERSONA-001': '/hli/persona/load',
|
||
|
|
'HLI-PERSONA-002': '/hli/persona/switch',
|
||
|
|
'HLI-USER-001': '/hli/user/profile',
|
||
|
|
'HLI-USER-002': '/hli/user/profile/update',
|
||
|
|
'HLI-TICKET-001': '/hli/ticket/create',
|
||
|
|
'HLI-TICKET-002': '/hli/ticket/query',
|
||
|
|
'HLI-TICKET-003': '/hli/ticket/status',
|
||
|
|
'HLI-DIALOGUE-001': '/hli/dialogue/send',
|
||
|
|
'HLI-DIALOGUE-002': '/hli/dialogue/stream',
|
||
|
|
'HLI-DIALOGUE-003': '/hli/dialogue/history',
|
||
|
|
'HLI-STORAGE-001': '/hli/storage/upload',
|
||
|
|
'HLI-STORAGE-002': '/hli/storage/download',
|
||
|
|
'HLI-DASHBOARD-001': '/hli/dashboard/status',
|
||
|
|
'HLI-DASHBOARD-002': '/hli/dashboard/realtime'
|
||
|
|
};
|
||
|
|
|
||
|
|
const schemaDir = 'src/schemas/hli';
|
||
|
|
let implemented = 0;
|
||
|
|
let missing = 0;
|
||
|
|
|
||
|
|
Object.entries(HLI_ROUTES).forEach(([hliId, route]) => {
|
||
|
|
const domain = hliId.split('-')[1].toLowerCase();
|
||
|
|
const domainDir = path.join(schemaDir, domain);
|
||
|
|
|
||
|
|
if (!fs.existsSync(domainDir)) {
|
||
|
|
console.warn('△ [UNIMPLEMENTED] ' + hliId + ' (' + route + ')');
|
||
|
|
missing++;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
const files = fs.readdirSync(domainDir).filter(f => f.endsWith('.schema.json'));
|
||
|
|
const found = files.some(f => {
|
||
|
|
try {
|
||
|
|
const schema = JSON.parse(fs.readFileSync(path.join(domainDir, f), 'utf8'));
|
||
|
|
return schema.hli_id === hliId;
|
||
|
|
} catch { return false; }
|
||
|
|
});
|
||
|
|
|
||
|
|
if (found) {
|
||
|
|
implemented++;
|
||
|
|
} else {
|
||
|
|
console.warn('△ [UNIMPLEMENTED] ' + hliId + ' (' + route + ')');
|
||
|
|
missing++;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log(`\n\n📊 覆盖率: ${implemented} / ${implemented + missing}`);
|
||
|
|
if (missing === 0) {
|
||
|
|
console.log('✅ Route Alignment PASSED - 所有 HLI 接口均已实现');
|
||
|
|
} else {
|
||
|
|
console.error(`❌ Route Alignment FAILED - ${missing} 个 HLI 接口未实现`);
|
||
|
|
process.exit(1);
|
||
|
|
}
|