@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
JavaScript
/**
* 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