前言¶
在 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)。
核心功能(資料已覈實部分)¶
- 在 TUI profile 中註冊後端
dsh-go,與默認通道一併出現在/kernel選擇器中。 - 按 DSH-GO 運行時約定發起連接:一次性
GET /connect?token=、WebSocketWS /ws,以及POST /api/<method>。 - 通過環境變量配置 home、
dshd路徑、審批策略與模型覆蓋,並在啓動時校驗非法策略值。 - 隨包提供 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/...) |
典型用法小結¶
- 用
dsh plugin --profile dsh-tui add -w dsh-tui2go把 bundle 寫入當前 TUI profile。 - 本地啓動
dshd serve,確認控制台出現帶url與token的ready行。 - 配置
DSH_GO_HOME(以及按需的DSH_GO_DSHD、DSH_GO_POLICY、DSH_GO_MODEL)。 - 執行
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。