@mmlotfy/intellicodemcp
Version:
IntelliCodeMCP - Advanced AI Model Context Protocol System for intelligent code management and orchestration
91 lines • 3.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeWebSearch = executeWebSearch;
const serpapi_1 = require("serpapi");
const memory_bank_1 = require("./memory-bank");
async function executeWebSearch(args) {
const { query, num_results = 10, api_key } = args;
const timestamp = new Date().toISOString();
// Use provided API key or environment variable
const serpApiKey = api_key || process.env.SERPAPI_KEY || 'c116c10cb67d15b8304c63c935346412ccd7457605b918eb3f69e8cf1db53760';
if (!serpApiKey) {
return {
status: 'error',
message: 'SerpAPI key is required. Please provide api_key parameter or set SERPAPI_KEY environment variable.',
};
}
try {
console.log(`🔍 Searching web for: "${query}"`);
const searchParams = {
q: query,
engine: 'google',
api_key: serpApiKey,
num: num_results,
hl: 'en',
gl: 'us',
};
const response = await (0, serpapi_1.getJson)(searchParams);
if (!response.organic_results) {
return {
status: 'error',
message: 'No search results found',
query,
timestamp,
};
}
const results = response.organic_results.map((result, index) => ({
title: result.title || 'No title',
link: result.link || '',
snippet: result.snippet || 'No description available',
position: index + 1,
}));
// Save search results to IntelliMemory Hub
const searchEntry = {
query,
timestamp,
source: 'web_search',
api_used: 'SerpAPI',
results_count: results.length,
results,
};
const searchFile = `web_search_${timestamp.replace(/[-:.]/g, '')}.json`;
await (0, memory_bank_1.executeMemoryFile)({
action: 'write',
category: 'search',
file_name: searchFile,
content: JSON.stringify(searchEntry, null, 2),
});
console.log(`✅ Found ${results.length} web results, saved to ${searchFile}`);
return {
status: 'success',
query,
results_count: results.length,
results,
saved_to: `intelliMemoryHub/docs/search_results/${searchFile}`,
timestamp,
};
}
catch (error) {
const errorEntry = {
query,
timestamp,
source: 'web_search',
error: error.message,
status: 'failed',
};
const errorFile = `web_search_error_${timestamp.replace(/[-:.]/g, '')}.json`;
await (0, memory_bank_1.executeMemoryFile)({
action: 'write',
category: 'search',
file_name: errorFile,
content: JSON.stringify(errorEntry, null, 2),
});
return {
status: 'error',
message: `Web search failed: ${error.message}`,
query,
timestamp,
};
}
}
//# sourceMappingURL=web-search.js.map