bookworm-smart-assistant/scripts/patches/migrate-session-continuity-to-local.js

34 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

#!/usr/bin/env node
// 将 settings.json 中 session-continuity-mcp 从 npm-cache 路径迁移到本地 ~/.claude/mcp/
// 幂等: 已迁移则跳过
const fs = require('fs');
const path = require('path');
const SENTINEL = '/.claude/mcp/claude-session-continuity-mcp';
const OLD_PATH = 'C:/Users/leesu/AppData/Local/npm-cache/_npx/41147f6a3b3ef0bb/node_modules/claude-session-continuity-mcp';
const NEW_PATH = 'C:/Users/leesu/.claude/mcp/claude-session-continuity-mcp';
const SETTINGS = path.join(__dirname, '../../settings.json');
const raw = fs.readFileSync(SETTINGS, 'utf8');
if (raw.includes(SENTINEL) && !raw.includes(OLD_PATH)) {
console.log('[SKIP] 已迁移,无需重复操作');
process.exit(0);
}
if (!raw.includes(OLD_PATH)) {
console.log('[SKIP] 未找到旧路径,无需迁移');
process.exit(0);
}
const bak = SETTINGS + '.bak-' + new Date().toISOString().slice(0, 10).replace(/-/g, '');
fs.copyFileSync(SETTINGS, bak);
console.log('[BAK] ' + bak);
const updated = raw.split(OLD_PATH).join(NEW_PATH);
fs.writeFileSync(SETTINGS, updated, 'utf8');
const count = (raw.match(new RegExp(OLD_PATH.replace(/[/]/g, '\\/'), 'g')) || []).length;
console.log(`[OK] 替换 ${count} 处 npm-cache → local 路径`);
console.log('[VERIFY] 新路径: ' + NEW_PATH);