UNPKG

@hivetechs/hive-ai

Version:

Real-time streaming AI consensus platform with HTTP+SSE MCP integration for Claude Code, VS Code, Cursor, and Windsurf - powered by OpenRouter's unified API

145 lines 7.83 kB
/** * Intelligent Setup Wizard * * Integrates question analysis with Expert Profile Template recommendations * Provides smart guidance based on user needs and budget constraints */ import { z } from "zod"; export const IntelligentSetupSchema = z.object({ user_question: z.string().optional().describe('Sample question to analyze for recommendations'), budget_preference: z.enum(['low', 'medium', 'high', 'unlimited']).optional().describe('Budget preference'), use_case: z.enum(['coding', 'research', 'creative', 'business', 'general']).optional().describe('Primary use case'), experience_level: z.enum(['beginner', 'intermediate', 'expert']).optional().describe('User experience level') }); export async function runIntelligentSetup(args) { const { user_question, budget_preference, use_case, experience_level } = args; try { const { getConfig, setConfig } = await import('../../storage/unified-database.js'); const { EXPERT_TEMPLATES, filterTemplates } = await import('./expert-profile-templates.js'); let result = `🧙‍♂️ **Intelligent Setup Wizard**\n\n`; // Step 1: Basic question analysis if provided let questionCategory = 'general'; if (user_question) { const question = user_question.toLowerCase(); if (question.includes('code') || question.includes('programming') || question.includes('react') || question.includes('javascript')) { questionCategory = 'coding'; } else if (question.includes('research') || question.includes('analyze') || question.includes('study')) { questionCategory = 'research'; } else if (question.includes('creative') || question.includes('write') || question.includes('content')) { questionCategory = 'creative'; } else if (question.includes('business') || question.includes('strategy') || question.includes('plan')) { questionCategory = 'business'; } result += `🔍 **Question Analysis:**\n`; result += `• Question: "${user_question}"\n`; result += `• Detected Category: ${questionCategory}\n`; result += `• Use Case: ${use_case || questionCategory}\n\n`; } // Step 2: Budget configuration let budgetGuidance = ''; if (budget_preference) { const budgetLimits = { low: 0.005, // $0.005 per consensus medium: 0.015, // $0.015 per consensus high: 0.030, // $0.030 per consensus unlimited: null // No limit }; const budgetLimit = budgetLimits[budget_preference]; if (budgetLimit) { await setConfig('consensus_budget_limit', budgetLimit.toString()); budgetGuidance = `💰 **Budget Configuration:**\n`; budgetGuidance += `• Limit set to $${budgetLimit.toFixed(3)} per consensus\n`; budgetGuidance += `• Dynamic mode will optimize for cost efficiency\n\n`; } } // Step 3: Template recommendations based on use case const effectiveUseCase = use_case || questionCategory; let recommendedTemplates = []; if (effectiveUseCase === 'coding') { recommendedTemplates = ['expert-coding', 'complex-coding', 'coding-architecture']; } else if (effectiveUseCase === 'research') { recommendedTemplates = ['expert-research', 'research-deep-dive']; } else if (effectiveUseCase === 'creative') { recommendedTemplates = ['creative-innovator', 'expert-creative']; } else if (effectiveUseCase === 'business') { recommendedTemplates = ['enterprise-grade', 'expert-research']; } else { recommendedTemplates = ['expert-coding', 'expert-research', 'expert-fast']; } result += budgetGuidance; result += `🎯 **Recommended Expert Templates:**\n\n`; // Find matching templates from available ones const availableTemplates = EXPERT_TEMPLATES.filter(t => recommendedTemplates.some(rec => t.id.includes(rec.replace('expert-', '').replace('-', '_')))); if (availableTemplates.length > 0) { availableTemplates.slice(0, 3).forEach((template, index) => { result += `**${index + 1}. ${template.name}**\n`; result += ` • ${template.description}\n`; result += ` • Use case: ${template.useCase}\n`; result += ` • ID: \`${template.id}\`\n\n`; }); } else { result += `**Top General Recommendations:**\n`; EXPERT_TEMPLATES.slice(0, 3).forEach((template, index) => { result += `**${index + 1}. ${template.name}**\n`; result += ` • ${template.description}\n`; result += ` • ID: \`${template.id}\`\n\n`; }); } // Step 4: Mode recommendation result += `🤖 **Mode Recommendation:**\n`; if (experience_level === 'beginner') { await setConfig('consensus_mode', 'auto'); result += `• **AUTO mode** enabled - perfect for beginners\n`; result += `• System automatically selects optimal models based on question complexity\n`; result += `• No need to manage profiles manually\n\n`; } else if (experience_level === 'expert') { result += `• Consider **MANUAL mode** for full control\n`; result += `• You can fine-tune profiles for specific use cases\n`; result += `• Switch anytime with \`hive mode manual\`\n\n`; } else { await setConfig('consensus_mode', 'auto'); result += `• **AUTO mode** recommended - best of both worlds\n`; result += `• Intelligent model selection with manual override options\n`; result += `• Use \`--manual\` flag when you want specific control\n\n`; } // Step 5: Next steps result += `📋 **Next Steps:**\n`; if (availableTemplates.length > 0) { const topTemplate = availableTemplates[0]; result += `1. Create your first profile:\n`; result += ` \`hive templates apply ${topTemplate.id} MyProfile\`\n\n`; } result += `2. Test the system:\n`; result += ` \`hive consensus "${user_question || 'How do I get started with programming?'}"\`\n\n`; result += `3. Monitor costs:\n`; result += ` \`hive cost estimate "your next question"\`\n\n`; result += `4. Adjust settings:\n`; result += ` \`hive mode auto|manual\` - Switch between modes\n`; result += ` \`hive cost settings [amount]\` - Update budget limits\n\n`; result += `💡 **Pro Tips:**\n`; result += `• Use \`hive help getting-started\` for detailed guidance\n`; result += `• The system learns from your usage patterns over time\n`; result += `• AUTO mode gets smarter as you use different types of questions\n`; result += `• Budget limits help control costs while maintaining quality\n`; return { result }; } catch (error) { return { result: `❌ Error running intelligent setup: ${error instanceof Error ? error.message : 'Unknown error'}` }; } } // Tool exports export const intelligentSetupToolName = 'hive_intelligent_setup'; export const intelligentSetupToolDescription = 'Smart setup wizard that analyzes your needs and recommends optimal Expert Profile Templates, budget settings, and mode configuration'; //# sourceMappingURL=intelligent-setup-wizard.js.map