/** * Model Configuration Module * Handles model resolution with configurable priority chain * Supports multiple providers: Gemini (default) and Amazon Bedrock * * Priority chain for model resolution: * 1. CLI --model flag (highest) * 2. Environment variables: RLM_DEFAULT_MODEL, RLM_FALLBACK_MODEL * 3. Config file: ~/.rlm-analyzer/config.json * 4. Programmatic API: createAnalyzer({ model: '...' }) * 5. Built-in defaults (lowest, internal only) */ import type { ProviderName } from './providers/types.js'; /** * Model aliases for convenience (Gemini provider) * Users can specify aliases instead of full model IDs */ export declare const MODEL_ALIASES: Record; /** * Provider-specific model aliases * Model IDs from: * - Gemini: https://ai.google.dev/gemini-api/docs/models * - Bedrock: https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html * - Claude: https://docs.anthropic.com/en/docs/about-claude/models */ export declare const PROVIDER_MODEL_ALIASES: Record>; /** * Available model options (for display in help) - Gemini */ export declare const AVAILABLE_MODELS: { id: string; description: string; }[]; /** * Available Bedrock models (for display in help) * Note: Models with us. prefix require inference profiles for on-demand usage * Full list: https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html */ export declare const AVAILABLE_BEDROCK_MODELS: { id: string; description: string; }[]; /** * Note: Any valid Bedrock model ID can be passed via --model flag * The aliases above are just shortcuts for common models * Full list: https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html */ /** * Available Claude models (for display in help) * Full list: https://docs.anthropic.com/en/docs/about-claude/models */ export declare const AVAILABLE_CLAUDE_MODELS: { id: string; description: string; }[]; /** * Get available models for a specific provider */ export declare function getAvailableModelsForProvider(provider: ProviderName): typeof AVAILABLE_MODELS; export interface ModelConfigOptions { /** Model specified via CLI flag or programmatic API */ model?: string; /** Fallback model specified via CLI flag or programmatic API */ fallbackModel?: string; /** Provider to use for model alias resolution */ provider?: ProviderName; } export interface ResolvedModelConfig { /** The resolved default model ID */ defaultModel: string; /** The resolved fallback model ID */ fallbackModel: string; /** Source of the default model resolution */ defaultSource: 'cli' | 'env' | 'config' | 'api' | 'builtin'; /** Source of the fallback model resolution */ fallbackSource: 'cli' | 'env' | 'config' | 'api' | 'builtin'; } /** * Resolve a model alias to its full model ID (Gemini default) * If the input is not an alias, returns it unchanged * * @param modelOrAlias - Model ID or alias * @returns Full model ID */ export declare function resolveModelAlias(modelOrAlias: string): string; /** * Resolve a model alias to its full model ID for a specific provider * If the input is not an alias, returns it unchanged * * @param modelOrAlias - Model ID or alias * @param provider - Provider to use for resolution * @returns Full model ID */ export declare function resolveProviderModelAlias(modelOrAlias: string, provider: ProviderName): string; /** * Check if a string is a known model alias */ export declare function isModelAlias(value: string): boolean; /** * Check if a string is a known model alias for a specific provider */ export declare function isProviderModelAlias(value: string, provider: ProviderName): boolean; /** * Resolve full model configuration using priority chain * * Priority: * 1. CLI/API options (highest) * 2. Environment variables: RLM_DEFAULT_MODEL, RLM_FALLBACK_MODEL * 3. Config file: ~/.rlm-analyzer/config.json * 4. Built-in defaults (lowest) * * @param options - Optional overrides from CLI or programmatic API * @returns Resolved model configuration with source information */ export declare function resolveModelConfig(options?: ModelConfigOptions): ResolvedModelConfig; /** * Get the default model ID using the priority chain * Convenience function for getting just the default model * * @param options - Optional overrides * @returns Resolved default model ID */ export declare function getDefaultModel(options?: ModelConfigOptions): string; /** * Get the fallback model ID using the priority chain * Convenience function for getting just the fallback model * * @param options - Optional overrides * @returns Resolved fallback model ID */ export declare function getFallbackModel(options?: ModelConfigOptions): string; /** * @deprecated Use `getDefaultModel()` instead for dynamic resolution * This is computed at import time and won't reflect runtime changes */ export declare const DEFAULT_MODEL: string; /** * @deprecated Use `getFallbackModel()` instead for dynamic resolution * This is computed at import time and won't reflect runtime changes */ export declare const FALLBACK_MODEL: string; /** * Get formatted string showing current model configuration * Useful for CLI help text and debugging */ export declare function getModelConfigDisplay(options?: ModelConfigOptions): string; /** * Get formatted string showing available aliases * Useful for CLI help text */ export declare function getAliasesDisplay(provider?: ProviderName): string; /** * Get formatted string showing available aliases for a provider * Useful for CLI help text */ export declare function getProviderAliasesDisplay(provider: ProviderName): string; //# sourceMappingURL=models.d.ts.map