# πŸ“¦ @goodandready/dsh-im-hub-media

Multi-Platform Instant Messaging Gateway with Full Voice STT & Bidirectional Media Dispatch for DeepSeek Harness

npm version license DSH Plugin Node version

All Author Projects

πŸ‡¬πŸ‡§ English β€’ πŸ‡·πŸ‡Ί Русский β€’ πŸ‡¨πŸ‡³ δΈ­ζ–‡θ―΄ζ˜Ž

--- ## ⚑ 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)