diff --git a/internal/config/convert.go b/internal/config/convert.go index 73ea1cb..1923325 100644 --- a/internal/config/convert.go +++ b/internal/config/convert.go @@ -51,6 +51,9 @@ func (c *Config) resolveAPIKeyForProvider(provider string) string { case "elevenlabs": providerName = "elevenlabs" envVar = "ELEVENLABS_API_KEY" + case "deepgram": + providerName = "deepgram" + envVar = "DEEPGRAM_API_KEY" } if c.Providers != nil { diff --git a/internal/config/save.go b/internal/config/save.go index 080879e..5bfd2e5 100644 --- a/internal/config/save.go +++ b/internal/config/save.go @@ -46,6 +46,8 @@ keywords = [] # api_key = "" # Mistral API key (or set MISTRAL_API_KEY env var) # [providers.elevenlabs] # api_key = "" # ElevenLabs API key (or set ELEVENLABS_API_KEY env var) +# [providers.deepgram] +# api_key = "" # Deepgram API key (or set DEEPGRAM_API_KEY env var) # ───────────────────────────────────────────────────────────────────────────── # Audio Recording diff --git a/internal/tui/configure.go b/internal/tui/configure.go index a44a0ac..abbb948 100644 --- a/internal/tui/configure.go +++ b/internal/tui/configure.go @@ -17,7 +17,7 @@ type ConfigureResult struct { } // AllProviders is the list of all supported cloud providers (require API keys) -var AllProviders = []string{"openai", "groq", "mistral", "elevenlabs"} +var AllProviders = []string{"openai", "groq", "mistral", "elevenlabs", "deepgram"} // LocalProviders is the list of local providers (no API key required) var LocalProviders = []string{"whisper-cpp"} @@ -28,6 +28,7 @@ var providerDisplayNames = map[string]string{ "groq": "Groq", "mistral": "Mistral", "elevenlabs": "ElevenLabs", + "deepgram": "Deepgram", "whisper-cpp": "Whisper.cpp (local)", } diff --git a/progress.txt b/progress.txt index 8482a49..bd09876 100644 --- a/progress.txt +++ b/progress.txt @@ -417,4 +417,11 @@ Started: Sun Feb 1 12:22:47 AM CET 2026 - Wraps streaming adapter in `NewStreamingTranscriber(adapter, config.Language)` - Updated tests: streaming models now succeed (not error) - Added tests for deepgram and openai-realtime streaming models -- All tests passing with -race flag, typecheck passes \ No newline at end of file +- All tests passing with -race flag, typecheck passes + +### Task 43: Add DEEPGRAM_API_KEY env var support +- Added `case "deepgram"` to `resolveAPIKeyForProvider()` in convert.go +- Maps to providerName="deepgram" and envVar="DEEPGRAM_API_KEY" +- Updated config template in save.go with commented deepgram section +- Added "deepgram" to AllProviders and providerDisplayNames in configure.go for TUI +- All tests passing, typecheck passes \ No newline at end of file diff --git a/tasks/prd.jsonc b/tasks/prd.jsonc index 9e01932..f50f4a9 100644 --- a/tasks/prd.jsonc +++ b/tasks/prd.jsonc @@ -1002,13 +1002,13 @@ "Update providers config section to include deepgram", "Update config template in save.go with deepgram section" ], - "verify": [ - "Deepgram API key resolved from config or DEEPGRAM_API_KEY env", - "Config template includes deepgram section", - "Typecheck passes" - ], - "passes": false - }, + "verify": [ + "Deepgram API key resolved from config or DEEPGRAM_API_KEY env", + "Config template includes deepgram section", + "Typecheck passes" + ], + "passes": true + }, // ============================================================================ // PHASE 9: DOCUMENTATION // Consolidated at the end - update all docs once architecture is stable