# π¦ @goodandready/dsh-im-hub-media
---
## β‘ 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.
```mermaid
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/path` markers in their reply; the plugin strips the marker and dispatches native `sendPhoto`, `sendVoice`, or `sendDocument` payloads.
### 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 `allowedUsers` and `allowedChats` ID 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
```bash
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`)
```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](https://github.com/GooDAnDReaDY)