export interface HarvestPattern { id: string; name?: string; content?: string; } export interface HarvestedTask { id: string; input: { id: string; q: string; targetId: string; }; expected: string; provenanceTier: 'oracle:self-identity'; } export interface BlendedCorpus { version: string; corpusHash: string; anchorIds: string[]; tasks: Array<{ id: string; input: unknown; expected: unknown; }>; } /** * Harvest up to `sample` self-retrieval tasks from real patterns. Deterministic * stride sampling (stable across runs); skips docs whose body is too thin to * form a discriminative query. */ export declare function harvestSelfSupervisedTasks(patterns: HarvestPattern[], opts?: { sample?: number; minQueryTerms?: number; }): HarvestedTask[]; /** Content hash over the task ids+queries — changes iff the corpus changes. */ export declare function hashBlend(tasks: Array<{ id: string; input: unknown; expected: unknown; }>): string; /** * Blend a human-labeled anchor set with harvested tasks into one versioned, * hashed corpus. The version encodes the sizes + hash so it visibly grows as the * store does; `anchorIds` marks the never-regress subset. */ export declare function blendCorpus(anchor: Array<{ id: string; input: unknown; expected: unknown; }>, harvested: HarvestedTask[]): BlendedCorpus; //# sourceMappingURL=harness-corpus-harvester.d.ts.map