#!/usr/bin/env node /** * mentor-gate-config — рубильник наставника (зеркало judge-gate-config.mjs:10-32). * Активен ТОЛЬКО при ROUTER_MENTOR_SEAM_ENABLED=1 И наличии ROUTER_LLM_KEY (транспорт). * Без них — inert: обёртка no-op ($0), freeze-gate в печать НЕ подключается. * Имя SEAM — чтобы владелец не путал с судейским ROUTER_MENTOR_JUDGE_ENABLED. */ const ENABLED_ENV = 'ROUTER_MENTOR_SEAM_ENABLED'; /** «Оба строго» (решение владельца 2026-06-12): наставник ест ТОЛЬКО со своего * ROUTER_MENTOR_LLM_KEY — общий ROUTER_LLM_KEY НЕ фолбэк (разделение счетов). */ export function resolveMentorLlmKey({ env = process.env } = {}) { return env.ROUTER_MENTOR_LLM_KEY || null; } export function mentorSeamActive({ env = process.env } = {}) { return env[ENABLED_ENV] === '1' && !!resolveMentorLlmKey({ env }); } /** W-2 (sharp-edges 2026-06-12): корень репо для C-3-резолва цитат в mentorGate — * из события хука (event.cwd несёт harness), фолбэк process.cwd(). Утверждение * «cwd хука = корень репо» кодом не гарантировано — берём из события. */ export function repoRootOf(event) { const c = event && event.cwd; return (typeof c === 'string' && c.trim()) ? c : process.cwd(); } export const _internals = { ENABLED_ENV };