Overview
@goodandready/dsh-im-hub-media
README / EN
Package documentation
📦 @goodandready/dsh-im-hub-media
Multi-Platform Instant Messaging Gateway with Full Voice STT & Bidirectional Media Dispatch for DeepSeek Harness
⚡ Overview
dsh-im-hub-media turns your DeepSeek Harness agents into 24/7 conversational assistants across Telegram, Feishu (Lark), and Enterprise WeChat (WeCom) with automated speech-to-text voice transcription and bidirectional media exchange.
Unlike standard text-only bots, dsh-im-hub-media handles voice notes, photos, documents, and replies seamlessly, allowing agents to respond with rich media, synthesized audio, or files using native platform message formats.
graph LR
subgraph Users [Instant Messaging Platforms]
TG[Telegram Chat / Channel] --> Gateway[IM Hub Media Gateway]
Lark[Feishu / Lark WebSocket] --> Gateway
WeCom[Enterprise WeChat Bot] --> Gateway
end
subgraph Inbound [Inbound Media Pipeline]
Gateway --> MediaRouter{Inbound Type Router}
MediaRouter -->|Voice Note .oga/.ogg/.amr| STT[Auto STT Speech-to-Text Pipeline]
MediaRouter -->|Photos / Screenshots| Vision[Image Context Ingestion]
MediaRouter -->|Documents / Text Files| Doc[Document Parser & Inline Inject]
MediaRouter -->|Text & Quoted Replies| Ctx[Thread Context Assembly]
end
subgraph DSHCore [DSH Agent Core]
STT --> Agent[DSH Agent Execution Cycle]
Vision --> Agent
Doc --> Agent
Ctx --> Agent
end
subgraph Outbound [Outbound Dispatch]
Agent -->|MEDIA:/path markers| OutRouter{Native Media Dispatcher}
OutRouter -->|sendPhoto / sendDocument| Gateway
OutRouter -->|sendVoice / sendAudio| Gateway
OutRouter -->|sendText / Markdown| Gateway
end
style Users fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4
style Inbound fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4
style DSHCore fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4
style Outbound fill:#181825,stroke:#f38ba8,stroke-width:2px,color:#cdd6f4
✨ Platform Capabilities & Media Superpowers
1. Telegram Adapter
- 🎙️ Incoming Voice Transcription (STT): Voice notes (
.oga/.ogg) are automatically intercepted, transcribed via host STT chains (e.g.dsh-voice), and injected as natural text. - 🖼️ Incoming Photos & Captions: Photos are downloaded and passed directly to vision-capable models or through
dsh-vision-bridge. - 📄 Document & File Handling: Hermes-style extension filtering, configurable size caps, and small text/code file inline injection.
- 💬 Quoted Replies & Thread Context: Replying to a previous message preserves conversation history and context automatically.
- 📤 Outbound Media Dispatch: Agents emit
MEDIA:/absolute/pathmarkers in their reply; the plugin strips the marker and dispatches nativesendPhoto,sendVoice, orsendDocumentpayloads.
2. Feishu (Lark) Adapter
- ⚡ WebSocket & Webhook Gateway: Instant bi-directional messaging over persistent WebSocket connection (
feishu-ws-frame) or webhook callbacks. - 📇 Interactive Message Cards: Renders structured markdown, interactive buttons, and event callbacks.
- 📁 Rich Audio & Document Exchange: Native handling of Feishu voice notes (
opus/amr), images, and file attachments.
3. Enterprise WeChat (WeCom) Adapter
- 🔒 Secure Enterprise Gateway: Built-in XML/JSON message encryption/decryption.
- 👥 Bot & Application Integration: Supports both webhook group bots and full enterprise internal applications.
🔒 Security & Access Control
- User & Chat Allowlists: Restrict agent access using
allowedUsersandallowedChatsID filters. - Session & Workspace Isolation: Each chat maintains an independent session state, preventing context cross-talk.
- Credentials Resolution: Bot tokens (
TELEGRAM_BOT_TOKEN,FEISHU_APP_SECRET, etc.) are resolved via the host Credentials service.
📦 Quick Installation
dsh plugin --profile web add @goodandready/dsh-im-hub-media
[!IMPORTANT] Restart DSH after installation (
systemctl --user restart dsh-web) to mount the IM hub adapter tree.
⚙️ Configuration Example (settings.yaml)
dsh-im-hub-media:
adapters:
telegram:
enabled: true
tokenEnv: TELEGRAM_BOT_TOKEN
allowedUsers: ["123456789"]
sttProvider: auto
downloadMediaDir: data/im/media
feishu:
enabled: false
appId: cli_xxx
appSecretEnv: FEISHU_APP_SECRET
wecom:
enabled: false
corpId: ww_xxx
secretEnv: WECOM_SECRET
📄 License
MIT © GooDAnDReaDY
