UNPKG

@mmlotfy/intellicodemcp

Version:

IntelliCodeMCP - Advanced AI Model Context Protocol System for intelligent code management and orchestration

139 lines 5.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeSmartThink = executeSmartThink; const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const memory_bank_1 = require("./memory-bank"); const fuse_js_1 = __importDefault(require("fuse.js")); async function executeSmartThink(args) { const { problem, context, max_steps = 12, query } = args; const timestamp = new Date().toISOString(); const agents = [ { name: 'ResearchAgent', tasks: ['data_collection', 'search'] }, { name: 'AnalysisAgent', tasks: ['data_analysis', 'problem_diagnosis'] }, { name: 'SynthesisAgent', tasks: ['solution_formulation', 'summary_generation'] }, ]; const steps = []; let solution = ''; try { // Perform search if query is provided let searchResults = []; if (query) { searchResults = await searchProject(query); steps.push({ agent: 'ResearchAgent', action: 'search', output: `Found ${searchResults.length} relevant files`, }); } // Step 1: ResearchAgent collects data const researchOutput = await researchStep(problem, context, searchResults); steps.push({ agent: 'ResearchAgent', action: 'data_collection', output: researchOutput, }); // Step 2: AnalysisAgent diagnoses the problem const analysisOutput = await analysisStep(problem, researchOutput); steps.push({ agent: 'AnalysisAgent', action: 'problem_diagnosis', output: analysisOutput, }); // Step 3: SynthesisAgent formulates solution solution = await synthesisStep(problem, analysisOutput); steps.push({ agent: 'SynthesisAgent', action: 'solution_formulation', output: solution, }); // Save result const resultFile = `analysis_${timestamp.replace(/[-:.]/g, '')}.json`; const resultData = { problem, steps, solution, search_results: searchResults, timestamp, }; await (0, memory_bank_1.executeMemoryFile)({ action: 'write', category: 'docs', file_name: `think_summaries/${resultFile}`, content: JSON.stringify(resultData, null, 2), }); return resultData; } catch (err) { const errorResult = { problem, steps, solution: `Error: ${err.message}`, timestamp, }; await (0, memory_bank_1.executeMemoryFile)({ action: 'write', category: 'docs', file_name: `think_summaries/error_${timestamp.replace(/[-:.]/g, '')}.json`, content: JSON.stringify(errorResult, null, 2), }); throw err; } } async function searchProject(query) { const basePath = path_1.default.resolve(process.cwd(), 'intelliMemoryHub'); const files = await getFiles(basePath); const documents = await Promise.all(files.map(async (file) => ({ file: path_1.default.relative(process.cwd(), file), content: await fs_1.promises.readFile(file, 'utf8'), }))); const fuse = new fuse_js_1.default(documents, { keys: ['content'], includeScore: true, threshold: 0.3, }); const results = fuse.search(query); const searchResults = results.map((result) => ({ file: result.item.file, content: result.item.content.slice(0, 200) + '...', score: result.score || 0, })); const timestamp = new Date().toISOString().replace(/[-:.]/g, ''); await (0, memory_bank_1.executeMemoryFile)({ action: 'write', category: 'search', file_name: `search_result_${timestamp}.json`, content: JSON.stringify({ query, results: searchResults, timestamp: new Date().toISOString() }, null, 2), }); return searchResults; } async function getFiles(dir) { const entries = await fs_1.promises.readdir(dir, { withFileTypes: true }); const files = []; for (const entry of entries) { const fullPath = path_1.default.join(dir, entry.name); if (entry.isDirectory()) { files.push(...await getFiles(fullPath)); } else if (fullPath.match(/\.(ts|tsx|js|jsx|txt|md|json|yaml)$/)) { files.push(fullPath); } } return files; } async function researchStep(problem, context, searchResults) { // Simulated research using Grok-mini return `Researched ${problem}. Context: ${context || 'none'}. Search results: ${searchResults?.length || 0} items found.`; } async function analysisStep(problem, researchOutput) { // Simulated analysis using DeepSeek return `Analyzed ${problem}. Research findings: ${researchOutput}. Diagnosis: Feasible with current resources.`; } async function synthesisStep(problem, analysisOutput) { // Simulated synthesis using Claude return `Solution for ${problem}: ${analysisOutput}. Proposed steps: 1. Implement feature; 2. Test; 3. Deploy.`; } //# sourceMappingURL=smartthink-weaver.js.map