- replaced old TranscriptionModels/LLMModels/SupportsX methods with Models() []Model - added DefaultModel(t ModelType), IsLocal() to interface - added helpers: GetModel, ModelsOfType, FindModelByID, ModelsForLanguage, ValidateModelLanguage - all providers now return full Model metadata with SupportedLanguages, AdapterType, Endpoint - groq distil-whisper-large-v3-en marked as english-only - updated TUI to use new interface
43 lines
2.0 KiB
Plaintext
43 lines
2.0 KiB
Plaintext
# 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
|
|
|
|
### Task 4: Refactor Provider interface to return Models
|
|
- Updated `internal/provider/provider.go` Provider interface
|
|
- Replaced old methods with: Models() []Model, DefaultModel(t ModelType) string, IsLocal() bool
|
|
- Added package-level helpers:
|
|
- GetModel(providerName, modelID string) (*Model, error)
|
|
- ModelsOfType(p Provider, t ModelType) []Model
|
|
- FindModelByID(modelID string) (*Model, Provider, error)
|
|
- ModelsForLanguage(p Provider, t ModelType, langCode string) []Model
|
|
- ValidateModelLanguage(providerName, modelID, langCode string) error
|
|
- Updated all providers (openai, groq, mistral, elevenlabs) with full Model metadata
|
|
- Updated TUI files to use ModelsOfType instead of old SupportsTranscription/SupportsLLM
|
|
- Added comprehensive tests for all new helper functions
|
|
- All tests passing, typecheck passes
|