dsh-web
zhu1090093659
DeepSeek Harness (DSH) Web 插件聚合生态 · 万物皆插件,通过创意工坊分发||DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:jaikensai888/dsh-skillui
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
独立的 DSH 插件:在 dsh-better-sidebar 中注册一个与 Files、Tasks、Terminal、Browser、Source Control 同级的 Skill UI Tab,用于承载具有交互界面的 Skill HTML。
dsh-better-sidebar >=0.16.1;--profile 设置为哪个 profile。DSH Desktop 通常使用 desktop,dsh web 通常使用 web。当前仓库还没有发布版本 tag,因此先使用 GitHub 分支安装:
cd ~/.dsh
# DSH Desktop
dsh plugin --profile desktop add "github:jaikensai888/dsh-skillui#codex/bootstrap-skillui"
# 或 dsh web
dsh plugin --profile web add "github:jaikensai888/dsh-skillui#codex/bootstrap-skillui"
安装完成后重启 DSH,在 dsh-better-sidebar 的 + 菜单中应能看到 Skill UI。点击后可以打开本插件自带的 Demo 页面;真实 Skill 则通过通用 skillui_open 工具按当前会话打开自己的 View。
如果使用的是本地 link: 包,修改源码后需要重新生成 lib,并重启 DSH Desktop 让宿主重新加载 bundle:
cd G:\claude_project\code-agent\dsh-skillui
pnpm build
如果构建时报 EPERM,先完全退出 DSH Desktop 再执行构建。
后续发布版本 tag 后,推荐改用固定版本安装,例如:
cd ~/.dsh
dsh plugin --profile web add "github:jaikensai888/dsh-skillui#v0.1.0"
将 web 替换为 desktop,即可安装到 DSH Desktop profile。
卸载插件:
cd ~/.dsh
dsh plugin --profile web remove dsh-skillui
DSH-better-sidebar;ctx.betterSidebar.registerTab(...) 注册与 Files、Tasks、Terminal、Browser 同级的 Skill UI;npx skills add ... --all -g -y 安装的 Skill 根目录,发现并校验 skillui/manifest.json;skillui_open 绑定调用它的 DSH session,将已声明的 View 请求排队;客户端轮询后调用 openTab(seed, { sessionId });scope.sessionId 和持久化的 tab.meta 生成 sessionId / skillId / workflowId;+ 菜单打开 Skill UI 时,若 Tab 没有 meta,会读取当前 session 最近一次的 Skill UI 绑定;没有绑定时才显示 Demo 页面;dsh-skillui/
├── dsh.plugin.json
├── cordis.patch.yml
├── src/
│ ├── index.ts # host 插件入口与 HTTP route
│ ├── host/ # Skill registry、open queue、HTTP bridge、tool
│ ├── client/ # Tab、activation polling、command bridge
│ └── shared/ # manifest 与跨 host/client 协议
├── views/demo-review/index.html # Demo Skill UI
└── docs/ # 架构、设计规格、实施计划
pnpm install
pnpm test --run
pnpm typecheck
pnpm build
如果 DSH Desktop 正在使用本仓库的本地 link: 包,Windows 可能锁定 lib 文件并使 pnpm build 清理阶段报 EPERM;先完全退出 DSH Desktop,再执行构建。
构建结果包括:
lib/index.js:host bundle;lib/client-registry.js:DSH plugin registry client bundle;lib/client.js:profile channel client bundle;views/demo-review/index.html:打包的 Demo 页面。当前开发环境如果没有安装 DSH CLI,只能完成包级测试、类型检查和构建;真实 dsh web 启动应在 DSH profile 中安装 dsh-better-sidebar 和本插件后再验收。
真实招聘 Skill 不应修改本插件或 Sidebar。它只需在自己的包中提供:
skills/recruitment/
├── SKILL.md
├── skillui/manifest.json
└── views/index.html
进入招聘工作台时,入口 Skill 调用通用工具:
{
"skillId": "recruitment",
"workflowId": "recruitment:当前流程ID"
}
招聘领域的 command、storage、数据写入和业务判断仍由招聘 Skill 自己拥有;dsh-skillui 只负责发现声明、承载 HTML、绑定会话和转发交互。
View 使用的稳定接口为:
GET /skillui/api/data/:skillId/:declared-file?sessionId=...&skillId=...&workflowId=...
GET /skillui/api/resource/:skillId/:allowed-path?sessionId=...&skillId=...&workflowId=...
GET /skillui/api/current?sessionId=...
POST message to parent: dsh-skillui:command
自动弹出依赖招聘 Skill 实际调用 skillui_open。更新插件并重启 DSH 后,建议新建会话重新触发一次招聘流程;如果当前会话没有成功产生过 Skill UI 绑定,手动打开 Tab 会保留 Demo 作为回退页面。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: dsh-better-sidebar、sidebar。