export interface Session { id: string; timestamp?: string; content: string; } export interface Question { id: string; type: string; question: string; answer?: string; goldSessionIds: string[]; haystack: Session[]; } export interface RankedDoc { sessionId: string; score: number; } export interface Adapter { name: string; init(sessions: Session[], config?: Record): Promise; query(q: string, state: State, k: number): Promise; teardown?(state: State): Promise; } export interface ScoreRow { questionId: string; questionType: string; adapter: string; k: number; precisionAtK: number; recallAtK: number; hit: boolean; topGoldRank: number | null; latencyMs: number; }