picoclaw/pkg/config
Orkun Manap dd9adf8a04
feat: add ElevenLabs Scribe STT transcriber and Telegram SendVoice support (#1905)
* feat: add ElevenLabs Scribe STT transcriber and Telegram SendVoice support

Add ElevenLabsTranscriber as an alternative speech-to-text provider using
the ElevenLabs Scribe API (scribe_v1). This enables voice message
transcription for users who already have an ElevenLabs API key, without
requiring a separate Groq account.

Changes:
- Add ElevenLabsTranscriber implementing the Transcriber interface
- Update DetectTranscriber to check providers.elevenlabs.api_key first,
  falling back to Groq for backward compatibility
- Add ElevenLabs to ProvidersConfig
- Add "voice" media type for OGG files with "voice" in filename
- Add SendVoice support in Telegram channel for voice bubble messages
- Add comprehensive tests for ElevenLabs transcriber

Configuration:
  "providers": {
    "elevenlabs": {
      "api_key": "sk_your_key_here"
    }
  }

Closes #1503 (partial)

* fix: move voice-bubble detection into Telegram channel to avoid regression in other channels

Address review feedback: keep inferMediaType returning "audio" for all
OGG files. Voice-bubble detection (SendVoice vs SendAudio) is now done
inside the Telegram channel based on filename, so other channels that
map "audio" explicitly are unaffected.

* fix: align VoiceConfig struct tags to pass golines formatter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(agent): use ModelName in loop test added by upstream

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:11:10 +01:00
..
config.go feat: add ElevenLabs Scribe STT transcriber and Telegram SendVoice support (#1905) 2026-03-23 22:11:10 +01:00
config_old.go Merge branch 'main' into version 2026-03-22 19:58:33 +08:00
config_test.go Update config_test.go 2026-03-23 20:58:14 +08:00
defaults.go feat(security): add sensitive data filtering for tool results sent to 2026-03-23 20:55:41 +08:00
envkeys.go refactor: centralize environment variable key constants (#1730) 2026-03-18 18:03:24 +08:00
example_security_usage.go rename security.yml to .security.yml 2026-03-23 11:20:42 +08:00
migration.go refactor: seperate security.yml for store keys 2026-03-22 01:55:00 +08:00
migration_integration_test.go refactor: seperate security.yml for store keys 2026-03-22 01:55:00 +08:00
migration_test.go refactor: seperate security.yml for store keys 2026-03-22 01:55:00 +08:00
model_config_test.go refactor: seperate security.yml for store keys 2026-03-22 01:55:00 +08:00
multikey_test.go refactor: seperate security.yml for store keys 2026-03-22 01:55:00 +08:00
security.go feat(security): add sensitive data filtering for tool results sent to 2026-03-23 20:55:41 +08:00
SECURITY_CONFIG.md rename security.yml to .security.yml 2026-03-23 11:20:42 +08:00
security_integration_test.go rename security.yml to .security.yml 2026-03-23 11:20:42 +08:00
security_test.go rename security.yml to .security.yml 2026-03-23 11:20:42 +08:00
version.go feat:Modify the location where version is obtained, and insert version information into the context (#1300) 2026-03-10 17:42:05 +08:00
version_test.go feat:Modify the location where version is obtained, and insert version information into the context (#1300) 2026-03-10 17:42:05 +08:00