import { type JevClassifierRoute } from "./model-key.js"; export interface JevRoute { readonly id: JevClassifierRoute; /** Human label used in host-visible errors and status. */ readonly label: string; /** Fixed HTTPS endpoint receiving the typed System One request. */ readonly endpoint: string; /** Pi auth provider whose auth.json login and environment keys authenticate this route. */ readonly providerId: string; /** Environment fallbacks, checked when Pi provider auth is not configured. */ readonly envKeys: readonly string[]; /** Classifier key prefix stored in `approvals.model` for this route. */ readonly modelPrefix: string; /** Aliases offered in host pickers and accepted as upstream overrides. */ readonly aliases: readonly string[]; } /** Direct TypeSafe aliases. `jev-latest` is `jev-1.13.0` until TypeSafe moves it to 1.14; `jev-preview` is `jev-1.14.0`. */ export declare const JEV_TYPESAFE_MODELS: readonly string[]; export declare const JEV_TYPESAFE_ROUTE: JevRoute; /** OpenRouter decisions model IDs by alias. OpenRouter has no `jev-preview` alias. */ export declare const JEV_OPENROUTER_MODELS: Readonly>; /** * OpenRouter serves decisions models on its Decisions API, not chat completions. * The user's existing openrouter auth (`/login openrouter`, `OPENROUTER_API_KEY`) * is the primary credential; `TYPESAFE_OPENROUTER_API_KEY` is an explicit fallback. */ export declare const JEV_OPENROUTER_ROUTE: JevRoute; /** Vercel AI Gateway evaluation model IDs by alias. The gateway serves one Jev build today. */ export declare const JEV_VERCEL_MODELS: Readonly>; /** * Vercel AI Gateway exposes a TypeSafe-compatible endpoint, so request and * response shapes stay TypeSafe's own and only the base URL and credential * change. The existing Pi `vercel-ai-gateway` login authenticates it. */ export declare const JEV_VERCEL_ROUTE: JevRoute; /** SubQ's System One models. Their IDs are their own: SubQ has no Jev aliases. */ export declare const JEV_SUBQ_MODELS: readonly string[]; /** * SubQ Snap is a System One model served by SubQ itself, with TypeSafe's request * and response shapes at its own base URL. `/login subq` or `SUBQ_API_KEY` * authenticates it. */ export declare const JEV_SUBQ_ROUTE: JevRoute; /** Classifier key stored in `approvals.model` for one route and upstream model. */ export declare const jevClassifierKey: (route: JevRoute, model: string) => string; /** OpenRouter decisions IDs are `~typesafe/` or `typesafe/`. */ export declare const isJevOpenRouterModelId: (model: string) => boolean; /** Vercel AI Gateway model IDs are `typesafe-ai/`. */ export declare const isJevVercelModelId: (model: string) => boolean; /** SubQ model IDs are `subq-`. They also fit a bare alias, so they are checked first. */ export declare const isJevSubqModelId: (model: string) => boolean; /** A bare TypeSafe alias or a routable OpenRouter/Vercel AI Gateway/SubQ model ID. */ export declare const isJevModelId: (model: string) => boolean; export interface JevRouteTarget { readonly route: JevRoute; readonly model: string; } /** Route and upstream model ID for a raw `jev.model` value. */ export declare const resolveJevModelRoute: (model: string) => JevRouteTarget; /** Upstream model ID for an alias or override on an already-selected route. */ export declare const resolveJevUpstreamModel: (route: JevRoute, model: string) => string | undefined; export type JevClassifierTarget = { readonly ok: true; readonly route: JevRoute; readonly model: string; } | { readonly ok: false; readonly message: string; }; /** Route and upstream model ID for a stored `pi-fabric//` approvals key. */ export declare const resolveJevClassifierTarget: (key: string) => JevClassifierTarget; export interface JevClassifierPickerModel { readonly provider: "pi-fabric"; readonly id: string; readonly name: string; } /** Approvals picker entries: every supported classifier key plus the configured model. */ export declare const jevClassifierModels: (configuredModel?: string) => JevClassifierPickerModel[]; //# sourceMappingURL=routes.d.ts.map