UNPKG

@aaswe/codebase-ai

Version:

AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs

294 lines 8.5 kB
/** * Layer 3: AI/LLM Integration & Reasoning - Types * * Unified type definitions for all Layer 3 AI services including * RAG Engine, GraphCypher QA Chain, and SPARQL Query Engine. */ export * from './langchain-rag/types'; export * from './graph-cypher-qa/types'; export { SPARQLEngineConfig, SPARQLQueryIntent, SPARQLEntity, SPARQLTriplePattern, SPARQLFilter, ParsedSPARQLQuery, SPARQLAggregation, SPARQLOrderBy, GeneratedSPARQLQuery, SPARQLExecutionResult, SPARQLResultRow, SPARQLValue, SPARQLBinding, SPARQLQueryResponse, SPARQLErrorCode, SPARQLError, SPARQLMetrics, SPARQLQueryPattern, OntologyInfo, OntologyClass, OntologyProperty, OntologyIndividual, QueryOptimization as SPARQLQueryOptimization, CacheEntry, SPARQLQueryEvent, ValidationResult, ValidationError, ValidationWarning } from './sparql-query-engine/types'; export interface Layer3Config { rag: { enabled: boolean; vectorStore: { type: 'memory' | 'redis' | 'neo4j'; dimensions: number; similarity: 'cosine' | 'euclidean' | 'dot'; }; retrieval: { topK: number; scoreThreshold: number; maxTokens: number; contextWindow: number; }; llm: { provider: 'openai' | 'anthropic' | 'local'; model: string; temperature: number; maxTokens: number; apiKey?: string; baseURL?: string; }; embeddings: { provider: 'openai' | 'local'; model: string; dimensions: number; apiKey?: string; }; cache: { enabled: boolean; ttl: number; maxSize: number; }; }; graphCypher: { enabled: boolean; neo4j: { uri: string; user: string; password: string; database?: string; }; llm: { provider: 'openai' | 'anthropic' | 'local'; model: string; temperature: number; maxTokens: number; apiKey?: string; baseURL?: string; }; queryGeneration: { maxRetries: number; timeoutMs: number; validateSyntax: boolean; optimizeQuery: boolean; }; schema: { cacheEnabled: boolean; cacheTtl: number; includeIndexes: boolean; includeConstraints: boolean; maxNodes: number; maxRelationships: number; }; response: { includeQuery: boolean; includeExplanation: boolean; maxResults: number; formatResults: boolean; }; }; sparql: { enabled: boolean; rdf: { endpoint?: string; defaultGraph?: string; timeout: number; maxResults: number; }; llm: { provider: 'openai' | 'anthropic' | 'local'; model: string; temperature: number; maxTokens: number; apiKey?: string; baseURL?: string; }; queryGeneration: { maxRetries: number; timeoutMs: number; validateSyntax: boolean; optimizeQuery: boolean; usePatterns: boolean; }; prefixes: { [prefix: string]: string; }; response: { includeQuery: boolean; includeExplanation: boolean; formatResults: boolean; maxResults: number; }; caching: { enabled: boolean; ttl: number; maxSize: number; }; }; global: { defaultProvider: 'openai' | 'anthropic' | 'local'; fallbackProvider?: 'openai' | 'anthropic' | 'local'; timeout: number; retries: number; enableMetrics: boolean; enableLogging: boolean; }; } export type QueryType = 'rag' | 'cypher' | 'sparql' | 'auto'; export interface UnifiedQuery { query: string; type?: QueryType; context?: { filePath?: string; language?: string; codeSelection?: { startLine: number; endLine: number; content: string; }; previousQueries?: string[]; userPreferences?: Record<string, any>; }; options?: { maxResults?: number; includeExplanation?: boolean; includeQuery?: boolean; timeout?: number; }; } export interface UnifiedResponse { query: string; type: QueryType; answer: string; confidence: number; sources: Array<{ type: 'code' | 'graph' | 'rdf' | 'documentation'; content: string; score: number; metadata?: Record<string, any>; }>; explanation?: string; generatedQuery?: string; suggestions?: { relatedQueries: string[]; followUpQuestions: string[]; optimizations: string[]; }; metadata: { processingTime: number; service: 'rag' | 'cypher' | 'sparql'; cached: boolean; queryId: string; timestamp: number; }; } export interface ServiceStatus { name: string; enabled: boolean; healthy: boolean; lastCheck: Date; error?: string; metrics?: { totalQueries: number; successRate: number; averageResponseTime: number; }; } export interface Layer3Status { overall: 'healthy' | 'degraded' | 'unhealthy'; services: { rag: ServiceStatus; graphCypher: ServiceStatus; sparql: ServiceStatus; }; lastUpdated: Date; } export type Layer3ErrorCode = 'SERVICE_UNAVAILABLE' | 'INVALID_QUERY_TYPE' | 'QUERY_ROUTING_FAILED' | 'ALL_SERVICES_FAILED' | 'CONFIGURATION_ERROR' | 'INITIALIZATION_FAILED' | 'TIMEOUT_ERROR' | 'RATE_LIMITED' | 'INVALID_PARAMETERS'; export declare class Layer3Error extends Error { readonly code: Layer3ErrorCode; readonly service: string | undefined; readonly query: string | undefined; readonly details?: any; constructor(code: Layer3ErrorCode, message: string, options?: { service?: string; query?: string; details?: any; }); } export interface Layer3Metrics { overall: { totalQueries: number; successfulQueries: number; failedQueries: number; averageResponseTime: number; queriesPerSecond: number; }; services: { rag: { queries: number; successRate: number; averageResponseTime: number; cacheHitRate: number; }; graphCypher: { queries: number; successRate: number; averageResponseTime: number; averageConfidence: number; }; sparql: { queries: number; successRate: number; averageResponseTime: number; averageConfidence: number; }; }; routing: { autoDetected: number; manuallySpecified: number; routingAccuracy: number; fallbackUsed: number; }; performance: { memoryUsage: number; cpuUsage: number; cacheSize: number; activeConnections: number; }; } export interface Layer3Event { type: 'query_start' | 'query_complete' | 'query_error' | 'service_status_change' | 'routing_decision'; timestamp: number; queryId?: string; service?: string; data?: any; } export interface QueryRoutingResult { selectedService: 'rag' | 'cypher' | 'sparql'; confidence: number; reasoning: string; alternatives: Array<{ service: 'rag' | 'cypher' | 'sparql'; confidence: number; reason: string; }>; } export interface QueryPattern { pattern: RegExp; service: 'rag' | 'cypher' | 'sparql'; confidence: number; description: string; examples: string[]; } export interface HealthCheckResult { service: string; status: 'healthy' | 'unhealthy' | 'degraded'; responseTime: number; error?: string; details?: Record<string, any>; } export interface ConfigValidationResult { valid: boolean; errors: Array<{ path: string; message: string; value?: any; }>; warnings: Array<{ path: string; message: string; value?: any; }>; } //# sourceMappingURL=types.d.ts.map