UNPKG

@mmlotfy/intellicodemcp

Version:

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

91 lines 3.19 kB
"use strict"; 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