UNPKG

@aaswe/codebase-ai

Version:

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

180 lines 4.63 kB
import { Document } from '@langchain/core/documents'; export interface RAGConfig { 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; }; embeddings: { provider: 'openai' | 'local'; model: string; dimensions: number; }; cache: { enabled: boolean; ttl: number; maxSize: number; }; } export interface CodeContext { filePath: string; language: string; content: string; functions: Array<{ name: string; signature: string; docstring?: string; startLine: number; endLine: number; }>; classes: Array<{ name: string; methods: string[]; properties: string[]; startLine: number; endLine: number; }>; imports: Array<{ module: string; items: string[]; alias?: string; }>; dependencies: string[]; metadata: { lastModified: Date; size: number; complexity: number; testCoverage?: number; }; } export interface QueryContext { query: string; intent: 'code_explanation' | 'bug_fix' | 'feature_request' | 'refactoring' | 'testing' | 'documentation'; scope: 'file' | 'module' | 'project' | 'global'; language?: string; filePath?: string; codeSelection?: { startLine: number; endLine: number; content: string; }; previousContext?: string[]; userPreferences?: { verbosity: 'concise' | 'detailed' | 'comprehensive'; includeExamples: boolean; includeReferences: boolean; }; } export interface RAGResponse { answer: string; sources: Array<{ document: Document; score: number; relevance: 'high' | 'medium' | 'low'; type: 'code' | 'documentation' | 'test' | 'comment'; }>; context: { retrievedDocuments: number; tokensUsed: number; processingTime: number; cacheHit: boolean; }; reasoning: { steps: string[]; confidence: number; alternatives?: string[]; }; suggestions?: { followUpQuestions: string[]; relatedTopics: string[]; actionItems: string[]; }; } export interface DocumentMetadata { source: string; type: 'code' | 'documentation' | 'test' | 'comment' | 'config'; language?: string; filePath: string; lastModified: Date; size: number; hash: string; version?: string; tags: string[]; relationships: Array<{ type: 'imports' | 'extends' | 'implements' | 'calls' | 'tests'; target: string; confidence: number; }>; } export interface SemanticSearchResult { documents: Document[]; scores: number[]; query: string; searchTime: number; totalResults: number; filters?: Record<string, any>; } export interface ContextChain { id: string; messages: Array<{ role: 'user' | 'assistant' | 'system'; content: string; timestamp: Date; metadata?: Record<string, any>; }>; context: { codeFiles: string[]; relevantDocs: string[]; userIntent: string; sessionId: string; }; reasoning: { chain: string[]; confidence: number; sources: string[]; }; } export interface RAGMetrics { queries: { total: number; successful: number; failed: number; averageResponseTime: number; }; retrieval: { averageDocuments: number; averageScore: number; cacheHitRate: number; }; llm: { tokensUsed: number; averageTokensPerQuery: number; costEstimate: number; }; performance: { memoryUsage: number; cpuUsage: number; diskUsage: number; }; } export type RAGErrorCode = 'RETRIEVAL_FAILED' | 'LLM_ERROR' | 'CONTEXT_TOO_LARGE' | 'INVALID_QUERY' | 'RATE_LIMITED' | 'INITIALIZATION_FAILED' | 'VECTOR_STORE_NOT_INITIALIZED' | 'DOCUMENT_ADDITION_FAILED' | 'QUERY_FAILED' | 'RETRIEVER_NOT_INITIALIZED'; export interface RAGErrorDetails { code: RAGErrorCode; details: Record<string, any>; timestamp: Date; query?: string; context?: any; } //# sourceMappingURL=types.d.ts.map