dsh-tui2go:讓 dsh-tui 通過 AgentBackend 連接 DSH-GO

前言

在 DSH 生態裏,終端側常用 dsh-tui 作爲交互前端,而 Go 實現的 DSH-GO 主機(dshd)則負責會話與工具執行。若要在 TUI 的 /kernel 後端列表裏直接選用 Go 主機,通常需要一條正式的 AgentBackend 裝配鏈,而不是 Fork TUI 或在 Go 側再掛一層插件。

dsh-tui2go(維護者 MYCF711)是面向 dsh-tui 0.19 的第三方 AgentBackend bundle:把聲明、惰性 backend 處理邏輯和連接池鉤子打進 TUI profile,在 picker 中增加名爲 dsh-go 的後端,由 TUI 按既有組裝流程與 dshd 通信。下面介紹其定位、安裝步驟與運行時要遵守的約定。

這是什麼

  • 名稱:dsh-tui2go(npm 包名同插件 id)
  • 倉庫:github.com/MYCF711/dsh-tui2go
  • 許可證:MIT
  • 當前公開版本:0.1.0(README 中稱首個公開發布的 bundle)

該包不是 TUI 分叉,也不是 Go 主機插件;它只交付 bundle 側能力,完整裝配鏈仍在 TUI 內完成。因 dsh-go-host 未發佈到 npm,包內故意不寫 spec.install 配方,需要自行安裝 dshd 並通過環境變量指向可執行文件。

版本兼容

dsh-tui2go DSH-GO host dsh-tui
0.1.x 0.2.2-go.* ^0.19.0

TUI 0.18 不在支持範圍內。運行時需要 Node ^22.19 或 >=24(見 package.json 的 engines)。

核心功能(資料已覈實部分)

  1. 在 TUI profile 中註冊後端 dsh-go,與默認通道一併出現在 /kernel 選擇器中。
  2. 按 DSH-GO 運行時約定發起連接:一次性 GET /connect?token=、WebSocket WS /ws,以及 POST /api/<method>。
  3. 通過環境變量配置 home、dshd 路徑、審批策略與模型覆蓋,並在啓動時校驗非法策略值。
  4. 隨包提供 workspace 相關 TypeScript 端口與可復現的臨時 profile overlay(fixture 測試);不對未在主機側實現的 workspace 能力做隱藏或僞造(見 README「Workspace capability」一節)。

審批策略由主機決定:未設置 DSH_GO_POLICY 時,backend 不向 dshd 傳遞 --policy,因而採用 dshd serve 自身默認(allow)。顯式設置爲 deny、ask 或 allow 會原樣透傳;其他非空值會拒絕啓動。

安裝與啓用

安裝命令須與 README 一致,分三步完成。

# 1) 將 bundle 裝入 dsh-tui 所用的 profile
dsh plugin --profile dsh-tui add -w dsh-tui2go

# 2) 構建/運行 DSH-GO,記下 ready 行中的 url 與 token
dshd serve --home <home> --addr 127.0.0.1:0
# ready {"url":"http://127.0.0.1:<port>","token":"<token>"}

# 3) 指定 dsh-go 後端啓動 TUI
dsh-tui --backend dsh-go

TUI 會在自有連接流程中讀取主機 URL 與 token。獨立運行模式下,可顯式傳入 --base <url> --token <token>。

在啓用 backend 之前,請自行安裝 dshd 並準備好 DSH-GO 的 home 目錄;本 bundle 不會替你拉取或發佈 Go 主機二進制。

運行時環境變量

變量 是否必填 含義
DSH_GO_HOME 是 DSH-GO home(會話、工具狀態等)
DSH_GO_DSHD 否 dshd 路徑,默認在 PATH 中查找 dshd
DSH_GO_POLICY 否 未設置則不傳 --policy(主機默認 allow);deny/ask/allow 原樣透傳
DSH_GO_MODEL 否 模型覆蓋,使用網關 fully-qualified id(group/...)

典型用法小結

  1. 用 dsh plugin --profile dsh-tui add -w dsh-tui2go 把 bundle 寫入當前 TUI profile。
  2. 本地啓動 dshd serve,確認控制台出現帶 url 與 token 的 ready 行。
  3. 配置 DSH_GO_HOME(以及按需的 DSH_GO_DSHD、DSH_GO_POLICY、DSH_GO_MODEL)。
  4. 執行 dsh-tui --backend dsh-go;必要時在 standalone 模式下補充 --base 與 --token。

倉庫中的自檢流程(供貢獻者或自行驗證構建)包括:

npm install --ignore-scripts
npm run build
npm run typecheck
npm test
npm pack --dry-run

公開測試套件以單元級爲主,不要求本地檢出 TUI 0.19;與 0.19 完整裝配/conformance 相關的證據未放在公開倉庫中。

適用場景與注意

適合誰:已在用 dsh-tui 0.19,並打算把交互後端切到自託管的 DSH-GO(0.2.2-go.*),且願意自行維護 dshd 安裝與 home 目錄的開發者。

權限與安全:插件與 TUI、後端進程以你當前用戶身份運行,可訪問該用戶能讀寫的路徑與環境變量。安裝前應閱讀 GitHub 源碼 與 MIT 許可證,確認 bundle 行爲符合你的部署策略。

workspace:TUI 0.19 在非 DSH 通道上對若干 workspace 動作標記爲不可用;本 bundle 雖附帶 workspace 端口與 overlay 測試夾具,但 DSH-GO 側仍需實現 workspace.list/resolve/switch 等主機方法後,才能在真實 dshd 上完整演練。README 指出當前僅 workspace.init 在主機側接線。

狀態說明:0.1.0 發佈時,TUI 0.19 profile 啓動器可能仍受上游 workspace:* 發佈問題影響(見 CHANGELOG.md);包本身可構建、打包並通過 0.19 裝配檢查。社區目錄頁(SkillHub)與 GitHub 爲獨立信息源,與 DeepSeek / 幻方無法官方從屬關係;DSH 生態遵循「一切皆插件」,本件爲社區第三方 bundle。

結尾

dsh-tui2go 把 dsh-go 後端穩妥地掛進 dsh-tui 0.19 的 AgentBackend 列表,用環境變量對接你已安裝的 dshd,避免 Fork TUI 或誤把它當成 Go 主機插件。查閱插件說明與版本記錄可打開目錄頁 skillhub.cn/plugins/MYCF711/dsh-tui2go 與倉庫 github.com/MYCF711/dsh-tui2go。

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

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

小夜