@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
84 lines • 2.49 kB
TypeScript
/**
* Neo4j Context Provider for MCP Server
*
* Provides source code context from Neo4j database to complement TTL metadata,
* creating a comprehensive triple context system for LLM interactions.
*/
import { Neo4jDatabaseService } from '../layer2/neo4j-database/Neo4jDatabaseService';
import { ContextRequest, Neo4jContextResult, SourceCodeContext, Neo4jContextProviderConfig } from './types';
/**
* Neo4j Context Provider
*
* Queries Neo4j database for source code content and relationships
* to provide rich context alongside TTL metadata files.
*/
export declare class Neo4jContextProvider {
private neo4jService;
private config;
constructor(neo4jService: Neo4jDatabaseService, config: Neo4jContextProviderConfig);
/**
* Get source code context from Neo4j for a specific request
*/
getSourceCodeContext(request: ContextRequest): Promise<Neo4jContextResult>;
/**
* Search for related source code based on query
*/
searchSourceCode(query: string, language?: string): Promise<SourceCodeContext[]>;
/**
* Get code relationships and dependencies
*/
getCodeRelationships(filePath: string): Promise<{
dependencies: SourceCodeContext[];
dependents: SourceCodeContext[];
related: SourceCodeContext[];
}>;
/**
* Build context queries based on request
*/
private buildContextQueries;
/**
* Build search queries for source code search
*/
private buildSearchQueries;
/**
* Execute Neo4j query with error handling
*/
private executeNeo4jQuery;
/**
* Execute a context query
*/
private executeContextQuery;
/**
* Process query results into context sources
*/
private processQueryResults;
/**
* Extract source code contexts from query results
*/
private extractSourceCodeContexts;
/**
* Extract source code context from a Neo4j record
*/
private extractSourceCodeFromRecord;
/**
* Format source code for LLM consumption
*/
private formatSourceCodeForLLM;
/**
* Calculate relevance score for a record
*/
private calculateRelevanceScore;
/**
* Detect language from file path
*/
private detectLanguageFromPath;
/**
* Extract file name from path
*/
private extractFileName;
/**
* Extract directory from path
*/
private extractDirectory;
}
//# sourceMappingURL=Neo4jContextProvider.d.ts.map