UNPKG

@jmkim85/dev-flow-mcp

Version:

MCP-based Dev Flow - AI-powered development workflow management with 13 essential tools for TDD and context management

75 lines 2.7 kB
#!/usr/bin/env node /** * Migration script for Dev Flow MCP v2.1+ * Updates existing context frames with new metadata fields */ import { promises as fs } from 'fs'; import { join } from 'path'; import YAML from 'yaml'; async function migrateContextFrames(projectRoot) { const contextDir = join(projectRoot, '.devflow', 'context'); const statePath = join(contextDir, 'context-state.yaml'); try { // Check if context state file exists const data = await fs.readFile(statePath, 'utf-8'); const state = YAML.parse(data); let migrated = false; // Migrate each frame to include new metadata fields for (const frame of state.frames) { if (frame.token_usage === undefined) { frame.token_usage = 0; migrated = true; } if (frame.importance_score === undefined) { frame.importance_score = 1.0; migrated = true; } } if (migrated) { // Save updated state await fs.writeFile(statePath, YAML.stringify(state, null, 2)); console.log(`✅ Migrated context frames in ${projectRoot}`); } else { console.log(`✅ Context frames already up to date in ${projectRoot}`); } } catch (error) { if (error.code === 'ENOENT') { console.log(`ℹ️ No context state found in ${projectRoot} - nothing to migrate`); } else { console.error(`❌ Error migrating ${projectRoot}:`, error); } } } async function main() { const args = process.argv.slice(2); const projectRoot = args[0] || process.cwd(); console.log('🔄 Dev Flow MCP Migration v2.1+'); console.log(`📁 Project: ${projectRoot}`); console.log(''); try { // Ensure .devflow directory exists const devflowDir = join(projectRoot, '.devflow'); await fs.mkdir(devflowDir, { recursive: true }); // Migrate context frames await migrateContextFrames(projectRoot); console.log(''); console.log('🎉 Migration completed successfully!'); console.log(''); console.log('New features available:'); console.log('- Context frames now track token usage'); console.log('- Context frames now have importance scores'); console.log('- Enhanced context metadata in buildContext() output'); } catch (error) { console.error('❌ Migration failed:', error); process.exit(1); } } if (require.main === module) { main().catch(console.error); } export { migrateContextFrames }; //# sourceMappingURL=migrate.js.map