dsh-queue-reorder:在 DSH 隊列停靠欄內重新排序消息

前言

在 DeepSeek Harness (DSH) 開發流程中,當智能體處於忙碌狀態時,開發者常需將後續消息加入隊列以進行調試或特定的提示工程。此時,調整隊列中消息的順序對於控制執行邏輯至關重要。官方的隊列停靠欄默認僅提供查看功能,缺乏直接調整順序的交互手段。dsh-queue-reorder 插件在官方停靠欄的 DOM 結構上進行裝飾,添加了拖拽和微調按鈕,允許用戶直接在界面中重新排列消息,無需切換至其他面板。

插件簡介

這是一個客戶端插件,由 damlys99 維護,採用 MIT 開源許可證。它不替換官方的隊列停靠欄組件,而是作爲一種裝飾層介入,在不破壞原有功能的前提下擴展交互能力。

核心功能

  1. 拖拽與按鈕操作

    • 隊列中的每一行消息都增加了一個 grip 手柄,支持按住拖拽來改變位置。
    • 每行提供 ↑/↓ 精確移動按鈕。最後一行的 ↓ 按鈕會被禁用,因爲其後沒有元素可移動。
  2. 非侵入式設計

    • 插件僅裝飾官方停靠欄,保留預覽、內聯編輯、引導、移除、附件和摺疊等所有原有功能。
    • 卸載插件後,隊列停靠欄恢復原狀,不受影響。
  3. 零依賴

    • 無需構建步驟,無運行時依賴,開箱即用。

安裝與啓用

在 DSH Web 環境下執行以下命令進行安裝:

dsh plugin --profile web add -w dsh-queue-reorder

安裝完成後,需要重啓 DSH Web 進程並刷新頁面以使插件生效。

典型用法

# 卸載插件
dsh plugin --profile web remove dsh-queue-reorder

# 運行單元測試(無網絡、無瀏覽器環境)
node selftest.mjs

適用場景與注意事項

適用場景:
* 需要在 DSH Web 界面中頻繁調整隊列消息順序的開發者。
* 希望在不離開官方停靠欄的情況下進行提示工程排隊的用戶。

注意事項:

  1. 版本要求:插件要求 DSH 版本在 >=0.1.2-alpha.1 <0.2.0-0 範圍內。更早的版本沒有 conversation.input.dock 插槽支持。
  2. 內部實現依賴:插件依賴內部 DOM 結構(如 [data-queue-dock])。如果官方停靠欄的 DOM 結構被重構,控件可能失效(但不會導致崩潰,只是失去交互)。
  3. 消息類型限制:插件僅移動 next-turn(排隊中)的消息,next-step(下一步)的消息保持靜止。
  4. 拒絕移動的條件:在嘗試移動時,如果遇到以下條件,操作將被拒絕且不產生任何改變:
    • QUEUE_CHANGED:視圖中的隊列狀態與實時隊列不匹配。
    • NON_USER_MESSAGE:試圖移動由 Harness 仍跟蹤來源的消息(如目標回合提示詞)。
    • SUBAGENT_UNSUPPORTED:子代理會話的隊列由父會話擁有。
  5. 網絡限制:插件的 HTTP 路由僅監聽迴環接口,瀏覽器發起的跨站請求會被 CORS 協議阻止。

總結

dsh-queue-reorder 通過在官方隊列停靠欄中添加 grip 拖拽和 ↑/↓ 按鈕,解決了消息順序調整不便的問題。它以裝飾模式工作,保持了與官方 UI 的兼容性,適合需要在 DSH Web 界面中精細控制隊列順序的用戶。

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

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

小夜