jasper-zsh/dsh-plugin-skill-panel ↗★ 0
dsh-plugin-skill-panel
Read-only global and per-session skill catalogs for the DSH web shell.
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗dsh-plugin-skill-panel
DeepSeek Harness(DSH) 的只读技能清单插件,在 Web GUI 中展示全局技能和当前会话可见的技能,并从会话日志推导技能加载状态。
功能
- 会话技能视图:在会话顶部视图栏增加“技能”页签,按“项目技能”和“全局技能”分组。
- 全局技能清单:在设置面板增加“技能”页面,只显示默认 Agent Preset 可见的非项目技能。
- 只读展示:没有加载、刷新、启停等操作按钮;清单每 15 秒自动更新一次。
- 技能详情对话框:点击任一技能行,在模态对话框中查看技能说明和入口正文,不再占用列表行内空间。
- 技能文件浏览器:对话框左侧以树形结构展示入口正文明确引用的本地资源,右侧按需读取并显示 UTF-8 文本文件内容。
- 安全读取边界:不枚举可变目录;仅允许读取安全清单中的文件,打开时限制在 backing
SKILL.md目录内且不跟随符号链接。单文件最大展示 1 MiB,文件树最多 1,000 项。 - 会话排序:会话页每个技能分组中的自定义技能固定排在该分组末尾。
- 状态推导:展示“可用 / 已加载 / 加载中 / 加载失败 / 仅手动 / 已禁用”。
- 来源标记:区分项目
.dsh、项目.agents、全局.dsh、全局.agents、内置、自定义和运行时来源。 - 静态 TypeScript 双端插件:Host 查询 DSH 技能注册表和会话事件,Client 只接收最小化 JSON 数据。
当前 DSH 没有可追加的通用右侧详情页签槽位;
details只服务于选中的 Tool call。插件因此使用官方的conversation.view加性槽位作为独立会话页面,不会替换详情栏或聊天界面。
状态含义
| 状态 | 含义 |
|---|---|
| 可用 | 当前会话目录可见,允许模型通过 skill 工具加载,但本会话尚无成功加载记录。 |
| 已加载 | 会话日志中存在成功的 skill 工具结果,或存在用户显式技能调用注入。 |
| 加载中 | 已记录 skill 工具调用,尚未记录配对结果。 |
| 加载失败 | 最近一次加载尝试失败,且本会话此前没有成功加载记录。 |
| 仅手动 | 不允许模型调用,但允许用户显式调用。 |
| 已禁用 | 模型和用户调用策略均关闭。 |
“已加载”不是 DSH Skill Registry 的原生字段,而是插件根据持久化的 tool/call、tool/result 和 skill-invocation 会话事件推导。
项目结构
src/
├── index.ts # Host 入口和只读 HTTP 端点
├── catalog.ts # 技能目录查询、作用域解析和加载状态折叠
├── services.ts # 插件使用的 Host 服务结构类型
├── types.ts # Host/Client 共享 JSON 类型
└── client/
├── index.tsx # Web Client 入口与槽位注册
├── api.ts # 同源技能目录请求
├── components.tsx # 会话及全局只读清单
└── styles.ts # 主题变量驱动的紧凑列表样式
构建输出:
lib/index.js:Host ESM;- :DSH Web lazy-CJS Client bundle。