UNPKG

@entro314labs/ai-changelog-generator

Version:

AI-powered changelog generator with MCP server support - works with most providers, online and local models

1,163 lines (1,162 loc) 32 kB
/** * Model configuration and capabilities for different AI providers * Consolidates model-specific logic that was duplicated across providers */ export interface ProviderBaseModelConfig { complexModel: string; standardModel: string; mediumModel: string; smallModel: string; reasoningModel?: string; codingModel?: string; fallbacks: string[]; contextWindow?: number; maxOutputTokens?: number; extendedContext?: number; supportsEffortParameter?: boolean; supportsToolSearch?: boolean; /** Model selects its own thinking depth (`thinking: { type: 'adaptive' }`). */ supportsAdaptiveThinking?: boolean; supportsThinkingLevel?: boolean; supportsThoughtSignatures?: boolean; requiresAuth?: boolean; useV1Api?: boolean; supportsThinkingMode?: boolean; isHub?: boolean; detectDeployments?: boolean; detectModels?: boolean; supportedProviders?: string[]; defaultProvider?: string; region?: string; location?: string; hubModels?: Record<string, string[]>; commonDeployments?: string[]; } export interface ResolvedProviderModelConfig { complexModel: string; standardModel: string; mediumModel: string; smallModel: string; fallbacks: string[]; availableModels?: string[]; isHub?: boolean; hubInfo?: { supportedProviders?: string[]; defaultProvider?: string; hubModels?: Record<string, string[]>; commonDeployments?: string[]; }; } /** * Standard model configurations for each provider * Updated January 2026 - Latest models and SDK conventions */ export declare const MODEL_CONFIGS: Record<string, ProviderBaseModelConfig>; /** * Get model configuration for a provider with config overrides * @param {string} providerName - Name of the provider * @param {Object} config - Configuration object with potential overrides * @returns {Object} Model configuration with overrides applied */ export declare function getProviderModelConfig(providerName: string, config?: Record<string, any>, availableModels?: string[]): ResolvedProviderModelConfig; /** * Model capabilities database * Defines what each model family supports * Updated January 2026 */ export declare const MODEL_CAPABILITIES: { 'gpt-5.6': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; coding_optimized: boolean; context_window: number; max_output: number; flagship: boolean; }; 'gpt-5.5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; context_window: number; max_output: number; }; 'gpt-5.4': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; context_window: number; max_output: number; }; 'gpt-5.3-codex': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; coding_optimized: boolean; context_window: number; }; 'claude-fable-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; parallel_tool_use: boolean; most_capable: boolean; context_window: number; max_output: number; }; 'claude-opus-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; parallel_tool_use: boolean; computer_use: boolean; context_window: number; max_output: number; }; 'claude-sonnet-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; agentic_coding: boolean; context_window: number; max_output: number; }; 'claude-opus-4-8': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; context_window: number; }; 'claude-sonnet-4-6': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; context_window: number; }; 'deepseek-v4': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; streaming: boolean; temperature_control: boolean; coding_optimized: boolean; context_window: number; }; 'gpt-5.2': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; coding_optimized: boolean; context_window: number; max_output: number; flagship: boolean; }; 'gpt-5.2-codex': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; coding_optimized: boolean; agentic_coding: boolean; context_compaction: boolean; cybersecurity: boolean; }; 'gpt-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; context_window: number; }; 'gpt-4o': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; previous_generation: boolean; }; 'gpt-4.1': { prompt_caching: boolean; tool_use: boolean; json_mode: boolean; vision: boolean; large_context: boolean; coding_optimized: boolean; cost_reduction: number; }; o4: { reasoning: boolean; advanced_reasoning: boolean; tool_use: boolean; large_context: boolean; next_generation: boolean; }; 'o4-mini': { reasoning: boolean; advanced_reasoning: boolean; tool_use: boolean; large_context: boolean; cost_effective: boolean; }; o3: { reasoning: boolean; advanced_reasoning: boolean; tool_use: boolean; large_context: boolean; }; o1: { reasoning: boolean; tool_use: boolean; large_context: boolean; advanced_reasoning: boolean; previous_generation: boolean; }; 'claude-opus-4-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; coding_optimized: boolean; parallel_tool_use: boolean; effort_parameter: boolean; tool_search: boolean; most_capable: boolean; context_window: number; extended_context: number; }; 'claude-sonnet-4-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; coding_optimized: boolean; agentic_coding: boolean; computer_use: boolean; context_window: number; extended_context: number; }; 'claude-haiku-4-5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; fast_processing: boolean; cost_effective: boolean; context_window: number; }; 'claude-sonnet-4': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; balanced_performance: boolean; coding_optimized: boolean; }; 'claude-opus-4': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; coding_optimized: boolean; parallel_tool_use: boolean; most_capable: boolean; }; 'claude-3.7': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; previous_generation: boolean; deprecated: boolean; }; 'claude-3.5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; previous_generation: boolean; deprecated: boolean; }; 'claude-3': { vision: boolean; tool_use: boolean; json_mode: boolean; deprecated: boolean; }; 'gemini-3.6': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; context_window: number; }; 'gemini-3.5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; context_window: number; }; 'gemini-3.1': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; context_window: number; }; 'gemini-3-pro': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; thought_signatures: boolean; agentic_workflows: boolean; autonomous_coding: boolean; context_window: number; most_capable: boolean; }; 'gemini-3-flash': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; thought_signatures: boolean; fast_processing: boolean; pro_level_intelligence: boolean; context_window: number; }; 'gemini-2.5-pro': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_mode: boolean; context_window: number; previous_generation: boolean; }; 'gemini-2.5': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_mode: boolean; previous_generation: boolean; }; 'gemini-2.0': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; fast_processing: boolean; previous_generation: boolean; }; 'gemini-1.5': { vision: boolean; tool_use: boolean; json_mode: boolean; large_context: boolean; multimodal: boolean; deprecated: boolean; }; 'llama-4': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; open_source: boolean; community_license: boolean; }; 'llama-3.3': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; open_source: boolean; }; 'llama-3.2': { tool_use: boolean; json_mode: boolean; reasoning: boolean; open_source: boolean; multimodal: boolean; lightweight: boolean; }; 'llama-3.1': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; open_source: boolean; previous_generation: boolean; }; qwen3: { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_mode: boolean; open_source: boolean; context_window: number; extended_context: number; }; 'qwen2.5-coder': { tool_use: boolean; json_mode: boolean; reasoning: boolean; coding_optimized: boolean; open_source: boolean; }; 'deepseek-r1': { reasoning: boolean; advanced_reasoning: boolean; thinking_mode: boolean; json_mode: boolean; open_source: boolean; cost_effective: boolean; }; 'anthropic.claude': { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; bedrock_hosted: boolean; }; 'meta.llama4': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; open_source: boolean; bedrock_hosted: boolean; }; 'meta.llama': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; open_source: boolean; bedrock_hosted: boolean; }; 'amazon.titan': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; bedrock_hosted: boolean; aws_native: boolean; }; 'local-model': { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; offline: boolean; privacy_focused: boolean; }; }; /** * Get capabilities for a specific model * @param {string} modelName - Full model name * @returns {Object} Model capabilities */ export declare function getModelCapabilities(modelName: any): { vision?: undefined; tool_use?: undefined; json_mode?: undefined; reasoning?: undefined; large_context?: undefined; streaming?: undefined; temperature_control?: undefined; max_tokens_control?: undefined; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; coding_optimized: boolean; context_window: number; max_output: number; flagship: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; context_window: number; max_output: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; coding_optimized: boolean; context_window: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; parallel_tool_use: boolean; most_capable: boolean; context_window: number; max_output: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; parallel_tool_use: boolean; computer_use: boolean; context_window: number; max_output: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; agentic_coding: boolean; context_window: number; max_output: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; coding_optimized: boolean; context_window: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; adaptive_thinking: boolean; effort_parameter: boolean; context_window: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; coding_optimized: boolean; agentic_coding: boolean; context_compaction: boolean; cybersecurity: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; context_window: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; previous_generation: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { prompt_caching: boolean; tool_use: boolean; json_mode: boolean; vision: boolean; large_context: boolean; coding_optimized: boolean; cost_reduction: number; reasoning: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { reasoning: boolean; advanced_reasoning: boolean; tool_use: boolean; large_context: boolean; next_generation: boolean; vision: boolean; json_mode: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { reasoning: boolean; advanced_reasoning: boolean; tool_use: boolean; large_context: boolean; cost_effective: boolean; vision: boolean; json_mode: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { reasoning: boolean; advanced_reasoning: boolean; tool_use: boolean; large_context: boolean; vision: boolean; json_mode: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { reasoning: boolean; tool_use: boolean; large_context: boolean; advanced_reasoning: boolean; previous_generation: boolean; vision: boolean; json_mode: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; coding_optimized: boolean; parallel_tool_use: boolean; effort_parameter: boolean; tool_search: boolean; most_capable: boolean; context_window: number; extended_context: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; coding_optimized: boolean; agentic_coding: boolean; computer_use: boolean; context_window: number; extended_context: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; fast_processing: boolean; cost_effective: boolean; context_window: number; large_context: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; balanced_performance: boolean; coding_optimized: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; hybrid_reasoning: boolean; extended_thinking: boolean; coding_optimized: boolean; parallel_tool_use: boolean; most_capable: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; previous_generation: boolean; deprecated: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; deprecated: boolean; reasoning: boolean; large_context: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; context_window: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; thought_signatures: boolean; agentic_workflows: boolean; autonomous_coding: boolean; context_window: number; most_capable: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_level: boolean; thought_signatures: boolean; fast_processing: boolean; pro_level_intelligence: boolean; context_window: number; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_mode: boolean; context_window: number; previous_generation: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_mode: boolean; previous_generation: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; fast_processing: boolean; previous_generation: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; large_context: boolean; multimodal: boolean; deprecated: boolean; reasoning: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; open_source: boolean; community_license: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; open_source: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; open_source: boolean; multimodal: boolean; lightweight: boolean; vision: boolean; large_context: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; open_source: boolean; previous_generation: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; thinking_mode: boolean; open_source: boolean; context_window: number; extended_context: number; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; coding_optimized: boolean; open_source: boolean; vision: boolean; large_context: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { reasoning: boolean; advanced_reasoning: boolean; thinking_mode: boolean; json_mode: boolean; open_source: boolean; cost_effective: boolean; vision: boolean; tool_use: boolean; large_context: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; bedrock_hosted: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; multimodal: boolean; open_source: boolean; bedrock_hosted: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; open_source: boolean; bedrock_hosted: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; bedrock_hosted: boolean; aws_native: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; offline: boolean; privacy_focused: boolean; vision: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; } | { vision: boolean; tool_use: boolean; json_mode: boolean; reasoning: boolean; large_context: boolean; streaming: boolean; temperature_control: boolean; max_tokens_control: boolean; }; /** * Get suggested alternative models for a provider * @param {string} providerName - Provider name * @param {string} unavailableModel - Model that's not available * @returns {Array<string>} Suggested alternative models */ export declare function getSuggestedModels(providerName: any, unavailableModel: any): string[]; /** * Check if a model supports a specific capability * @param {string} modelName - Model name to check * @param {string} capability - Capability to check for * @returns {boolean} Whether the model supports the capability */ export declare function modelSupports(modelName: any, capability: any): boolean; /** * Get the best model for a specific use case * @param {string} providerName - Provider name * @param {Array<string>} requiredCapabilities - Required capabilities * @param {Object} config - Configuration with model overrides * @returns {string} Best model name for the use case */ export declare function getBestModelForCapabilities(providerName: any, requiredCapabilities?: any[], config?: Record<string, any>): string; /** * Get all hub providers and their status * @returns {Array<Object>} Hub provider information */ export declare function getAllHubProviders(): { name: string; defaultProvider: string | undefined; supportedProviders: string[]; modelCount: number; region: string | undefined; location: string | undefined; detectDeployments: boolean | undefined; detectModels: boolean | undefined; }[]; /** * Analyze commit complexity and recommend model tier * @param {Object} commitInfo - Commit analysis information * @param {string} providerName - Provider name * @returns {Object} Model recommendation with reasoning */ export declare function analyzeCommitComplexity(commitInfo: any, providerName: any): { complexity: string; recommendedModel: any; reasoning: string; metrics: { fileCount: any; totalChanges: any; additions: any; deletions: any; isComplex: any; }; }; /** * Resolve the model tier to use for a given analysis mode. * * Maps the high-level analysis mode onto the optimal-model tiers exposed by * {@link getProviderModelConfig}/`ConfigurationManager.getOptimalModelConfig()`: * - "standard" => the default tier * - "detailed" => escalate to the complex tier (falling back to medium, then default) * - "enterprise" => escalate to the complex tier (falling back to default) * * Unknown modes fall back to the default tier so callers always receive a usable model. * * @param {string} analysisMode - Analysis mode ("standard" | "detailed" | "enterprise") * @param {Record<string, any>} optimalModels - Tier->model map (e.g. { default, medium, complex }) * @returns {string} The model name selected for the analysis mode */ export declare function getModelForAnalysisMode(analysisMode: string, optimalModels?: Record<string, any>): string; /** * Provider-specific model name normalization * @param {string} providerName - Provider name * @param {string} modelName - Raw model name * @returns {string} Normalized model name */ export declare function normalizeModelName(providerName: any, modelName: any): any;