본문으로 건너뛰기
J

dsh-harness-ui

jianjianzhu/dsh-harness-ui

사이드바에서 여는 전체 페이지 콘솔로 8개 탭을 제공합니다. 개요; sessions 서비스에서 읽는 세션 목록(제목·디렉터리·실행 상태·갱신 시각·필터); pluginInventory/pluginManager의 설치 번들 및 Loader 항목(번들별 켜기); GitHub Search API의 공개 `topic:dsh-plugin` 저장소 마켓; 모델/제공자 편집기(`remote.settings.mutate`로 llm-pi-ai 설정 기록, 세션 모델 전환, 제공자·모델 목록 추가/편집, API 키는 `remote.credentials`에 저장, 폼에 없는 기존 프로필 필드는 보존); MCP; skills; 호스트 loopback `/api/dsh-usage/overview`를 읽는 사용량. 서비스는 `ctx.inject`로 선언되며 없는 서비스가 있으면 콘솔을 마운트하지 않아 오류가 발생하지 않습니다.

설치

dsh plugin --profile web add github:jianjianzhu/dsh-harness-ui

README

dsh-harness-ui

License: MIT

DeepSeek Harness Web 的全页控制台插件:把会话、插件、市场、MCP、技能与用量收进一个外壳。

行为

  • 在侧栏新增一个 Harness 控制台 入口,点开后在主区打开一个整页面板。
  • 面板顶部是视图切换器,含 7 个视图。每个视图读取 DSH 运行时的真实数据源,源不可用时显示明确的空状态,不填充占位数据:
视图数据源
总览ctx.sessions.list 快照 + remote.pluginInventory
会话管理ctx.sessions.list(标题、目录、运行状态、更新时间)
插件管理remote.pluginInventory.list() + remote.pluginManager.listBundles() / listPlugins();开关调用 setBundleEnabled
插件市场GitHub 搜索 API topic:dsh-plugin(公开、无需凭据)
技能浏览remote.skills.list({ sessionId }),按活动会话解析
MCP 管理本构建无客户端接口 → 空状态
用量与模型本构建无客户端 Remote → 空状态
  • 主题(浅/深)与界面密度(宽松/紧凑)保存在浏览器 localStorage。

关于降级

插件通过 ctx.get(name) 探测服务,未挂载的服务不会让面板崩溃:

  • 缺 sessions → 会话视图显示「sessions 服务不可用」
  • 缺 pluginInventory → 插件视图显示不可用
  • 缺 skills 或没有活动会话 → 技能视图显示对应提示
  • MCP 与用量:DSH 当前只在宿主侧暴露相关能力,浏览器端没有对应 Remote 命名空间,因此这两个视图明确说明无法读取,而不是展示假数据。

开发

npm run build
npm test
npm pack --dry-run

src/client.js 是唯一手写源,npm run build 把它复制为 lib/client.js(build:check 校验二者一致)。 tests/preview.html 是渲染验证挂具:模拟 DSH 的 ModuleLoader 与 ctx 服务,可在浏览器里离线查看各视图与降级路径。

安装

dsh plugin --profile web add dsh-harness-ui

安装后重启 DeepSeek Harness Web。

本地开发版可以直接安装目录:

node D:\deepseek-harness\apps\cli\lib\bin.js plugin --profile web add E:\.weixincodex\dsh-harness-ui

说明

sidebar / rightbar / root 是 DSH 的 single 槽位,由官方 ui-layout 与 ui-sidebar 占用,插件不可替换。本插件因此注册一个 main 整页面板(DSH 允许的做法)并从 sidebar.panellist 提供入口,而不是替换整个应用外壳。

관련 플러그인