Project Files
src / types.ts
/**
* Shared types for the RAG pipeline
*/
export interface Document {
id: number;
path: string;
hash: string;
title?: string;
metadata: Record<string, any>;
updatedAt: Date;
}
export interface Chunk {
id: number;
documentId: number;
content: string;
embedding?: Float32Array;
metadata: {
documentPath: string;
chunkIndex: number;
startOffset?: number;
endOffset?: number;
[key: string]: any;
};
}
export interface SearchResult {
chunk: Chunk;
document: Document;
score: number;
distance: number;
}
export interface ParsedDocument {
content: string;
metadata: {
title?: string;
author?: string;
pageCount?: number;
hasImages?: boolean;
hasTables?: boolean;
[key: string]: any;
};
}
export type DocumentFormat = 'txt' | 'md' | 'pdf' | 'unknown';
export interface ParserOptions {
preserveFormatting?: boolean;
extractTables?: boolean;
signal?: AbortSignal;
onProgress?: (progress: number) => void;
}