Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'

This commit is contained in:
ruv
2026-02-28 14:39:40 -05:00
7854 changed files with 3522914 additions and 0 deletions

View File

@@ -0,0 +1,182 @@
#!/usr/bin/env node
/**
* Test example for agentic-synth
* This demonstrates the package working without API keys
*/
import { AgenticSynth } from './dist/index.js';
console.log('🎲 Testing Agentic-Synth Package\n');
async function testBasicFunctionality() {
console.log('1⃣ Testing basic initialization...');
try {
const synth = new AgenticSynth({
provider: 'gemini',
apiKey: 'test-key', // Mock key for testing
cacheStrategy: 'memory',
cacheTTL: 3600
});
console.log('✅ AgenticSynth initialized successfully');
console.log(' Config:', JSON.stringify(synth.getConfig(), null, 2));
// Test configuration update
console.log('\n2⃣ Testing configuration updates...');
synth.configure({ cacheTTL: 7200 });
console.log('✅ Configuration updated');
console.log(' New TTL:', synth.getConfig().cacheTTL);
// Test type system
console.log('\n3⃣ Testing type system...');
const config = synth.getConfig();
console.log('✅ Type system working');
console.log(' Provider:', config.provider);
console.log(' Cache Strategy:', config.cacheStrategy);
console.log('\n✨ All basic tests passed!');
console.log('\n📊 Test Summary:');
console.log(' - Initialization: ✅');
console.log(' - Configuration: ✅');
console.log(' - Type System: ✅');
console.log(' - Build Output: ✅');
return true;
} catch (error) {
console.error('❌ Test failed:', error.message);
console.error(' Stack:', error.stack);
return false;
}
}
async function testCaching() {
console.log('\n4⃣ Testing caching system...');
try {
// Import cache manager directly
const { CacheManager } = await import('./dist/cache/index.js');
const cache = new CacheManager({
strategy: 'memory',
ttl: 10,
maxSize: 100
});
// Test set and get
await cache.set('test-key', { data: 'test-value' });
const value = await cache.get('test-key');
if (value && value.data === 'test-value') {
console.log('✅ Cache set/get working');
} else {
throw new Error('Cache value mismatch');
}
// Test cache size
const size = await cache.size();
console.log('✅ Cache size tracking working:', size);
// Test cache clear
await cache.clear();
const sizeAfterClear = await cache.size();
if (sizeAfterClear === 0) {
console.log('✅ Cache clear working');
}
console.log('✅ Caching system tests passed');
return true;
} catch (error) {
console.error('❌ Cache test failed:', error.message);
return false;
}
}
async function testGenerators() {
console.log('\n5⃣ Testing generator exports...');
try {
const generators = await import('./dist/generators/index.js');
console.log('✅ Generators module loaded');
console.log(' Exports:', Object.keys(generators));
return true;
} catch (error) {
console.error('❌ Generator test failed:', error.message);
return false;
}
}
async function testTypeExports() {
console.log('\n6⃣ Testing type exports...');
try {
const types = await import('./dist/index.js');
const hasTypes = [
'AgenticSynth',
'createSynth',
'CacheManager',
'ValidationError',
'APIError',
'CacheError'
].every(type => types[type] !== undefined);
if (hasTypes) {
console.log('✅ All expected exports present');
console.log(' Main exports:', Object.keys(types).filter(k => !k.startsWith('_')).slice(0, 10));
} else {
throw new Error('Missing expected exports');
}
return true;
} catch (error) {
console.error('❌ Type exports test failed:', error.message);
return false;
}
}
async function runAllTests() {
console.log('═══════════════════════════════════════════════════');
console.log(' Agentic-Synth Package Test Suite');
console.log('═══════════════════════════════════════════════════\n');
const results = [];
results.push(await testBasicFunctionality());
results.push(await testCaching());
results.push(await testGenerators());
results.push(await testTypeExports());
console.log('\n═══════════════════════════════════════════════════');
console.log(' Final Results');
console.log('═══════════════════════════════════════════════════');
const passed = results.filter(r => r).length;
const total = results.length;
const percentage = ((passed / total) * 100).toFixed(1);
console.log(`\n Tests Passed: ${passed}/${total} (${percentage}%)`);
if (passed === total) {
console.log('\n 🎉 All tests passed! Package is working correctly.');
console.log('\n ✅ Ready for:');
console.log(' - NPM publication');
console.log(' - Production use');
console.log(' - CI/CD integration');
} else {
console.log('\n ⚠️ Some tests failed. Please review the output above.');
}
console.log('\n═══════════════════════════════════════════════════\n');
process.exit(passed === total ? 0 : 1);
}
// Run all tests
runAllTests().catch(error => {
console.error('Fatal error:', error);
process.exit(1);
});