export type SourceGroup = 'arxiv' | 'semantic_scholar' | 'github_repo' | 'github_code' | 'brave' | 'brave_news' | 'openalex' | 'crossref' | 'pubmed'; export interface EvidenceSource { source: SourceGroup; query: string; title: string; url: string; snippet: string; publishedAt?: string; rank: number; } export interface FailedAttempt { source: SourceGroup; query: string; reason: string; detail?: string; } export interface EvidencePack { sources: EvidenceSource[]; failedAttempts: FailedAttempt[]; generatedAt: string; totalQueries: number; budgetExceeded: boolean; } /** One row of the `## Sources used` table: which adapter group was queried, * whether it returned usable data, and a short note (result count or failure * reason). */ export interface SourceUsage { source: string; attempted: boolean; used: boolean; note?: string; } /** * Deterministic `## Sources used` table built straight from the EvidencePack — * the ground truth for which adapter groups were queried and which returned * data. This replaces parsing a worker-emitted markdown table: the /research * synthesis runs as a per-criterion loop where no single turn is the designated * "emit the sources table" turn, so the worker never reliably produces one and * the parsed table was always empty. */ export declare function summarizeSourcesUsed(pack: EvidencePack): SourceUsage[]; export declare const EVIDENCE_PACK_LIMITS: Readonly<{ MAX_TOTAL_BYTES: number; MAX_PER_GROUP: 10; MAX_SNIPPET_CHARS: 500; MAX_TOTAL_SOURCES: 70; }>; export declare function dedupSources(input: EvidenceSource[]): EvidenceSource[]; export declare function applyBudget(inputSources: EvidenceSource[], failedAttempts: FailedAttempt[]): EvidencePack; export declare function serializeEvidencePack(pack: EvidencePack): string; //# sourceMappingURL=evidence-pack.d.ts.map