neurolink icon indicating copy to clipboard operation
neurolink copied to clipboard

PC-010: Model Name Normalization Missing

Open murdore opened this issue 1 month ago • 0 comments

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

murdore avatar Dec 01 '25 02:12 murdore