dsh-paste-collapse:DSH 靜態插件:大段文本粘貼自動縮略爲 [Paste #N +M lines] 標籤

DSH 開發者在輸入長文本(代碼片段、長日誌、文檔)時,往往面臨上下文溢出或消息結構混亂的問題。手動截取或簡單拼接不僅效率低,還容易打斷對話流。dsh-paste-collapse 插件通過在瀏覽器端攔截粘貼操作,將大段文本自動轉換爲緊湊的標籤,發送時再還原爲完整上下文。

插件定位

這是一個 DSH 靜態插件(Static Cordis Plugin)。它是一個真正的靜態包,包含 Host(後端邏輯)和瀏覽器 Client(前端交互)。插件由 huenjie 維護,許可證爲 MIT。

安裝該插件後,裝入 dsh web profile 並重啓 dsh web,即可自動加載,無需動態重建或再次授權。

核心功能

該插件主要解決大段文本粘貼的展示與傳輸問題:

  1. 自動縮略
    在 AI 輸入框粘貼文本時,系統會先掐掉首尾空白。若內容仍爲多行,或單行長度超過 100 字,則會自動縮略爲 [Paste #N +M lines] 標籤。
  2. 本地緩存持久化
    瀏覽器端使用 localStorage 保存粘貼記錄,最多緩存 32 條,每條最多 50,000 字。Host 側僅保留最近 8 條進程內存作爲兜底,不寫入硬盤。
  3. 交互操作
    • 👁 預覽:點擊圖標彈出完整內容卡片,點擊卡片外部或關閉按鈕即可關閉。
    • ✎ 編輯名稱:給粘貼塊起名,標籤會同步更新爲 [Paste #N | 名字 +M lines]。
    • ↺ 恢復原文:點擊圖標將標籤回寫爲純原文。
    • 刪除:沒有獨立的刪除按鈕,直接在輸入框刪除標籤文本即可移除芯片。
  4. 發送時自動展開
    消息發出時,標籤會自動展開爲完整原文。展開格式包含純標識首尾行(如 [End #N]),編號與輸入框標籤一致,模型直接接收原文,無需調用工具。
  5. 兼容性
    • Slash 命令:帶參數的 slash 命令(如 /agent-teams [長文本])在提交前展開參數,但不加塊裝飾,避免破壞命令解析。
    • 舊版兼容:舊版標籤 [Pasted text #N +M lines] 仍會被識別與展開。

安裝與啓用

使用以下命令安裝:

dsh plugin --profile web add dsh-paste-collapse

安裝後重啓 dsh web 即可生效。

典型用法

  1. 粘貼多行文本或單行超過 100 字的內容,輸入框會立即出現 [Paste #1 +34 lines] 標記。
  2. 點擊 👁 圖標預覽完整內容。
  3. 點擊 ✎ 圖標給粘貼塊起名,例如 版本A,標籤變爲 [Paste #1 | 版本A +34 lines]。
  4. 點擊 ↺ 圖標將標籤回寫爲純原文,繼續編輯。
  5. 直接在輸入框刪除標籤文本,芯片自然消失。
  6. 提交對話時,標籤自動還原爲原文發送。

技術細節

  • 判斷邏輯:孤立的 \r(char 13)在網頁裏不產生可見換行,不觸發縮略。只有掐掉首尾空白後仍爲多行或單行 >= 100 字時才縮略。
  • 目錄結構:插件包包含 package.json、cordis.patch.yml、Host 邏輯 (lib/index.js) 和瀏覽器邏輯 (lib/client.js)。
  • 兜底機制:僅當展開取不到原文(瀏覽器緩存被清理且 Host 進程已重啓)時,標籤纔會原樣發出。此時代理可調用 myds_read_captured 工具按編號讀回完整文本。

適用場景與注意

適合智能體開發中需要頻繁粘貼代碼或長文檔的場景。注意該插件以當前 dsh 進程權限運行,建議在安裝前檢查源碼與許可證。

總結

該插件通過靜態包形式降低了部署複雜度,解決了大段文本粘貼的上下文管理問題。更多詳情與源碼,可訪問:GitHub。

羽毛球分组比赛记分
小程序二维码

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

小夜