前言¶
DeepSeek Harness(DSH)把能力拆成可安裝的插件包;開發者在日常裏既要查目錄、看詳情,又要對照當前 Profile 裏已裝版本,再決定要不要裝。純手抄倉庫地址、自己拼安裝命令,步驟多且容易和目錄信息不一致。
cctor-dsh-marketplace 是面向 DSH 的可安裝 bundle:以 https://api.cctor.com 爲動態目錄源,在同一套 Host 服務上同時提供 Web 端市場界面和供模型調用的 Agent 工具。UI 與工具共用持久化緩存、已安裝狀態讀取和安裝協調邏輯。倉庫由 oday0311 維護(GitHub:oday0311/open-dsh-market),在 SkillHub 等社區目錄中歸類爲客戶端插件;npm 包名爲 cctor-dsh-marketplace,當前版本爲 0.1.0(MIT)。
這是什麼¶
一句話定位:在 DSH 進程內打開可搜索的插件市場,展示目錄詳情與當前 Profile 安裝狀態,並在用戶明確確認後才執行安裝。
v1 範圍包含發現、詳情、已安裝狀態展示和安裝(每次安裝都必須經過用戶顯式確認)。不包含:更新、禁用或移除其他插件,也不支持安裝到其他 Profile。
核心功能¶
Web 工作區¶
- 主從佈局:左側爲可搜索結果列表,右側爲選中插件詳情;窄屏下詳情單獨成頁,帶返回控件。
- 搜索與篩選:搜索防抖 300 ms,並取消被新請求 supersede 的舊請求;非空且少於 3 個字符的查詢不會發到 API(接口對此 intentionally 返回空頁)。支持分類、排序、刷新、分頁與緩存重置。
- 已安裝狀態:當前 Profile 已安裝的條目顯示本地版本,不展示普通「安裝」操作。
- 雙語界面:隨 DSH 當前 locale 切換中文或英文;日期、數量、空狀態、錯誤與安裝進度文案本地化;插件名、描述、README、標籤與倉庫元數據按 API 原樣展示。
Agent 工具(與 Host 共用歸一化與緩存)¶
| 工具 | 作用 | 主要約束 |
|---|---|---|
cctor_search_plugins |
搜索目錄,返回摘要、分頁與緩存新鮮度 | 默認 10 條,單次最多 20;返回不透明 next_cursor;不返回 README 或 install_command;不執行安裝 |
cctor_get_plugin_details |
按穩定 ID 或精確 slug 讀取公開詳情、校驗狀態與當前 Profile 安裝狀態 | slug 須唯一;無匹配爲 not_found,多匹配爲 ambiguous_plugin |
cctor_request_plugin_install |
爲當前 Profile 準備一次性安裝確認 | 僅返回 awaiting_confirmation、確認 ID、過期時間、目標 Profile、路由與安全 spec;工具不能自行批准或執行 |
工具輸出有字段上限與 64 KiB 總預算;緩存內部、堆棧、路徑與請求頭不會進入模型上下文。
架構要點¶
Agent tools ─┐
├─ CctorMarketplaceService ── CCTor API (list / meta / detail)
Web Client ──┘ │
(via same-origin API) ├─ Storage Domain (plugin-owned persistent cache)
└─ Plugin Manager (installs only into the current profile)
Web Client 僅負責展示,不直連 CCTor,也不能執行安裝;通過同源路由 /api/cctor-marketplace/rpc(與 connection 註冊)調用 Host。若運行時模塊無法導入或 Host 組裝失敗,受保護的入口會記錄一條有界的兼容性診斷並保持惰性,避免拖垮整棵插件樹。
緩存與離線¶
列表與元數據 TTL 5 分鐘,詳情 30 分鐘;過期標爲 stale 仍可先展示並後臺刷新。刷新失敗時,最近一次成功記錄最長約 7 天可作回退;超過則標 possiblyOutdated 且不作爲「實時」呈現。工具欄「Reset cache」只清空本插件私有 Storage Domain,不影響其他域或已安裝狀態。
安裝確認準備時會繞過緩存,重新從 detail 端點讀取插件,使確認綁定當前網絡身份與安全 spec。
安裝確認與安全邊界¶
每次安裝都需要新的顯式確認:一次性、5 分鐘過期,綁定穩定插件 ID、歸一化 install spec、目標 Profile、校驗狀態與來源內容摘要;執行前會複檢來源,若 spec 或相關字段變化,確認失效(README 在此處截斷,以倉庫原文爲準)。
安裝與啓用¶
環境要求(見 package.json 的 engines):Node.js >= 22;DSH >= 0.2.1-rc.5 且 < 0.3.0。
從 npm 安裝¶
將 <name> 換成目標 Profile 名稱,按提示重啓 DSH:
dsh plugin --profile <name> add cctor-dsh-marketplace
驗證¶
dsh plugin --profile <name> list cctor-dsh-marketplace --depth 0
輸出應列出 cctor-dsh-marketplace 及其已裝版本。
升級與卸載¶
dsh plugin --profile <name> update cctor-dsh-marketplace --latest
dsh plugin --profile <name> remove cctor-dsh-marketplace
升級或卸載後均需重啓 DSH。上述命令管理的是市場 bundle 本身;市場內發現的插件仍受 UI v1 能力限制(例如 v1 不在此 UI 內做其他插件的更新/移除)。
配置¶
通過 DSH 插件配置傳入,字段等價於:
{
"apiBaseUrl": "https://api.cctor.com",
"requestTimeoutMs": 15000
}
| 字段 | 默認值 | 含義 |
|---|---|---|
apiBaseUrl |
https://api.cctor.com |
須爲根 origin;生產環境要求 HTTPS;僅 localhost / 127.0.0.1 允許 HTTP。拒絕 URL 用戶信息、路徑、查詢與 fragment。 |
requestTimeoutMs |
15000 |
每次目錄請求超時(毫秒,正整數)。 |
典型用法¶
- 安裝並重啓後,在 DSH Web 客戶端打開市場工作區:搜索、按分類篩選,在詳情頁查看 README 與倉庫信息;當前 Profile 已裝的插件會顯示本地版本。
- 若網絡不穩定,界面可能展示 localized 的 stale / possibly outdated 橫幅與 Retry;也可在工具欄使用「Reset cache」僅清本插件緩存後重試。
- 在 Agent 對話中,可由模型調用
cctor_search_plugins與cctor_get_plugin_details檢索與讀詳情;真正安裝須經cctor_request_plugin_install拿到待確認項後,由用戶在 UI 中完成確認(工具不能自行批准)。
適用場景與注意¶
適合:在本機 DSH 環境裏日常瀏覽 CCTor 目錄、覈對當前 Profile 安裝狀態,並在確認後安裝新插件的開發者。
注意:
- 插件以當前 DSH 進程權限運行;安裝任何 market 條目前,應自行查看目標插件源碼、許可證與 install spec,勿僅依賴目錄摘要。
- 社區目錄(如 SkillHub)與 DeepSeek / 幻方無官方從屬關係,本文所述市場數據源爲
api.cctor.com,不是「官方應用商店」敘事。 - v1 deliberately 不做「靜默安裝」:模型工具只能發起確認流程,不能代替用戶點選批准。
結尾¶
cctor-dsh-marketplace 把 CCTor 動態目錄、緩存友好的離線體驗和安裝確認邊界收進一個 DSH bundle,減少手工拼命令與目錄信息脫節的問題。進一步說明見倉庫 README(含 簡體中文)。
- SkillHub 目錄頁:https://www.skillhub.cn/plugins/oday0311/open-dsh-market
- GitHub:https://github.com/oday0311/open-dsh-market