/** * @module koi/fast-lane-model * * Which model fronts the FAST lane (the instant router/voice that sits in * front of the smart model). Default: OpenAI's gpt-oss-120b served by Groq. * Switchable via config: * * { fastLane: { model: "groq/openai/gpt-oss-120b", fallback: "groq/openai/gpt-oss-20b" } } * * Refs are "provider/model-id" where the MODEL ID MAY ITSELF CONTAIN SLASHES * (Groq's id for gpt-oss-120b is literally "openai/gpt-oss-120b"), so refs * split on the FIRST slash only. A provider resolves to an OpenAI-compatible * chat-completions endpoint: a `models.providers` entry when one is defined * (its baseUrl + apiKey), else a built-in endpoint with its env API key. */ import type { SKYKOIConfig } from "../config/config.js"; export declare const DEFAULT_FAST_LANE_MODEL = "groq/openai/gpt-oss-120b"; export type FastLaneTarget = { provider: string; /** Bare model id as the provider's API expects it (may contain slashes). */ model: string; url: string; apiKey?: string; }; /** Split "provider/model-id" on the FIRST slash only. */ export declare function splitFastLaneRef(ref: string): { provider: string; model: string; } | null; export declare function resolveFastLaneTarget(cfg: SKYKOIConfig | undefined, ref: string): FastLaneTarget | null; /** * The ordered fast-lane candidates: configured model (or the default), then * the configured fallback if any. Unresolvable refs are dropped — the fast * lane always fails silent into the smart path. */ export declare function resolveFastLaneTargets(cfg: SKYKOIConfig | undefined): FastLaneTarget[];