Project Files
packages / core / src / contracts.ts
export type RagFusionMethod = "reciprocal-rank-fusion" | "max-score";
export type RagRerankStrategy = "heuristic-v1" | "heuristic-then-llm";
export interface RagDocument {
id: string;
name: string;
content: string;
metadata?: Record<string, unknown>;
}
export interface RagCandidate {
sourceId: string;
sourceName: string;
content: string;
score: number;
metadata?: Record<string, unknown>;
}
export interface RagEvidenceBlock {
label: string;
fileName: string;
content: string;
score: number;
candidate: RagCandidate;
}
export interface RagRankFeatures {
lexicalOverlap: number;
headingMatch: number;
completeness: number;
sectionRelevance: number;
diversityPenalty: number;
}
export interface RagRankedCandidate {
candidate: RagCandidate;
originalScore: number;
rerankScore: number;
features: RagRankFeatures;
}