/** * LLM task router for Iranti's Librarian and Attendant. * * Maps each semantic task type (classification, conflict_resolution, etc.) to * an appropriate model based on the active LLM_PROVIDER and optional per-task * model overrides via env vars (CLASSIFICATION_MODEL, CONFLICT_MODEL, etc.). * Provider compatibility is validated before applying an override — incompatible * overrides are logged and the default model is used instead. * * Task routing rationale: * - conflict_resolution → strongest model (requires careful reasoning) * - all other task types → fast/cheap model (classification, filtering, extraction) * * Key exports: * - route() — execute an LLM call with the correct model for the task * - getModelProfile() — inspect which model would be used for a given task * - getAllProfiles() — full provider/model map for all task types * - TaskType — union of supported task type strings */ import { LLMMessage, LLMResponse } from './llm'; export type TaskType = 'classification' | 'relevance_filtering' | 'conflict_resolution' | 'summarization' | 'task_inference' | 'extraction'; interface ModelProfile { provider: string; model: string; reason: string; } export declare function route(taskType: TaskType, messages: LLMMessage[], maxTokens?: number): Promise; export declare function getModelProfile(taskType: TaskType): ModelProfile; export declare function getAllProfiles(): Record; export {}; //# sourceMappingURL=router.d.ts.map