UNPKG

dependency-context

Version:

MCP server for providing dependency documentation context to AI assistants

52 lines 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchParamsSchema = void 0; exports.searchDependencyDocs = searchDependencyDocs; const vectorstore_1 = require("../vectorstore"); const config_1 = require("../config"); const zod_1 = require("zod"); // Define the schema for the tool parameters const SearchParamsSchema = zod_1.z.object({ project_path: zod_1.z.string().describe("The absolute path to the project directory"), query: zod_1.z.string().describe("The search query"), repository_context: zod_1.z.string().optional().describe("Optional repository name to limit the search to"), env_vars: zod_1.z.record(zod_1.z.string()).optional().describe("Environment variables to set during search") }); exports.SearchParamsSchema = SearchParamsSchema; /** * Performs semantic search over indexed dependency documentation */ async function searchDependencyDocs(params, context) { const log = context?.log || console; try { const { project_path, query, repository_context, env_vars } = params; log.info(`Searching for "${query}" in project at ${project_path}`); // Set environment variables if provided via MCP if (env_vars) { for (const [key, value] of Object.entries(env_vars)) { process.env[key] = value; } } // Get configuration (includes project-specific .env) const config = (0, config_1.getConfig)(project_path); if (config.debugMode) { log.debug(`Search details:`, { query, repository_context: repository_context || 'all repositories' }); } // Perform vector search const results = await (0, vectorstore_1.searchVectorStore)(project_path, query, repository_context, config); log.info(`Found ${results.length} results for search query`); return JSON.stringify({ results }); } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); log.error('Error performing search:', { error: errorMessage }); return JSON.stringify({ results: [], error: errorMessage }); } } //# sourceMappingURL=search.js.map