/** * Local structural mirror of pi's `ProviderModelConfig` / `ProviderConfig`. * * We keep our own interfaces (rather than importing the exact type names from * `@earendil-works/pi-coding-agent`) so this package keeps building even if pi * renames or relocates those internal types between releases. The objects we * build are still structurally type-checked against `pi.registerProvider(...)` * at the call site in `index.ts`. */ export type ThinkingLevel = "minimal" | "low" | "medium" | "high" | "xhigh"; export interface ModelCost { /** USD per million input tokens. */ input: number; /** USD per million output tokens. */ output: number; /** USD per million cached-read tokens. */ cacheRead: number; /** USD per million cache-write tokens. */ cacheWrite: number; } export interface InceptronModel { /** Model id sent to the API (e.g. "MiniMaxAI/MiniMax-M2.5"). */ id: string; /** Human-readable label shown in pi's model picker. */ name: string; /** Whether the model supports extended thinking / reasoning. */ reasoning: boolean; /** Maps pi's thinking levels onto provider-specific values (reasoning models only). */ thinkingLevelMap?: Partial>; /** Supported input modalities. */ input: ("text" | "image")[]; /** Per-million-token pricing. */ cost: ModelCost; /** Context window in tokens. */ contextWindow: number; /** Max output tokens. */ maxTokens: number; /** OpenAI-completions compatibility quirks, if any. */ compat?: Record; }