/**
 * 검색 품질 벤치마크·카테고리 리포트 타입
 */
/**
 * benchmark-v3 오프라인 시드(createSeededBenchmarkDatabase)는 TF-IDF 벡터만 저장한다.
 * 하이브리드 검색 시 쿼리 임베딩도 동일 provider로 고정해 환경의 EMBEDDING_PROVIDER와 무관하게 결정론적 베이스라인을 만든다.
 */
export const BENCHMARK_OFFLINE_VECTOR_PROVIDER_FILTER = ['tfidf'];
const MACRO_CATEGORY_SET = new Set([
    'episodic_recent',
    'procedural',
    'conceptual',
    'tag_filter',
]);
/** category-mapping.json의 query_overrides 등 — 오타 시 즉시 실패 */
export function assertMacroCategory(value, contextLabel) {
    if (!MACRO_CATEGORY_SET.has(value)) {
        const allowed = [...MACRO_CATEGORY_SET].sort().join(', ');
        throw new Error(`Invalid macro category "${value}" for ${contextLabel}. Expected one of: ${allowed}`);
    }
    return value;
}
//# sourceMappingURL=benchmark.types.js.map