/** * Schemastery config schema for the cortiq-router plugin. * * This schema is the settings form shown in the DSH web UI (Settings → Models → * Cortiq Router), so every field description is the UI's explanation of it. * * The form reads top-down as the story of one request: connect to the router, * decide what it classifies, then say which model serves each answer. */ import { type Locale } from './i18n.js'; /** The provider route id used in DSH's LLM seam. */ export declare const PROVIDER = "cortiq-router"; /** Display name shown in model pickers and settings tabs. */ export declare const DISPLAY_NAME = "Cortiq Router"; /** Settings namespace — the plugin's config lives under `llm-cortiq-router` in settings.yaml. */ export declare const SETTINGS_NS = "llm-cortiq-router"; /** Where to get a key, repeated in the one field that needs it. */ export declare const SIGNUP_URL = "https://api.allaigate.com/"; /** The hosted classifier endpoint. */ export declare const DEFAULT_ROUTER_URL = "https://router.allaigate.com"; /** * Entry points offered in the model picker. Each one routes; the three * profile-pinned ids override the configured policy profile for that call, so * "cheap for this chat, careful for that one" needs no settings trip. */ export declare const ENTRY_PROFILES: Record; /** Per-tier model lists for one task label. */ export interface TaskRuleTiers { low: string[]; medium: string[]; high: string[]; any: string[]; } /** One task rule: a single model, a chain, or per-tier chains. */ export type TaskRuleConfig = string | string[] | TaskRuleTiers; /** One entry offered in the model picker. */ export interface CatalogModelConfig { id: string; /** Overrides this plugin's own localized label; absent keeps the shipped one. */ name?: string; contextWindow: number; inputModalities: ('text' | 'image')[]; } /** Every setting this plugin owns, fully populated. */ export interface CortiqRouterSettings { language: 'auto' | Locale; apiKeyEnv: string; routerUrl: string; timeoutMs: number; taxonomyId: string; verifyTls: boolean; routerProfile: 'cost-saver' | 'balanced' | 'quality-first'; textStrategy: 'last_user' | 'last_user_plus_system' | 'concat_all'; maxChars: number; complexityBands: { low: number; medium: number; }; globalTiers: { low: string[]; medium: string[]; high: string[]; }; taskRules: Record; defaultModel: string; echoRouting: boolean; models: CatalogModelConfig[]; } /** What a composition entry or a settings snapshot may actually carry. */ export type ConfigType = Partial; /** The settings form, as the web UI renders it. */ export declare const Config: Schemastery; /** * Default config as a plain object (for programmatic use without Schemastery). * Matches the defaults in the schema above. */ export declare const DEFAULT_CONFIG: CortiqRouterSettings;