dsh-librarian
a dsh plugin that helps you to automatically generate, evolve and manage your dsh plugins
xuc865
@xuc865
⬇ 1
★ 0
main
安装
dsh plugin --profile web add github:xuc865/dsh-librarian
需要可复现安装时,可在仓库后追加 #commit 固定提交。
a dsh plugin that helps you to automatically generate, evolve and manage your dsh plugins
该插件未提供要点说明,请参考仓库 README。
deepseekdeepseek-harnessdeepseek-harness-plugindeepseek-harness-pluginspixelpixel-art
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/xuc865/dsh-librarian |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-23 |
| 收录日期 | 2026-09-19 |
| 分类 | 工具与能力 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
[图片: DSH Librarian pixel-art banner]
把一次成功的任务,登记成下一次会主动出现的能力书。
A pixel-art Plugin librarian for DeepSeek Harness Web UI.
[图片: version]
[图片: tests]
[图片: scope]
[图片: license]
---
## 📚 这是什么
**DSH Librarian** 是 DeepSeek Harness Web UI 的动态能力沉淀插件。
你照常在 DSH 里完成任务。任务结束后,它会判断其中是否出现了可以在不同输入上复用的稳定能力;值得保存的能力会成为原生 Cordis Plugin,并由像素管理员 **Mira / 米拉** 登记进插件图书馆。
它不是另一个工作流画布,也不会把 50 次任务变成 50 个全局插件。新插件默认属于当前会话;只有同一稳定能力在另一个隔离会话里再次被独立需要,才允许提升为用户级馆藏。
[图片: DSH Librarian pixel UI]
## 🖥️ 整套 DSH Web 都是像素风
这不是只覆盖 Plugin 页面的独立皮肤。Client 启动后会给 DSH Web 宿主安装全局像素主题;即使关闭 Librarian 浮层,下面这些区域仍保持同一套黑墨、旧纸米色和珊瑚红视觉:
- 左侧品牌区、工作区、搜索与会话树;
- 顶部标题、对话 / 轨迹标签与 Session Log;
- 用户消息、Agent 回复、Think、Tool Call 和代码块;
- 底部输入框、模型选择器、权限选项与发送按钮;
- 对话区会显示运行中 / 待批准 Plugin 的像素状态小票,悬停可查看已加载名称;
- Settings、弹窗、焦点态与像素滚动条;
- 窄屏布局会缩短硬阴影并保留宿主原有的响应式结构。
主题只改变视觉层,不接管 DSH 的布局尺寸、交互语义或可访问性;Librarian 浮层仍是独立 Portal,因此米拉、馆藏票根和宿主界面可以分别迭代。
## 🎟️ 像素图书馆
界面采用黑墨、旧书米色与珊瑚红的像素票根风格:
- 每个 Plugin 是一张带孔票根 / 一本能力书;
- 右侧是二次元动态像素管理员米拉;项目内置 4×2 八帧精灵图,循环播放待机、眨眼和翻书;
- 点击馆藏,米拉会说明能力用途、状态、作用域和 lineage;
- `通用 · 按需加载` 与 `本会话 · 按需加载` 明确区分两层冷库;
- 运行态 Plugin 可检查源码、批准、拒绝、启停或两步删除;
- 工作流档案室、表单、模板和导入导出也统一采用像素视觉语言;
- 窄屏自动收起管理员区域,保留完整馆藏操作。
## 🗄️ 两层馆藏
```text
┌─────────────────────────────────────────────────────────┐
│ USER ARCHIVE │
│ ~/.dsh/plugin-sedimentation/user-plugins.json │
│ 每个新会话可见 · 元数据冷加载 · picker 选中后才执行 │
└──────────────────────────┬──────────────────────────────┘
│ independently needed again
│ confidence ≥ 0.8
▼
┌─────────────────────────────────────────────────────────┐
│ SESSION SHELF │
│ /.dsh/plugin-sedimentation/plugins.json │
│ 新 Plugin 的默认归宿 · 只属于当前隔离会话 │
└─────────────────────────────────────────────────────────┘
```
Promotion 由 Host 调用的一次性 picker 子 Agent 提议,并经过以下校验:
1. 来源 lineage 必须在 Host allowlist 中;
2. 证据必须来自不同会话;
3. reason 非空,confidence 至少为 `0.8`;
4. 同 lineage 但不同语义会生成 derived lineage,不覆盖旧能力;
5. 每次最多选择三个 Plugin,主 Agent 永远看不到完整源码目录。
## ❄️ 冷加载,而不是“看见就运行”
图书馆展示的是安全的元数据票根。DSH 启动时不会把 Plugin 源码塞进主 Agent prompt,也不会定义、激活或执行全部 Plugin。
```mermaid
flowchart LR
U[User turn] --> P[Host picker child Agent]
S[Session metadata] --> P
G[User metadata] --> P
P -->|0..3 selected lineage IDs| V[Host validation]
V -->|valid| L[Define / reuse / share]
V -->|no match| N[Keep catalog cold]
L --> R[Rebuild current turn tools]
```
当用户级 Plugin 已在另一个 Agent 中运行时,后续会话会共享同一个活动实例,记录:
```json
{ "status": "running", "reused": true, "shared": true }
```
这样可以避免重复注册全局 Tool 和 `host-half-failed`。
## 🧾 Pending 的四个动作
| 动作 | 含义 |
| --- | --- |
| **Inspect** | 通过同源只读 `no-store` 接口查看不可变 Package 元数据、Host/Client 源码和权限提示 |
| **Approve** | 只批准并激活当前 pending Package |
| **Reject** | 拒绝当前审批请求,但保留 Plugin 定义、Package 历史和上一稳定版本 |
| **Delete** | 两步确认后永久 undefine Plugin |
## 🛠️ 安装
要求本机已经安装 DSH,并存在 `web` profile。
```bash
git clone https://github.com/xuc865/dsh-librarian.git
cd dsh-librarian
dsh plugin --profile web add .
dsh web
```
升级本地开发版本时,重新执行 add 并重启 Web:
```bash
dsh plugin --profile web remove @local/dsh-librarian
dsh plugin --profile web add .
dsh web --no-open
```
## 🧪 验证
```bash
npm test
node --check lib/index.js
node --check lib/client.js
npm pack --dry-run --json
```
当前回归覆盖:
- Plugin CRUD 与 library review 调度;
- Recipe 本地输入不会泄漏到 refinement prompt;
- Inspect / Approve / Reject / Delete 的独立语义;
- 冷目录、picker 输出验证、跨会话 promotion;
- 跨 Agent 活动实例共享;
- 同 lineage 不同语义的 derived-lineage 保护。
## 🧭 项目结构
```text
dsh-librarian/
├── assets/ # README 像素素材
├── docs/ # 实际 Web UI 截图
├── lib/
│ ├── index.js # Host:沉淀、目录、promotion、加载策略
│ └── client.js # Client:全局 DSH 像素主题、图书馆、米拉与审批
├── scripts/
│ ├── run-batch-experiment.mjs # 10 会话 × 5 连续追问
│ └── run-scope-regression.mjs # shared / derived-lineage 真实回归
├── test/index.test.js
├── cordis.patch.yml
└── package.json
```
## 🧠 设计原则
- **Private first** — 新能力先进入本会话书架。
- **Evidence before promotion** — 跨会话真实复用后才进入通用馆藏。
- **Metadata before source** — 可发现不等于已执行。
- **One stable capability per book** — 一本能力书只负责一件稳定的事。
- **Mira explains, Host decides** — UI 负责可理解,Host 负责安全边界。
- **Reversible by default** — 替换先 staged,验证后才退休旧版本。
## License
MIT
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。