/** * Model catalog for the `tokenrouter` provider. * * An extension-registered provider id has no built-in catalog to inherit, so a * provider without a `models` array registers "successfully" with zero models * and `--provider tokenrouter` then fails with `Unknown provider`. * * TokenRouter is a router: its upstream list changes often, and `GET /v1/models` * returns ids only — no context window, no pricing. Those are the two things * senpi needs to budget a turn, so this file pins the models actually worth * routing through and `TOKENROUTER_MODELS_OVERRIDE` lets a user add more without * a code change. Costs are per-million tokens, matching stock's catalog. */ export interface TokenRouterModel { id: string; name: string; reasoning: boolean; input: ("text" | "image")[]; cost: { input: number; output: number; cacheRead: number; cacheWrite: number; }; contextWindow: number; maxTokens: number; compat: { supportsStore: boolean; supportsDeveloperRole: boolean; supportsReasoningEffort: boolean; supportsUsageInStreaming: boolean; supportsStrictMode: boolean; maxTokensField: "max_tokens"; }; } export declare const TOKENROUTER_MODELS: TokenRouterModel[]; /** * Catalog for this run. * * `TOKENROUTER_MODELS_OVERRIDE` takes a comma-separated list of TokenRouter * model ids. Unknown ids get conservative defaults rather than being dropped: * the router accepts them, so refusing to register them would be the addon * second-guessing the upstream. */ export declare function resolveTokenRouterModels(env: NodeJS.ProcessEnv): TokenRouterModel[];