UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

63 lines 2.16 kB
/** * Test field catalog discovery */ import { IntelligentQueryEngine } from './IntelligentQueryEngine.js'; import { OptimizelyAdapter } from './adapters/OptimizelyAdapter.js'; import Database from 'better-sqlite3'; async function testFieldDiscovery() { console.log('Testing field catalog discovery...\n'); // Open database const db = new Database('./data/optimizely-cache.db', { readonly: true }); // Initialize engine const engine = new IntelligentQueryEngine({ discovery: { autoDiscover: true, discoveryInterval: 3600000, cacheTTL: 60000 } }); // Create and register adapter const adapter = new OptimizelyAdapter({ database: db }); engine.registerAdapter(adapter); // Wait a moment for discovery await new Promise(resolve => setTimeout(resolve, 1000)); // Test field lookups const testFields = [ 'flags.name', 'flags.key', 'flags.archived', 'events.name', 'events.event_type', 'variations.name', 'flag_environments.environment_key' ]; console.log('Testing field lookups:'); for (const field of testFields) { try { // Access private fieldCatalog through the engine const fieldCatalog = engine.fieldCatalog; const fieldInfo = fieldCatalog.getFieldInfo(field); console.log(`${field}: ${fieldInfo ? 'FOUND' : 'NOT FOUND'}`); } catch (error) { console.log(`${field}: ERROR - ${error}`); } } // Check catalog size const fieldCatalog = engine.fieldCatalog; const catalogSize = fieldCatalog.catalog?.size || 0; console.log(`\nTotal fields in catalog: ${catalogSize}`); // List first 10 fields if (catalogSize > 0) { console.log('\nFirst 10 fields:'); let count = 0; for (const [key, value] of fieldCatalog.catalog.entries()) { console.log(` ${key}`); if (++count >= 10) break; } } db.close(); } testFieldDiscovery().catch(console.error); //# sourceMappingURL=test-field-catalog-discovery.js.map