UNPKG

codecrucible-synth

Version:

Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability

68 lines (67 loc) 2.94 kB
/** * Simple Agent Router - 2025 Best Practices Implementation * Based on research: modular design, timeout/retry mechanisms, observability */ export class SimpleAgentRouter { static DEFAULT_TIMEOUT = 30000; // 30 seconds static CODING_KEYWORDS = [ 'implement', 'code', 'function', 'debug', 'refactor', 'typescript', 'javascript' ]; /** * Route request to appropriate agent with performance optimizations */ static async routeRequest(request) { const startTime = Date.now(); const timeout = request.timeout || this.DEFAULT_TIMEOUT; try { // Detect coding operation const isCoding = this.detectCodingOperation(request.prompt); // Build lightweight prompt based on operation type const systemPrompt = this.buildPrompt(request.voice || 'developer', isCoding); // Create timeout promise const timeoutPromise = new Promise((_, reject) => { setTimeout(() => reject(new Error('Agent timeout')), timeout); }); // Create agent response promise (simplified) const responsePromise = this.generateResponse(systemPrompt, request.prompt); // Race between response and timeout const content = await Promise.race([responsePromise, timeoutPromise]); return { content, voice: request.voice || 'developer', duration: Date.now() - startTime, success: true }; } catch (error) { return { content: `Error: ${error instanceof Error ? error.message : 'Unknown error'}`, voice: request.voice || 'developer', duration: Date.now() - startTime, success: false, error: error instanceof Error ? error.message : 'Unknown error' }; } } static detectCodingOperation(prompt) { const lowerPrompt = prompt.toLowerCase(); return this.CODING_KEYWORDS.some(keyword => lowerPrompt.includes(keyword)); } static buildPrompt(voice, isCoding) { const basePrompt = `You are ${voice} voice, an AI coding assistant.`; if (isCoding) { return `${basePrompt} # CODING GUIDELINES - Follow Living Spiral methodology: Collapse → Council → Synthesis → Rebirth → Reflection - Apply TDD and security-first principles - Write clean, maintainable code - Provide concise, practical solutions`; } return `${basePrompt} Provide helpful, concise responses.`; } static async generateResponse(systemPrompt, userPrompt) { // Simplified response generation - in real implementation this would call the model client return `${systemPrompt}\n\nUser: ${userPrompt}\n\nResponse: [Generated response would go here]`; } } //# sourceMappingURL=simple-agent-router.js.map