@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
180 lines • 4.63 kB
TypeScript
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