UNPKG

@andrebuzeli/advanced-memory-markdown-mcp

Version:

Advanced Memory Bank MCP v3.1.5 - Sistema avançado de gerenciamento de memória com isolamento de projetos por IDE, sincronização sob demanda, backup a cada 30min, apenas arquivos .md principais sincronizados, pasta reasoning temporária com limpeza automát

230 lines 10.4 kB
/** * Unified Analyzer - Sistema unificado de análise criativa e pensamento sequencial * Consolida funcionalidades de creative-analyzer.ts e sequential-thinking.ts */ import { CreativeAnalyzer } from './creative-analyzer.js'; import { SequentialThinking } from './sequential-thinking.js'; export class UnifiedAnalyzer { creativeAnalyzer; sequentialThinking; memoryManager; constructor(memoryManager) { this.memoryManager = memoryManager; this.creativeAnalyzer = new CreativeAnalyzer(memoryManager); this.sequentialThinking = new SequentialThinking(); } /** * Executa análise unificada */ async executeAnalysis(action, content, params = {}) { switch (action) { case 'creative': return this.performCreativeAnalysis(content, params); case 'sequential': return this.performSequentialAnalysis(content, params); case 'comprehensive': return this.performComprehensiveAnalysis(content, params); default: throw new Error(`Tipo de análise desconhecido: ${action}`); } } /** * Realiza análise criativa */ async performCreativeAnalysis(content, params = {}) { const analysisType = params.analysisType || 'comprehensive'; const creativeResult = await this.creativeAnalyzer.analyzeContent(content, analysisType); const result = { type: 'creative', content: content, insights: creativeResult.insights, ...(creativeResult.patterns && { patterns: creativeResult.patterns }), ...(creativeResult.themes && { themes: creativeResult.themes }), ...(creativeResult.styleElements && { styleElements: creativeResult.styleElements }), recommendations: this.generateCreativeRecommendations(creativeResult), relatedTopics: this.extractRelatedTopics(content), timestamp: Date.now() }; return result; } /** * Realiza análise sequencial */ async performSequentialAnalysis(content, params = {}) { const { thoughtNumber = 1, totalThoughts = 1, nextThoughtNeeded = false } = params; const sequentialResult = await this.sequentialThinking.processThought(content, thoughtNumber, totalThoughts, nextThoughtNeeded); const result = { type: 'sequential', content: sequentialResult.content, insights: [ `Pensamento ${sequentialResult.thoughtNumber}/${sequentialResult.totalThoughts}`, `Status: ${sequentialResult.status}`, `Próximo pensamento necessário: ${sequentialResult.nextThoughtNeeded ? 'Sim' : 'Não'}` ], steps: [{ number: sequentialResult.thoughtNumber, content: sequentialResult.content, status: sequentialResult.status }], recommendations: this.generateSequentialRecommendations(sequentialResult), relatedTopics: this.extractRelatedTopics(content), timestamp: Date.now() }; return result; } /** * Realiza análise abrangente (criativa + sequencial) */ async performComprehensiveAnalysis(content, params = {}) { // Executar ambas as análises const creativeResult = await this.performCreativeAnalysis(content, params); const sequentialResult = await this.performSequentialAnalysis(content, { thoughtNumber: 1, totalThoughts: 3, nextThoughtNeeded: true }); // Combinar resultados const result = { type: 'comprehensive', content: content, insights: [ ...creativeResult.insights, ...sequentialResult.insights, ...this.generateCombinedInsights(creativeResult, sequentialResult) ], ...(creativeResult.patterns && { patterns: creativeResult.patterns }), ...(creativeResult.themes && { themes: creativeResult.themes }), ...(creativeResult.styleElements && { styleElements: creativeResult.styleElements }), ...(sequentialResult.steps && { steps: sequentialResult.steps }), recommendations: [ ...creativeResult.recommendations, ...sequentialResult.recommendations, ...this.generateComprehensiveRecommendations(creativeResult, sequentialResult) ], relatedTopics: [ ...creativeResult.relatedTopics, ...sequentialResult.relatedTopics ], timestamp: Date.now() }; return result; } /** * Gera recomendações baseadas em análise criativa */ generateCreativeRecommendations(creativeResult) { const recommendations = []; if (creativeResult.patterns && creativeResult.patterns.length > 0) { recommendations.push(`Explorar padrões identificados: ${creativeResult.patterns.slice(0, 3).join(', ')}`); } if (creativeResult.themes && creativeResult.themes.length > 0) { recommendations.push(`Desenvolver temas principais: ${creativeResult.themes.slice(0, 2).join(', ')}`); } if (creativeResult.styleElements && creativeResult.styleElements.length > 0) { recommendations.push(`Manter consistência nos elementos de estilo identificados`); } if (creativeResult.insights && creativeResult.insights.length > 2) { recommendations.push('Considerar implementar insights de alta prioridade primeiro'); } return recommendations; } /** * Gera recomendações baseadas em análise sequencial */ generateSequentialRecommendations(sequentialResult) { const recommendations = []; if (sequentialResult.nextThoughtNeeded) { recommendations.push('Continuar análise sequencial para aprofundar o entendimento'); } if (sequentialResult.status === 'in-progress') { recommendations.push('Documentar progressos parciais para referência futura'); } if (sequentialResult.thoughtNumber === 1) { recommendations.push('Considerar dividir problema em etapas menores'); } recommendations.push('Revisar conclusões após completar sequência de pensamentos'); return recommendations; } /** * Gera insights combinados */ generateCombinedInsights(creativeResult, sequentialResult) { const insights = []; // Analisar sobreposições entre criatividade e sequencialidade if (creativeResult.patterns && creativeResult.patterns.length > 0) { insights.push('Análise criativa identificou padrões que podem ser organizados sequencialmente'); } if (sequentialResult.steps && sequentialResult.steps.length > 0) { insights.push('Pensamento sequencial pode ser enriquecido com insights criativos'); } // Identificar complementaridades insights.push('Abordagem dual permite tanto inovação quanto estruturação sistemática'); if (creativeResult.themes && creativeResult.themes.length > 1) { insights.push('Múltiplos temas identificados podem ser priorizados sequencialmente'); } return insights; } /** * Gera recomendações abrangentes */ generateComprehensiveRecommendations(creativeResult, sequentialResult) { const recommendations = []; recommendations.push('Balancear exploração criativa com execução estruturada'); recommendations.push('Usar insights criativos para informar etapas sequenciais'); recommendations.push('Documentar tanto o processo criativo quanto as decisões lógicas'); if (creativeResult.patterns && creativeResult.patterns.length > 2) { recommendations.push('Implementar padrões identificados de forma incremental'); } if (sequentialResult.steps && sequentialResult.steps.length > 0) { recommendations.push('Revisar progresso sequencial periodicamente para ajustes criativos'); } return recommendations; } /** * Extrai tópicos relacionados do conteúdo */ extractRelatedTopics(content) { const topics = []; const contentLower = content.toLowerCase(); // Tópicos fixos do sistema const fixedTopics = ['summary', 'libraries', 'change-history', 'architecture', 'todo', 'bugs', 'features', 'documentation', 'testing', 'deployment']; for (const topic of fixedTopics) { if (contentLower.includes(topic)) { topics.push(topic); } } // Palavras-chave técnicas comuns const technicalKeywords = ['api', 'database', 'frontend', 'backend', 'performance', 'security', 'ui', 'ux', 'integration']; for (const keyword of technicalKeywords) { if (contentLower.includes(keyword)) { topics.push(keyword); } } return [...new Set(topics)]; // Remove duplicatas } /** * Gera resumo executivo da análise */ generateExecutiveSummary(result) { const summary = []; summary.push(`Análise ${result.type} realizada em ${new Date(result.timestamp).toLocaleString()}`); if (result.insights.length > 0) { summary.push(`${result.insights.length} insights identificados`); } if (result.patterns && result.patterns.length > 0) { summary.push(`${result.patterns.length} padrões detectados`); } if (result.themes && result.themes.length > 0) { summary.push(`${result.themes.length} temas principais`); } if (result.steps && result.steps.length > 0) { summary.push(`${result.steps.length} etapas sequenciais processadas`); } summary.push(`${result.recommendations.length} recomendações geradas`); if (result.relatedTopics.length > 0) { summary.push(`Relacionado a: ${result.relatedTopics.slice(0, 3).join(', ')}`); } return summary.join('. ') + '.'; } } //# sourceMappingURL=unified-analyzer.js.map