import process from 'node:process'; import { inspectSkillPack, syncSkillPackManifest, } from './skill-pack-manifest.mjs'; const argumentsList = process.argv.slice(2); const writeMode = argumentsList.length === 1 && argumentsList[0] === '--write'; if ( argumentsList.length > 1 || (argumentsList.length === 1 && argumentsList[0] !== '--write') ) { console.error('用法:node scripts/check-skill-pack.mjs [--write]'); process.exit(1); } try { if (writeMode) { const result = syncSkillPackManifest(); if (!result.changed) { console.log(`[skill-pack] 已是最新(version=${result.version})`); } else { console.log( `[skill-pack] 已同步 ${result.mismatches.map((item) => item.name).join('、')}(version=${result.version})`, ); } } else { const result = inspectSkillPack(); if (result.mismatches.length > 0) { console.error('[skill-pack] 内容指纹与 manifest 不一致:'); for (const mismatch of result.mismatches) { console.error( `- ${mismatch.name}: manifest=${mismatch.expected} actual=${mismatch.actual}`, ); } console.error('[skill-pack] 内容变更后运行:npm run agc:skill-pack:sync'); process.exitCode = 1; } else { console.log(`[skill-pack] OK(version=${result.manifest.version})`); } } } catch (error) { console.error( `[skill-pack] ${error instanceof Error ? error.message : String(error)}`, ); process.exitCode = 1; }