test-deserializer.js
1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* 验证反序列化器 — 往返测试
* SKILL.md → serialize → deserialize → SKILL.md
*/
const path = require('path');
const { serializeSkillToGenome } = require('./serializer');
const { deserializeGenomeToSkill } = require('./deserializer');
const SKILLS_DIR = path.join(require('os').homedir(), '.gemini/antigravity/skills');
const target = path.join(SKILLS_DIR, 'codebase-explorer/SKILL.md');
console.log('═══════════════════════════════════════');
console.log(' 反序列化器往返测试');
console.log('═══════════════════════════════════════\n');
console.log(`📄 原始文件: ${target}\n`);
// Step 1: 序列化
const genome = serializeSkillToGenome(target);
// Step 2: 反序列化
const output = deserializeGenomeToSkill(genome, genome.meta);
console.log('── 生成的 SKILL.md 内容 (前 100 行) ──\n');
const lines = output.split('\n');
for (let i = 0; i < Math.min(100, lines.length); i++) {
console.log(`${String(i + 1).padStart(3)}: ${lines[i]}`);
}
console.log(`\n── 共 ${lines.length} 行 ──\n`);
// 统计各区块
const sections = output.match(/^#{1,3}\s+.+/gm) || [];
console.log('── 区块结构 ──\n');
for (const sec of sections) {
const level = sec.match(/^(#+)/)[1].length;
console.log(`${' '.repeat(level - 1)}${sec}`);
}
console.log('\n✅ 往返测试完成');