/** * Agentic QE v3 - Code Intelligence MCP Tool * * qe/code/analyze - Analyze code using knowledge graph and semantic search * * This tool wraps the REAL code-intelligence domain services: * - KnowledgeGraphService for indexing and dependency mapping * - SemanticAnalyzerService for semantic code search * - ImpactAnalyzerService for change impact analysis */ import { MCPToolBase, MCPToolConfig, MCPToolContext } from '../base'; import { ToolResult } from '../../types'; export interface CodeAnalyzeParams { action: 'index' | 'search' | 'impact' | 'dependencies'; paths?: string[]; query?: string; changedFiles?: string[]; depth?: number; incremental?: boolean; [key: string]: unknown; } export interface CodeAnalyzeResult { action: string; indexResult?: IndexResult; searchResult?: SearchResult; impactResult?: ImpactResult; dependencyResult?: DependencyResult; } export interface IndexResult { filesIndexed: number; nodesCreated: number; edgesCreated: number; duration: number; errors: { file: string; error: string; }[]; } export interface SearchResult { results: SearchHit[]; total: number; searchTime: number; } export interface SearchHit { file: string; line?: number; snippet: string; score: number; highlights: string[]; } export interface ImpactResult { directImpact: ImpactedFile[]; transitiveImpact: ImpactedFile[]; impactedTests: string[]; riskLevel: 'critical' | 'high' | 'medium' | 'low' | 'info'; recommendations: string[]; } export interface ImpactedFile { file: string; reason: string; distance: number; riskScore: number; } export interface DependencyResult { nodes: DependencyNode[]; edges: DependencyEdge[]; cycles: string[][]; metrics: { totalNodes: number; totalEdges: number; avgDegree: number; maxDepth: number; }; } export interface DependencyNode { id: string; path: string; type: 'module' | 'class' | 'function' | 'file'; inDegree: number; outDegree: number; } export interface DependencyEdge { source: string; target: string; type: 'import' | 'call' | 'extends' | 'implements'; } export declare class CodeAnalyzeTool extends MCPToolBase { readonly config: MCPToolConfig; private knowledgeGraph; private semanticAnalyzer; private impactAnalyzer; /** * Get or create the knowledge graph service */ private getKnowledgeGraph; /** * Get or create the semantic analyzer service */ private getSemanticAnalyzer; /** * Get or create the impact analyzer service */ private getImpactAnalyzer; execute(params: CodeAnalyzeParams, context: MCPToolContext): Promise>; /** * Index files using the real KnowledgeGraphService */ private executeIndex; /** * Search code using the real SemanticAnalyzerService */ private executeSearch; /** * Return demo search results when no real data available. * Only used when demoMode is explicitly requested or as fallback with warning. */ private getDemoSearchResult; /** * Return demo impact results when no real data available. * Only used when demoMode is explicitly requested or as fallback with warning. */ private getDemoImpactResult; /** * Analyze impact using the real ImpactAnalyzerService */ private executeImpact; /** * Map dependencies using the real KnowledgeGraphService */ private executeDependencies; /** * Expand directory paths to file paths */ private expandPaths; /** * Find source files in a directory */ private findSourceFiles; } //# sourceMappingURL=analyze.d.ts.map