function approvedMapping(ladderModelId, frontmatterModel, syntaxFamily, options = {}) {
    return {
        ladderModelId,
        frontmatterModel,
        syntaxFamily,
        gateEvidence: {
            gate: 'g01',
            probeName: options.probeName ??
                `oat-pin-probe-${ladderModelId.replaceAll('.', '-')}`,
            disposition: 'approved',
        },
        catalogue: options.catalogue ?? true,
    };
}
export const CURSOR_MODEL_PIN_MAPPINGS = [
    approvedMapping('composer-2.5', 'composer-2.5[fast=true]', 'composer-fast'),
    approvedMapping('composer-2.5-fast', 'composer-2.5[fast=true]', 'composer-fast', { catalogue: false }),
    approvedMapping('claude-sonnet-5-high', 'claude-sonnet-5[effort=high]', 'claude-effort'),
    approvedMapping('gpt-5.6-luna-high', 'gpt-5.6-luna[reasoning=high]', 'gpt-reasoning'),
    approvedMapping('gpt-5.6-luna-xhigh', 'gpt-5.6-luna[reasoning=xhigh]', 'gpt-reasoning'),
    approvedMapping('cursor-grok-4.5-high', 'grok-4.5[effort=high,fast=false]', 'grok-effort-fast'),
    approvedMapping('cursor-grok-4.5-high-fast', 'grok-4.5[effort=high,fast=true]', 'grok-effort-fast', { catalogue: false }),
    approvedMapping('gpt-5.6-terra-high', 'gpt-5.6-terra[reasoning=high]', 'gpt-reasoning'),
    approvedMapping('gpt-5.6-sol-medium', 'gpt-5.6-sol[reasoning=medium]', 'gpt-reasoning'),
    approvedMapping('gpt-5.6-sol-high', 'gpt-5.6-sol[reasoning=high]', 'gpt-reasoning'),
    approvedMapping('claude-fable-5-thinking-high', 'claude-fable-5[effort=high]', 'claude-effort'),
    approvedMapping('claude-fable-5-thinking-xhigh', 'claude-fable-5[effort=xhigh]', 'claude-effort'),
    approvedMapping('claude-fable-5-xhigh', 'claude-fable-5[effort=xhigh]', 'claude-effort', { catalogue: false }),
    approvedMapping('gpt-5.6-sol-xhigh', 'gpt-5.6-sol[reasoning=xhigh]', 'gpt-reasoning'),
    approvedMapping('gpt-5.6-sol-max', 'gpt-5.6-sol[reasoning=max]', 'gpt-reasoning'),
];
export const SUPPORTED_CURSOR_ROLE_TARGETS = CURSOR_MODEL_PIN_MAPPINGS.filter((mapping) => mapping.catalogue);
export const SUPPORTED_CURSOR_BASE_ROLES = [
    'oat-phase-implementer',
    'oat-reviewer',
];
export function findCursorModelPinMapping(ladderModelId) {
    return CURSOR_MODEL_PIN_MAPPINGS.find((mapping) => mapping.ladderModelId === ladderModelId);
}
