/** * Model router (per PLAN.md / decisions.md): prose + the read tool run on a * small local model; decomposition/negotiation earns the big one. Reginald v0 * only exercises the small model (read + prose); the `big` slot is declared so * `capture_work` / `record_directive` can route to it without a rewrite. */ import type { ModelConfig } from './chat-client.js' export type TaskKind = 'ritual' | 'plan' export interface ModelRouter { /** Small local model — standups, focus prose, the read tool. */ small: ModelConfig /** Big model — capture decomposition, directive negotiation. */ big: ModelConfig } /** `plan` → the big model; everything else → the small one. */ export function pickModel(router: ModelRouter, kind: TaskKind): ModelConfig { return kind === 'plan' ? router.big : router.small }