neurolink
neurolink copied to clipboard
PC-010: Model Name Normalization Missing
Bug Summary
No centralized model name normalization. Users must know exact format per provider.
Root Cause
Files: src/lib/providers/*.ts Model names accepted as-is with no validation or normalization.
Affected Providers
All providers
Current Behavior
- "gpt4o" fails, must use "gpt-4o"
- "gemini-1-5-pro" may fail, should accept and normalize to "gemini-1.5-pro"
- No alias support ("claude" → "claude-3-5-sonnet")
- LiteLLM requires "provider/model" but doesn't validate
Expected Behavior
Flexible model name acceptance:
- Aliases: "gpt4" → "gpt-4", "chatgpt" → "gpt-4o"
- Separator normalization: "gemini-1-5" → "gemini-1.5"
- Prefix validation: LiteLLM enforces "provider/model"
- Helpful errors for invalid models
Implementation
Create ModelNameNormalizer utility: ```typescript export class ModelNameNormalizer { private static PROVIDER_RULES: Record<string, NormalizationRule>; static normalize(modelName: string, provider: string): string; static validate(modelName: string, provider: string): boolean; } ```
Acceptance Criteria
- Normalizer utility created
- Rules for all providers
- Alias support
- All providers use it
- Tests pass
- Documentation updated
Priority
Medium - Improves user experience
Effort
2 hours