@iflow-mcp/ejmockler-brutalist
Version:
Deploy Claude, Codex & Gemini CLI agents to demolish your work before users do. Real file analysis. Brutal honesty. Now with conversation continuation & intelligent pagination.
46 lines • 1.86 kB
TypeScript
type CLIName = 'claude' | 'codex' | 'gemini';
/**
* ModelResolver — Runtime model discovery and migration resolution.
*
* Instead of hardcoding model lists that rot, this reads each CLI's
* own config at startup to discover:
* - The user's configured default model
* - Codex's model migration table (old → new mappings)
*
* Any model string is accepted and passed through to the CLI.
* For codex, deprecated model names are resolved through the
* migration chain before invocation.
*/
export declare class ModelResolver {
private cliModels;
private initialized;
private initTime;
private readonly CACHE_TTL;
initialize(): Promise<void>;
/** Re-read configs if cache has expired. */
refreshIfStale(): Promise<void>;
/**
* Resolve a requested model for a given CLI.
* - Returns undefined when no model was requested (let CLI use its own default).
* - For codex, follows the migration chain to the current model name.
*/
resolveModel(cli: CLIName, requestedModel?: string): string | undefined;
/** Return discovered default models for each CLI. */
getDefaults(): Record<CLIName, string | undefined>;
/** Build a dynamic schema description for the models parameter. */
getModelsDescription(): string;
/** Build roster text for cli_agent_roster. */
getRosterModelInfo(): string;
private loadCodexConfig;
private loadClaudeConfig;
/**
* Lightweight TOML parser for codex config.
* Extracts top-level `model = "..."` and `[notice.model_migrations]` entries.
* Not a general TOML parser — handles only the structure codex actually writes.
*/
private parseCodexToml;
/** Follow codex migration chain to resolve deprecated model names. */
private followMigrationChain;
}
export {};
//# sourceMappingURL=model-resolver.d.ts.map