/** * checkin/judge.ts * * The judgment seam. The default implementation makes one structured model call * over the current provider/model (the same getCurrentModel + provider.chat * primitive the knowledge semantic LLM uses), asking for a compact JSON decision * {contact, message, reason}. It is a single decide-and-maybe-notify call, not a * multi-turn agent, which is what lets the whole check-in loop close * synchronously and stay testable with a fake judge. * * HONESTY: if the model returns nothing parseable, the judge decides NOT to * contact (contact:false) with an explicit reason rather than inventing a * message, a check-in must never fabricate a reason to interrupt the user. */ import type { ProviderRegistry } from '../providers/registry.js'; import type { CheckinDecision, CheckinJudge } from './types.js'; /** * Parse a model response into a decision. Tolerant of surrounding prose/code * fences; on any failure returns a quiet decision with an explicit reason. */ export declare function parseCheckinDecision(text: string | null | undefined): CheckinDecision; export interface ProviderBackedCheckinJudgeOptions { readonly timeoutMs?: number | undefined; } /** Build a judge over the registry's current model. */ export declare function createProviderBackedCheckinJudge(providerRegistry: ProviderRegistry, options?: ProviderBackedCheckinJudgeOptions): CheckinJudge; //# sourceMappingURL=judge.d.ts.map