# Ralph Progress Log
Started: Sun Feb  1 12:22:47 AM CET 2026
---

## Completed

### Task 1: Create language package with core types and helpers
- Created `internal/language/language.go` with Language struct, Auto constant
- Implemented FromCode, List, Codes, AllLanguageCodes, IsValidCode
- Full 57 language list from OpenAI Whisper
- All tests passing, typecheck passes

### Task 2: Add language list and provider-specific mappings
- Added `ToProviderFormat(code string, providerName string) string` function
- Handles auto-detect: whisper-cpp uses "auto", others use ""
- Deepgram locale mappings: en->en-US, pt->pt-BR, zh->zh-CN
- Added comprehensive test coverage for all provider formats
- All tests passing, typecheck passes

### Task 3: Create Model type with full metadata
- Created `internal/provider/model.go`
- ModelType enum: Transcription, LLM
- Model struct: ID, Name, Description, Type, Streaming, Local, AdapterType, SupportedLanguages, Endpoint, LocalInfo
- EndpointConfig: BaseURL, Path
- LocalModelInfo: Filename, Size, DownloadURL
- Helper methods: NeedsDownload(), IsStreaming(), SupportsLanguage(code), SupportsAllLanguages()
- SupportsLanguage("") always returns true (auto always allowed)
- All tests passing, typecheck passes
