前言¶
做 DSH 智能體時,經常會在對話裏引用工作區文件、日誌、CSV 或 artifact 輸出。默認做法常常是先下載,再交給本地應用打開;對圖片、PDF、JSON、源碼和大日誌,這種來回切換並不方便。
dsh-file-viewer 提供的是一個網頁內只讀預覽層:在 DeepSeek Harness 中直接打開和查看文件,不要求外部應用。它強調 Preview ≠ Execute:預覽不等於執行。
這是什麼¶
dsh-file-viewer 由 liguobao 維護,MIT 許可證。
它定位是 DeepSeek Harness 的只讀文件預覽插件,支持圖片、PDF、CSV、Markdown、JSON、YAML、源碼和大文件預覽。資料中的 package.json 版本號爲 0.3.1,並給出 client.platform 爲 web 的配置;資料線索也將其歸爲客戶端插件。
核心功能¶
下面介紹已覈實的能力。
支持的文件類型¶
- 圖片預覽
- PDF 預覽
- CSV / TSV 表格預覽
- 文本 / 日誌預覽
- 源碼預覽
- Markdown 預覽
- JSON / JSONL 預覽
- YAML 預覽
- 未知類型回退
大文件策略¶
大文件按大小分級處理:
< 5 MB:整文件預覽5–50 MB:分塊處理> 50 MB:頭部加載,並可繼續加載
只讀邊界¶
插件嚴格只讀:
- 預覽不執行 shell 命令
- 不執行腳本
- 不執行宏
- 不執行 HTML
- SVG 通過
<img>渲染 - Markdown 清理後顯示
客戶端 API¶
插件提供 fileViewer.openFile 客戶端 API。
它可以用於:
- 打開本地路徑
- 打開
artifact://locator - 指定行號
- 強制指定 renderer
示例接口:
fileViewer.openFile(path, { line, renderer })
內容提供者¶
插件支持其他 host/client 插件註冊內容提供者,用於讀取自定義 locator,例如:
artifact://- object storage
- remote APIs
遠程預覽依賴受信任 transport 插件的端點 allowlist。openExternal 不屬於遠程 surface。
主題適配¶
預覽樣式跟隨 Harness 主題自動適配明暗樣式。
版本兼容¶
v0.3.1 起兼容:
- DSH
v0.1.1-rc.2 - DSH
v0.1.2-alpha.1包圖
DSH v0.1.2 alpha 包爲 host-provided peer dependencies。部分包可能尚未發佈到 npm;重生成 lockfile 時保持:
autoInstallPeers: false
安裝與啓用¶
已覈實資料未出現明確的 DSH 插件安裝命令。本文不憑插件名拼接安裝命令;具體安裝方式以插件倉庫或目錄頁給出的說明爲準。
# 已覈實資料未出現官方安裝命令,此處不使用未經驗證的命令
配置示例¶
文檔配置示例包含 enabled 和 extraRoots;默認值未完整說明。
# cordis.patch.yml / settings
- id: dsh-file-viewer
name: dsh-file-viewer
config:
enabled: true
extraRoots:
- /srv/data
其中 extraRoots 用於增加允許讀取的目錄,例如 /srv/data。
Workspace 菜單補丁¶
workspace 行中的“瀏覽文件 / Browse files”入口是兼容性補丁。更新 Harness 後,需要重新運行補丁腳本:
DSH_HARNESS_SOURCE=/path/to/deepseek-harness node scripts/patch-workspace-menu.mjs
這個補丁腳本可以重複執行;當版本發生偏差時,腳本會報錯退出。
典型用法¶
打開本地文件¶
可以直接打開工作區內的文件:
const fileViewer = ctx.get('fileViewer')
fileViewer.openFile('/workspace/output/report.csv')
打開 artifact locator¶
也可以打開 artifact:// 類型的 locator:
fileViewer.openFile('artifact://run-42/report.csv')
指定行號¶
打開源碼或文本文件時,可以指定行號:
fileViewer.openFile('/workspace/src/main.ts', { line: 125 })
強制 renderer¶
如果希望強制使用某個 renderer,可以傳入 renderer:
fileViewer.openFile('/workspace/data.bin', { renderer: 'text' })
通過 workspace 菜單打開¶
經過上面的配置和補丁步驟後,可以通過 workspace 行的“瀏覽文件 / Browse files”菜單打開文件。
瀏覽器端註冊內容提供者¶
瀏覽器插件可以直接註冊類似 memory://preview.md 的內容提供者,並調用:
viewer.openFile('memory://preview.md')
適用場景與注意¶
適合以下場景:
- 在 DeepSeek Harness 中快速查看 agent 輸出文件
- 預覽工作區中的 CSV、JSON、YAML、Markdown、文本或源碼
- 查看
artifact://指向的文件 - 處理大日誌、大 CSV 或大文本文件
- 讓其他 DSH 插件通過內容提供者接入預覽
使用前注意:
- DSH 插件通常會在當前 Harness 進程權限範圍內運行;安裝前應檢查源碼、依賴與許可證
dsh-file-viewer許可證爲 MITextraRoots會擴大允許讀取的目錄範圍,應按需配置- workspace 瀏覽入口依賴兼容性補丁,更新 Harness 後需要重跑
scripts/patch-workspace-menu.mjs - DSH
v0.1.2-alpha.1相關 peer dependencies 可能尚未發佈到 npm;重生成 lockfile 時保持autoInstallPeers: false - 遠程預覽依賴受信任 transport 插件的端點 allowlist
參考¶
- 社區目錄頁:https://www.skillhub.cn/plugins/liguobao/dsh-file-viewer
- GitHub:https://github.com/liguobao/dsh-file-viewer
社區目錄頁是獨立站點,不等同於 DeepSeek 或幻方官方應用商店。