brainy/scripts/check-type-embeddings.cjs

44 lines
1.5 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
/**
* Check if type embeddings need rebuilding
* Only rebuild if:
* 1. embeddedTypeEmbeddings.ts doesn't exist
* 2. Type definitions have changed
* 3. Build script has changed
*/
const fs = require('fs');
const path = require('path');
const EMBEDDED_FILE = path.join(__dirname, '../src/neural/embeddedTypeEmbeddings.ts');
const BUILD_SCRIPT = path.join(__dirname, 'buildTypeEmbeddings.ts');
const GRAPH_TYPES = path.join(__dirname, '../src/types/graphTypes.ts');
// Check if embedded type embeddings exist
if (!fs.existsSync(EMBEDDED_FILE)) {
console.log('❌ Embedded type embeddings not found. Building...');
process.exit(1); // Signal need to rebuild
}
// Check if build script is newer than embedded embeddings
const embeddedStats = fs.statSync(EMBEDDED_FILE);
const buildScriptStats = fs.statSync(BUILD_SCRIPT);
if (buildScriptStats.mtime > embeddedStats.mtime) {
console.log('🔄 Build script has changed. Rebuilding type embeddings...');
process.exit(1); // Signal need to rebuild
}
// Check if type definitions are newer than embedded embeddings
if (fs.existsSync(GRAPH_TYPES)) {
const graphTypesStats = fs.statSync(GRAPH_TYPES);
if (graphTypesStats.mtime > embeddedStats.mtime) {
console.log('🔄 Type definitions have changed. Rebuilding type embeddings...');
process.exit(1); // Signal need to rebuild
}
}
console.log('✅ Embedded type embeddings are up-to-date. Skipping rebuild.');
process.exit(0); // No rebuild needed