/** * llmindex.io — canonical task/subject domains (v1) * Author: Simon-Pierre Boucher * Contact: contact@spboucher.ai * License: Proprietary — © Simon-Pierre Boucher, all rights reserved */ export const DOMAINS = [ 'code', 'math', 'reasoning', 'agentic', 'terminal', 'writing', 'knowledge', 'multilingual', 'instruction_following', 'safety_refusal_quality', 'svg_design', 'vision_ocr', ] as const; export type Domain = (typeof DOMAINS)[number]; export const GLOBAL_DOMAIN = 'global' as const; /** Domains scored via graded items + IRT (vs. pairwise duels + Bradley-Terry). */ export const IRT_DOMAINS: readonly Domain[] = [ 'code', 'math', 'reasoning', 'agentic', 'terminal', 'knowledge', 'multilingual', 'instruction_following', 'vision_ocr', ]; /** Domains requiring image input — only run against multimodal models. */ export const VISION_DOMAINS: readonly Domain[] = ['vision_ocr']; /** Open-ended domains scored via LLM-judged pairwise duels (Bradley-Terry). */ export const DUEL_DOMAINS: readonly Domain[] = ['writing', 'safety_refusal_quality', 'svg_design']; export function isDomain(value: string): value is Domain { return (DOMAINS as readonly string[]).includes(value); }