import { buildCodexMaterializedRoleName } from './materialize.js';
import { SUPPORTED_CODEX_ROLE_TARGETS } from './shared.js';
export { SUPPORTED_CODEX_ROLE_TARGETS } from './shared.js';
export const SUPPORTED_CODEX_BASE_ROLES = [
    'oat-phase-implementer',
    'oat-reviewer',
];
export function isSupportedCodexRoleTarget(target) {
    return SUPPORTED_CODEX_ROLE_TARGETS.some((supported) => supported.model === target.model && supported.effort === target.effort);
}
export function expandSupportedCodexRoleCatalogue() {
    return SUPPORTED_CODEX_BASE_ROLES.flatMap((baseRole) => SUPPORTED_CODEX_ROLE_TARGETS.map((target) => ({
        baseRole,
        ...target,
        roleName: buildCodexMaterializedRoleName({
            agentName: baseRole,
            model: target.model,
            effort: target.effort,
        }),
    }))).sort((left, right) => left.roleName.localeCompare(right.roleName));
}
