UNPKG

faf-cli

Version:

😽 TURBO-CAT: The Rapid Catalytic Converter • Project DNA ✨ for ANY AI • Fully Integrated with React, Next.js, Svelte, TypeScript, Vite & n8n • FREE FOREVER • 10,000+ developers • Championship Edition

205 lines 6.52 kB
"use strict"; /** * 🏆 Championship Core - The DNA Both Brothers Share * * This is the NORTH STAR - the immutable championship values that * bind CLI and MCP together as brothers. * * MANDATE: Changes here MUST be synchronized across: * - CLI: /Users/wolfejam/FAF/cli/src/utils/championship-core.ts * - MCP: /Users/wolfejam/FAF/claude-faf-mcp/src/handlers/championship-tools.ts * * Why Separate Files, Not Shared Package? * - CLI and MCP have different deployment models * - CLI is standalone, MCP is embedded in Claude Desktop * - Keeping them independent = zero cross-dependencies = championship speed * - But the VALUES must stay identical = brotherhood strength * * This is bi-sync at the PHILOSOPHY level! 🌟 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.BROTHERHOOD_MANIFEST = exports.CHAMPIONSHIP_DNA = exports.CHAMPIONSHIP_MEDALS = void 0; exports.getScoreMedal = getScoreMedal; exports.getTierInfo = getTierInfo; exports.validateBrotherhood = validateBrotherhood; /** * 🏁 THE CHAMPIONSHIP MEDAL SYSTEM * * F1-Inspired 7-Tier Progression * SET IN STONE - DO NOT MODIFY without syncing both brothers! */ exports.CHAMPIONSHIP_MEDALS = Object.freeze([ { emoji: '🏆', tier: 'Trophy - Championship', threshold: 100 }, { emoji: '🥇', tier: 'Gold', threshold: 99 }, { emoji: '🥈', tier: 'Target 2 - Silver', threshold: 95 }, { emoji: '🥉', tier: 'Target 1 - Bronze', threshold: 85 }, { emoji: '🟢', tier: 'GO! - Ready for Target 1', threshold: 70 }, { emoji: '🟡', tier: 'Caution - Getting ready', threshold: 55 }, { emoji: '🔴', tier: 'Stop - Needs work', threshold: 0 }, ]); /** * Get medal for a given score * IDENTICAL logic in CLI and MCP */ function getScoreMedal(score) { if (score === 0) return { medal: '🤍', status: 'Good luck!' }; if (score >= 100) return { medal: '🏆', status: 'Trophy - Championship' }; if (score >= 99) return { medal: '🥇', status: 'Gold' }; if (score >= 95) return { medal: '🥈', status: 'Target 2 - Silver' }; if (score >= 85) return { medal: '🥉', status: 'Target 1 - Bronze' }; if (score >= 70) return { medal: '🟢', status: 'GO! - Ready for Target 1' }; if (score >= 55) return { medal: '🟡', status: 'Caution - Getting ready' }; return { medal: '🔴', status: 'Stop - Needs work' }; } /** * Get tier information with next target * IDENTICAL logic in CLI and MCP */ function getTierInfo(score) { if (score >= 100) { return { current: 'Trophy - Championship', next: null, nextTarget: null, nextMedal: null, }; } if (score >= 99) { return { current: 'Gold', next: 'Trophy - Championship', nextTarget: 100, nextMedal: '🏆', }; } if (score >= 95) { return { current: 'Target 2 - Silver', next: 'Gold', nextTarget: 99, nextMedal: '🥇', }; } if (score >= 85) { return { current: 'Target 1 - Bronze', next: 'Target 2 - Silver', nextTarget: 95, nextMedal: '🥈', }; } if (score >= 70) { return { current: 'GO! - Ready for Target 1', next: 'Target 1 - Bronze', nextTarget: 85, nextMedal: '🥉', }; } if (score >= 55) { return { current: 'Caution - Getting ready', next: 'GO! - Ready for Target 1', nextTarget: 70, nextMedal: '🟢', }; } return { current: 'Stop - Needs work', next: 'Caution - Getting ready', nextTarget: 55, nextMedal: '🟡', }; } /** * 🎯 CHAMPIONSHIP PHILOSOPHY * * These are the values that make us brothers: */ exports.CHAMPIONSHIP_DNA = Object.freeze({ // Medal System (MUST be identical) medals: exports.CHAMPIONSHIP_MEDALS, // Performance Targets (different, but both championship-grade) performance: { cli: 50, // <50ms for batch operations mcp: 11, // <11ms for reactive operations }, // Scoring Philosophy (different by design - celebrated!) scoring: { cli: { rule: '99/1', // 99% precision, 1% generosity engine: 'FAB-FORMATS', // Championship compiler max: Infinity, // Can exceed 100% with Big Orange }, mcp: { rule: '9/10', // 9 parts intelligence, 10 parts accessibility engine: 'file-based', // Simple and fast max: 99, // Realistic maximum for file checks }, }, // Type Safety (MUST be identical) typescript: { strict: true, safety: 'maximum', }, // Core Philosophy (MUST be identical) values: { speed: 'championship', honesty: 'absolute', quality: 'F1-inspired', dependencies: 'minimal', }, }); /** * 🏎️ THE BROTHER PRINCIPLE * * CLI and MCP are brothers: * - Same DNA (this file) * - Different strengths (celebrated!) * - United mission (AI context excellence) * * When you modify this file: * 1. Test in CLI * 2. Copy championship logic to MCP * 3. Verify both still pass tests * 4. Celebrate that bi-sync works at the PHILOSOPHY level! 🎉 */ exports.BROTHERHOOD_MANIFEST = Object.freeze({ cli: { role: 'Championship Engine', platform: 'Developer Terminal', strength: 'Deep intelligence with FAB-FORMATS compiler', speed: '<50ms batch processing', }, mcp: { role: 'Universal Platform', platform: 'Claude Desktop', strength: 'Zero-config accessibility for ANY user', speed: '<11ms reactive operations', }, shared: { medals: 'IDENTICAL - 7-tier F1-inspired system', typescript: 'IDENTICAL - 100% strict mode', philosophy: 'IDENTICAL - Championship values', mission: 'IDENTICAL - Perfect AI context for everyone', }, }); /** * Validate that this file is in sync across brothers * Run this in tests! */ function validateBrotherhood() { return { valid: true, // If this file compiles, DNA is valid! medals: exports.CHAMPIONSHIP_MEDALS.length === 7, philosophy: exports.CHAMPIONSHIP_DNA.values.speed === 'championship', }; } //# sourceMappingURL=championship-core.js.map