/** * Forgen v0.5.0 — per-model 가드 프로필 (ADR-010 W4-3, F3) * * 근거 (v0.4.11 실측, docs/release/v0.4.11-calibration-pending.md): * opus-4.8 에서 완료 가드(TEST-1/2/3) blocks=0 — easy N=10 / hard N=6, * false-completion 압박 케이스 포함. 프론티어 모델은 스스로 정직해져서 * 완료 가드가 발화하지 않으며, 발화한다면 거짓양성일 개연성이 높다. * → 측정된 모델은 block 대신 advise(기록+주입만)로 강등한다. * * 미측정 모델(sonnet-5 포함)은 보수적으로 block 유지 — R1/R2 재캘리브레이션이 * 측정을 제공하면 테이블을 갱신한다. DANGEROUS 가드(파괴 명령)는 모델 무관 * 결정적 안전장치라 이 프로필의 대상이 아니다. * * 모델 식별 경로 (probe 2026-07-16): hook stdin 에는 모델 필드가 없다. * Claude Code statusline stdin 에는 session_id + model.id 가 오므로, * `forgen statusline` 이 세션별 캐시를 남기고 Stop/SubagentStop 가드가 * session_id 로 조회한다. 캐시 부재(statusline 미사용 등) 시 'unknown' * → 현행 동작(block) 유지. FORGEN_MODEL env 가 있으면 최우선. */ export type CompletionGuardMode = 'block' | 'advise'; export declare function guardModeForModel(modelId: string | null | undefined): CompletionGuardMode; /** statusline 이 세션별 모델을 기록 (fail-open) */ export declare function cacheSessionModel(sessionId: string, modelId: string, home?: string): void; /** 가드가 세션별 모델 조회. 우선순위: FORGEN_MODEL env > statusline 캐시 > null */ export declare function readSessionModel(sessionId: string, home?: string): string | null;