remcode
Version:
Turn your AI assistant into a codebase expert. Intelligent code analysis, semantic search, and software engineering guidance through MCP integration.
89 lines (88 loc) • 2.11 kB
TypeScript
/**
* Common types used across the processing system
*/
import { ChunkStrategyType } from '../vectorizers/types';
export { CodeChunk, ChunkStrategyType } from '../vectorizers/types';
/**
* File change information from git
*/
export interface FileChange {
path: string;
status: 'added' | 'modified' | 'deleted' | 'renamed';
previousPath?: string;
size?: number;
extension?: string;
}
/**
* Analysis of a single file
*/
export interface FileAnalysis {
path: string;
category: 'priority' | 'normal' | 'test' | 'config' | 'ignore';
language: string;
complexity: 'low' | 'medium' | 'high';
size: number;
sloc?: number;
imports?: string[];
exports?: string[];
functions?: string[];
classes?: string[];
dependencies?: string[];
chunkingStrategy: ChunkStrategyType;
metadata?: Record<string, any>;
}
/**
* Processing statistics
*/
export interface ProcessingStats {
totalFiles: number;
addedFiles: number;
modifiedFiles: number;
deletedFiles: number;
totalChunks: number;
totalEmbeddings: number;
errorCount: number;
startTime: Date;
endTime?: Date;
durationMs?: number;
}
/**
* Analysis options for file processing
*/
export interface AnalysisOptions {
basePath: string;
skipAST?: boolean;
skipDependencies?: boolean;
maxFileSizeBytes?: number;
}
/**
* Options for incremental processing
*/
export interface IncrementalProcessorOptions {
repoPath: string;
pineconeApiKey: string;
pineconeEnvironment?: string;
pineconeIndexName: string;
pineconeNamespace?: string;
embeddingModel?: string;
batchSize?: number;
dryRun?: boolean;
includeTests?: boolean;
}
/**
* Vector metadata for storage
*/
export interface VectorMetadata {
filePath: string;
language: string;
category: string;
startLine?: number;
endLine?: number;
functionName?: string;
className?: string;
chunkType: string;
strategy: string;
repo: string;
changeType?: 'added' | 'modified' | 'deleted' | 'renamed';
[key: string]: any;
}