@mmlotfy/intellicodemcp
Version:
IntelliCodeMCP - Advanced AI Model Context Protocol System for intelligent code management and orchestration
139 lines • 5.38 kB
JavaScript
;
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