dsh-drop-in:在 DSH Web 輸入框中拖入或粘貼文件並隨消息發送

前言

在 DSH(DeepSeek Harness)Web 界面裏寫 prompt 時,如果 agent 需要讀取本機文件,常見做法是先手動輸入路徑,或者把文件內容複製進消息。這個流程有兩個常見麻煩:路徑容易寫錯,內容複製也會丟失原始文件位置;圖片拖入時還可能被內置圖片上傳流程接走。

dsh-drop-in 針對 DSH Web 輸入框做文件接入:從系統文件管理器拖入或粘貼文件後,文件會以原生引用氣泡和文件卡片隨消息發送,並把絕對路徑交給 agent。下面介紹它的功能、安裝方式和典型用法。

這是什麼

dsh-drop-in 是面向 DSH Web composer 場景的插件,核心是把拖入或粘貼的文件變成可發送的引用,而不是隻把圖片走原生上傳鏈路。倉庫路徑爲 lbl61/dsh-drop-in,許可證爲 MIT。

它的主要作用是:

  • 讓文件在輸入框中顯示爲引用氣泡或上方 chip bar。
  • 發送後在用戶氣泡中渲染文件卡片。
  • 把文件的絕對路徑作爲引用交給 agent。
  • 在 DSH Desktop 和普通瀏覽器下分別提供不同的路徑或 fallback 行爲。

核心功能

  • 支持從系統文件管理器拖入任意文件/文件夾;圖片按文件處理,官方圖片拖入覆蓋不再搶佔事件。
  • 輸入框聚焦時,拖入或粘貼的文件會在光標處插入爲原生引用氣泡,也支持在已有文本中間插入。
  • 輸入框未聚焦時,文件顯示在輸入框上方的 chip bar,包含圖標、名稱、大小、路徑狀態,可移除,並按路徑去重。
  • 發送時,引用會擴展爲包含絕對路徑的引用;用戶氣泡渲染爲帶類型徽章的文件卡片。
  • 支持粘貼圖片/文件;粘貼的二進制內容以 base64 持久化到 .dsh-drops/<sessionId>/。
  • Enter、Ctrl+Enter 和發送按鈕都可以發送;agent 運行中發送也支持,並渲染相同文件卡片。
  • 提供 dropped_files 工具,讓 agent 列出仍未發送的拖入文件。
  • DSH Desktop 下絕對路徑來自 preload bridge;普通瀏覽器 fallback 會把文本文件複製到 workspace 的 .dsh-drops/。

安裝與啓用

使用 v1.3.0 安裝命令:

dsh plugin --profile web add https://github.com/lbl61/dsh-drop-in/archive/refs/tags/v1.3.0.tar.gz

插件提供 enabled 主開關。關閉後,拖放/粘貼會回退到內置行爲。

典型用法

1、從 Explorer 拖文件到聊天頁,或在 composer 中粘貼圖片/文件。

2、如果 composer 聚焦,文件作爲原生引用氣泡插入光標處;否則顯示在輸入框上方 chip bar。

3、輸入消息後,通過 Enter、Ctrl+Enter 或發送按鈕發送;agent 運行中也可發送。

4、發送後,氣泡顯示文件卡片;agent 收到絕對路徑引用(@[name](path) 或“拖入文件”塊)並可讀取文件。

適用場景與注意

適合在 DSH Web 中頻繁引用本機文件、文件夾、圖片或文本的 agent 開發場景。它適合希望把文件路徑作爲消息一部分發送,而不是手動輸入路徑或粘貼內容的流程。

注意:

  • 插件會以當前 dsh 進程權限運行,安裝前應檢查源碼、許可證以及本機權限邊界。
  • DSH Desktop 依賴 Electron preload bridge 提供絕對路徑;Electron ≥ 32 已移除 File.path。
  • 普通瀏覽器無 preload bridge 時,文本文件會複製到 workspace 的 .dsh-drops/;粘貼二進制經 file-copy 路由持久化,並有基於 session cwd 的 workspace-write sandbox policy。
  • 如不需要插件行爲,可使用 enabled 關閉,使拖放/粘貼回退到內置行爲。
  • 卸載需要從 dsh.profile.bundles 數組移除、刪除對應 node_modules 目錄,並重啓 dsh web。

鏈接

  • GitHub:https://github.com/lbl61/dsh-drop-in
  • 插件線索中給出的目錄頁:https://www.skillhub.cn/plugins/lbl61/dsh-drop-in
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜