UNPKG

claude-flow

Version:

Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration

188 lines 7.43 kB
#!/usr/bin/env npx tsx /** * Standalone Plugin Store Test * Run this in any environment to verify the IPFS-based plugin store works * * Usage: * npx tsx standalone-test.ts * # or * npm run test:plugin-store */ import { createPluginDiscoveryService, searchPlugins, getFeaturedPlugins, getOfficialPlugins, getPluginSearchSuggestions, getPluginTagCloud, findSimilarPlugins, } from '../store/index.js'; async function main() { console.log(''); console.log('╔══════════════════════════════════════════════════════════════╗'); console.log('║ CLAUDE FLOW V3 - STANDALONE PLUGIN STORE TEST ║'); console.log('║ IPFS-Based Decentralized Plugin Marketplace ║'); console.log('╚══════════════════════════════════════════════════════════════╝'); console.log(''); let passed = 0; let failed = 0; // Test 1: Discovery Service Creation console.log('▶ Test 1: Create Discovery Service'); try { const discovery = createPluginDiscoveryService(); const registries = discovery.listRegistries(); console.log(` ✅ Created service with ${registries.length} bootstrap registries`); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 2: Discover Registry console.log('▶ Test 2: Discover Registry via IPNS'); let registry = null; try { const discovery = createPluginDiscoveryService(); const result = await discovery.discoverRegistry(); if (result.success && result.registry) { registry = result.registry; console.log(` ✅ Discovered ${result.registry.plugins.length} plugins from ${result.source}`); passed++; } else { throw new Error(result.error || 'No registry'); } } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } if (!registry) { console.log('\n❌ Cannot continue without registry\n'); process.exit(1); } // Test 3: Search Plugins console.log('▶ Test 3: Search for "plugin creator"'); try { const results = searchPlugins(registry, { query: 'plugin creator' }); const found = results.plugins.find(p => p.id === 'plugin-creator'); if (found) { console.log(` ✅ Found Plugin Creator Pro v${found.version}`); passed++; } else { throw new Error('Plugin Creator not found in search results'); } } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 4: Get Official Plugins console.log('▶ Test 4: Get Official Plugins'); try { const official = getOfficialPlugins(registry); console.log(` ✅ Found ${official.length} official plugins:`); official.forEach(p => console.log(` - ${p.displayName} (${p.id})`)); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 5: Get Featured Plugins console.log('▶ Test 5: Get Featured Plugins'); try { const featured = getFeaturedPlugins(registry); const hasPluginCreator = featured.some(p => p.id === 'plugin-creator'); console.log(` ✅ Found ${featured.length} featured plugins (Plugin Creator featured: ${hasPluginCreator})`); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 6: Search with Filters console.log('▶ Test 6: Search with Filters (verified only)'); try { const results = searchPlugins(registry, { verified: true }); console.log(` ✅ Found ${results.plugins.length} verified plugins`); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 7: Plugin Details console.log('▶ Test 7: Get Plugin Creator Details'); try { const plugin = registry.plugins.find((p) => p.id === 'plugin-creator'); if (plugin) { console.log(` ✅ Plugin Creator Pro Details:`); console.log(` Version: ${plugin.version}`); console.log(` Trust: ${plugin.trustLevel}`); console.log(` Commands: ${plugin.commands.length}`); console.log(` Downloads: ${plugin.downloads.toLocaleString()}`); console.log(` Rating: ${plugin.rating}/5`); passed++; } else { throw new Error('Plugin not found'); } } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 8: Tag Cloud console.log('▶ Test 8: Get Tag Cloud'); try { const tags = getPluginTagCloud(registry); console.log(` ✅ Found ${tags.size} unique tags`); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 9: Search Suggestions console.log('▶ Test 9: Get Search Suggestions'); try { const suggestions = getPluginSearchSuggestions(registry, 'plug'); console.log(` ✅ Got ${suggestions.length} suggestions for "plug"`); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Test 10: Similar Plugins console.log('▶ Test 10: Find Similar Plugins'); try { const similar = findSimilarPlugins(registry, '@claude-flow/neural', 3); console.log(` ✅ Found ${similar.length} similar plugins to @claude-flow/neural`); passed++; } catch (e) { console.log(` ❌ Failed: ${e.message}`); failed++; } // Summary console.log(''); console.log('═══════════════════════════════════════════════════════════════'); console.log(' TEST RESULTS '); console.log('═══════════════════════════════════════════════════════════════'); console.log(''); console.log(` Total: ${passed + failed}`); console.log(` ✅ Passed: ${passed}`); console.log(` ❌ Failed: ${failed}`); console.log(''); if (failed === 0) { console.log(' 🎉 All tests passed! Plugin Store is working correctly.'); console.log(''); console.log(' Available CLI Commands:'); console.log(' npx @claude-flow/cli plugins list'); console.log(' npx @claude-flow/cli plugins list --official'); console.log(' npx @claude-flow/cli plugins search -q "plugin creator"'); console.log(' npx @claude-flow/cli plugins info -n plugin-creator'); console.log(''); } process.exit(failed > 0 ? 1 : 0); } main().catch(err => { console.error('Fatal error:', err); process.exit(1); }); //# sourceMappingURL=standalone-test.js.map