Files
brain/tools/mentor-gate-config.mjs
T

29 lines
1.5 KiB
JavaScript

#!/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 };