/**
 * 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
}
